@jdultra/threedtiles 13.3.7 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +1,252 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("three");function jo(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const a in r)if(a!=="default"){const t=Object.getOwnPropertyDescriptor(r,a);Object.defineProperty(e,a,t.get?t:{enumerable:!0,get:()=>r[a]})}}return e.default=r,Object.freeze(e)}const G=jo(f),$e=new f.Matrix3,fe=new f.Vector3,Rr=new f.Vector3,Sr=new f.Box3,rt=new f.Matrix4,Tr=new f.Matrix4,Nr=new f.Ray;class Oe{constructor(e){this.isOBB=!0,this.center=new f.Vector3(e[0],e[1],e[2]),this.e1=new f.Vector3(e[3],e[4],e[5]),this.e2=new f.Vector3(e[6],e[7],e[8]),this.e3=new f.Vector3(e[9],e[10],e[11]),this.halfSize=new f.Vector3(this.e1.length(),this.e2.length(),this.e3.length()),this.e1.normalize(),this.e2.normalize(),this.e3.normalize(),this.rotationMatrix=new f.Matrix3,this.rotationMatrix.set(this.e1.x,this.e2.x,this.e3.x,this.e1.y,this.e2.y,this.e3.y,this.e1.z,this.e2.z,this.e3.z)}copy(e){this.center.copy(e.center),this.rotationMatrix.copy(e.rotationMatrix),this.halfSize.copy(e.halfSize),this.e1.copy(e.e1),this.e2.copy(e.e2),this.e3.copy(e.e3)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}applyMatrix4(e){const a=e.elements;let t=fe.set(a[0],a[1],a[2]).length();const i=fe.set(a[4],a[5],a[6]).length(),n=fe.set(a[8],a[9],a[10]).length();e.determinant()<0&&(t=-t),$e.setFromMatrix4(e);const o=1/t,s=1/i,c=1/n;return $e.elements[0]*=o,$e.elements[1]*=o,$e.elements[2]*=o,$e.elements[3]*=s,$e.elements[4]*=s,$e.elements[5]*=s,$e.elements[6]*=c,$e.elements[7]*=c,$e.elements[8]*=c,this.rotationMatrix.premultiply($e),this.halfSize.x*=t,this.halfSize.y*=i,this.halfSize.z*=n,this.center.applyMatrix4(e),this.rotationMatrix.extractBasis(this.e1,this.e2,this.e3),this}intersectRay(e,a){return this.getSize(Rr),Sr.setFromCenterAndSize(fe.set(0,0,0),Rr),rt.setFromMatrix3(this.rotationMatrix),rt.setPosition(this.center),Tr.copy(rt).invert(),Nr.copy(e).applyMatrix4(Tr),Nr.intersectBox(Sr,a)?a.applyMatrix4(rt):null}clampPoint(e,a){fe.copy(e).sub(this.center);const t=fe.dot(this.e1),i=fe.dot(this.e2),n=fe.dot(this.e3),o=Math.max(-this.halfSize.x,Math.min(this.halfSize.x,t)),s=Math.max(-this.halfSize.y,Math.min(this.halfSize.y,i)),c=Math.max(-this.halfSize.z,Math.min(this.halfSize.z,n));return a.copy(this.center).addScaledVector(this.e1,o).addScaledVector(this.e2,s).addScaledVector(this.e3,c)}intersectsSphere(e){return this.clampPoint(e.center,fe),fe.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,a=Number.EPSILON){const t=[this.e1,this.e2,this.e3],i=[e.e1,e.e2,e.e3],n=[this.halfSize.x,this.halfSize.y,this.halfSize.z],o=[e.halfSize.x,e.halfSize.y,e.halfSize.z],s=[[0,0,0],[0,0,0],[0,0,0]],c=[[0,0,0],[0,0,0],[0,0,0]];for(let b=0;b<3;++b)for(let h=0;h<3;++h)s[b][h]=t[b].dot(i[h]),c[b][h]=Math.abs(s[b][h])+a;fe.subVectors(e.center,this.center);const u=[fe.dot(t[0]),fe.dot(t[1]),fe.dot(t[2])];let A,d;for(let b=0;b<3;++b)if(A=n[b],d=o[0]*c[b][0]+o[1]*c[b][1]+o[2]*c[b][2],Math.abs(u[b])>A+d)return!1;for(let b=0;b<3;++b)if(A=n[0]*c[0][b]+n[1]*c[1][b]+n[2]*c[2][b],d=o[b],Math.abs(u[0]*s[0][b]+u[1]*s[1][b]+u[2]*s[2][b])>A+d)return!1;return A=n[1]*c[2][0]+n[2]*c[1][0],d=o[1]*c[0][2]+o[2]*c[0][1],!(Math.abs(u[2]*s[1][0]-u[1]*s[2][0])>A+d)&&(A=n[1]*c[2][1]+n[2]*c[1][1],d=o[0]*c[0][2]+o[2]*c[0][0],!(Math.abs(u[2]*s[1][1]-u[1]*s[2][1])>A+d)&&(A=n[1]*c[2][2]+n[2]*c[1][2],d=o[0]*c[0][1]+o[1]*c[0][0],!(Math.abs(u[2]*s[1][2]-u[1]*s[2][2])>A+d)&&(A=n[0]*c[2][0]+n[2]*c[0][0],d=o[1]*c[1][2]+o[2]*c[1][1],!(Math.abs(u[0]*s[2][0]-u[2]*s[0][0])>A+d)&&(A=n[0]*c[2][1]+n[2]*c[0][1],d=o[0]*c[1][2]+o[2]*c[1][0],!(Math.abs(u[0]*s[2][1]-u[2]*s[0][1])>A+d)&&(A=n[0]*c[2][2]+n[2]*c[0][2],d=o[0]*c[1][1]+o[1]*c[1][0],!(Math.abs(u[0]*s[2][2]-u[2]*s[0][2])>A+d)&&(A=n[0]*c[1][0]+n[1]*c[0][0],d=o[1]*c[2][2]+o[2]*c[2][1],!(Math.abs(u[1]*s[0][0]-u[0]*s[1][0])>A+d)&&(A=n[0]*c[1][1]+n[1]*c[0][1],d=o[0]*c[2][2]+o[2]*c[2][0],!(Math.abs(u[1]*s[0][1]-u[0]*s[1][1])>A+d)&&(A=n[0]*c[1][2]+n[1]*c[0][2],d=o[0]*c[2][1]+o[1]*c[2][0],!(Math.abs(u[1]*s[0][2]-u[0]*s[1][2])>A+d)))))))))}intersectsRay(e){return this.intersectRay(e,fe)!==null}insidePlane(e){e.normal.normalize();const a=this.halfSize.x*Math.abs(e.normal.dot(this.e1))+this.halfSize.y*Math.abs(e.normal.dot(this.e2))+this.halfSize.z*Math.abs(e.normal.dot(this.e3));return e.distanceToPoint(this.center)>-a}inFrustum(e){for(let a=0;a<6;a++){const t=e.planes[a];if(!this.insidePlane(t))return!1}return!0}distanceToPoint(e){fe.copy(e),fe.sub(this.center),fe.applyMatrix3(this.rotationMatrix);let a=Math.max(0,Math.max(-this.halfSize.x-fe.x,fe.x-this.halfSize.x)),t=Math.max(0,Math.max(-this.halfSize.y-fe.y,fe.y-this.halfSize.y)),i=Math.max(0,Math.max(-this.halfSize.z-fe.z,fe.z-this.halfSize.z));return Math.sqrt(a*a+t*t+i*i)}helper(){const e=this.halfSize,a=this.center,t=this.e1,i=this.e2,n=this.e3,o=[new f.Vector3().copy(a).add(t.clone().multiplyScalar(e.x)).add(i.clone().multiplyScalar(e.y)).add(n.clone().multiplyScalar(e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(-e.x)).add(i.clone().multiplyScalar(e.y)).add(n.clone().multiplyScalar(e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(-e.x)).add(i.clone().multiplyScalar(-e.y)).add(n.clone().multiplyScalar(e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(e.x)).add(i.clone().multiplyScalar(-e.y)).add(n.clone().multiplyScalar(e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(e.x)).add(i.clone().multiplyScalar(e.y)).add(n.clone().multiplyScalar(-e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(-e.x)).add(i.clone().multiplyScalar(e.y)).add(n.clone().multiplyScalar(-e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(-e.x)).add(i.clone().multiplyScalar(-e.y)).add(n.clone().multiplyScalar(-e.z)),new f.Vector3().copy(a).add(t.clone().multiplyScalar(e.x)).add(i.clone().multiplyScalar(-e.y)).add(n.clone().multiplyScalar(-e.z))],s=new f.BufferGeometry().setFromPoints(o);s.setIndex([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),s.computeBoundingSphere();const c=new f.LineBasicMaterial({color:16711680}),u=new f.LineSegments(s,c);return u.dispose=()=>{c.dispose(),s.dispose()},u}}/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("three");var ce=typeof document<"u"?document.currentScript:null;function CB(g){const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(g){for(const a in g)if(a!=="default"){const e=Object.getOwnPropertyDescriptor(g,a);Object.defineProperty(A,a,e.get?e:{enumerable:!0,get:()=>g[a]})}}return A.default=g,Object.freeze(A)}const z=CB(f),fa=new f.Matrix3,GA=new f.Vector3,Yt=new f.Vector3,Kt=new f.Box3,ag=new f.Matrix4,qt=new f.Matrix4,Tt=new f.Ray;class sa{constructor(A){this.isOBB=!0,this.center=new f.Vector3(A[0],A[1],A[2]),this.e1=new f.Vector3(A[3],A[4],A[5]),this.e2=new f.Vector3(A[6],A[7],A[8]),this.e3=new f.Vector3(A[9],A[10],A[11]),this.halfSize=new f.Vector3(this.e1.length(),this.e2.length(),this.e3.length()),this.e1.normalize(),this.e2.normalize(),this.e3.normalize(),this.rotationMatrix=new f.Matrix3,this.rotationMatrix.set(this.e1.x,this.e2.x,this.e3.x,this.e1.y,this.e2.y,this.e3.y,this.e1.z,this.e2.z,this.e3.z)}copy(A){this.center.copy(A.center),this.rotationMatrix.copy(A.rotationMatrix),this.halfSize.copy(A.halfSize),this.e1.copy(A.e1),this.e2.copy(A.e2),this.e3.copy(A.e3)}getSize(A){return A.copy(this.halfSize).multiplyScalar(2)}applyMatrix4(A){const a=A.elements;let e=GA.set(a[0],a[1],a[2]).length();const t=GA.set(a[4],a[5],a[6]).length(),i=GA.set(a[8],a[9],a[10]).length();A.determinant()<0&&(e=-e),fa.setFromMatrix4(A);const I=1/e,B=1/t,r=1/i;return fa.elements[0]*=I,fa.elements[1]*=I,fa.elements[2]*=I,fa.elements[3]*=B,fa.elements[4]*=B,fa.elements[5]*=B,fa.elements[6]*=r,fa.elements[7]*=r,fa.elements[8]*=r,this.rotationMatrix.premultiply(fa),this.halfSize.x*=e,this.halfSize.y*=t,this.halfSize.z*=i,this.center.applyMatrix4(A),this.rotationMatrix.extractBasis(this.e1,this.e2,this.e3),this}intersectRay(A,a){return this.getSize(Yt),Kt.setFromCenterAndSize(GA.set(0,0,0),Yt),ag.setFromMatrix3(this.rotationMatrix),ag.setPosition(this.center),qt.copy(ag).invert(),Tt.copy(A).applyMatrix4(qt),Tt.intersectBox(Kt,a)?a.applyMatrix4(ag):null}clampPoint(A,a){GA.copy(A).sub(this.center);const e=GA.dot(this.e1),t=GA.dot(this.e2),i=GA.dot(this.e3),I=Math.max(-this.halfSize.x,Math.min(this.halfSize.x,e)),B=Math.max(-this.halfSize.y,Math.min(this.halfSize.y,t)),r=Math.max(-this.halfSize.z,Math.min(this.halfSize.z,i));return a.copy(this.center).addScaledVector(this.e1,I).addScaledVector(this.e2,B).addScaledVector(this.e3,r)}intersectsSphere(A){return this.clampPoint(A.center,GA),GA.distanceToSquared(A.center)<=A.radius*A.radius}intersectsOBB(A,a=Number.EPSILON){const e=[this.e1,this.e2,this.e3],t=[A.e1,A.e2,A.e3],i=[this.halfSize.x,this.halfSize.y,this.halfSize.z],I=[A.halfSize.x,A.halfSize.y,A.halfSize.z],B=[[0,0,0],[0,0,0],[0,0,0]],r=[[0,0,0],[0,0,0],[0,0,0]];for(let Q=0;Q<3;++Q)for(let E=0;E<3;++E)B[Q][E]=e[Q].dot(t[E]),r[Q][E]=Math.abs(B[Q][E])+a;GA.subVectors(A.center,this.center);const o=[GA.dot(e[0]),GA.dot(e[1]),GA.dot(e[2])];let n,C;for(let Q=0;Q<3;++Q)if(n=i[Q],C=I[0]*r[Q][0]+I[1]*r[Q][1]+I[2]*r[Q][2],Math.abs(o[Q])>n+C)return!1;for(let Q=0;Q<3;++Q)if(n=i[0]*r[0][Q]+i[1]*r[1][Q]+i[2]*r[2][Q],C=I[Q],Math.abs(o[0]*B[0][Q]+o[1]*B[1][Q]+o[2]*B[2][Q])>n+C)return!1;return n=i[1]*r[2][0]+i[2]*r[1][0],C=I[1]*r[0][2]+I[2]*r[0][1],!(Math.abs(o[2]*B[1][0]-o[1]*B[2][0])>n+C)&&(n=i[1]*r[2][1]+i[2]*r[1][1],C=I[0]*r[0][2]+I[2]*r[0][0],!(Math.abs(o[2]*B[1][1]-o[1]*B[2][1])>n+C)&&(n=i[1]*r[2][2]+i[2]*r[1][2],C=I[0]*r[0][1]+I[1]*r[0][0],!(Math.abs(o[2]*B[1][2]-o[1]*B[2][2])>n+C)&&(n=i[0]*r[2][0]+i[2]*r[0][0],C=I[1]*r[1][2]+I[2]*r[1][1],!(Math.abs(o[0]*B[2][0]-o[2]*B[0][0])>n+C)&&(n=i[0]*r[2][1]+i[2]*r[0][1],C=I[0]*r[1][2]+I[2]*r[1][0],!(Math.abs(o[0]*B[2][1]-o[2]*B[0][1])>n+C)&&(n=i[0]*r[2][2]+i[2]*r[0][2],C=I[0]*r[1][1]+I[1]*r[1][0],!(Math.abs(o[0]*B[2][2]-o[2]*B[0][2])>n+C)&&(n=i[0]*r[1][0]+i[1]*r[0][0],C=I[1]*r[2][2]+I[2]*r[2][1],!(Math.abs(o[1]*B[0][0]-o[0]*B[1][0])>n+C)&&(n=i[0]*r[1][1]+i[1]*r[0][1],C=I[0]*r[2][2]+I[2]*r[2][0],!(Math.abs(o[1]*B[0][1]-o[0]*B[1][1])>n+C)&&(n=i[0]*r[1][2]+i[1]*r[0][2],C=I[0]*r[2][1]+I[1]*r[2][0],!(Math.abs(o[1]*B[0][2]-o[0]*B[1][2])>n+C)))))))))}intersectsRay(A){return this.intersectRay(A,GA)!==null}insidePlane(A){A.normal.normalize();const a=this.halfSize.x*Math.abs(A.normal.dot(this.e1))+this.halfSize.y*Math.abs(A.normal.dot(this.e2))+this.halfSize.z*Math.abs(A.normal.dot(this.e3));return A.distanceToPoint(this.center)>-a}inFrustum(A){for(let a=0;a<6;a++){const e=A.planes[a];if(!this.insidePlane(e))return!1}return!0}distanceToPoint(A){GA.copy(A),GA.sub(this.center),GA.applyMatrix3(this.rotationMatrix);let a=Math.max(0,Math.max(-this.halfSize.x-GA.x,GA.x-this.halfSize.x)),e=Math.max(0,Math.max(-this.halfSize.y-GA.y,GA.y-this.halfSize.y)),t=Math.max(0,Math.max(-this.halfSize.z-GA.z,GA.z-this.halfSize.z));return Math.sqrt(a*a+e*e+t*t)}helper(){const A=this.halfSize,a=this.center,e=this.e1,t=this.e2,i=this.e3,I=[new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(t.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(t.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(t.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(t.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(t.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(t.clone().multiplyScalar(A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(-A.x)).add(t.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(-A.z)),new f.Vector3().copy(a).add(e.clone().multiplyScalar(A.x)).add(t.clone().multiplyScalar(-A.y)).add(i.clone().multiplyScalar(-A.z))],B=new f.BufferGeometry().setFromPoints(I);B.setIndex([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),B.computeBoundingSphere();const r=new f.LineBasicMaterial({color:16711680}),o=new f.LineSegments(B,r);return o.dispose=()=>{r.dispose(),B.dispose()},o}}/**
2
2
  * @copyright 2021 Aaron Zhao <yujianzhao2013@gmail.com>
3
3
  * @license MIT
4
4
  * Linked hash map data structure
5
5
  * @class LinkedHashMap
6
- */class zi{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(e,a,t=!1){this.has(e)?this._data.set(e,a):(this._data.set(e,a),this._link.set(e,{previous:void 0,next:void 0}),this._head==null?(this._head=e,this._tail=e):t?(this._link.get(this._head).previous=e,this._link.get(e).next=this._head,this._head=e):(this._link.get(this._tail).next=e,this._link.get(e).previous=this._tail,this._tail=e))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(e){return this._data.get(e)}previousKey(e){const a=this._link.get(e);return a?.previous}previousValue(e){return this.get(this.previousKey(e))}previous(e){const a=this.previousKey(e);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}nextKey(e){const a=this._link.get(e);return a?.next}nextValue(e){return this.get(this.nextKey(e))}next(e){const a=this.nextKey(e);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}remove(e){const a=this._data.get(e);if(a!=null)if(this.size()===1)this.reset();else{if(e===this._head){const t=this._link.get(this._head);this._link.get(t.next).previous=null,this._head=t.next}else if(e===this._tail){const t=this._link.get(this._tail);this._link.get(t.previous).next=null,this._tail=t.previous}else{const t=this._link.get(e),i=this._link.get(t.previous),n=this._link.get(t.next);i.next=t.next,n.previous=t.previous}this._link.delete(e),this._data.delete(e)}return a}has(e){return this._data.has(e)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(e="orderByInsert"){if(e!=="orderByInsert"){const a=[];let t=this._head;for(;t!=null;)a.push({key:t,value:this.get(t)}),t=this.nextKey(t);return a}return Array.from(this.keys()).map(a=>({key:a,value:this.get(a)}))}}const Mo=new TextDecoder;class Pi{constructor(e,a,t,i){this.buffer=e,this.binOffset=a+t,this.binLength=i;let n=null;if(t!==0)try{const o=new Uint8Array(e,a,t);n=JSON.parse(Mo.decode(o))}catch{n={}}else n={};this.header=n}getKeys(){return Object.keys(this.header)}getData(e,a,t=null,i=null){const n=this.header;if(!(e in n))return null;const o=n[e];if(o instanceof Object){if(Array.isArray(o))return o;{const{buffer:s,binOffset:c,binLength:u}=this,A=o.byteOffset||0,d=o.type||i,b=o.componentType||t;if("type"in o&&i&&o.type!==i)throw new Error("FeatureTable: Specified type does not match expected type.");let h,l;switch(d){case"SCALAR":h=1;break;case"VEC2":h=2;break;case"VEC3":h=3;break;case"VEC4":h=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${e}".`)}const g=c+A,m=a*h;switch(b){case"BYTE":l=new Int8Array(s,g,m);break;case"UNSIGNED_BYTE":l=new Uint8Array(s,g,m);break;case"SHORT":l=new Int16Array(s,g,m);break;case"UNSIGNED_SHORT":l=new Uint16Array(s,g,m);break;case"INT":l=new Int32Array(s,g,m);break;case"UNSIGNED_INT":l=new Uint32Array(s,g,m);break;case"FLOAT":l=new Float32Array(s,g,m);break;case"DOUBLE":l=new Float64Array(s,g,m);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${e}".`)}if(g+m*l.BYTES_PER_ELEMENT>c+u)throw new Error("FeatureTable: Feature data read outside binary body length.");return l}}return o}}class Ro extends Pi{constructor(e,a,t,i,n){super(e,t,i,n),this.batchSize=a}getData(e,a=null,t=null){return super.getData(e,this.batchSize,a,t)}}function Ur(r){let e,a,t,i=-1,n=0;for(let u=0;u<r.length;++u){const A=r[u];if(e===void 0&&(e=A.array.constructor),e!==A.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(a===void 0&&(a=A.itemSize),a!==A.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(t===void 0&&(t=A.normalized),t!==A.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(i===-1&&(i=A.gpuType),i!==A.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;n+=A.count*a}const o=new e(n),s=new f.BufferAttribute(o,a,t);let c=0;for(let u=0;u<r.length;++u){const A=r[u];if(A.isInterleavedBufferAttribute){const d=c/a;for(let b=0,h=A.count;b<h;b++)for(let l=0;l<a;l++){const g=A.getComponent(b,l);s.setComponent(b+d,l,g)}}else o.set(A.array,c);c+=A.count*a}return i!==void 0&&(s.gpuType=i),s}function Lr(r,e){if(e===f.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),r;if(e===f.TriangleFanDrawMode||e===f.TriangleStripDrawMode){let a=r.getIndex();if(a===null){const o=[],s=r.getAttribute("position");if(s===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),r;for(let c=0;c<s.count;c++)o.push(c);r.setIndex(o),a=r.getIndex()}const t=a.count-2,i=[];if(e===f.TriangleFanDrawMode)for(let o=1;o<=t;o++)i.push(a.getX(0)),i.push(a.getX(o)),i.push(a.getX(o+1));else for(let o=0;o<t;o++)o%2==0?(i.push(a.getX(o)),i.push(a.getX(o+1)),i.push(a.getX(o+2))):(i.push(a.getX(o+2)),i.push(a.getX(o+1)),i.push(a.getX(o)));i.length/3!==t&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const n=r.clone();return n.setIndex(i),n.clearGroups(),n}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),r}class qi{constructor(e){this.gltfLoader=e,this.tempMatrix=new G.Matrix4,this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(e,a,t,i){const n=this,o=new DataView(e),s=String.fromCharCode(o.getUint8(0))+String.fromCharCode(o.getUint8(1))+String.fromCharCode(o.getUint8(2))+String.fromCharCode(o.getUint8(3));console.assert(s==="b3dm");const c=o.getUint32(8,!0);console.assert(c===e.byteLength);const u=o.getUint32(12,!0),A=o.getUint32(16,!0),d=o.getUint32(20,!0),b=o.getUint32(24,!0),h=new Pi(e,28,u,A),l=28+u+A;new Ro(e,h.getData("BATCH_LENGTH"),l,d,b);const g=l+d+b,m=new Uint8Array(e,g,c-g).slice().buffer;return new Promise(async(E,p)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(m,null,C=>{const I=h.getData("RTC_CENTER");I?(this.tempMatrix.makeTranslation(I[0],I[1],I[2]),C.scene.applyMatrix4(this.tempMatrix)):C.userData.gltfExtensions&&C.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(C.userData.gltfExtensions.CESIUM_RTC.center[0],C.userData.gltfExtensions.CESIUM_RTC.center[1],C.userData.gltfExtensions.CESIUM_RTC.center[2]),C.scene.applyMatrix4(this.tempMatrix)),t&&C.scene.applyMatrix4(n.zUpToYUpMatrix),C.scene.asset=C.asset,C.scene.traverse(x=>{x.isMesh&&(i&&x.applyMatrix4(n.zUpToYUpMatrix),a&&a(x))}),E(C.scene)},C=>{console.error(C)})})}checkLoaderInitialized=async()=>new Promise(e=>{const a=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(a),e())},10)});parseB3DMInstanced(e,a,t,i,n){return this.parseB3DM(e,a,i,n).then(o=>{let s,c=[],u=[];o.updateWorldMatrix(!1,!0),o.traverse(d=>{d.isMesh&&(d.geometry.applyMatrix4(d.matrixWorld),c.push(d.geometry),u.push(d.material))});let A=function(d){let b=new Set;return d.forEach(l=>{for(let g in l.attributes)b.add(g)}),d.forEach(l=>{b.forEach(g=>{if(!l.attributes[g]){const m=function(p){switch(p){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${p}`)}}(g),E=new Float32Array(m*l.getAttribute("position").count).fill(0);l.setAttribute(g,new G.BufferAttribute(E,m))}})}),function(l,g=!1){const m=l[0].index!==null,E=new Set(Object.keys(l[0].attributes)),p=new Set(Object.keys(l[0].morphAttributes)),C={},I={},x=l[0].morphTargetsRelative,y=new f.BufferGeometry;let w=0;for(let D=0;D<l.length;++D){const F=l[D];let M=0;if(m!==(F.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const k in F.attributes){if(!E.has(k))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+'. All geometries must have compatible attributes; make sure "'+k+'" attribute exists among all geometries, or in none of them.'),null;C[k]===void 0&&(C[k]=[]),C[k].push(F.attributes[k]),M++}if(M!==E.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". Make sure all geometries have the same number of attributes."),null;if(x!==F.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const k in F.morphAttributes){if(!p.has(k))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". .morphAttributes must be consistent throughout all geometries."),null;I[k]===void 0&&(I[k]=[]),I[k].push(F.morphAttributes[k])}if(g){let k;if(m)k=F.index.count;else{if(F.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+D+". The geometry must have either an index or a position attribute"),null;k=F.attributes.position.count}y.addGroup(w,k,D),w+=k}}if(m){let D=0;const F=[];for(let M=0;M<l.length;++M){const k=l[M].index;for(let _=0;_<k.count;++_)F.push(k.getX(_)+D);D+=l[M].attributes.position.count}y.setIndex(F)}for(const D in C){const F=Ur(C[D]);if(!F)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+D+" attribute."),null;y.setAttribute(D,F)}for(const D in I){const F=I[D][0].length;if(F===0)break;y.morphAttributes=y.morphAttributes||{},y.morphAttributes[D]=[];for(let M=0;M<F;++M){const k=[];for(let q=0;q<I[D].length;++q)k.push(I[D][q][M]);const _=Ur(k);if(!_)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+D+" morphAttribute."),null;y.morphAttributes[D].push(_)}}return y}(d,!0)}(c);return s=new G.InstancedMesh(A,u,t),s.baseMatrix=new G.Matrix4().identity(),s})}}const Me=[];for(let r=0;r<256;++r)Me.push((r+256).toString(16).slice(1));let Tt;const So=new Uint8Array(16),Gr={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ki(r,e,a){if(Gr.randomUUID&&!r)return Gr.randomUUID();const t=(r=r||{}).random??r.rng?.()??function(){if(!Tt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Tt=crypto.getRandomValues.bind(crypto)}return Tt(So)}();if(t.length<16)throw new Error("Random bytes length must be >= 16");return t[6]=15&t[6]|64,t[8]=63&t[8]|128,function(i,n=0){return(Me[i[n+0]]+Me[i[n+1]]+Me[i[n+2]]+Me[i[n+3]]+"-"+Me[i[n+4]]+Me[i[n+5]]+"-"+Me[i[n+6]]+Me[i[n+7]]+"-"+Me[i[n+8]]+Me[i[n+9]]+"-"+Me[i[n+10]]+Me[i[n+11]]+Me[i[n+12]]+Me[i[n+13]]+Me[i[n+14]]+Me[i[n+15]]).toLowerCase()}(t)}class To{constructor(e,a){this.renderer=a,this.gltfLoader=e}parseSplats(e,a,t,i){const n=this;return new Promise(async(o,s)=>{await n.checkLoaderInitialized(),n.gltfLoader.parse(e,null,c=>{c.scene;const u=c.scene.children[0],A=u.geometry.attributes.position,d=u.geometry.attributes.color,b=u.geometry.attributes.cov_0,h=u.geometry.attributes.cov_1,l=i.addSplatsTile(A,d,b,h);c.scene.traverse(g=>{g.dispose&&g.dispose()}),o(l)},c=>{console.error(c)})})}checkLoaderInitialized=async()=>{const e=this;return new Promise(a=>{const t=setInterval(()=>{e.gltfLoader.hasDracoLoader&&!e.gltfLoader.dracoLoader||e.gltfLoader.hasKTX2Loader&&!e.gltfLoader.ktx2Loader||(clearInterval(t),a())},10)})}}class Oi extends f.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(a){return new _o(a)}),this.register(function(a){return new zo(a)}),this.register(function(a){return new Xo(a)}),this.register(function(a){return new Yo(a)}),this.register(function(a){return new Zo(a)}),this.register(function(a){return new qo(a)}),this.register(function(a){return new Ko(a)}),this.register(function(a){return new Oo(a)}),this.register(function(a){return new Jo(a)}),this.register(function(a){return new Go(a)}),this.register(function(a){return new Vo(a)}),this.register(function(a){return new Po(a)}),this.register(function(a){return new Wo(a)}),this.register(function(a){return new Ho(a)}),this.register(function(a){return new Uo(a)}),this.register(function(a){return new $o(a)}),this.register(function(a){return new es(a)})}load(e,a,t,i){const n=this;let o;if(this.resourcePath!=="")o=this.resourcePath;else if(this.path!==""){const u=f.LoaderUtils.extractUrlBase(e);o=f.LoaderUtils.resolveURL(u,this.path)}else o=f.LoaderUtils.extractUrlBase(e);this.manager.itemStart(e);const s=function(u){i?i(u):console.error(u),n.manager.itemError(e),n.manager.itemEnd(e)},c=new f.FileLoader(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(e,function(u){try{n.parse(u,o,function(A){a(A),n.manager.itemEnd(e)},s)}catch(A){s(A)}},t,s)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,a,t,i){let n;const o={},s={},c=new TextDecoder;if(typeof e=="string")n=JSON.parse(e);else if(e instanceof ArrayBuffer)if(c.decode(new Uint8Array(e,0,4))===Ji){try{o[ae.KHR_BINARY_GLTF]=new rs(e)}catch(A){return void(i&&i(A))}n=JSON.parse(o[ae.KHR_BINARY_GLTF].content)}else n=JSON.parse(c.decode(e));else n=e;if(n.asset===void 0||n.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const u=new fs(n,{path:a||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let A=0;A<this.pluginCallbacks.length;A++){const d=this.pluginCallbacks[A](u);d.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),s[d.name]=d,o[d.name]=!0}if(n.extensionsUsed)for(let A=0;A<n.extensionsUsed.length;++A){const d=n.extensionsUsed[A],b=n.extensionsRequired||[];switch(d){case ae.KHR_MATERIALS_UNLIT:o[d]=new Lo;break;case ae.KHR_DRACO_MESH_COMPRESSION:o[d]=new is(n,this.dracoLoader);break;case ae.KHR_TEXTURE_TRANSFORM:o[d]=new ns;break;case ae.KHR_MESH_QUANTIZATION:o[d]=new os;break;default:b.indexOf(d)>=0&&s[d]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+d+'".')}}u.setExtensions(o),u.setPlugins(s),u.parse(t,i)}parseAsync(e,a){const t=this;return new Promise(function(i,n){t.parse(e,a,i,n)})}}function No(){let r={};return{get:function(e){return r[e]},add:function(e,a){r[e]=a},remove:function(e){delete r[e]},removeAll:function(){r={}}}}const ae={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Uo{constructor(e){this.parser=e,this.name=ae.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,a=this.parser.json.nodes||[];for(let t=0,i=a.length;t<i;t++){const n=a[t];n.extensions&&n.extensions[this.name]&&n.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(e){const a=this.parser,t="light:"+e;let i=a.cache.get(t);if(i)return i;const n=a.json,o=((n.extensions&&n.extensions[this.name]||{}).lights||[])[e];let s;const c=new f.Color(16777215);o.color!==void 0&&c.setRGB(o.color[0],o.color[1],o.color[2],f.LinearSRGBColorSpace);const u=o.range!==void 0?o.range:0;switch(o.type){case"directional":s=new f.DirectionalLight(c),s.target.position.set(0,0,-1),s.add(s.target);break;case"point":s=new f.PointLight(c),s.distance=u;break;case"spot":s=new f.SpotLight(c),s.distance=u,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,s.angle=o.spot.outerConeAngle,s.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,s.target.position.set(0,0,-1),s.add(s.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return s.position.set(0,0,0),la(s,o),o.intensity!==void 0&&(s.intensity=o.intensity),s.name=a.createUniqueName(o.name||"light_"+e),i=Promise.resolve(s),a.cache.add(t,i),i}getDependency(e,a){if(e==="light")return this._loadLight(a)}createNodeAttachment(e){const a=this,t=this.parser,i=t.json.nodes[e],n=(i.extensions&&i.extensions[this.name]||{}).light;return n===void 0?null:this._loadLight(n).then(function(o){return t._getNodeRef(a.cache,n,o)})}}class Lo{constructor(){this.name=ae.KHR_MATERIALS_UNLIT}getMaterialType(){return f.MeshBasicMaterial}extendParams(e,a,t){const i=[];e.color=new f.Color(1,1,1),e.opacity=1;const n=a.pbrMetallicRoughness;if(n){if(Array.isArray(n.baseColorFactor)){const o=n.baseColorFactor;e.color.setRGB(o[0],o[1],o[2],f.LinearSRGBColorSpace),e.opacity=o[3]}n.baseColorTexture!==void 0&&i.push(t.assignTexture(e,"map",n.baseColorTexture,f.SRGBColorSpace))}return Promise.all(i)}}class Go{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name].emissiveStrength;return i!==void 0&&(a.emissiveIntensity=i),Promise.resolve()}}class _o{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];if(o.clearcoatFactor!==void 0&&(a.clearcoat=o.clearcoatFactor),o.clearcoatTexture!==void 0&&n.push(t.assignTexture(a,"clearcoatMap",o.clearcoatTexture)),o.clearcoatRoughnessFactor!==void 0&&(a.clearcoatRoughness=o.clearcoatRoughnessFactor),o.clearcoatRoughnessTexture!==void 0&&n.push(t.assignTexture(a,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),o.clearcoatNormalTexture!==void 0&&(n.push(t.assignTexture(a,"clearcoatNormalMap",o.clearcoatNormalTexture)),o.clearcoatNormalTexture.scale!==void 0)){const s=o.clearcoatNormalTexture.scale;a.clearcoatNormalScale=new f.Vector2(s,s)}return Promise.all(n)}}class zo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_DISPERSION}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name];return a.dispersion=i.dispersion!==void 0?i.dispersion:0,Promise.resolve()}}class Po{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.iridescenceFactor!==void 0&&(a.iridescence=o.iridescenceFactor),o.iridescenceTexture!==void 0&&n.push(t.assignTexture(a,"iridescenceMap",o.iridescenceTexture)),o.iridescenceIor!==void 0&&(a.iridescenceIOR=o.iridescenceIor),a.iridescenceThicknessRange===void 0&&(a.iridescenceThicknessRange=[100,400]),o.iridescenceThicknessMinimum!==void 0&&(a.iridescenceThicknessRange[0]=o.iridescenceThicknessMinimum),o.iridescenceThicknessMaximum!==void 0&&(a.iridescenceThicknessRange[1]=o.iridescenceThicknessMaximum),o.iridescenceThicknessTexture!==void 0&&n.push(t.assignTexture(a,"iridescenceThicknessMap",o.iridescenceThicknessTexture)),Promise.all(n)}}class qo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_SHEEN}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[];a.sheenColor=new f.Color(0,0,0),a.sheenRoughness=0,a.sheen=1;const o=i.extensions[this.name];if(o.sheenColorFactor!==void 0){const s=o.sheenColorFactor;a.sheenColor.setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace)}return o.sheenRoughnessFactor!==void 0&&(a.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&n.push(t.assignTexture(a,"sheenColorMap",o.sheenColorTexture,f.SRGBColorSpace)),o.sheenRoughnessTexture!==void 0&&n.push(t.assignTexture(a,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(n)}}class Ko{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.transmissionFactor!==void 0&&(a.transmission=o.transmissionFactor),o.transmissionTexture!==void 0&&n.push(t.assignTexture(a,"transmissionMap",o.transmissionTexture)),Promise.all(n)}}class Oo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_VOLUME}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];a.thickness=o.thicknessFactor!==void 0?o.thicknessFactor:0,o.thicknessTexture!==void 0&&n.push(t.assignTexture(a,"thicknessMap",o.thicknessTexture)),a.attenuationDistance=o.attenuationDistance||1/0;const s=o.attenuationColor||[1,1,1];return a.attenuationColor=new f.Color().setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace),Promise.all(n)}}class Jo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_IOR}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser.json.materials[e];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=t.extensions[this.name];return a.ior=i.ior!==void 0?i.ior:1.5,Promise.resolve()}}class Vo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_SPECULAR}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];a.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&n.push(t.assignTexture(a,"specularIntensityMap",o.specularTexture));const s=o.specularColorFactor||[1,1,1];return a.specularColor=new f.Color().setRGB(s[0],s[1],s[2],f.LinearSRGBColorSpace),o.specularColorTexture!==void 0&&n.push(t.assignTexture(a,"specularColorMap",o.specularColorTexture,f.SRGBColorSpace)),Promise.all(n)}}class Ho{constructor(e){this.parser=e,this.name=ae.EXT_MATERIALS_BUMP}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return a.bumpScale=o.bumpFactor!==void 0?o.bumpFactor:1,o.bumpTexture!==void 0&&n.push(t.assignTexture(a,"bumpMap",o.bumpTexture)),Promise.all(n)}}class Wo{constructor(e){this.parser=e,this.name=ae.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){const a=this.parser.json.materials[e];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(e,a){const t=this.parser,i=t.json.materials[e];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const n=[],o=i.extensions[this.name];return o.anisotropyStrength!==void 0&&(a.anisotropy=o.anisotropyStrength),o.anisotropyRotation!==void 0&&(a.anisotropyRotation=o.anisotropyRotation),o.anisotropyTexture!==void 0&&n.push(t.assignTexture(a,"anisotropyMap",o.anisotropyTexture)),Promise.all(n)}}class Xo{constructor(e){this.parser=e,this.name=ae.KHR_TEXTURE_BASISU}loadTexture(e){const a=this.parser,t=a.json,i=t.textures[e];if(!i.extensions||!i.extensions[this.name])return null;const n=i.extensions[this.name],o=a.options.ktx2Loader;if(!o){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return a.loadTextureImage(e,n.source,o)}}class Yo{constructor(e){this.parser=e,this.name=ae.EXT_TEXTURE_WEBP}loadTexture(e){const a=this.name,t=this.parser,i=t.json,n=i.textures[e];if(!n.extensions||!n.extensions[a])return null;const o=n.extensions[a],s=i.images[o.source];let c=t.textureLoader;if(s.uri){const u=t.options.manager.getHandler(s.uri);u!==null&&(c=u)}return t.loadTextureImage(e,o.source,c)}}class Zo{constructor(e){this.parser=e,this.name=ae.EXT_TEXTURE_AVIF}loadTexture(e){const a=this.name,t=this.parser,i=t.json,n=i.textures[e];if(!n.extensions||!n.extensions[a])return null;const o=n.extensions[a],s=i.images[o.source];let c=t.textureLoader;if(s.uri){const u=t.options.manager.getHandler(s.uri);u!==null&&(c=u)}return t.loadTextureImage(e,o.source,c)}}class $o{constructor(e){this.name=ae.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const a=this.parser.json,t=a.bufferViews[e];if(t.extensions&&t.extensions[this.name]){const i=t.extensions[this.name],n=this.parser.getDependency("buffer",i.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then(function(s){const c=i.byteOffset||0,u=i.byteLength||0,A=i.count,d=i.byteStride,b=new Uint8Array(s,c,u);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(A,d,b,i.mode,i.filter).then(function(h){return h.buffer}):o.ready.then(function(){const h=new ArrayBuffer(A*d);return o.decodeGltfBuffer(new Uint8Array(h),A,d,b,i.mode,i.filter),h})})}return null}}class es{constructor(e){this.name=ae.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const a=this.parser.json,t=a.nodes[e];if(!t.extensions||!t.extensions[this.name]||t.mesh===void 0)return null;const i=a.meshes[t.mesh];for(const c of i.primitives)if(c.mode!==We.TRIANGLES&&c.mode!==We.TRIANGLE_STRIP&&c.mode!==We.TRIANGLE_FAN&&c.mode!==void 0)return null;const n=t.extensions[this.name].attributes,o=[],s={};for(const c in n)o.push(this.parser.getDependency("accessor",n[c]).then(u=>(s[c]=u,s[c])));return o.length<1?null:(o.push(this.parser.createNodeMesh(e)),Promise.all(o).then(c=>{const u=c.pop(),A=u.isGroup?u.children:[u],d=c[0].count,b=[];for(const h of A){const l=new f.Matrix4,g=new f.Vector3,m=new f.Quaternion,E=new f.Vector3(1,1,1),p=new f.InstancedMesh(h.geometry,h.material,d);for(let C=0;C<d;C++)s.TRANSLATION&&g.fromBufferAttribute(s.TRANSLATION,C),s.ROTATION&&m.fromBufferAttribute(s.ROTATION,C),s.SCALE&&E.fromBufferAttribute(s.SCALE,C),p.setMatrixAt(C,l.compose(g,m,E));for(const C in s)if(C==="_COLOR_0"){const I=s[C];p.instanceColor=new f.InstancedBufferAttribute(I.array,I.itemSize,I.normalized)}else C!=="TRANSLATION"&&C!=="ROTATION"&&C!=="SCALE"&&h.geometry.setAttribute(C,s[C]);f.Object3D.prototype.copy.call(p,h),this.parser.assignFinalMaterial(p),b.push(p)}return u.isGroup?(u.clear(),u.add(...b),u):b[0]}))}}const Ji="glTF",as=1313821514,ts=5130562;class rs{constructor(e){this.name=ae.KHR_BINARY_GLTF,this.content=null,this.body=null;const a=new DataView(e,0,12),t=new TextDecoder;if(this.header={magic:t.decode(new Uint8Array(e.slice(0,4))),version:a.getUint32(4,!0),length:a.getUint32(8,!0)},this.header.magic!==Ji)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const i=this.header.length-12,n=new DataView(e,12);let o=0;for(;o<i;){const s=n.getUint32(o,!0);o+=4;const c=n.getUint32(o,!0);if(o+=4,c===as){const u=new Uint8Array(e,12+o,s);this.content=t.decode(u)}else if(c===ts){const u=12+o;this.body=e.slice(u,u+s)}o+=s}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class is{constructor(e,a){if(!a)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=ae.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=a,this.dracoLoader.preload()}decodePrimitive(e,a){const t=this.json,i=this.dracoLoader,n=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,s={},c={},u={};for(const A in o){const d=or[A]||A.toLowerCase();s[d]=o[A]}for(const A in e.attributes){const d=or[A]||A.toLowerCase();if(o[A]!==void 0){const b=t.accessors[e.attributes[A]],h=Pa[b.componentType];u[d]=h.name,c[d]=b.normalized===!0}}return a.getDependency("bufferView",n).then(function(A){return new Promise(function(d,b){i.decodeDracoFile(A,function(h){for(const l in h.attributes){const g=h.attributes[l],m=c[l];m!==void 0&&(g.normalized=m)}d(h)},s,u,f.LinearSRGBColorSpace,b)})})}}class ns{constructor(){this.name=ae.KHR_TEXTURE_TRANSFORM}extendTexture(e,a){return(a.texCoord!==void 0&&a.texCoord!==e.channel||a.offset!==void 0||a.rotation!==void 0||a.scale!==void 0)&&(e=e.clone(),a.texCoord!==void 0&&(e.channel=a.texCoord),a.offset!==void 0&&e.offset.fromArray(a.offset),a.rotation!==void 0&&(e.rotation=a.rotation),a.scale!==void 0&&e.repeat.fromArray(a.scale),e.needsUpdate=!0),e}}class os{constructor(){this.name=ae.KHR_MESH_QUANTIZATION}}class Vi extends f.Interpolant{constructor(e,a,t,i){super(e,a,t,i)}copySampleValue_(e){const a=this.resultBuffer,t=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let o=0;o!==i;o++)a[o]=t[n+o];return a}interpolate_(e,a,t,i){const n=this.resultBuffer,o=this.sampleValues,s=this.valueSize,c=2*s,u=3*s,A=i-a,d=(t-a)/A,b=d*d,h=b*d,l=e*u,g=l-u,m=-2*h+3*b,E=h-b,p=1-m,C=E-b+d;for(let I=0;I!==s;I++){const x=o[g+I+s],y=o[g+I+c]*A,w=o[l+I+s],D=o[l+I]*A;n[I]=p*x+C*y+m*w+E*D}return n}}const ss=new f.Quaternion;class As extends Vi{interpolate_(e,a,t,i){const n=super.interpolate_(e,a,t,i);return ss.fromArray(n).normalize().toArray(n),n}}const We={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Pa={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},_r={9728:f.NearestFilter,9729:f.LinearFilter,9984:f.NearestMipmapNearestFilter,9985:f.LinearMipmapNearestFilter,9986:f.NearestMipmapLinearFilter,9987:f.LinearMipmapLinearFilter},zr={33071:f.ClampToEdgeWrapping,33648:f.MirroredRepeatWrapping,10497:f.RepeatWrapping},Nt={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},or={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},ga={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},cs={CUBICSPLINE:void 0,LINEAR:f.InterpolateLinear,STEP:f.InterpolateDiscrete},us="OPAQUE",ds="MASK",hs="BLEND";function wa(r,e,a){for(const t in a.extensions)r[t]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[t]=a.extensions[t])}function la(r,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(r.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function ls(r,e){if(r.updateMorphTargets(),e.weights!==void 0)for(let a=0,t=e.weights.length;a<t;a++)r.morphTargetInfluences[a]=e.weights[a];if(e.extras&&Array.isArray(e.extras.targetNames)){const a=e.extras.targetNames;if(r.morphTargetInfluences.length===a.length){r.morphTargetDictionary={};for(let t=0,i=a.length;t<i;t++)r.morphTargetDictionary[a[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function bs(r){let e;const a=r.extensions&&r.extensions[ae.KHR_DRACO_MESH_COMPRESSION];if(e=a?"draco:"+a.bufferView+":"+a.indices+":"+Ut(a.attributes):r.indices+":"+Ut(r.attributes)+":"+r.mode,r.targets!==void 0)for(let t=0,i=r.targets.length;t<i;t++)e+=":"+Ut(r.targets[t]);return e}function Ut(r){let e="";const a=Object.keys(r).sort();for(let t=0,i=a.length;t<i;t++)e+=a[t]+":"+r[a[t]]+";";return e}function sr(r){switch(r){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const gs=new f.Matrix4;class fs{constructor(e={},a={}){this.json=e,this.extensions={},this.plugins={},this.options=a,this.cache=new No,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let t=!1,i=-1,n=!1,o=-1;if(typeof navigator<"u"){const s=navigator.userAgent;t=/^((?!chrome|android).)*safari/i.test(s)===!0;const c=s.match(/Version\/(\d+)/);i=t&&c?parseInt(c[1],10):-1,n=s.indexOf("Firefox")>-1,o=n?s.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||t&&i<17||n&&o<98?this.textureLoader=new f.TextureLoader(this.options.manager):this.textureLoader=new f.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new f.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,a){const t=this,i=this.json,n=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([t.getDependencies("scene"),t.getDependencies("animation"),t.getDependencies("camera")])}).then(function(o){const s={scene:o[0][i.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:i.asset,parser:t,userData:{}};return wa(n,s,i),la(s,i),Promise.all(t._invokeAll(function(c){return c.afterRoot&&c.afterRoot(s)})).then(function(){for(const c of s.scenes)c.updateMatrixWorld();e(s)})}).catch(a)}_markDefs(){const e=this.json.nodes||[],a=this.json.skins||[],t=this.json.meshes||[];for(let i=0,n=a.length;i<n;i++){const o=a[i].joints;for(let s=0,c=o.length;s<c;s++)e[o[s]].isBone=!0}for(let i=0,n=e.length;i<n;i++){const o=e[i];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(t[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,a){a!==void 0&&(e.refs[a]===void 0&&(e.refs[a]=e.uses[a]=0),e.refs[a]++)}_getNodeRef(e,a,t){if(e.refs[a]<=1)return t;const i=t.clone(),n=(o,s)=>{const c=this.associations.get(o);c!=null&&this.associations.set(s,c);for(const[u,A]of o.children.entries())n(A,s.children[u])};return n(t,i),i.name+="_instance_"+e.uses[a]++,i}_invokeOne(e){const a=Object.values(this.plugins);a.push(this);for(let t=0;t<a.length;t++){const i=e(a[t]);if(i)return i}return null}_invokeAll(e){const a=Object.values(this.plugins);a.unshift(this);const t=[];for(let i=0;i<a.length;i++){const n=e(a[i]);n&&t.push(n)}return t}getDependency(e,a){const t=e+":"+a;let i=this.cache.get(t);if(!i){switch(e){case"scene":i=this.loadScene(a);break;case"node":i=this._invokeOne(function(n){return n.loadNode&&n.loadNode(a)});break;case"mesh":i=this._invokeOne(function(n){return n.loadMesh&&n.loadMesh(a)});break;case"accessor":i=this.loadAccessor(a);break;case"bufferView":i=this._invokeOne(function(n){return n.loadBufferView&&n.loadBufferView(a)});break;case"buffer":i=this.loadBuffer(a);break;case"material":i=this._invokeOne(function(n){return n.loadMaterial&&n.loadMaterial(a)});break;case"texture":i=this._invokeOne(function(n){return n.loadTexture&&n.loadTexture(a)});break;case"skin":i=this.loadSkin(a);break;case"animation":i=this._invokeOne(function(n){return n.loadAnimation&&n.loadAnimation(a)});break;case"camera":i=this.loadCamera(a);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,a)}),!i)throw new Error("Unknown type: "+e)}this.cache.add(t,i)}return i}getDependencies(e){let a=this.cache.get(e);if(!a){const t=this,i=this.json[e+(e==="mesh"?"es":"s")]||[];a=Promise.all(i.map(function(n,o){return t.getDependency(e,o)})),this.cache.add(e,a)}return a}loadBuffer(e){const a=this.json.buffers[e],t=this.fileLoader;if(a.type&&a.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+a.type+" buffer type is not supported.");if(a.uri===void 0&&e===0)return Promise.resolve(this.extensions[ae.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(n,o){t.load(f.LoaderUtils.resolveURL(a.uri,i.path),n,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+a.uri+'".'))})})}loadBufferView(e){const a=this.json.bufferViews[e];return this.getDependency("buffer",a.buffer).then(function(t){const i=a.byteLength||0,n=a.byteOffset||0;return t.slice(n,n+i)})}loadAccessor(e){const a=this,t=this.json,i=this.json.accessors[e];if(i.bufferView===void 0&&i.sparse===void 0){const o=Nt[i.type],s=Pa[i.componentType],c=i.normalized===!0,u=new s(i.count*o);return Promise.resolve(new f.BufferAttribute(u,o,c))}const n=[];return i.bufferView!==void 0?n.push(this.getDependency("bufferView",i.bufferView)):n.push(null),i.sparse!==void 0&&(n.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),n.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(n).then(function(o){const s=o[0],c=Nt[i.type],u=Pa[i.componentType],A=u.BYTES_PER_ELEMENT,d=A*c,b=i.byteOffset||0,h=i.bufferView!==void 0?t.bufferViews[i.bufferView].byteStride:void 0,l=i.normalized===!0;let g,m;if(h&&h!==d){const E=Math.floor(b/h),p="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+E+":"+i.count;let C=a.cache.get(p);C||(g=new u(s,E*h,i.count*h/A),C=new f.InterleavedBuffer(g,h/A),a.cache.add(p,C)),m=new f.InterleavedBufferAttribute(C,c,b%h/A,l)}else g=s===null?new u(i.count*c):new u(s,b,i.count*c),m=new f.BufferAttribute(g,c,l);if(i.sparse!==void 0){const E=Nt.SCALAR,p=Pa[i.sparse.indices.componentType],C=i.sparse.indices.byteOffset||0,I=i.sparse.values.byteOffset||0,x=new p(o[1],C,i.sparse.count*E),y=new u(o[2],I,i.sparse.count*c);s!==null&&(m=new f.BufferAttribute(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let w=0,D=x.length;w<D;w++){const F=x[w];if(m.setX(F,y[w*c]),c>=2&&m.setY(F,y[w*c+1]),c>=3&&m.setZ(F,y[w*c+2]),c>=4&&m.setW(F,y[w*c+3]),c>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=l}return m})}loadTexture(e){const a=this.json,t=this.options,i=a.textures[e].source,n=a.images[i];let o=this.textureLoader;if(n.uri){const s=t.manager.getHandler(n.uri);s!==null&&(o=s)}return this.loadTextureImage(e,i,o)}loadTextureImage(e,a,t){const i=this,n=this.json,o=n.textures[e],s=n.images[a],c=(s.uri||s.bufferView)+":"+o.sampler;if(this.textureCache[c])return this.textureCache[c];const u=this.loadImageSource(a,t).then(function(A){A.flipY=!1,A.name=o.name||s.name||"",A.name===""&&typeof s.uri=="string"&&s.uri.startsWith("data:image/")===!1&&(A.name=s.uri);const d=(n.samplers||{})[o.sampler]||{};return A.magFilter=_r[d.magFilter]||f.LinearFilter,A.minFilter=_r[d.minFilter]||f.LinearMipmapLinearFilter,A.wrapS=zr[d.wrapS]||f.RepeatWrapping,A.wrapT=zr[d.wrapT]||f.RepeatWrapping,A.generateMipmaps=!A.isCompressedTexture&&A.minFilter!==f.NearestFilter&&A.minFilter!==f.LinearFilter,i.associations.set(A,{textures:e}),A}).catch(function(){return null});return this.textureCache[c]=u,u}loadImageSource(e,a){const t=this,i=this.json,n=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(d=>d.clone());const o=i.images[e],s=self.URL||self.webkitURL;let c=o.uri||"",u=!1;if(o.bufferView!==void 0)c=t.getDependency("bufferView",o.bufferView).then(function(d){u=!0;const b=new Blob([d],{type:o.mimeType});return c=s.createObjectURL(b),c});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const A=Promise.resolve(c).then(function(d){return new Promise(function(b,h){let l=b;a.isImageBitmapLoader===!0&&(l=function(g){const m=new f.Texture(g);m.needsUpdate=!0,b(m)}),a.load(f.LoaderUtils.resolveURL(d,n.path),l,void 0,h)})}).then(function(d){var b;return u===!0&&s.revokeObjectURL(c),la(d,o),d.userData.mimeType=o.mimeType||((b=o.uri).search(/\.jpe?g($|\?)/i)>0||b.search(/^data\:image\/jpeg/)===0?"image/jpeg":b.search(/\.webp($|\?)/i)>0||b.search(/^data\:image\/webp/)===0?"image/webp":b.search(/\.ktx2($|\?)/i)>0||b.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),d}).catch(function(d){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),d});return this.sourceCache[e]=A,A}assignTexture(e,a,t,i){const n=this;return this.getDependency("texture",t.index).then(function(o){if(!o)return null;if(t.texCoord!==void 0&&t.texCoord>0&&((o=o.clone()).channel=t.texCoord),n.extensions[ae.KHR_TEXTURE_TRANSFORM]){const s=t.extensions!==void 0?t.extensions[ae.KHR_TEXTURE_TRANSFORM]:void 0;if(s){const c=n.associations.get(o);o=n.extensions[ae.KHR_TEXTURE_TRANSFORM].extendTexture(o,s),n.associations.set(o,c)}}return i!==void 0&&(o.colorSpace=i),e[a]=o,o})}assignFinalMaterial(e){const a=e.geometry;let t=e.material;const i=a.attributes.tangent===void 0,n=a.attributes.color!==void 0,o=a.attributes.normal===void 0;if(e.isPoints){const s="PointsMaterial:"+t.uuid;let c=this.cache.get(s);c||(c=new f.PointsMaterial,f.Material.prototype.copy.call(c,t),c.color.copy(t.color),c.map=t.map,c.sizeAttenuation=!1,this.cache.add(s,c)),t=c}else if(e.isLine){const s="LineBasicMaterial:"+t.uuid;let c=this.cache.get(s);c||(c=new f.LineBasicMaterial,f.Material.prototype.copy.call(c,t),c.color.copy(t.color),c.map=t.map,this.cache.add(s,c)),t=c}if(i||n||o){let s="ClonedMaterial:"+t.uuid+":";i&&(s+="derivative-tangents:"),n&&(s+="vertex-colors:"),o&&(s+="flat-shading:");let c=this.cache.get(s);c||(c=t.clone(),n&&(c.vertexColors=!0),o&&(c.flatShading=!0),i&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(s,c),this.associations.set(c,this.associations.get(t))),t=c}e.material=t}getMaterialType(){return f.MeshStandardMaterial}loadMaterial(e){const a=this,t=this.json,i=this.extensions,n=t.materials[e];let o;const s={},c=[];if((n.extensions||{})[ae.KHR_MATERIALS_UNLIT]){const A=i[ae.KHR_MATERIALS_UNLIT];o=A.getMaterialType(),c.push(A.extendParams(s,n,a))}else{const A=n.pbrMetallicRoughness||{};if(s.color=new f.Color(1,1,1),s.opacity=1,Array.isArray(A.baseColorFactor)){const d=A.baseColorFactor;s.color.setRGB(d[0],d[1],d[2],f.LinearSRGBColorSpace),s.opacity=d[3]}A.baseColorTexture!==void 0&&c.push(a.assignTexture(s,"map",A.baseColorTexture,f.SRGBColorSpace)),s.metalness=A.metallicFactor!==void 0?A.metallicFactor:1,s.roughness=A.roughnessFactor!==void 0?A.roughnessFactor:1,A.metallicRoughnessTexture!==void 0&&(c.push(a.assignTexture(s,"metalnessMap",A.metallicRoughnessTexture)),c.push(a.assignTexture(s,"roughnessMap",A.metallicRoughnessTexture))),o=this._invokeOne(function(d){return d.getMaterialType&&d.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(d){return d.extendMaterialParams&&d.extendMaterialParams(e,s)})))}n.doubleSided===!0&&(s.side=f.DoubleSide);const u=n.alphaMode||us;if(u===hs?(s.transparent=!0,s.depthWrite=!1):(s.transparent=!1,u===ds&&(s.alphaTest=n.alphaCutoff!==void 0?n.alphaCutoff:.5)),n.normalTexture!==void 0&&o!==f.MeshBasicMaterial&&(c.push(a.assignTexture(s,"normalMap",n.normalTexture)),s.normalScale=new f.Vector2(1,1),n.normalTexture.scale!==void 0)){const A=n.normalTexture.scale;s.normalScale.set(A,A)}if(n.occlusionTexture!==void 0&&o!==f.MeshBasicMaterial&&(c.push(a.assignTexture(s,"aoMap",n.occlusionTexture)),n.occlusionTexture.strength!==void 0&&(s.aoMapIntensity=n.occlusionTexture.strength)),n.emissiveFactor!==void 0&&o!==f.MeshBasicMaterial){const A=n.emissiveFactor;s.emissive=new f.Color().setRGB(A[0],A[1],A[2],f.LinearSRGBColorSpace)}return n.emissiveTexture!==void 0&&o!==f.MeshBasicMaterial&&c.push(a.assignTexture(s,"emissiveMap",n.emissiveTexture,f.SRGBColorSpace)),Promise.all(c).then(function(){const A=new o(s);return n.name&&(A.name=n.name),la(A,n),a.associations.set(A,{materials:e}),n.extensions&&wa(i,A,n),A})}createUniqueName(e){const a=f.PropertyBinding.sanitizeNodeName(e||"");return a in this.nodeNamesUsed?a+"_"+ ++this.nodeNamesUsed[a]:(this.nodeNamesUsed[a]=0,a)}loadGeometries(e){const a=this,t=this.extensions,i=this.primitiveCache;function n(s){return t[ae.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(s,a).then(function(c){return Pr(c,s,a)})}const o=[];for(let s=0,c=e.length;s<c;s++){const u=e[s],A=bs(u),d=i[A];if(d)o.push(d.promise);else{let b;b=u.extensions&&u.extensions[ae.KHR_DRACO_MESH_COMPRESSION]?n(u):Pr(new f.BufferGeometry,u,a),i[A]={primitive:u,promise:b},o.push(b)}}return Promise.all(o)}loadMesh(e){const a=this,t=this.json,i=this.extensions,n=t.meshes[e],o=n.primitives,s=[];for(let u=0,A=o.length;u<A;u++){const d=o[u].material===void 0?((c=this.cache).DefaultMaterial===void 0&&(c.DefaultMaterial=new f.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:f.FrontSide})),c.DefaultMaterial):this.getDependency("material",o[u].material);s.push(d)}var c;return s.push(a.loadGeometries(o)),Promise.all(s).then(function(u){const A=u.slice(0,u.length-1),d=u[u.length-1],b=[];for(let l=0,g=d.length;l<g;l++){const m=d[l],E=o[l];let p;const C=A[l];if(E.mode===We.TRIANGLES||E.mode===We.TRIANGLE_STRIP||E.mode===We.TRIANGLE_FAN||E.mode===void 0)p=n.isSkinnedMesh===!0?new f.SkinnedMesh(m,C):new f.Mesh(m,C),p.isSkinnedMesh===!0&&p.normalizeSkinWeights(),E.mode===We.TRIANGLE_STRIP?p.geometry=Lr(p.geometry,f.TriangleStripDrawMode):E.mode===We.TRIANGLE_FAN&&(p.geometry=Lr(p.geometry,f.TriangleFanDrawMode));else if(E.mode===We.LINES)p=new f.LineSegments(m,C);else if(E.mode===We.LINE_STRIP)p=new f.Line(m,C);else if(E.mode===We.LINE_LOOP)p=new f.LineLoop(m,C);else{if(E.mode!==We.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+E.mode);p=new f.Points(m,C)}Object.keys(p.geometry.morphAttributes).length>0&&ls(p,n),p.name=a.createUniqueName(n.name||"mesh_"+e),la(p,n),E.extensions&&wa(i,p,E),a.assignFinalMaterial(p),b.push(p)}for(let l=0,g=b.length;l<g;l++)a.associations.set(b[l],{meshes:e,primitives:l});if(b.length===1)return n.extensions&&wa(i,b[0],n),b[0];const h=new f.Group;n.extensions&&wa(i,h,n),a.associations.set(h,{meshes:e});for(let l=0,g=b.length;l<g;l++)h.add(b[l]);return h})}loadCamera(e){let a;const t=this.json.cameras[e],i=t[t.type];if(i)return t.type==="perspective"?a=new f.PerspectiveCamera(f.MathUtils.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):t.type==="orthographic"&&(a=new f.OrthographicCamera(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),t.name&&(a.name=this.createUniqueName(t.name)),la(a,t),Promise.resolve(a);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(e){const a=this.json.skins[e],t=[];for(let i=0,n=a.joints.length;i<n;i++)t.push(this._loadNodeShallow(a.joints[i]));return a.inverseBindMatrices!==void 0?t.push(this.getDependency("accessor",a.inverseBindMatrices)):t.push(null),Promise.all(t).then(function(i){const n=i.pop(),o=i,s=[],c=[];for(let u=0,A=o.length;u<A;u++){const d=o[u];if(d){s.push(d);const b=new f.Matrix4;n!==null&&b.fromArray(n.array,16*u),c.push(b)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',a.joints[u])}return new f.Skeleton(s,c)})}loadAnimation(e){const a=this.json,t=this,i=a.animations[e],n=i.name?i.name:"animation_"+e,o=[],s=[],c=[],u=[],A=[];for(let d=0,b=i.channels.length;d<b;d++){const h=i.channels[d],l=i.samplers[h.sampler],g=h.target,m=g.node,E=i.parameters!==void 0?i.parameters[l.input]:l.input,p=i.parameters!==void 0?i.parameters[l.output]:l.output;g.node!==void 0&&(o.push(this.getDependency("node",m)),s.push(this.getDependency("accessor",E)),c.push(this.getDependency("accessor",p)),u.push(l),A.push(g))}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(c),Promise.all(u),Promise.all(A)]).then(function(d){const b=d[0],h=d[1],l=d[2],g=d[3],m=d[4],E=[];for(let p=0,C=b.length;p<C;p++){const I=b[p],x=h[p],y=l[p],w=g[p],D=m[p];if(I===void 0)continue;I.updateMatrix&&I.updateMatrix();const F=t._createAnimationTracks(I,x,y,w,D);if(F)for(let M=0;M<F.length;M++)E.push(F[M])}return new f.AnimationClip(n,void 0,E)})}createNodeMesh(e){const a=this.json,t=this,i=a.nodes[e];return i.mesh===void 0?null:t.getDependency("mesh",i.mesh).then(function(n){const o=t._getNodeRef(t.meshCache,i.mesh,n);return i.weights!==void 0&&o.traverse(function(s){if(s.isMesh)for(let c=0,u=i.weights.length;c<u;c++)s.morphTargetInfluences[c]=i.weights[c]}),o})}loadNode(e){const a=this,t=this.json.nodes[e],i=a._loadNodeShallow(e),n=[],o=t.children||[];for(let c=0,u=o.length;c<u;c++)n.push(a.getDependency("node",o[c]));const s=t.skin===void 0?Promise.resolve(null):a.getDependency("skin",t.skin);return Promise.all([i,Promise.all(n),s]).then(function(c){const u=c[0],A=c[1],d=c[2];d!==null&&u.traverse(function(b){b.isSkinnedMesh&&b.bind(d,gs)});for(let b=0,h=A.length;b<h;b++)u.add(A[b]);return u})}_loadNodeShallow(e){const a=this.json,t=this.extensions,i=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];const n=a.nodes[e],o=n.name?i.createUniqueName(n.name):"",s=[],c=i._invokeOne(function(u){return u.createNodeMesh&&u.createNodeMesh(e)});return c&&s.push(c),n.camera!==void 0&&s.push(i.getDependency("camera",n.camera).then(function(u){return i._getNodeRef(i.cameraCache,n.camera,u)})),i._invokeAll(function(u){return u.createNodeAttachment&&u.createNodeAttachment(e)}).forEach(function(u){s.push(u)}),this.nodeCache[e]=Promise.all(s).then(function(u){let A;if(A=n.isBone===!0?new f.Bone:u.length>1?new f.Group:u.length===1?u[0]:new f.Object3D,A!==u[0])for(let d=0,b=u.length;d<b;d++)A.add(u[d]);if(n.name&&(A.userData.name=n.name,A.name=o),la(A,n),n.extensions&&wa(t,A,n),n.matrix!==void 0){const d=new f.Matrix4;d.fromArray(n.matrix),A.applyMatrix4(d)}else n.translation!==void 0&&A.position.fromArray(n.translation),n.rotation!==void 0&&A.quaternion.fromArray(n.rotation),n.scale!==void 0&&A.scale.fromArray(n.scale);if(i.associations.has(A)){if(n.mesh!==void 0&&i.meshCache.refs[n.mesh]>1){const d=i.associations.get(A);i.associations.set(A,{...d})}}else i.associations.set(A,{});return i.associations.get(A).nodes=e,A}),this.nodeCache[e]}loadScene(e){const a=this.extensions,t=this.json.scenes[e],i=this,n=new f.Group;t.name&&(n.name=i.createUniqueName(t.name)),la(n,t),t.extensions&&wa(a,n,t);const o=t.nodes||[],s=[];for(let c=0,u=o.length;c<u;c++)s.push(i.getDependency("node",o[c]));return Promise.all(s).then(function(c){for(let u=0,A=c.length;u<A;u++)n.add(c[u]);return i.associations=(u=>{const A=new Map;for(const[d,b]of i.associations)(d instanceof f.Material||d instanceof f.Texture)&&A.set(d,b);return u.traverse(d=>{const b=i.associations.get(d);b!=null&&A.set(d,b)}),A})(n),n})}_createAnimationTracks(e,a,t,i,n){const o=[],s=e.name?e.name:e.uuid,c=[];let u;switch(ga[n.path]===ga.weights?e.traverse(function(b){b.morphTargetInfluences&&c.push(b.name?b.name:b.uuid)}):c.push(s),ga[n.path]){case ga.weights:u=f.NumberKeyframeTrack;break;case ga.rotation:u=f.QuaternionKeyframeTrack;break;case ga.translation:case ga.scale:u=f.VectorKeyframeTrack;break;default:t.itemSize===1?u=f.NumberKeyframeTrack:u=f.VectorKeyframeTrack}const A=i.interpolation!==void 0?cs[i.interpolation]:f.InterpolateLinear,d=this._getArrayFromAccessor(t);for(let b=0,h=c.length;b<h;b++){const l=new u(c[b]+"."+ga[n.path],a.array,d,A);i.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(l),o.push(l)}return o}_getArrayFromAccessor(e){let a=e.array;if(e.normalized){const t=sr(a.constructor),i=new Float32Array(a.length);for(let n=0,o=a.length;n<o;n++)i[n]=a[n]*t;a=i}return a}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(a){return new(this instanceof f.QuaternionKeyframeTrack?As:Vi)(this.times,this.values,this.getValueSize()/3,a)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function Pr(r,e,a){const t=e.attributes,i=[];function n(o,s){return a.getDependency("accessor",o).then(function(c){r.setAttribute(s,c)})}for(const o in t){const s=or[o]||o.toLowerCase();s in r.attributes||i.push(n(t[o],s))}if(e.indices!==void 0&&!r.index){const o=a.getDependency("accessor",e.indices).then(function(s){r.setIndex(s)});i.push(o)}return f.ColorManagement.workingColorSpace!==f.LinearSRGBColorSpace&&"COLOR_0"in t&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${f.ColorManagement.workingColorSpace}" not supported.`),la(r,e),function(o,s,c){const u=s.attributes,A=new f.Box3;if(u.POSITION===void 0)return;{const h=c.json.accessors[u.POSITION],l=h.min,g=h.max;if(l===void 0||g===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(A.set(new f.Vector3(l[0],l[1],l[2]),new f.Vector3(g[0],g[1],g[2])),h.normalized){const m=sr(Pa[h.componentType]);A.min.multiplyScalar(m),A.max.multiplyScalar(m)}}const d=s.targets;if(d!==void 0){const h=new f.Vector3,l=new f.Vector3;for(let g=0,m=d.length;g<m;g++){const E=d[g];if(E.POSITION!==void 0){const p=c.json.accessors[E.POSITION],C=p.min,I=p.max;if(C!==void 0&&I!==void 0){if(l.setX(Math.max(Math.abs(C[0]),Math.abs(I[0]))),l.setY(Math.max(Math.abs(C[1]),Math.abs(I[1]))),l.setZ(Math.max(Math.abs(C[2]),Math.abs(I[2]))),p.normalized){const x=sr(Pa[p.componentType]);l.multiplyScalar(x)}h.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}A.expandByVector(h)}o.boundingBox=A;const b=new f.Sphere;A.getCenter(b.center),b.radius=A.min.distanceTo(A.max)/2,o.boundingSphere=b}(r,e,a),Promise.all(i).then(function(){return e.targets!==void 0?function(o,s,c){let u=!1,A=!1,d=!1;for(let g=0,m=s.length;g<m;g++){const E=s[g];if(E.POSITION!==void 0&&(u=!0),E.NORMAL!==void 0&&(A=!0),E.COLOR_0!==void 0&&(d=!0),u&&A&&d)break}if(!u&&!A&&!d)return Promise.resolve(o);const b=[],h=[],l=[];for(let g=0,m=s.length;g<m;g++){const E=s[g];if(u){const p=E.POSITION!==void 0?c.getDependency("accessor",E.POSITION):o.attributes.position;b.push(p)}if(A){const p=E.NORMAL!==void 0?c.getDependency("accessor",E.NORMAL):o.attributes.normal;h.push(p)}if(d){const p=E.COLOR_0!==void 0?c.getDependency("accessor",E.COLOR_0):o.attributes.color;l.push(p)}}return Promise.all([Promise.all(b),Promise.all(h),Promise.all(l)]).then(function(g){const m=g[0],E=g[1],p=g[2];return u&&(o.morphAttributes.position=m),A&&(o.morphAttributes.normal=E),d&&(o.morphAttributes.color=p),o.morphTargetsRelative=!0,o})}(r,e.targets,a):r})}const Lt=new WeakMap;class Hi extends f.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,a,t,i){const n=new f.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(e,o=>{this.parse(o,a,i)},t,i)}parse(e,a,t=()=>{}){this.decodeDracoFile(e,a,null,null,f.SRGBColorSpace,t).catch(t)}decodeDracoFile(e,a,t,i,n=f.LinearSRGBColorSpace,o=()=>{}){const s={attributeIDs:t||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!t,vertexColorSpace:n};return this.decodeGeometry(e,s).then(a).catch(o)}decodeGeometry(e,a){const t=JSON.stringify(a);if(Lt.has(e)){const c=Lt.get(e);if(c.key===t)return c.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const n=this.workerNextTaskID++,o=e.byteLength,s=this._getWorker(n,o).then(c=>(i=c,new Promise((u,A)=>{i._callbacks[n]={resolve:u,reject:A},i.postMessage({type:"decode",id:n,taskConfig:a,buffer:e},[e])}))).then(c=>this._createGeometry(c.geometry));return s.catch(()=>!0).then(()=>{i&&n&&this._releaseTask(i,n)}),Lt.set(e,{key:t,promise:s}),s}_createGeometry(e){const a=new f.BufferGeometry;e.index&&a.setIndex(new f.BufferAttribute(e.index.array,1));for(let t=0;t<e.attributes.length;t++){const i=e.attributes[t],n=i.name,o=i.array,s=i.itemSize,c=new f.BufferAttribute(o,s);n==="color"&&(this._assignVertexColorSpace(c,i.vertexColorSpace),c.normalized=!(o instanceof Float32Array)),a.setAttribute(n,c)}return a}_assignVertexColorSpace(e,a){if(a!==f.SRGBColorSpace)return;const t=new f.Color;for(let i=0,n=e.count;i<n;i++)t.fromBufferAttribute(e,i),f.ColorManagement.colorSpaceToWorking(t,f.SRGBColorSpace),e.setXYZ(i,t.r,t.g,t.b)}_loadLibrary(e,a){const t=new f.FileLoader(this.manager);return t.setPath(this.decoderPath),t.setResponseType(a),t.setWithCredentials(this.withCredentials),new Promise((i,n)=>{t.load(e,i,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",a=[];return e?a.push(this._loadLibrary("draco_decoder.js","text")):(a.push(this._loadLibrary("draco_wasm_wrapper.js","text")),a.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(a).then(t=>{const i=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const n=ps.toString(),o=["/* draco decoder */",i,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join(`
7
- `);this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,a){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const i=new Worker(this.workerSourceURL);i._callbacks={},i._taskCosts={},i._taskLoad=0,i.postMessage({type:"init",decoderConfig:this.decoderConfig}),i.onmessage=function(n){const o=n.data;switch(o.type){case"decode":i._callbacks[o.id].resolve(o);break;case"error":i._callbacks[o.id].reject(o);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+o.type+'"')}},this.workerPool.push(i)}else this.workerPool.sort(function(i,n){return i._taskLoad>n._taskLoad?-1:1});const t=this.workerPool[this.workerPool.length-1];return t._taskCosts[e]=a,t._taskLoad+=a,t})}_releaseTask(e,a){e._taskLoad-=e._taskCosts[a],delete e._callbacks[a],delete e._taskCosts[a]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function ps(){let r,e;function a(t,i,n,o,s,c){const u=c.num_components(),A=n.num_points()*u,d=A*s.BYTES_PER_ELEMENT,b=function(g,m){switch(m){case Float32Array:return g.DT_FLOAT32;case Int8Array:return g.DT_INT8;case Int16Array:return g.DT_INT16;case Int32Array:return g.DT_INT32;case Uint8Array:return g.DT_UINT8;case Uint16Array:return g.DT_UINT16;case Uint32Array:return g.DT_UINT32}}(t,s),h=t._malloc(d);i.GetAttributeDataArrayForAllPoints(n,c,b,d,h);const l=new s(t.HEAPF32.buffer,h,A).slice();return t._free(h),{name:o,array:l,itemSize:u}}onmessage=function(t){const i=t.data;switch(i.type){case"init":r=i.decoderConfig,e=new Promise(function(s){r.onModuleLoaded=function(c){s({draco:c})},DracoDecoderModule(r)});break;case"decode":const n=i.buffer,o=i.taskConfig;e.then(s=>{const c=s.draco,u=new c.Decoder;try{const A=function(b,h,l,g){const m=g.attributeIDs,E=g.attributeTypes;let p,C;const I=h.GetEncodedGeometryType(l);if(I===b.TRIANGULAR_MESH)p=new b.Mesh,C=h.DecodeArrayToMesh(l,l.byteLength,p);else{if(I!==b.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");p=new b.PointCloud,C=h.DecodeArrayToPointCloud(l,l.byteLength,p)}if(!C.ok()||p.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+C.error_msg());const x={index:null,attributes:[]};for(const y in m){const w=self[E[y]];let D,F;if(g.useUniqueIDs)F=m[y],D=h.GetAttributeByUniqueId(p,F);else{if(F=h.GetAttributeId(p,b[m[y]]),F===-1)continue;D=h.GetAttribute(p,F)}const M=a(b,h,p,y,w,D);y==="color"&&(M.vertexColorSpace=g.vertexColorSpace),x.attributes.push(M)}return I===b.TRIANGULAR_MESH&&(x.index=function(y,w,D){const F=D.num_faces(),M=3*F,k=4*M,_=y._malloc(k);w.GetTrianglesUInt32Array(D,k,_);const q=new Uint32Array(y.HEAPF32.buffer,_,M).slice();return y._free(_),{array:q,itemSize:1}}(b,h,p)),b.destroy(p),x}(c,u,new Int8Array(n),o),d=A.attributes.map(b=>b.array.buffer);A.index&&d.push(A.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:A},d)}catch(A){console.error(A),self.postMessage({type:"error",id:i.id,error:A.message})}finally{c.destroy(u)}})}}}class ms{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(e){if(!this.workers[e]){const a=this.workerCreator();a.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=a}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,a){const t=this.workersResolve[e];if(t&&t(a),this.queue.length){const{resolve:i,msg:n,transfer:o}=this.queue.shift();this.workersResolve[e]=i,this.workers[e].postMessage(n,o)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,a){return new Promise(t=>{const i=this._getIdleWorker();i!==-1?(this._initWorker(i),this.workerStatus|=1<<i,this.workersResolve[i]=t,this.workers[i].postMessage(e,a)):this.queue.push({resolve:t,msg:e,transfer:a})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const Wi=9,Xi=15,Yi=16,Zi=22,$i=37,en=43,an=76,tn=83,rn=97,nn=100,on=103,sn=109,Es=131,Cs=132,Is=133,Bs=134,Ds=137,ys=138,ws=141,xs=142,vs=145,Fs=146,An=148,cn=152,Qs=157,ks=158,un=165,dn=166,Cr=1000066e3;class js{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Ya{constructor(e,a,t,i){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+a,t),this._littleEndian=i,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const a=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,a}_skip(e){return this._offset+=e,this}_scan(e,a){a===void 0&&(a=0);const t=this._offset;let i=0;for(;this._dataView.getUint8(this._offset)!==a&&i<e;)i++,this._offset++;return i<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+t,i)}}const Le=[171,75,84,88,32,50,48,187,13,10,26,10];function qr(r){return new TextDecoder().decode(r)}let Gt,ha,Ar;const _t={env:{emscripten_notify_memory_growth:function(r){Ar=new Uint8Array(ha.exports.memory.buffer)}}};class Ms{init(){return Gt||(Gt=typeof fetch<"u"?fetch("data:application/wasm;base64,"+Kr).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,_t)).then(this._init):WebAssembly.instantiate(Buffer.from(Kr,"base64"),_t).then(this._init),Gt)}_init(e){ha=e.instance,_t.env.emscripten_notify_memory_growth(0)}decode(e,a=0){if(!ha)throw new Error("ZSTDDecoder: Await .init() before decoding.");const t=e.byteLength,i=ha.exports.malloc(t);Ar.set(e,i),a=a||Number(ha.exports.ZSTD_findDecompressedSize(i,t));const n=ha.exports.malloc(a),o=ha.exports.ZSTD_decompress(n,a,i,t),s=Ar.slice(n,n+o);return ha.exports.free(i),ha.exports.free(n),s}}const Kr="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",zt=new WeakMap;let Pt,qt=0;class Je extends f.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new ms,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}async detectSupportAsync(e){return this.workerConfig={astcSupported:await e.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await e.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await e.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await e.hasFeatureAsync("texture-compression-bc"),bptcSupported:await e.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await e.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(e){return e.isWebGPURenderer===!0?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:e.hasFeature("texture-compression-etc1"),etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:e.hasFeature("texture-compression-bptc"),pvrtcSupported:e.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:e.extensions.has("WEBGL_compressed_texture_astc")&&e.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const e=new f.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const a=e.loadAsync("basis_transcoder.js"),t=new f.FileLoader(this.manager);t.setPath(this.transcoderPath),t.setResponseType("arraybuffer"),t.setWithCredentials(this.withCredentials);const i=t.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([a,i]).then(([n,o])=>{const s=Je.BasisWorker.toString(),c=["/* constants */","let _EngineFormat = "+JSON.stringify(Je.EngineFormat),"let _EngineType = "+JSON.stringify(Je.EngineType),"let _TranscoderFormat = "+JSON.stringify(Je.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Je.BasisFormat),"/* basis_transcoder.js */",n,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(`
8
- `);this.workerSourceURL=URL.createObjectURL(new Blob([c])),this.transcoderBinary=o,this.workerPool.setWorkerCreator(()=>{const u=new Worker(this.workerSourceURL),A=this.transcoderBinary.slice(0);return u.postMessage({type:"init",config:this.workerConfig,transcoderBinary:A},[A]),u})}),qt>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),qt++}return this.transcoderPending}load(e,a,t,i){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const n=new f.FileLoader(this.manager);n.setPath(this.path),n.setCrossOrigin(this.crossOrigin),n.setWithCredentials(this.withCredentials),n.setResponseType("arraybuffer"),n.load(e,o=>{this.parse(o,a,i)},t,i)}parse(e,a,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(zt.has(e))return zt.get(e).promise.then(a).catch(t);this._createTexture(e).then(i=>a?a(i):null).catch(t)}_createTextureFrom(e,a){const{type:t,error:i,data:{faces:n,width:o,height:s,format:c,type:u,dfdFlags:A}}=e;if(t==="error")return Promise.reject(i);let d;if(a.faceCount===6)d=new f.CompressedCubeTexture(n,c,u);else{const b=n[0].mipmaps;d=a.layerCount>1?new f.CompressedArrayTexture(b,o,s,a.layerCount,c,u):new f.CompressedTexture(b,o,s,c,u)}return d.minFilter=n[0].mipmaps.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,d.magFilter=f.LinearFilter,d.generateMipmaps=!1,d.needsUpdate=!0,d.colorSpace=Or(a),d.premultiplyAlpha=!!(1&A),d}async _createTexture(e,a={}){const t=function(s){const c=new Uint8Array(s.buffer,s.byteOffset,Le.length);if(c[0]!==Le[0]||c[1]!==Le[1]||c[2]!==Le[2]||c[3]!==Le[3]||c[4]!==Le[4]||c[5]!==Le[5]||c[6]!==Le[6]||c[7]!==Le[7]||c[8]!==Le[8]||c[9]!==Le[9]||c[10]!==Le[10]||c[11]!==Le[11])throw new Error("Missing KTX 2.0 identifier.");const u=new js,A=17*Uint32Array.BYTES_PER_ELEMENT,d=new Ya(s,Le.length,A,!0);u.vkFormat=d._nextUint32(),u.typeSize=d._nextUint32(),u.pixelWidth=d._nextUint32(),u.pixelHeight=d._nextUint32(),u.pixelDepth=d._nextUint32(),u.layerCount=d._nextUint32(),u.faceCount=d._nextUint32();const b=d._nextUint32();u.supercompressionScheme=d._nextUint32();const h=d._nextUint32(),l=d._nextUint32(),g=d._nextUint32(),m=d._nextUint32(),E=d._nextUint64(),p=d._nextUint64(),C=new Ya(s,Le.length+A,3*b*8,!0);for(let X=0;X<b;X++)u.levels.push({levelData:new Uint8Array(s.buffer,s.byteOffset+C._nextUint64(),C._nextUint64()),uncompressedByteLength:C._nextUint64()});const I=new Ya(s,h,l,!0),x={vendorId:I._skip(4)._nextUint16(),descriptorType:I._nextUint16(),versionNumber:I._nextUint16(),descriptorBlockSize:I._nextUint16(),colorModel:I._nextUint8(),colorPrimaries:I._nextUint8(),transferFunction:I._nextUint8(),flags:I._nextUint8(),texelBlockDimension:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],bytesPlane:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],samples:[]},y=(x.descriptorBlockSize/4-6)/4;for(let X=0;X<y;X++){const ee={bitOffset:I._nextUint16(),bitLength:I._nextUint8(),channelType:I._nextUint8(),samplePosition:[I._nextUint8(),I._nextUint8(),I._nextUint8(),I._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&ee.channelType?(ee.sampleLower=I._nextInt32(),ee.sampleUpper=I._nextInt32()):(ee.sampleLower=I._nextUint32(),ee.sampleUpper=I._nextUint32()),x.samples[X]=ee}u.dataFormatDescriptor.length=0,u.dataFormatDescriptor.push(x);const w=new Ya(s,g,m,!0);for(;w._offset<m;){const X=w._nextUint32(),ee=w._scan(X),Ae=qr(ee);if(u.keyValue[Ae]=w._nextUint8Array(X-ee.byteLength-1),Ae.match(/^ktx/i)){const Ee=qr(u.keyValue[Ae]);u.keyValue[Ae]=Ee.substring(0,Ee.lastIndexOf("\0"))}w._skip(X%4?4-X%4:0)}if(p<=0)return u;const D=new Ya(s,E,p,!0),F=D._nextUint16(),M=D._nextUint16(),k=D._nextUint32(),_=D._nextUint32(),q=D._nextUint32(),V=D._nextUint32(),J=[];for(let X=0;X<b;X++)J.push({imageFlags:D._nextUint32(),rgbSliceByteOffset:D._nextUint32(),rgbSliceByteLength:D._nextUint32(),alphaSliceByteOffset:D._nextUint32(),alphaSliceByteLength:D._nextUint32()});const O=E+D._offset,se=O+k,ce=se+_,re=ce+q,le=new Uint8Array(s.buffer,s.byteOffset+O,k),ue=new Uint8Array(s.buffer,s.byteOffset+se,_),Z=new Uint8Array(s.buffer,s.byteOffset+ce,q),ge=new Uint8Array(s.buffer,s.byteOffset+re,V);return u.globalData={endpointCount:F,selectorCount:M,imageDescs:J,endpointsData:le,selectorsData:ue,tablesData:Z,extendedData:ge},u}(new Uint8Array(e)),i=t.vkFormat===Cr&&t.dataFormatDescriptor[0].colorModel===167;if(!(t.vkFormat===0||i&&!this.workerConfig.astcHDRSupported))return async function(s){const{vkFormat:c}=s;if(Kt[c]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let u;s.supercompressionScheme===2&&(Pt||(Pt=new Promise(async b=>{const h=new Ms;await h.init(),b(h)})),u=await Pt);const A=[];for(let b=0;b<s.levels.length;b++){const h=Math.max(1,s.pixelWidth>>b),l=Math.max(1,s.pixelHeight>>b),g=s.pixelDepth?Math.max(1,s.pixelDepth>>b):0,m=s.levels[b];let E,p;if(s.supercompressionScheme===0)E=m.levelData;else{if(s.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");E=u.decode(m.levelData,m.uncompressedByteLength)}p=Ot[c]===f.FloatType?new Float32Array(E.buffer,E.byteOffset,E.byteLength/Float32Array.BYTES_PER_ELEMENT):Ot[c]===f.HalfFloatType?new Uint16Array(E.buffer,E.byteOffset,E.byteLength/Uint16Array.BYTES_PER_ELEMENT):E,A.push({data:p,width:h,height:l,depth:g})}let d;if(Rs.has(Kt[c]))d=s.pixelDepth===0?new f.DataTexture(A[0].data,s.pixelWidth,s.pixelHeight):new f.Data3DTexture(A[0].data,s.pixelWidth,s.pixelHeight,s.pixelDepth);else{if(s.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");d=new f.CompressedTexture(A,s.pixelWidth,s.pixelHeight),d.minFilter=A.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,d.magFilter=f.LinearFilter}return d.mipmaps=A,d.type=Ot[c],d.format=Kt[c],d.colorSpace=Or(s),d.needsUpdate=!0,Promise.resolve(d)}(t);const n=a,o=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:n},[e])).then(s=>this._createTextureFrom(s.data,t));return zt.set(e,{promise:o}),o}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),qt--}}Je.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},Je.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},Je.EngineFormat={RGBAFormat:f.RGBAFormat,RGBA_ASTC_4x4_Format:f.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:f.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:f.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:f.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:f.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:f.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:f.RGB_ETC1_Format,RGB_ETC2_Format:f.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:f.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:f.RGBA_S3TC_DXT1_Format},Je.EngineType={UnsignedByteType:f.UnsignedByteType,HalfFloatType:f.HalfFloatType,FloatType:f.FloatType},Je.BasisWorker=function(){let r,e,a;const t=_EngineFormat,i=_EngineType,n=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",function(d){const b=d.data;switch(b.type){case"init":r=b.config,h=b.transcoderBinary,e=new Promise(l=>{a={wasmBinary:h,onRuntimeInitialized:l},BASIS(a)}).then(()=>{a.initializeBasis(),a.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":e.then(()=>{try{const{faces:l,buffers:g,width:m,height:E,hasAlpha:p,format:C,type:I,dfdFlags:x}=function(y){const w=new a.KTX2File(new Uint8Array(y));function D(){w.close(),w.delete()}if(!w.isValid())throw D(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let F;if(w.isUASTC())F=o.UASTC;else if(w.isETC1S())F=o.ETC1S;else{if(!w.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");F=o.UASTC_HDR}const M=w.getWidth(),k=w.getHeight(),_=w.getLayers()||1,q=w.getLevels(),V=w.getFaces(),J=w.getHasAlpha(),O=w.getDFDFlags(),{transcoderFormat:se,engineFormat:ce,engineType:re}=function(Z,ge,X,ee){const Ae=c[Z];for(let Ee=0;Ee<Ae.length;Ee++){const De=Ae[Ee];if(!(De.if&&!r[De.if])&&De.basisFormat.includes(Z)&&!(ee&&De.transcoderFormat.length<2)&&!(De.needsPowerOfTwo&&(!u(ge)||!u(X))))return{transcoderFormat:De.transcoderFormat[ee?1:0],engineFormat:De.engineFormat[ee?1:0],engineType:De.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(F,M,k,J);if(!M||!k||!q)throw D(),new Error("THREE.KTX2Loader: Invalid texture");if(!w.startTranscoding())throw D(),new Error("THREE.KTX2Loader: .startTranscoding failed");const le=[],ue=[];for(let Z=0;Z<V;Z++){const ge=[];for(let X=0;X<q;X++){const ee=[];let Ae,Ee;for(let Se=0;Se<_;Se++){const qe=w.getImageLevelInfo(X,Se,Z);Z!==0||X!==0||Se!==0||qe.origWidth%4==0&&qe.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),q>1?(Ae=qe.origWidth,Ee=qe.origHeight):(Ae=qe.width,Ee=qe.height);let Ke=new Uint8Array(w.getImageTranscodedSizeInBytes(X,Se,0,se));const Ha=w.transcodeImage(Ke,X,Se,Z,se,0,-1,-1);if(re===i.HalfFloatType&&(Ke=new Uint16Array(Ke.buffer,Ke.byteOffset,Ke.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!Ha)throw D(),new Error("THREE.KTX2Loader: .transcodeImage failed.");ee.push(Ke)}const De=A(ee);ge.push({data:De,width:Ae,height:Ee}),ue.push(De.buffer)}le.push({mipmaps:ge,width:M,height:k,format:ce,type:re})}return D(),{faces:le,buffers:ue,width:M,height:k,hasAlpha:J,dfdFlags:O,format:ce,type:re}}(b.buffer);self.postMessage({type:"transcode",id:b.id,data:{faces:l,width:m,height:E,hasAlpha:p,format:C,type:I,dfdFlags:x}},g)}catch(l){console.error(l),self.postMessage({type:"error",id:b.id,error:l.message})}})}var h});const s=[{if:"astcSupported",basisFormat:[o.UASTC],transcoderFormat:[n.ASTC_4x4,n.ASTC_4x4],engineFormat:[t.RGBA_ASTC_4x4_Format,t.RGBA_ASTC_4x4_Format],engineType:[i.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.BC7_M5,n.BC7_M5],engineFormat:[t.RGBA_BPTC_Format,t.RGBA_BPTC_Format],engineType:[i.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.BC1,n.BC3],engineFormat:[t.RGBA_S3TC_DXT1_Format,t.RGBA_S3TC_DXT5_Format],engineType:[i.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.ETC1,n.ETC2],engineFormat:[t.RGB_ETC2_Format,t.RGBA_ETC2_EAC_Format],engineType:[i.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.ETC1],engineFormat:[t.RGB_ETC1_Format],engineType:[i.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.PVRTC1_4_RGB,n.PVRTC1_4_RGBA],engineFormat:[t.RGB_PVRTC_4BPPV1_Format,t.RGBA_PVRTC_4BPPV1_Format],engineType:[i.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[o.UASTC_HDR],transcoderFormat:[n.BC6H],engineFormat:[t.RGB_BPTC_UNSIGNED_Format],engineType:[i.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[o.ETC1S,o.UASTC],transcoderFormat:[n.RGBA32,n.RGBA32],engineFormat:[t.RGBAFormat,t.RGBAFormat],engineType:[i.UnsignedByteType,i.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[o.UASTC_HDR],transcoderFormat:[n.RGBA_HALF],engineFormat:[t.RGBAFormat],engineType:[i.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],c={[o.ETC1S]:s.filter(d=>d.basisFormat.includes(o.ETC1S)).sort((d,b)=>d.priorityUASTC-b.priorityUASTC),[o.UASTC]:s.filter(d=>d.basisFormat.includes(o.UASTC)).sort((d,b)=>d.priorityUASTC-b.priorityUASTC),[o.UASTC_HDR]:s.filter(d=>d.basisFormat.includes(o.UASTC_HDR)).sort((d,b)=>d.priorityHDR-b.priorityHDR)};function u(d){return d<=2||!(d&d-1)&&d!==0}function A(d){if(d.length===1)return d[0];let b=0;for(let g=0;g<d.length;g++)b+=d[g].byteLength;const h=new Uint8Array(b);let l=0;for(let g=0;g<d.length;g++){const m=d[g];h.set(m,l),l+=m.byteLength}return h}};const Rs=new Set([f.RGBAFormat,f.RGFormat,f.RedFormat]),Kt={[sn]:f.RGBAFormat,[rn]:f.RGBAFormat,[$i]:f.RGBAFormat,[en]:f.RGBAFormat,[on]:f.RGFormat,[tn]:f.RGFormat,[Yi]:f.RGFormat,[Zi]:f.RGFormat,[nn]:f.RedFormat,[an]:f.RedFormat,[Xi]:f.RedFormat,[Wi]:f.RedFormat,[An]:f.RGB_ETC2_Format,[cn]:f.RGBA_ETC2_EAC_Format,[Cr]:f.RGBA_ASTC_4x4_Format,[ks]:f.RGBA_ASTC_4x4_Format,[Qs]:f.RGBA_ASTC_4x4_Format,[dn]:f.RGBA_ASTC_6x6_Format,[un]:f.RGBA_ASTC_6x6_Format,[Is]:f.RGBA_S3TC_DXT1_Format,[Bs]:f.RGBA_S3TC_DXT1_Format,[Es]:f.RGB_S3TC_DXT1_Format,[Cs]:f.RGB_S3TC_DXT1_Format,[ys]:f.RGBA_S3TC_DXT3_Format,[Ds]:f.RGBA_S3TC_DXT3_Format,[xs]:f.RGBA_S3TC_DXT5_Format,[ws]:f.RGBA_S3TC_DXT5_Format,[Fs]:f.RGBA_BPTC_Format,[vs]:f.RGBA_BPTC_Format},Ot={[sn]:f.FloatType,[rn]:f.HalfFloatType,[$i]:f.UnsignedByteType,[en]:f.UnsignedByteType,[on]:f.FloatType,[tn]:f.HalfFloatType,[Yi]:f.UnsignedByteType,[Zi]:f.UnsignedByteType,[nn]:f.FloatType,[an]:f.HalfFloatType,[Xi]:f.UnsignedByteType,[Wi]:f.UnsignedByteType,[An]:f.UnsignedByteType,[cn]:f.UnsignedByteType,[Cr]:f.HalfFloatType,[dn]:f.UnsignedByteType,[un]:f.UnsignedByteType};function Or(r){const e=r.dataFormatDescriptor[0];return e.colorPrimaries===1?e.transferFunction===2?f.SRGBColorSpace:f.LinearSRGBColorSpace:e.colorPrimaries===10?e.transferFunction===2?"display-p3":"display-p3-linear":(e.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`),f.NoColorSpace)}async function Jr(r){const e=r.split("?")[0].split(".").pop(),a=await fetch(r);if(!a.ok)throw new Error(`Failed to fetch ${r}: ${a.statusText}`);if(e==="json"){const t=await a.json();return handleJSONSubtree(t,Vr(r))}if(e==="subtree")return async function(t,i){const n=new DataView(t),o=n.getBigUint64(8,!0),s=n.getBigUint64(16,!0),c=24,u=c+Number(o),A=u+(8-u%8)%8,d=A+Number(s),b=t.slice(c,u),h=new TextDecoder().decode(b).trim(),l=JSON.parse(h);if(!l.buffers)throw new Error("subtree has no buffers");const g=l.buffers.map(async E=>{if(E.uri){const p=new URL(E.uri,i).href,C=await fetch(p);if(!C.ok)throw new Error(`Failed to fetch binary file ${p}: ${C.statusText}`);return new Uint8Array(await C.arrayBuffer())}return new Uint8Array(t.slice(A,d))}),m=await Promise.all(g);return function(E,p){function C(D,F){if(!D)throw new Error("incomplete json subtree");if(D.constant){if(D.constant==0)return!1;if(D.constant==1)return!0}if(D.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!E.bufferViews||!E.bufferViews[D.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const M=E.bufferViews[D.bitstream];return I(p[M.buffer],M.byteOffset,F)}function I(D,F,M){const k=M%8;return D[F+Math.floor(M/8)]>>k&!0}function x(D){let F=0;return F=D.z==null?Jt(D.x,D.y,D.level):Ht(D.x,D.y,D.z,D.level),C(E.tileAvailability,F)}function y(D){let F=0;F=D.z==null?Jt(D.x,D.y,D.level):Ht(D.x,D.y,D.z,D.level);const M=[];return E.contentAvailability.forEach(k=>{M.push(C(k,F))}),M}function w(D){let F=0;return F=D.z==null?Jt(D.x,D.y):Ht(D.x,D.y,D.z),C(E.childSubtreeAvailability,F)}return{isTileAvailable:x,isContentAvailable:y,isChildSubtreeAvailable:w}}(l,m)}(await a.arrayBuffer(),Vr(r));throw new Error(`Unsupported file extension: ${e}`)}function Vr(r){const e=r.split("?")[0];return e.substring(0,e.lastIndexOf("/")+1)}function Hr(r){return r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r&=65535)^r<<8))^r<<4))^r<<2))^r<<1)}function Jt(r,e,a){let t=0;return a&&(t=(Math.pow(4,a)-1)/3),t+(Hr(r)|Hr(e)<<1)}function Vt(r){return r=153391689&((r=51130563&((r=50393103&((r=4278190335&((r&=1023)^r<<16))^r<<8))^r<<4))^r<<2)}function Ht(r,e,a,t){let i=0;return t&&(i=(Math.pow(8,t)-1)/7),i+(Vt(r)|Vt(e)<<1|Vt(a)<<2)}const Za=new Map;async function Ir(r,e){if(!r.root||!r.root.implicitTiling)return r;if(!r.root.content&&!r.root.contents)throw new Error("implicit tiling requires a Template URI");let a=!0;r.root.implicitTiling.subdivisionScheme&&(a=r.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let t="";r.root.implicitTiling.subtrees&&(r.root.implicitTiling.subtrees.uri?t=r.root.implicitTiling.subtrees.uri:r.root.implicitTiling.subtrees.url&&(t=r.root.implicitTiling.subtrees.url));let i=[];r.root.content?r.root.content.uri?i.push(r.root.content.uri):r.root.content.url&&i.push(r.root.content.url):r.root.contents&&r.root.contents.forEach(h=>{h.uri?i.push(h.uri):h.url&&i.push(h.url)});const n=function(h){const l=h.split("?")[0];return l.substring(0,l.lastIndexOf("/")+1)}(e);let o;a&&(o=t.replace("{level}",0).replace("{x}",0).replace("{y}",0)),a||(o=t.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const s={level:0,x:0,y:0},c={level:0,x:0,y:0};a||(s.z=0,c.z=0),Za.set(o,await Jr(n+o));const u=Za.get(o),A=[];u.isContentAvailable(c)&&i.forEach(h=>{let l;a&&(l=h.replace("{level}",s.level).replace("{x}",s.x).replace("{y}",s.y)),a||(l=h.replace("{level}",s.level).replace("{x}",s.x).replace("{y}",s.y).replace("{z}",s.z)),A.push({uri:l})});const d={geometricError:r.root.geometricError,boundingVolume:r.root.boundingVolume,refine:r.root.refine,globalAddress:s,localAddress:c,subtree:u,contents:A,getChildren:async()=>b(d)};return{root:d};async function b(h){const l=[];if(h.localAddress.level==r.root.implicitTiling.availableLevels-1)return l;if((h.localAddress.level+1)%r.root.implicitTiling.subtreeLevels==0){const g=it(h.localAddress),m=it(h.globalAddress),E=Wr(a,r.root.boundingVolume,m);for(let p=0;p<g.length;p++){const C=g[p],I=m[p];h.subtree.isChildSubtreeAvailable(C)&&(a&&t.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y),a||t.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),Za.has(o)||Za.set(o,await Jr(n+o));const x=Za.get(o),y={level:0,x:0,y:0};a||(y.z=0);const w=[];x.isContentAvailable(y)&&i.forEach(F=>{let M;a&&(M=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y)),a||(M=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),w.push({uri:M})});const D={geometricError:h.geometricError/2,boundingVolume:E[p],refine:r.root.refine,globalAddress:I,localAddress:y,subtree:x,contents:w,getChildren:async()=>b(D)};l.push(D)}}else{const g=it(h.localAddress),m=it(h.globalAddress),E=Wr(a,r.root.boundingVolume,m);for(let p=0;p<g.length;p++){const C=g[p],I=m[p];if(!h.subtree.isTileAvailable(C))continue;const x=[],y=h.subtree.isContentAvailable(C);for(let D=0;D<i.length;D++){if(!y[D])continue;const F=i[D];let M;a&&(M=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y)),a||(M=F.replace("{level}",I.level).replace("{x}",I.x).replace("{y}",I.y).replace("{z}",I.z)),x.push({uri:M})}const w={geometricError:h.geometricError/2,boundingVolume:E[p],refine:r.root.refine,globalAddress:I,localAddress:C,subtree:h.subtree,contents:x,getChildren:async()=>b(w)};l.push(w)}}return l.length>0?l:void 0}}function it(r){const{level:e,x:a,y:t,z:i}=r,n=e+1;let o=[];return o=i===void 0?[{level:n,x:2*a,y:2*t},{level:n,x:2*a+1,y:2*t},{level:n,x:2*a,y:2*t+1},{level:n,x:2*a+1,y:2*t+1}]:[{level:n,x:2*a,y:2*t,z:2*i},{level:n,x:2*a+1,y:2*t,z:2*i},{level:n,x:2*a,y:2*t+1,z:2*i},{level:n,x:2*a+1,y:2*t+1,z:2*i},{level:n,x:2*a,y:2*t,z:2*i+1},{level:n,x:2*a+1,y:2*t,z:2*i+1},{level:n,x:2*a,y:2*t+1,z:2*i+1},{level:n,x:2*a+1,y:2*t+1,z:2*i+1}],o}function Wr(r,e,a){const t=[];for(let i=0;i<a.length;i++)t.push(Ss(r,e,a[i]));return t}function Ss(r,e,a){if(e.region)return function(t,i,n){const[o,s,c,u,A,d]=i,b=(c-o)/2**n.level,h=(u-s)/2**n.level,l=t?0:(d-A)/2**n.level,g=o+b*n.x,m=s+h*n.y,E=g+b,p=m+h,C=t?A:A+l*n.z,I=t?d:C+l;return{region:[g,m,E,p,C,I]}}(r,e.region,a);if(e.box)return function(t,i,n){const o=i.slice(0,3),s=[i.slice(3,6),i.slice(6,9),i.slice(9,12)],c=1/Math.pow(2,n.level),u=[c,c,t?1:c],A=s.map((h,l)=>h.map(g=>g*u[l])),d=[o[0]-s[0][0]-s[1][0]-s[2][0],o[1]-s[0][1]-s[1][1]-s[2][1],o[2]-s[0][2]-s[1][2]-s[2][2]];return{box:[d[0]+(2*n.x+1)*(A[0][0]+A[1][0]+A[2][0]),d[1]+(2*n.y+1)*(A[0][1]+A[1][1]+A[2][1]),t?o[2]:d[2]+(2*n.z+1)*(A[0][2]+A[1][2]+A[2][2])].concat(...A)}}(r,e.box,a);throw new Error("Unsupported bounding volume type")}(function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function a(c){if(!c)throw new Error("Assertion failed")}function t(c){return new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}function i(c,u,A,d,b){var h=r.exports.sbrk,l=h(u),g=h(d*b),m=new Uint8Array(r.exports.memory.buffer);m.set(t(A),g);var E=c(l,u,g,d,b),p=new Uint8Array(E);return p.set(m.subarray(l,l+E)),h(l-h(0)),p}function n(c){for(var u=0,A=0;A<c.length;++A)var d=c[A];return u}function o(c,u){if(a(u==2||u==4),u==4)return new Uint32Array(c.buffer,c.byteOffset,c.byteLength/4);var A=new Uint16Array(c.buffer,c.byteOffset,c.byteLength/2);return new Uint32Array(A)}function s(c,u,A,d,b,h,l){var g=r.exports.sbrk,m=g(A*d),E=g(A*h),p=new Uint8Array(r.exports.memory.buffer);p.set(t(u),E),c(m,A,d,b,E,l);var C=new Uint8Array(A*d);return C.set(p.subarray(m,m+A*d)),g(m-g(0)),C}WebAssembly.instantiate(function(c){for(var u=new Uint8Array(c.length),A=0;A<c.length;++A){var d=c.charCodeAt(A);u[A]=d>96?d-97:d>64?d-39:d+4}var b=0;for(A=0;A<c.length;++A)u[b++]=u[A]<60?e[u[A]]:64*(u[A]-60)+u[++A];return u.buffer.slice(0,b)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9Giuuueui8AYdilveoveovrrwrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:nlAo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbHK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbOl79IV9RbCDwebcekdKLqN9OYdbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:wjjjb8AdnaiTmbarc;adfadalz:vjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:wjjjb8Aarc;abfarc;adfalz:vjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:wjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:vjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:wjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:wjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:wjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:vjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:wjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:vjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:wjjjbawfhokaoarc;adfalz:vjjjbalfhodnaDTmbaoaraez:vjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:wjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:wjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;u:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:vjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:ojjjbavyd:GehDadci9Ugqcbyd;u:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:wjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;u:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;u:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;q:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;u:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;u:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;u:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:wjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:njjjbkQbabaeadaic;m:jjjbz:njjjbk9DeeuabcFeaicdtz:wjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:wjjjb8AalcuadcitgoadcFFFFe0Ecbyd;u:kjjbHjjjjbbgrBdxalceBd2araeadaicez:tjjjbalcuaoadcjjjjoGEcbyd;u:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:wjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;q:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(c){(r=c.instance).exports.__wasm_call_ctors(),r.exports.meshopt_encodeVertexVersion(0),r.exports.meshopt_encodeIndexVersion(1)})})();var hn=function(){var r=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a,t=WebAssembly.validate(r)?n("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;G9Mqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:SPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;7eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbdnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;7eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk:oDllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgkpklbaiakpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):n("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:W:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:S86qdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz1jjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz1jjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:jjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z1jjjb8AazazcjdfaAcufad2fadz1jjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),i=WebAssembly.instantiate(t,{}).then(function(h){(a=h.instance).exports.__wasm_call_ctors()});function n(h){for(var l=new Uint8Array(h.length),g=0;g<h.length;++g){var m=h.charCodeAt(g);l[g]=m>96?m-97:m>64?m-39:m+4}var E=0;for(g=0;g<h.length;++g)l[E++]=l[g]<60?e[l[g]]:64*(l[g]-60)+l[++g];return l.buffer.slice(0,E)}function o(h,l,g,m,E,p,C){var I=h.exports.sbrk,x=m+3&-4,y=I(x*E),w=I(p.length),D=new Uint8Array(h.exports.memory.buffer);D.set(p,w);var F=l(y,m,E,w,p.length);if(F==0&&C&&C(y,x,E),g.set(D.subarray(y,y+m*E)),I(y-I(0)),F!=0)throw new Error("Malformed buffer data: "+F)}var s={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},c={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},u=[],A=0;function d(h){var l={object:new Worker(h),pending:0,requests:{}};return l.object.onmessage=function(g){var m=g.data;l.pending-=m.count,l.requests[m.id][m.action](m.value),delete l.requests[m.id]},l}function b(h){var l=h.data;if(!l.id)return self.close();self.ready.then(function(g){try{var m=new Uint8Array(l.count*l.size);o(g,g.exports[l.mode],m,l.count,l.size,l.source,g.exports[l.filter]),self.postMessage({id:l.id,count:l.count,action:"resolve",value:m},[m.buffer])}catch(E){self.postMessage({id:l.id,count:l.count,action:"reject",value:E})}})}return{ready:i,supported:!0,useWorkers:function(h){(function(l){for(var g="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(t)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+o.toString()+b.toString(),m=new Blob([g],{type:"text/javascript"}),E=URL.createObjectURL(m),p=u.length;p<l;++p)u[p]=d(E);for(p=l;p<u.length;++p)u[p].object.postMessage({});u.length=l,URL.revokeObjectURL(E)})(h)},decodeVertexBuffer:function(h,l,g,m,E){o(a,a.exports.meshopt_decodeVertexBuffer,h,l,g,m,a.exports[s[E]])},decodeIndexBuffer:function(h,l,g,m){o(a,a.exports.meshopt_decodeIndexBuffer,h,l,g,m)},decodeIndexSequence:function(h,l,g,m){o(a,a.exports.meshopt_decodeIndexSequence,h,l,g,m)},decodeGltfBuffer:function(h,l,g,m,E,p){o(a,a.exports[c[E]],h,l,g,m,a.exports[s[p]])},decodeGltfBufferAsync:function(h,l,g,m,E){return u.length>0?function(p,C,I,x,y){for(var w=u[0],D=1;D<u.length;++D)u[D].pending<w.pending&&(w=u[D]);return new Promise(function(F,M){var k=new Uint8Array(I),_=++A;w.pending+=p,w.requests[_]={resolve:F,reject:M},w.object.postMessage({id:_,count:p,size:C,source:k,mode:x,filter:y},[k.buffer])})}(h,l,g,c[m],s[E]):i.then(function(){var p=new Uint8Array(h*l);return o(a,a.exports[c[m]],p,h,l,g,a.exports[s[E]]),p})}}}();(function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(s){for(var c=new Uint8Array(s.length),u=0;u<s.length;++u){var A=s.charCodeAt(u);c[u]=A>96?A-97:A>64?A-39:A+4}var d=0;for(u=0;u<s.length;++u)c[d++]=c[u]<60?e[c[u]]:64*(c[u]-60)+c[++u];return c.buffer.slice(0,d)}("b9H79Tebbbetm9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gvuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiOHdilvorlwiDqkbxxbelve9Weiiviebeoweuec:G:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bwQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bDX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbqa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbkl79IV9RbxDwebcekdzsq;B:xeHdbkM9Hi8Au8A99Au8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ojjjb8AdnabaeSmbabaeadcdtz:njjjb8AkdndnamcdGmbascxfhHcbhOxekasalcrfci4gecbyd:m:jjjbHjjjjbbgABdxasceBd2aAcbaez:ojjjbhCcbhlcbhednadTmbcbhlabheadhAinaCaeydbgXci4fgQaQRbbgQceaXcrGgXtV86bbaQcu7aX4ceGalfhlaeclfheaAcufgAmbkcualcdtalcFFFFi0EhekascCfhHasaecbyd:m:jjjbHjjjjbbgOBdzascdBd2alcd4alfhXcehAinaAgecethAaeaX6mbkcdhzcbhLascuaecdtgAaecFFFFi0Ecbyd:m:jjjbHjjjjbbgXBdCasciBd2aXcFeaAz:ojjjbhKdnadTmbaecufhYcbh8AindndnaKabaLcdtfgEydbgQc:v;t;h;Ev2aYGgXcdtfgCydbgAcuSmbceheinaOaAcdtfydbaQSmdaXaefhAaecefheaKaAaYGgXcdtfgCydbgAcu9hmbkkaOa8AcdtfaQBdbaCa8ABdba8AhAa8Acefh8AkaEaABdbaLcefgLad9hmbkkaKcbyd1:jjjbH:bjjjbbascdBd2kcbh3aHcualcefgecdtaecFFFFi0Ecbyd:m:jjjbHjjjjbbg5Bdbasa5BdlasazceVgeBd2ascxfaecdtfcuadcitadcFFFFe0Ecbyd:m:jjjbHjjjjbbg8EBdbasa8EBdwasazcdfgeBd2asclfabadalcbz:cjjjbascxfaecdtfcualcdtgealcFFFFi0Eg8Fcbyd:m:jjjbHjjjjbbgABdbasazcifgXBd2ascxfaXcdtfa8Fcbyd:m:jjjbHjjjjbbgaBdbasazclVBd2aAaaaialavaOascxfz:djjjbalcbyd:m:jjjbHjjjjbbhCascxfasyd2ghcdtfaCBdbasahcefgXBd2ascxfaXcdtfa8Fcbyd:m:jjjbHjjjjbbgXBdbasahcdfgQBd2ascxfaQcdtfa8Fcbyd:m:jjjbHjjjjbbgQBdbasahcifggBd2aXcFeaez:ojjjbh8JaQcFeaez:ojjjbh8KdnalTmba8Ecwfh8Lindna5a3gQcefg3cdtfydbgKa5aQcdtgefydbgXSmbaKaX9Rhza8EaXcitfhHa8Kaefh8Ma8JaefhEcbhYindndnaHaYcitfydbg8AaQ9hmbaEaQBdba8MaQBdbxekdna5a8Acdtg8NfgeclfydbgXaeydbgeSmba8EaecitgKfydbaQSmeaXae9Rhyaecu7aXfhLa8LaKfhXcbheinaLaeSmeaecefheaXydbhKaXcwfhXaKaQ9hmbkaeay6meka8Ka8NfgeaQa8AaeydbcuSEBdbaEa8AaQaEydbcuSEBdbkaYcefgYaz9hmbkka3al9hmbkaAhXaahQa8KhKa8JhYcbheindndnaeaXydbg8A9hmbdnaeaQydbg8A9hmbaYydbh8AdnaKydbgLcu9hmba8Acu9hmbaCaefcb86bbxikaCaefhEdnaeaLSmbaea8ASmbaEce86bbxikaEcl86bbxdkdnaeaaa8AcdtgLfydb9hmbdnaKydbgEcuSmbaeaESmbaYydbgzcuSmbaeazSmba8KaLfydbgHcuSmbaHa8ASmba8JaLfydbgLcuSmbaLa8ASmbdnaAaEcdtfydbg8AaAaLcdtfydb9hmba8AaAazcdtfydbgLSmbaLaAaHcdtfydb9hmbaCaefcd86bbxlkaCaefcl86bbxikaCaefcl86bbxdkaCaefcl86bbxekaCaefaCa8AfRbb86bbkaXclfhXaQclfhQaKclfhKaYclfhYalaecefge9hmbkdnaqTmbdndnaOTmbaOheaAhXalhQindnaqaeydbfRbbTmbaCaXydbfcl86bbkaeclfheaXclfhXaQcufgQmbxdkkaAhealhXindnaqRbbTmbaCaeydbfcl86bbkaqcefhqaeclfheaXcufgXmbkkaAhealhQaChXindnaCaeydbfRbbcl9hmbaXcl86bbkaeclfheaXcefhXaQcufgQmbkkamceGTmbaChealhXindnaeRbbce9hmbaecl86bbkaecefheaXcufgXmbkkascxfagcdtfcualcx2alc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbg3BdbasahclfgHBd2a3aialavaOz:ejjjbh8PdndnaDmbcbhgcbh8Lxekcbh8LawhecbhXindnaeIdbJbbbb9ETmbasc;Wbfa8LcdtfaXBdba8Lcefh8LkaeclfheaDaXcefgX9hmbkascxfaHcdtfcua8Lal2gecdtaecFFFFi0Ecbyd:m:jjjbHjjjjbbggBdbasahcvfgHBd2alTmba8LTmbarcd4hEdnaOTmba8Lcdthzcbh8AaghLinaoaOa8AcdtfydbaE2cdtfhYasc;WbfheaLhXa8LhQinaXaYaeydbcdtgKfIdbawaKfIdbNUdbaeclfheaXclfhXaQcufgQmbkaLazfhLa8Acefg8Aal9hmbxdkka8Lcdthzcbh8AaghLinaoa8AaE2cdtfhYasc;WbfheaLhXa8LhQinaXaYaeydbcdtgKfIdbawaKfIdbNUdbaeclfheaXclfhXaQcufgQmbkaLazfhLa8Acefg8Aal9hmbkkascxfaHcdtfcualc8S2gealc;D;O;f8U0EgQcbyd:m:jjjbHjjjjbbgXBdbasaHcefgKBd2aXcbaez:ojjjbhqdndndna8LTmbascxfaKcdtfaQcbyd:m:jjjbHjjjjbbgvBdbasaHcdfgXBd2avcbaez:ojjjb8AascxfaXcdtfcua8Lal2gecltgXaecFFFFb0Ecbyd:m:jjjbHjjjjbbgiBdbasaHcifBd2aicbaXz:ojjjb8AadmexdkcbhvcbhiadTmekcbhYabhXindna3aXclfydbg8Acx2fgeIdba3aXydbgLcx2fgQIdbgI:tg8Ra3aXcwfydbgEcx2fgKIdlaQIdlg8S:tgRNaKIdbaI:tg8UaeIdla8S:tg8VN:tg8Wa8WNa8VaKIdwaQIdwg8X:tg8YNaRaeIdwa8X:tg8VN:tgRaRNa8Va8UNa8Ya8RN:tg8Ra8RNMM:rg8UJbbbb9ETmba8Wa8U:vh8Wa8Ra8U:vh8RaRa8U:vhRkaqaAaLcdtfydbc8S2fgeaRa8U:rg8UaRNNg8VaeIdbMUdbaea8Ra8Ua8RNg8ZNg8YaeIdlMUdlaea8Wa8Ua8WNg80Ng81aeIdwMUdwaea8ZaRNg8ZaeIdxMUdxaea80aRNgBaeIdzMUdzaea80a8RNg80aeIdCMUdCaeaRa8Ua8Wa8XNaRaINa8Sa8RNMM:mg8SNgINgRaeIdKMUdKaea8RaINg8RaeId3MUd3aea8WaINg8WaeIdaMUdaaeaIa8SNgIaeId8KMUd8Kaea8UaeIdyMUdyaqaAa8Acdtfydbc8S2fgea8VaeIdbMUdbaea8YaeIdlMUdlaea81aeIdwMUdwaea8ZaeIdxMUdxaeaBaeIdzMUdzaea80aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdyaqaAaEcdtfydbc8S2fgea8VaeIdbMUdbaea8YaeIdlMUdlaea81aeIdwMUdwaea8ZaeIdxMUdxaeaBaeIdzMUdzaea80aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdyaXcxfhXaYcifgYad6mbkcbhzabhLinabazcdtfh8AcbhXinaCa8AaXc;a1jjbfydbcdtfydbgQfRbbhedndnaCaLaXfydbgKfRbbgYc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaYcufcFeGce0mba8JaKcdtfydbaQ9hmekdnaecufcFeGce0mba8KaQcdtfydbaK9hmekdnaYcv2aefc:G1jjbfRbbTmbaAaQcdtfydbaAaKcdtfydb0mekJbbacJbbacJbbjZaecFeGceSEaYceSEh80dna3a8AaXc;e1jjbfydbcdtfydbcx2fgeIdwa3aKcx2fgYIdwg8S:tg8Wa3aQcx2fgEIdwa8S:tgRaRNaEIdbaYIdbg8X:tg8Ra8RNaEIdlaYIdlg8V:tg8Ua8UNMMgINa8WaRNaeIdba8X:tg81a8RNa8UaeIdla8V:tg8ZNMMg8YaRN:tg8Wa8WNa81aINa8Ya8RN:tgRaRNa8ZaINa8Ya8UN:tg8Ra8RNMM:rg8UJbbbb9ETmba8Wa8U:vh8Wa8Ra8U:vh8RaRa8U:vhRkaqaAaKcdtfydbc8S2fgeaRa80aI:rNg8UaRNNg8YaeIdbMUdbaea8Ra8Ua8RNg80Ng81aeIdlMUdlaea8Wa8Ua8WNgINg8ZaeIdwMUdwaea80aRNg80aeIdxMUdxaeaIaRNgBaeIdzMUdzaeaIa8RNg83aeIdCMUdCaeaRa8Ua8Wa8SNaRa8XNa8Va8RNMM:mg8SNgINgRaeIdKMUdKaea8RaINg8RaeId3MUd3aea8WaINg8WaeIdaMUdaaeaIa8SNgIaeId8KMUd8Kaea8UaeIdyMUdyaqaAaQcdtfydbc8S2fgea8YaeIdbMUdbaea81aeIdlMUdlaea8ZaeIdwMUdwaea80aeIdxMUdxaeaBaeIdzMUdzaea83aeIdCMUdCaeaRaeIdKMUdKaea8RaeId3MUd3aea8WaeIdaMUdaaeaIaeId8KMUd8Kaea8UaeIdyMUdykaXclfgXcx9hmbkaLcxfhLazcifgzad6mbka8LTmbcbhLinJbbbbh8Xa3abaLcdtfgeclfydbgEcx2fgXIdwa3aeydbgzcx2fgQIdwg8Z:tg8Ra8RNaXIdbaQIdbgB:tg8Wa8WNaXIdlaQIdlg83:tg8Ua8UNMMg80a3aecwfydbgHcx2fgeIdwa8Z:tgINa8Ra8RaINa8WaeIdbaB:tg8SNa8UaeIdla83:tg8VNMMgRN:tJbbbbJbbjZa80aIaINa8Sa8SNa8Va8VNMMg81NaRaRN:tg8Y:va8YJbbbb9BEg8YNhUa81a8RNaIaRN:ta8YNh85a80a8VNa8UaRN:ta8YNh86a81a8UNa8VaRN:ta8YNh87a80a8SNa8WaRN:ta8YNh88a81a8WNa8SaRN:ta8YNh89a8Wa8VNa8Sa8UN:tgRaRNa8UaINa8Va8RN:tgRaRNa8Ra8SNaIa8WN:tgRaRNMM:rJbbbZNhRagaza8L2gwcdtfhXagaHa8L2g8NcdtfhQagaEa8L2g5cdtfhKa8Z:mh8:a83:mhZaB:mhncbhYa8Lh8AJbbbbh8VJbbbbh8YJbbbbh80Jbbbbh81Jbbbbh8ZJbbbbhBJbbbbh83JbbbbhcJbbbbh9cinasc;WbfaYfgecwfaRa85aKIdbaXIdbgI:tg8UNaUaQIdbaI:tg8SNMg8RNUdbaeclfaRa87a8UNa86a8SNMg8WNUdbaeaRa89a8UNa88a8SNMg8UNUdbaecxfaRa8:a8RNaZa8WNaIana8UNMMMgINUdbaRa8Ra8WNNa81Mh81aRa8Ra8UNNa8ZMh8ZaRa8Wa8UNNaBMhBaRaIaINNa8XMh8XaRa8RaINNa8VMh8VaRa8WaINNa8YMh8YaRa8UaINNa80Mh80aRa8Ra8RNNa83Mh83aRa8Wa8WNNacMhcaRa8Ua8UNNa9cMh9caXclfhXaKclfhKaQclfhQaYczfhYa8Acufg8Ambkavazc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyavaEc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyavaHc8S2fgea9caeIdbMUdbaeacaeIdlMUdlaea83aeIdwMUdwaeaBaeIdxMUdxaea8ZaeIdzMUdzaea81aeIdCMUdCaea80aeIdKMUdKaea8YaeId3MUd3aea8VaeIdaMUdaaea8XaeId8KMUd8KaeaRaeIdyMUdyaiawcltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaia5cltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaia8Ncltfh8AcbhXa8LhKina8AaXfgeasc;WbfaXfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaLcifgLad6mbkkcbhQdndnamcwGgJmbJbbbbh8Vcbh9ecbhocbhhxekcbh9ea8Fcbyd:m:jjjbHjjjjbbhhascxfasyd2gecdtfahBdbasaecefgXBd2ascxfaXcdtfcuahalabadaAz:fjjjbgKcltaKcjjjjiGEcbyd:m:jjjbHjjjjbbgoBdbasaecdfBd2aoaKaha3alz:gjjjbJFFuuh8VaKTmbaoheaKhXinaeIdbgRa8Va8VaR9EEh8VaeclfheaXcufgXmbkaKh9ekasydlhTdnalTmbaTclfheaTydbhKaChXalhYcbhQincbaeydbg8AaK9RaXRbbcpeGEaQfhQaXcefhXaeclfhea8AhKaYcufgYmbkaQce4hQkcuadaQ9RcifgScx2aSc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbhDascxfasyd2g9hcdtfaDBdbasa9hcefgeBd2ascxfaecdtfcuaScdtaScFFFFi0Ecbyd:m:jjjbHjjjjbbgrBdbasa9hcdfgeBd2ascxfaecdtfa8Fcbyd:m:jjjbHjjjjbbgyBdbasa9hcifgeBd2ascxfaecdtfalcbyd:m:jjjbHjjjjbbg9iBdbasa9hclfg6Bd2axaxNa8PJbbjZamclGEgUaUN:vh9cJbbbbhcdnadak9nmbdnaSci6mba8Lclth9kaDcwfh0Jbbbbh83JbbbbhcinasclfabadalaAz:cjjjbabhzcbh8Ecbh8Finaba8FcdtfhHcbheindnaAazaefydbgQcdtgEfydbgYaAaHaec;q1jjbfydbcdtfydbgXcdtgwfydbg8ASmbaCaXfRbbgLcv2aCaQfRbbgKfc;G1jjbfRbbg5aKcv2aLfg8Nc;G1jjbfRbbg8MVcFeGTmbdna8AaY9nmba8Nc:G1jjbfRbbcFeGmekaKcufhYdnaKaL9hmbaYcFeGce0mba8JaEfydbaX9hmekdndnaKclSmbaLcl9hmekdnaYcFeGce0mba8JaEfydbaX9hmdkaLcufcFeGce0mba8KawfydbaQ9hmekaDa8Ecx2fgKaXaQa8McFeGgYEBdlaKaQaXaYEBdbaKaYa5Gcb9hBdwa8Ecefh8Ekaeclfgecx9hmbkdna8Fcifg8Fad9pmbazcxfhza8EcifaS9nmekka8ETmdcbhLinaqaAaDaLcx2fgKydbgYcdtgzfydbc8S2fgeIdwa3aKydlg8Acx2fgXIdwg8WNaeIdzaXIdbg8UNaeIdaMgRaRMMa8WNaeIdlaXIdlgINaeIdCa8WNaeId3MgRaRMMaINaeIdba8UNaeIdxaINaeIdKMgRaRMMa8UNaeId8KMMM:lhRJbbbbJbbjZaeIdyg8R:va8RJbbbb9BEh8RdndnaKydwgEmbJFFuuh8YxekJbbbbJbbjZaqaAa8Acdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwa3aYcx2fgXIdwg8SNaeIdzaXIdbg8XNaeIdaMg8Ya8YMMa8SNaeIdlaXIdlg8YNaeIdCa8SNaeId3Mg8Sa8SMMa8YNaeIdba8XNaeIdxa8YNaeIdKMg8Sa8SMMa8XNaeId8KMMM:lNh8Yka8RaRNh80dna8LTmbavaYc8S2fgQIdwa8WNaQIdza8UNaQIdaMgRaRMMa8WNaQIdlaINaQIdCa8WNaQId3MgRaRMMaINaQIdba8UNaQIdxaINaQIdKMgRaRMMa8UNaQId8KMMMhRaga8Aa8L2gHcdtfhXaiaYa8L2gwcltfheaQIdyh8Sa8LhQinaXIdbg8Ra8Ra8SNaecxfIdba8WaecwfIdbNa8UaeIdbNaIaeclfIdbNMMMg8Ra8RM:tNaRMhRaXclfhXaeczfheaQcufgQmbkdndnaEmbJbbbbh8Rxekava8Ac8S2fgQIdwa3aYcx2fgeIdwg8UNaQIdzaeIdbgINaQIdaMg8Ra8RMMa8UNaQIdlaeIdlg8SNaQIdCa8UNaQId3Mg8Ra8RMMa8SNaQIdbaINaQIdxa8SNaQIdKMg8Ra8RMMaINaQId8KMMMh8RagawcdtfhXaiaHcltfheaQIdyh8Xa8LhQinaXIdbg8Wa8Wa8XNaecxfIdba8UaecwfIdbNaIaeIdbNa8SaeclfIdbNMMMg8Wa8WM:tNa8RMh8RaXclfhXaeczfheaQcufgQmbka8R:lh8Rka80aR:lMh80a8Ya8RMh8YaCaYfRbbcd9hmbdna8Ka8Ja8Jazfydba8ASEaaazfydbgHcdtfydbgzcu9hmbaaa8AcdtfydbhzkavaHc8S2fgQIdwa3azcx2fgeIdwg8WNaQIdzaeIdbg8UNaQIdaMgRaRMMa8WNaQIdlaeIdlgINaQIdCa8WNaQId3MgRaRMMaINaQIdba8UNaQIdxaINaQIdKMgRaRMMa8UNaQId8KMMMhRagaza8L2gwcdtfhXaiaHa8L2g8NcltfheaQIdyh8Sa8LhQinaXIdbg8Ra8Ra8SNaecxfIdba8WaecwfIdbNa8UaeIdbNaIaeclfIdbNMMMg8Ra8RM:tNaRMhRaXclfhXaeczfheaQcufgQmbkdndnaEmbJbbbbh8Rxekavazc8S2fgQIdwa3aHcx2fgeIdwg8UNaQIdzaeIdbgINaQIdaMg8Ra8RMMa8UNaQIdlaeIdlg8SNaQIdCa8UNaQId3Mg8Ra8RMMa8SNaQIdbaINaQIdxa8SNaQIdKMg8Ra8RMMaINaQId8KMMMh8Raga8NcdtfhXaiawcltfheaQIdyh8Xa8LhQinaXIdbg8Wa8Wa8XNaecxfIdba8UaecwfIdbNaIaeIdbNa8SaeclfIdbNMMMg8Wa8WM:tNa8RMh8RaXclfhXaeczfheaQcufgQmbka8R:lh8Rka80aR:lMh80a8Ya8RMh8YkaKa80a8Ya80a8Y9FgeEUdwaKa8AaYaeaETVgeEBdlaKaYa8AaeEBdbaLcefgLa8E9hmbkasc;Wbfcbcj;qbz:ojjjb8Aa0hea8EhXinasc;WbfaeydbcA4cF8FGgQcFAaQcFA6EcdtfgQaQydbcefBdbaecxfheaXcufgXmbkcbhecbhXinasc;WbfaefgQydbhKaQaXBdbaKaXfhXaeclfgecj;qb9hmbkcbhea0hXinasc;WbfaXydbcA4cF8FGgQcFAaQcFA6EcdtfgQaQydbgQcefBdbaraQcdtfaeBdbaXcxfhXa8Eaecefge9hmbkadak9RgQci9Uh9mdnalTmbcbheayhXinaXaeBdbaXclfhXalaecefge9hmbkkcbh9na9icbalz:ojjjbh8FaQcO9Uh9oa9mce4h9pasydwh9qcbh8Mcbh5dninaDara5cdtfydbcx2fg8NIdwgRa9c9Emea8Ma9m9pmeJFFuuh8Rdna9pa8E9pmbaDara9pcdtfydbcx2fIdwJbb;aZNh8RkdnaRa8R9ETmbaRac9ETmba8Ma9o0mdkdna8FaAa8NydlgHcdtg9rfydbgKfg9sRbba8FaAa8Nydbgzcdtg9tfydbgefg9uRbbVmbaCazfRbbh9vdnaTaecdtfgXclfydbgQaXydbgXSmbaQaX9RhYa3aKcx2fhLa3aecx2fhEa9qaXcitfhecbhXcehwdnindnayaeydbcdtfydbgQaKSmbayaeclfydbcdtfydbg8AaKSmbaQa8ASmba3a8Acx2fg8AIdba3aQcx2fgQIdbg8W:tgRaEIdlaQIdlg8U:tg8XNaEIdba8W:tg8Ya8AIdla8U:tg8RN:tgIaRaLIdla8U:tg80NaLIdba8W:tg81a8RN:tg8UNa8RaEIdwaQIdwg8S:tg8ZNa8Xa8AIdwa8S:tg8WN:tg8Xa8RaLIdwa8S:tgBNa80a8WN:tg8RNa8Wa8YNa8ZaRN:tg8Sa8Wa81NaBaRN:tgRNMMaIaINa8Xa8XNa8Sa8SNMMa8Ua8UNa8Ra8RNaRaRNMMN:rJbbj8:N9FmdkaecwfheaXcefgXaY6hwaYaX9hmbkkawceGTmba9pcefh9pxekdndndndna9vc9:fPdebdkazheinayaecdtgefaHBdbaaaefydbgeaz9hmbxikkdna8Ka8Ja8Ja9tfydbaHSEaaa9tfydbgzcdtfydbgecu9hmbaaa9rfydbhekaya9tfaHBdbaehHkayazcdtfaHBdbka9uce86bba9sce86bba8NIdwgRacacaR9DEhca9ncefh9ncecda9vceSEa8Mfh8Mka5cefg5a8E9hmbkka9nTmddnalTmbcbh8AcbhEindnayaEcdtgefydbgQaESmbaAaQcdtfydbhzdnaEaAaefydb9hgHmbaqazc8S2fgeaqaEc8S2fgXIdbaeIdbMUdbaeaXIdlaeIdlMUdlaeaXIdwaeIdwMUdwaeaXIdxaeIdxMUdxaeaXIdzaeIdzMUdzaeaXIdCaeIdCMUdCaeaXIdKaeIdKMUdKaeaXId3aeId3MUd3aeaXIdaaeIdaMUdaaeaXId8KaeId8KMUd8KaeaXIdyaeIdyMUdyka8LTmbavaQc8S2fgeavaEc8S2gwfgXIdbaeIdbMUdbaeaXIdlaeIdlMUdlaeaXIdwaeIdwMUdwaeaXIdxaeIdxMUdxaeaXIdzaeIdzMUdzaeaXIdCaeIdCMUdCaeaXIdKaeIdKMUdKaeaXId3aeId3MUd3aeaXIdaaeIdaMUdaaeaXId8KaeId8KMUd8KaeaXIdyaeIdyMUdya9kaQ2hLaihXa8LhKinaXaLfgeaXa8AfgQIdbaeIdbMUdbaeclfgYaQclfIdbaYIdbMUdbaecwfgYaQcwfIdbaYIdbMUdbaecxfgeaQcxfIdbaeIdbMUdbaXczfhXaKcufgKmbkaHmbJbbbbJbbjZaqawfgeIdygR:vaRJbbbb9BEaeIdwa3azcx2fgXIdwgRNaeIdzaXIdbg8RNaeIdaMg8Wa8WMMaRNaeIdlaXIdlg8WNaeIdCaRNaeId3MgRaRMMa8WNaeIdba8RNaeIdxa8WNaeIdKMgRaRMMa8RNaeId8KMMM:lNgRa83a83aR9DEh83ka8Aa9kfh8AaEcefgEal9hmbkcbhXa8JheindnaeydbgQcuSmbdnaXayaQcdtgKfydbgQ9hmbcuhQa8JaKfydbgKcuSmbayaKcdtfydbhQkaeaQBdbkaeclfhealaXcefgX9hmbkcbhXa8KheindnaeydbgQcuSmbdnaXayaQcdtgKfydbgQ9hmbcuhQa8KaKfydbgKcuSmbayaKcdtfydbhQkaeaQBdbkaeclfhealaXcefgX9hmbkka83aca8LEh83cbhKabhecbhYindnayaeydbcdtfydbgXayaeclfydbcdtfydbgQSmbaXayaecwfydbcdtfydbg8ASmbaQa8ASmbabaKcdtfgLaXBdbaLcwfa8ABdbaLclfaQBdbaKcifhKkaecxfheaYcifgYad6mbkdndnaJTmbaKak9nmba8Va839FTmbcbhdabhecbhXindnaoahaeydbgQcdtfydbcdtfIdba839ETmbabadcdtfgYaQBdbaYclfaeclfydbBdbaYcwfaecwfydbBdbadcifhdkaecxfheaXcifgXaK6mbkJFFuuh8Va9eTmeaohea9ehXJFFuuhRinaeIdbg8RaRaRa8R9EEg8WaRa8Ra839EgQEhRa8Wa8VaQEh8VaeclfheaXcufgXmbxdkkaKhdkadak0mbxdkkasclfabadalaAz:cjjjbkdndnadak0mbadhXxekdnaJmbadhXxekdna8Va9c9FmbadhXxekina8VJbb;aZNgRa9caRa9c9DEh8WJbbbbhRdna9eTmbaohea9ehAinaeIdbg8RaRa8Ra8W9FEaRa8RaR9EEhRaeclfheaAcufgAmbkkcbhXabhecbhAindnaoahaeydbgQcdtfydbcdtfIdba8W9ETmbabaXcdtfgKaQBdbaKclfaeclfydbBdbaKcwfaecwfydbBdbaXcifhXkaecxfheaAcifgAad6mbkJFFuuh8Vdna9eTmbaohea9ehAJFFuuh8RinaeIdbg8Ua8Ra8Ra8U9EEgIa8Ra8Ua8W9EgQEh8RaIa8VaQEh8VaeclfheaAcufgAmbkkdnaXad9hmbadhXxdkaRacacaR9DEhcaXak9nmeaXhda8Va9c9FmbkkdnamcjjjjlGTmbaOmbaXTmbcbh8AabheinaCaeydbgKfRbbc3thLaecwfgEydbhAdndna8JaKcdtgHfydbaeclfgzydbgQSmbcbhYa8KaQcdtfydbaK9hmekcjjjj94hYkaeaLaYVaKVBdbaCaQfRbbc3thLdndna8JaQcdtfydbaASmbcbhYa8KaAcdtfydbaQ9hmekcjjjj94hYkazaLaYVaQVBdbaCaAfRbbc3thYdndna8JaAcdtfydbaKSmbcbhQa8KaHfydbaA9hmekcjjjj94hQkaEaYaQVaAVBdbaecxfhea8Acifg8AaX6mbkkdnaOTmbaXTmbaXheinabaOabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPaUac:rNUdbka9hcdtascxffcxfhednina6Tmeaeydbcbyd1:jjjbH:bjjjbbaec98fhea6cufh6xbkkasc;W;qbf8KjjjjbaXk;Yieouabydlhvabydbclfcbaicdtz:ojjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd:m:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:ojjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd1:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk;Qodvuv998Jjjjjbca9Rgvczfcwfcbyd11jjbBdbavcb8Pdj1jjb83izavcwfcbydN1jjbBdbavcb8Pd:m1jjb83ibdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdbavIdzgk:tgqaqJbbbb9DEgqavIdlavIdCgx:tgmamaq9DEgqavIdwavIdKgm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc;a1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:ojjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:DCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ojjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd:m:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd:m:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd:m:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ojjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:ojjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd:m:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ojjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ojjjb8AcbhDcbhekawaecbyd:m:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:ojjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd:m:jjjbHjjjjbbgeBdaawcoBd2awaicbyd:m:jjjbHjjjjbbg3Bd8KaecFeaYz:ojjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:njjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd1:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:ojjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(s){(r=s.instance).exports.__wasm_call_ctors()});function t(s){if(!s)throw new Error("Assertion failed")}function i(s){return new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}function n(s,c,u,A,d,b,h,l){var g=r.exports.sbrk,m=g(4*l),E=g(u*A),p=g(u*b),C=new Uint8Array(r.exports.memory.buffer);C.set(i(c),E),d&&C.set(i(d),p);var I=s(m,E,u,A,p,b,h,l);new Uint8Array(r.exports.memory.buffer);var x=new Uint32Array(I);return i(x).set(C.subarray(m,m+4*I)),g(m-g(0)),x}var o={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1<<30}})(),function(){var r,e=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(o){for(var s=new Uint8Array(o.length),c=0;c<o.length;++c){var u=o.charCodeAt(c);s[c]=u>96?u-97:u>64?u-39:u+4}var A=0;for(c=0;c<o.length;++c)s[A++]=s[c]<60?e[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,A)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiOHdilvorwDqqkbiibeilve9Weiiviebeoweuec;G:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;Q9BHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:njjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;y1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;y1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;y1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;y1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;y1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;y1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:njjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;y1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:njjjbhYamcuaLcK2alcjjjjd0Ecbyd;y1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;y1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;y1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;y1jjbHjjjjbbgABd:4waAcFeasz:njjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:njjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:njjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;u1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:njjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:njjjb8Aarc;Gbfcbavz:njjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:mjjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(o){(r=o.instance).exports.__wasm_call_ctors()});function t(o){if(!o)throw new Error("Assertion failed")}function i(o){return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}function n(o){var s=new Float32Array(r.exports.memory.buffer,o,12);return{centerX:s[0],centerY:s[1],centerZ:s[2],radius:s[3],coneApexX:s[4],coneApexY:s[5],coneApexZ:s[6],coneAxisX:s[7],coneAxisY:s[8],coneAxisZ:s[9],coneCutoff:s[10]}}}();let ca=0;class ln{constructor(e){if(this.downloadParallelism=e.downloadParallelism==null?8:e.downloadParallelism,this.timeout=e.timeout!=null?e.timeout:5e3,this.renderer=e.renderer,this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=e.proxy,e&&(this.meshCallback=e.meshCallback,this.pointsCallback=e.pointsCallback,e.maxCachedItems!=null&&(this.maxCachedItems=e.maxCachedItems)),this.gltfLoader=new Oi,e&&e.dracoLoader)this.gltfLoader.setDRACOLoader(e.dracoLoader),this.hasDracoLoader=!0;else{const a=new Hi;a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=a,this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(e&&e.ktx2Loader)this.gltfLoader.setKTX2Loader(e.ktx2Loader),this.hasKTX2Loader=!0;else if(e&&e.renderer){const a=new Je;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer),this.ktx2loader=a,this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(hn),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new qi(this.gltfLoader),this.splatsDecoder=new To(this.gltfLoader,this.renderer),this.cache=new zi,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const e=this;ca<e.downloadParallelism&&e._download(),e._loadBatch()}_scheduleDownload(e){this.downloads.unshift(e)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const e=this.nextDownloads.shift();e&&e.shouldDoDownload()&&e.doDownload()}}while(this.concurrentDownloads<this.downloadParallelism)}_meshReceived(e,a,t,i,n,o,s){this.ready.unshift([e,a,t,i,n,o,s])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const e=this.nextReady.shift();if(!e)return;const a=e[0],t=e[1],i=e[2],n=a.get(i);n&&t[i]&&Object.keys(t[i]).forEach(o=>{const s=t[i][o];s&&(s(n),t[i][o]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let e=Number.POSITIVE_INFINITY,a=-1;for(let s=this.downloads.length-1;s>=0;s--)this.downloads[s].shouldDoDownload()?this.downloads[s].distanceFunction||this.nextDownloads.push(this.downloads.splice(s,1)[0]):this.downloads.splice(s,1);if(this.nextDownloads.length>0)return;let t,i=0,n=Number.MAX_SAFE_INTEGER,o=-1;for(let s=this.downloads.length-1;s>=0;s--){const c=this.downloads[s].distanceFunction();c<=e&&(e=c,a=s),i=Math.max(this.downloads[s].level),this.downloads[s].loadingStrategy!="IMMEDIATE"&&this.downloads[s].level<n&&(n=this.downloads[s].level,o=s)}if(i>n+4?t=this.downloads.splice(o,1).pop():a>=0&&(t=this.downloads.splice(a,1).pop()),t){this.nextDownloads.push(t);const s=t.getSiblings();for(let c=this.downloads.length-1;c>=0;c--)s.map(u=>u.uuid).includes(this.downloads[c].uuid)&&this.nextDownloads.push(this.downloads.splice(c,1).pop())}}_getNextReady(){let e=Number.POSITIVE_INFINITY,a=-1;for(let t=this.ready.length-1;t>=0;t--)this.ready[t][3]||this.nextReady.push(this.ready.splice(t,1)[0]);if(!(this.nextReady.length>0)){for(let t=this.ready.length-1;t>=0;t--){const i=this.ready[t][3]()*this.ready[t][5];i<=e&&(e=i,a=t)}if(a>=0){const t=this.ready.splice(a,1).pop();this.nextReady.push(t);const i=t[4]();for(let n=this.ready.length-1;n>=0;n--)i.map(o=>o.uuid).includes(this.ready[n][6])&&this.nextReady.push(this.ready.splice(n,1).pop())}}}get(e,a,t,i,n,o,s,c,u,A,d,b){const h=this,l=Xr(t),g=new AbortController;if(e.signal.addEventListener("abort",()=>{h.register[l]&&Object.keys(h.register[l]).length!=0||g.abort("user abort")}),!(t.includes(".b3dm")||t.includes(".json")||t.includes(".gltf")||t.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(h.register[l]||(h.register[l]={}),h.register[l][a]&&console.error(" a tile should only be loaded once"),h.register[l][a]=i,h.cache.get(l))this._meshReceived(h.cache,h.register,l,n,o,s,a);else{let m;t.includes(".b3dm")?m=()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),ca++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(p=>this.b3dmDecoder.parseB3DM(p,C=>{h.meshCallback(C,d)},u,A)).then(p=>{h.cache.put(l,p),this._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()}).catch(p=>{}).finally(()=>{ca--})}:t.includes(".glb")||t.includes(".gltf")?m=b?()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),ca++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(p=>this.splatsDecoder.parseSplats(p,u,A,b)).then(p=>{h.cache.put(l,p),h._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()}).catch(p=>{}).finally(()=>{ca--})}:()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),ca++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.arrayBuffer()}).then(async p=>{await async function(C){return new Promise(I=>{const x=setInterval(()=>{C.hasDracoLoader&&!C.dracoLoader||C.hasKTX2Loader&&!C.ktx2Loader||(clearInterval(x),I())},10)})}(this.gltfLoader),this.gltfLoader.parse(p,null,C=>{C.scene||(C.scene=new G.Object3D),C.scene.asset=C.asset,u&&C.scene.applyMatrix4(this.zUpToYUpMatrix),C.scene.traverse(I=>{I.isMesh&&(A&&I.applyMatrix4(this.zUpToYUpMatrix),h.meshCallback&&h.meshCallback(I,d)),I.isPoints&&h.pointsCallback&&h.pointsCallback(I,d)}),h.cache.put(l,C.scene),h._meshReceived(h.cache,h.register,l,n,o,s,a),h._checkSize()})}).catch(p=>{p!=="user abort"&&p.code}).finally(()=>{ca--})}:t.includes(".json")&&(m=()=>{var E;E=h.proxy?()=>fetch(h.proxy,{method:"POST",body:t,signal:g.signal}):()=>fetch(t,{signal:g.signal}),ca++,E().then(p=>{if(!p.ok)throw console.error("could not load tile with path : "+t),new Error(`couldn't load "${t}". Request failed with status ${p.status} : ${p.statusText}`);return p.json()}).then(p=>Ir(p,t)).then(p=>{h.cache.put(l,p),h._meshReceived(h.cache,h.register,l),h._checkSize()}).catch(p=>{console.error(p)}).finally(()=>{ca--})}),this._scheduleDownload({shouldDoDownload:()=>!e.signal.aborted&&!!h.register[l]&&Object.keys(h.register[l]).length>0&&!h.cache.get(l),doDownload:m,distanceFunction:n,getSiblings:o,level:s,loadingStrategy:c,uuid:a})}}clear(){const e=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=e}invalidate(e,a){const t=Xr(e),i=this;i.register[t]&&setTimeout(()=>{i.register&&i.register[t]&&(delete i.register[t][a],i._checkSize())},i.timeout)}dispose(){let e=this.cache.head();for(this._disposeEntryContent(e);(e=e.next()).key!=null;)this._disposeEntryContent(e);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const e=this;let a=0;for(;e.cache.size()>e.maxCachedItems&&a<e.cache.size();){a++;const t=e.cache.head(),i=e.register[t.key];i&&(Object.keys(i).length>0?(e.cache.remove(t.key),e.cache.put(t.key,t.value)):(e.cache.remove(t.key),delete e.register[t.key],e._disposeEntryContent(t)))}}_disposeEntryContent(e){e.value&&(e.value.isSplatsBatch?e.value.remove():e.value.traverse&&e.value.traverse(a=>{if(a.material)if(a.material.length)for(let t=0;t<a.material.length;++t)a.material[t].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}))}}function Xr(r){for(var e=r.split("/"),a=[],t=0,i=0;i<e.length;i++){var n=e[i];n!=="."&&n!==""&&n!==".."?a[t++]=n:n===".."&&t>0&&t--}if(t===0)return"/";var o="";for(i=0;i<t;i++)o+="/"+a[i];return o}var Yr,Zr,Ba=function(){if(Zr)return Yr;function r(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function e(t,i){for(var n,o="",s=0,c=-1,u=0,A=0;A<=t.length;++A){if(A<t.length)n=t.charCodeAt(A);else{if(n===47)break;n=47}if(n===47){if(!(c===A-1||u===1))if(c!==A-1&&u===2){if(o.length<2||s!==2||o.charCodeAt(o.length-1)!==46||o.charCodeAt(o.length-2)!==46){if(o.length>2){var d=o.lastIndexOf("/");if(d!==o.length-1){d===-1?(o="",s=0):s=(o=o.slice(0,d)).length-1-o.lastIndexOf("/"),c=A,u=0;continue}}else if(o.length===2||o.length===1){o="",s=0,c=A,u=0;continue}}i&&(o.length>0?o+="/..":o="..",s=2)}else o.length>0?o+="/"+t.slice(c+1,A):o=t.slice(c+1,A),s=A-c-1;c=A,u=0}else n===46&&u!==-1?++u:u=-1}return o}Zr=1;var a={resolve:function(){for(var t,i="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){var s;o>=0?s=arguments[o]:(t===void 0&&(t=process.cwd()),s=t),r(s),s.length!==0&&(i=s+"/"+i,n=s.charCodeAt(0)===47)}return i=e(i,!n),n?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(r(t),t.length===0)return".";var i=t.charCodeAt(0)===47,n=t.charCodeAt(t.length-1)===47;return(t=e(t,!i)).length!==0||i||(t="."),t.length>0&&n&&(t+="/"),i?"/"+t:t},isAbsolute:function(t){return r(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var t,i=0;i<arguments.length;++i){var n=arguments[i];r(n),n.length>0&&(t===void 0?t=n:t+="/"+n)}return t===void 0?".":a.normalize(t)},relative:function(t,i){if(r(t),r(i),t===i||(t=a.resolve(t))===(i=a.resolve(i)))return"";for(var n=1;n<t.length&&t.charCodeAt(n)===47;++n);for(var o=t.length,s=o-n,c=1;c<i.length&&i.charCodeAt(c)===47;++c);for(var u=i.length-c,A=s<u?s:u,d=-1,b=0;b<=A;++b){if(b===A){if(u>A){if(i.charCodeAt(c+b)===47)return i.slice(c+b+1);if(b===0)return i.slice(c+b)}else s>A&&(t.charCodeAt(n+b)===47?d=b:b===0&&(d=0));break}var h=t.charCodeAt(n+b);if(h!==i.charCodeAt(c+b))break;h===47&&(d=b)}var l="";for(b=n+d+1;b<=o;++b)b!==o&&t.charCodeAt(b)!==47||(l.length===0?l+="..":l+="/..");return l.length>0?l+i.slice(c+d):(c+=d,i.charCodeAt(c)===47&&++c,i.slice(c))},_makeLong:function(t){return t},dirname:function(t){if(r(t),t.length===0)return".";for(var i=t.charCodeAt(0),n=i===47,o=-1,s=!0,c=t.length-1;c>=1;--c)if((i=t.charCodeAt(c))===47){if(!s){o=c;break}}else s=!1;return o===-1?n?"/":".":n&&o===1?"//":t.slice(0,o)},basename:function(t,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');r(t);var n,o=0,s=-1,c=!0;if(i!==void 0&&i.length>0&&i.length<=t.length){if(i.length===t.length&&i===t)return"";var u=i.length-1,A=-1;for(n=t.length-1;n>=0;--n){var d=t.charCodeAt(n);if(d===47){if(!c){o=n+1;break}}else A===-1&&(c=!1,A=n+1),u>=0&&(d===i.charCodeAt(u)?--u==-1&&(s=n):(u=-1,s=A))}return o===s?s=A:s===-1&&(s=t.length),t.slice(o,s)}for(n=t.length-1;n>=0;--n)if(t.charCodeAt(n)===47){if(!c){o=n+1;break}}else s===-1&&(c=!1,s=n+1);return s===-1?"":t.slice(o,s)},extname:function(t){r(t);for(var i=-1,n=0,o=-1,s=!0,c=0,u=t.length-1;u>=0;--u){var A=t.charCodeAt(u);if(A!==47)o===-1&&(s=!1,o=u+1),A===46?i===-1?i=u:c!==1&&(c=1):i!==-1&&(c=-1);else if(!s){n=u+1;break}}return i===-1||o===-1||c===0||c===1&&i===o-1&&i===n+1?"":t.slice(i,o)},format:function(t){if(t===null||typeof t!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(i,n){var o=n.dir||n.root,s=n.base||(n.name||"")+(n.ext||"");return o?o===n.root?o+s:o+i+s:s}("/",t)},parse:function(t){r(t);var i={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return i;var n,o=t.charCodeAt(0),s=o===47;s?(i.root="/",n=1):n=0;for(var c=-1,u=0,A=-1,d=!0,b=t.length-1,h=0;b>=n;--b)if((o=t.charCodeAt(b))!==47)A===-1&&(d=!1,A=b+1),o===46?c===-1?c=b:h!==1&&(h=1):c!==-1&&(h=-1);else if(!d){u=b+1;break}return c===-1||A===-1||h===0||h===1&&c===A-1&&c===u+1?A!==-1&&(i.base=i.name=u===0&&s?t.slice(1,A):t.slice(u,A)):(u===0&&s?(i.name=t.slice(1,c),i.base=t.slice(1,A)):(i.name=t.slice(u,c),i.base=t.slice(u,A)),i.ext=t.slice(c,A)),u>0?i.dir=t.slice(0,u-1):s&&(i.dir="/"),i},sep:"/",delimiter:":",win32:null,posix:null};return a.posix=a,Yr=a}();function Bt(){return Bt=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var t in a)({}).hasOwnProperty.call(a,t)&&(r[t]=a[t])}return r},Bt.apply(null,arguments)}var bn={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function Ts(r,e){if(gt(r,e))return r[e];throw typeof r[e]=="function"&&function(a,t){return a==null||typeof a[t]!="function"||yt(a,t)&&Object.getPrototypeOf&&t in Object.getPrototypeOf(a)?!1:yt(Us,t)?!0:!(t in Object.prototype||t in Function.prototype)}(r,e)?new Error('Cannot access method "'+e+'" as a property'):new Error('No access to property "'+e+'"')}function gt(r,e){return!(!function(a){return typeof a=="object"&&a&&a.constructor===Object}(r)&&!Array.isArray(r))&&(!!yt(Ns,e)||!(e in Object.prototype)&&!(e in Function.prototype))}var Ns={length:!0,name:!0},Us={toString:!0,valueOf:!0,toLocaleString:!0};class Ls{constructor(e){this.wrappedObject=e,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(e=>this.has(e)).values()}get(e){return Ts(this.wrappedObject,e)}set(e,a){return function(t,i,n){if(gt(t,i))return t[i]=n,n;throw new Error('No access to property "'+i+'"')}(this.wrappedObject,e,a),this}has(e){return gt(this.wrappedObject,e)&&e in this.wrappedObject}entries(){return function(e,a){return{next:()=>{var t=e.next();return t.done?t:{value:a(t.value),done:!1}}}}(this.keys(),e=>[e,this.get(e)])}forEach(e){for(var a of this.keys())e(this.get(a),a,this)}delete(e){gt(this.wrappedObject,e)&&delete this.wrappedObject[e]}clear(){for(var e of this.keys())this.delete(e)}get size(){return Object.keys(this.wrappedObject).length}}function be(r){return typeof r=="number"}function Fe(r){return!(!r||typeof r!="object"||typeof r.constructor!="function")&&(r.isBigNumber===!0&&typeof r.constructor.prototype=="object"&&r.constructor.prototype.isBigNumber===!0||typeof r.constructor.isDecimal=="function"&&r.constructor.isDecimal(r)===!0)}function Gs(r){return typeof r=="bigint"}function gn(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isComplex===!0||!1}function fn(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isFraction===!0||!1}function pn(r){return r&&r.constructor.prototype.isUnit===!0||!1}function oa(r){return typeof r=="string"}var Qe=Array.isArray;function xe(r){return r&&r.constructor.prototype.isMatrix===!0||!1}function Dt(r){return Array.isArray(r)||xe(r)}function _s(r){return r&&r.isDenseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function zs(r){return r&&r.isSparseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function Ps(r){return r&&r.constructor.prototype.isRange===!0||!1}function Br(r){return r&&r.constructor.prototype.isIndex===!0||!1}function qs(r){return typeof r=="boolean"}function Ks(r){return r&&r.constructor.prototype.isResultSet===!0||!1}function Os(r){return r&&r.constructor.prototype.isHelp===!0||!1}function Js(r){return typeof r=="function"}function Vs(r){return r instanceof Date}function Hs(r){return r instanceof RegExp}function Dr(r){return!(!r||typeof r!="object"||r.constructor!==Object||gn(r)||fn(r))}function Ws(r){return!!r&&(r instanceof Map||r instanceof Ls||typeof r.set=="function"&&typeof r.get=="function"&&typeof r.keys=="function"&&typeof r.has=="function")}function Xs(r){return r===null}function Ys(r){return r===void 0}function Zs(r){return r&&r.isAccessorNode===!0&&r.constructor.prototype.isNode===!0||!1}function $s(r){return r&&r.isArrayNode===!0&&r.constructor.prototype.isNode===!0||!1}function eA(r){return r&&r.isAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function aA(r){return r&&r.isBlockNode===!0&&r.constructor.prototype.isNode===!0||!1}function tA(r){return r&&r.isConditionalNode===!0&&r.constructor.prototype.isNode===!0||!1}function rA(r){return r&&r.isConstantNode===!0&&r.constructor.prototype.isNode===!0||!1}function iA(r){return r&&r.isFunctionAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function nA(r){return r&&r.isFunctionNode===!0&&r.constructor.prototype.isNode===!0||!1}function oA(r){return r&&r.isIndexNode===!0&&r.constructor.prototype.isNode===!0||!1}function sA(r){return r&&r.isNode===!0&&r.constructor.prototype.isNode===!0||!1}function AA(r){return r&&r.isObjectNode===!0&&r.constructor.prototype.isNode===!0||!1}function cA(r){return r&&r.isOperatorNode===!0&&r.constructor.prototype.isNode===!0||!1}function uA(r){return r&&r.isParenthesisNode===!0&&r.constructor.prototype.isNode===!0||!1}function dA(r){return r&&r.isRangeNode===!0&&r.constructor.prototype.isNode===!0||!1}function hA(r){return r&&r.isRelationalNode===!0&&r.constructor.prototype.isNode===!0||!1}function lA(r){return r&&r.isSymbolNode===!0&&r.constructor.prototype.isNode===!0||!1}function bA(r){return r&&r.constructor.prototype.isChain===!0||!1}function Da(r){var e=typeof r;return e==="object"?r===null?"null":Fe(r)?"BigNumber":r.constructor&&r.constructor.name?r.constructor.name:"Object":e}function we(r){var e=typeof r;if(e==="number"||e==="bigint"||e==="string"||e==="boolean"||r==null)return r;if(typeof r.clone=="function")return r.clone();if(Array.isArray(r))return r.map(function(a){return we(a)});if(r instanceof Date)return new Date(r.valueOf());if(Fe(r))return r;if(Dr(r))return function(a,t){var i={};for(var n in a)yt(a,n)&&(i[n]=t(a[n]));return i}(r,we);if(e==="function")return r;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(r,")"))}function Ja(r,e){var a,t,i;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(t=0,i=r.length;t<i;t++)if(!Ja(r[t],e[t]))return!1;return!0}if(typeof r=="function")return r===e;if(r instanceof Object){if(Array.isArray(e)||!(e instanceof Object))return!1;for(a in r)if(!(a in e)||!Ja(r[a],e[a]))return!1;for(a in e)if(!(a in r))return!1;return!0}return r===e}function yt(r,e){return r&&Object.hasOwnProperty.call(r,e)}var ka=function(r){if(r)throw new Error(`The global config is readonly.
6
+ */class Vi{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,a,e=!1){this.has(A)?this._data.set(A,a):(this._data.set(A,a),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):e?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const a=this._link.get(A);return a?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const a=this.previousKey(A);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}nextKey(A){const a=this._link.get(A);return a?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const a=this.nextKey(A);return{key:a,value:this.get(a),next:()=>this.next(a),previous:()=>this.previous(a)}}remove(A){const a=this._data.get(A);if(a!=null)if(this.size()===1)this.reset();else{if(A===this._head){const e=this._link.get(this._head);this._link.get(e.next).previous=null,this._head=e.next}else if(A===this._tail){const e=this._link.get(this._tail);this._link.get(e.previous).next=null,this._tail=e.previous}else{const e=this._link.get(A),t=this._link.get(e.previous),i=this._link.get(e.next);t.next=e.next,i.previous=e.previous}this._link.delete(A),this._data.delete(A)}return a}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const a=[];let e=this._head;for(;e!=null;)a.push({key:e,value:this.get(e)}),e=this.nextKey(e);return a}return Array.from(this.keys()).map(a=>({key:a,value:this.get(a)}))}}const EB=new TextDecoder;class Xi{constructor(A,a,e,t){this.buffer=A,this.binOffset=a+e,this.binLength=t;let i=null;if(e!==0)try{const I=new Uint8Array(A,a,e);i=JSON.parse(EB.decode(I))}catch{i={}}else i={};this.header=i}getKeys(){return Object.keys(this.header)}getData(A,a,e=null,t=null){const i=this.header;if(!(A in i))return null;const I=i[A];if(I instanceof Object){if(Array.isArray(I))return I;{const{buffer:B,binOffset:r,binLength:o}=this,n=I.byteOffset||0,C=I.type||t,Q=I.componentType||e;if("type"in I&&t&&I.type!==t)throw new Error("FeatureTable: Specified type does not match expected type.");let E,s;switch(C){case"SCALAR":E=1;break;case"VEC2":E=2;break;case"VEC3":E=3;break;case"VEC4":E=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=r+n,d=a*E;switch(Q){case"BYTE":s=new Int8Array(B,c,d);break;case"UNSIGNED_BYTE":s=new Uint8Array(B,c,d);break;case"SHORT":s=new Int16Array(B,c,d);break;case"UNSIGNED_SHORT":s=new Uint16Array(B,c,d);break;case"INT":s=new Int32Array(B,c,d);break;case"UNSIGNED_INT":s=new Uint32Array(B,c,d);break;case"FLOAT":s=new Float32Array(B,c,d);break;case"DOUBLE":s=new Float64Array(B,c,d);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+d*s.BYTES_PER_ELEMENT>r+o)throw new Error("FeatureTable: Feature data read outside binary body length.");return s}}return I}}class QB extends Xi{constructor(A,a,e,t,i){super(A,e,t,i),this.batchSize=a}getData(A,a=null,e=null){return super.getData(A,this.batchSize,a,e)}}function Ot(g){let A,a,e,t=-1,i=0;for(let o=0;o<g.length;++o){const n=g[o];if(A===void 0&&(A=n.array.constructor),A!==n.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(a===void 0&&(a=n.itemSize),a!==n.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(e===void 0&&(e=n.normalized),e!==n.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(t===-1&&(t=n.gpuType),t!==n.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;i+=n.count*a}const I=new A(i),B=new f.BufferAttribute(I,a,e);let r=0;for(let o=0;o<g.length;++o){const n=g[o];if(n.isInterleavedBufferAttribute){const C=r/a;for(let Q=0,E=n.count;Q<E;Q++)for(let s=0;s<a;s++){const c=n.getComponent(Q,s);B.setComponent(Q+C,s,c)}}else I.set(n.array,r);r+=n.count*a}return t!==void 0&&(B.gpuType=t),B}function Pt(g,A){if(A===f.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),g;if(A===f.TriangleFanDrawMode||A===f.TriangleStripDrawMode){let a=g.getIndex();if(a===null){const I=[],B=g.getAttribute("position");if(B===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),g;for(let r=0;r<B.count;r++)I.push(r);g.setIndex(I),a=g.getIndex()}const e=a.count-2,t=[];if(A===f.TriangleFanDrawMode)for(let I=1;I<=e;I++)t.push(a.getX(0)),t.push(a.getX(I)),t.push(a.getX(I+1));else for(let I=0;I<e;I++)I%2==0?(t.push(a.getX(I)),t.push(a.getX(I+1)),t.push(a.getX(I+2))):(t.push(a.getX(I+2)),t.push(a.getX(I+1)),t.push(a.getX(I)));t.length/3!==e&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const i=g.clone();return i.setIndex(t),i.clearGroups(),i}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),g}class Zi{constructor(A){this.gltfLoader=A,this.tempMatrix=new z.Matrix4,this.zUpToYUpMatrix=new z.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,a,e,t){const i=this,I=new DataView(A),B=String.fromCharCode(I.getUint8(0))+String.fromCharCode(I.getUint8(1))+String.fromCharCode(I.getUint8(2))+String.fromCharCode(I.getUint8(3));console.assert(B==="b3dm");const r=I.getUint32(8,!0);console.assert(r===A.byteLength);const o=I.getUint32(12,!0),n=I.getUint32(16,!0),C=I.getUint32(20,!0),Q=I.getUint32(24,!0),E=new Xi(A,28,o,n),s=28+o+n;new QB(A,E.getData("BATCH_LENGTH"),s,C,Q);const c=s+C+Q,d=new Uint8Array(A,c,r-c).slice().buffer;return new Promise(async(b,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(d,null,l=>{const w=E.getData("RTC_CENTER");w?(this.tempMatrix.makeTranslation(w[0],w[1],w[2]),l.scene.applyMatrix4(this.tempMatrix)):l.userData.gltfExtensions&&l.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(l.userData.gltfExtensions.CESIUM_RTC.center[0],l.userData.gltfExtensions.CESIUM_RTC.center[1],l.userData.gltfExtensions.CESIUM_RTC.center[2]),l.scene.applyMatrix4(this.tempMatrix)),e&&l.scene.applyMatrix4(i.zUpToYUpMatrix),l.scene.asset=l.asset,l.scene.traverse(k=>{k.isMesh&&(t&&k.applyMatrix4(i.zUpToYUpMatrix),a&&a(k))}),b(l.scene)},l=>{console.error(l)})})}checkLoaderInitialized=async()=>new Promise(A=>{const a=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(a),A())},10)});parseB3DMInstanced(A,a,e,t,i){return this.parseB3DM(A,a,t,i).then(I=>{let B,r=[],o=[];I.updateWorldMatrix(!1,!0),I.traverse(C=>{C.isMesh&&(C.geometry.applyMatrix4(C.matrixWorld),r.push(C.geometry),o.push(C.material))});let n=function(C){let Q=new Set;return C.forEach(s=>{for(let c in s.attributes)Q.add(c)}),C.forEach(s=>{Q.forEach(c=>{if(!s.attributes[c]){const d=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),b=new Float32Array(d*s.getAttribute("position").count).fill(0);s.setAttribute(c,new z.BufferAttribute(b,d))}})}),function(s,c=!1){const d=s[0].index!==null,b=new Set(Object.keys(s[0].attributes)),h=new Set(Object.keys(s[0].morphAttributes)),l={},w={},k=s[0].morphTargetsRelative,M=new f.BufferGeometry;let N=0;for(let m=0;m<s.length;++m){const G=s[m];let L=0;if(d!==(G.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const x in G.attributes){if(!b.has(x))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+'. All geometries must have compatible attributes; make sure "'+x+'" attribute exists among all geometries, or in none of them.'),null;l[x]===void 0&&(l[x]=[]),l[x].push(G.attributes[x]),L++}if(L!==b.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+". Make sure all geometries have the same number of attributes."),null;if(k!==G.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const x in G.morphAttributes){if(!h.has(x))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+". .morphAttributes must be consistent throughout all geometries."),null;w[x]===void 0&&(w[x]=[]),w[x].push(G.morphAttributes[x])}if(c){let x;if(d)x=G.index.count;else{if(G.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+m+". The geometry must have either an index or a position attribute"),null;x=G.attributes.position.count}M.addGroup(N,x,m),N+=x}}if(d){let m=0;const G=[];for(let L=0;L<s.length;++L){const x=s[L].index;for(let W=0;W<x.count;++W)G.push(x.getX(W)+m);m+=s[L].attributes.position.count}M.setIndex(G)}for(const m in l){const G=Ot(l[m]);if(!G)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+m+" attribute."),null;M.setAttribute(m,G)}for(const m in w){const G=w[m][0].length;if(G===0)break;M.morphAttributes=M.morphAttributes||{},M.morphAttributes[m]=[];for(let L=0;L<G;++L){const x=[];for(let X=0;X<w[m].length;++X)x.push(w[m][X][L]);const W=Ot(x);if(!W)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+m+" morphAttribute."),null;M.morphAttributes[m].push(W)}}return M}(C,!0)}(r);return B=new z.InstancedMesh(n,o,e),B.baseMatrix=new z.Matrix4().identity(),B})}}async function sB(g={}){var A,a,e=g,t=typeof window=="object",i=typeof WorkerGlobalScope<"u",I=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(I){const{createRequire:D}=await Promise.resolve().then(()=>bB);var B=D(typeof document>"u"?require("url").pathToFileURL(__filename).href:ce&&ce.tagName.toUpperCase()==="SCRIPT"&&ce.src||new URL("threedtiles.cjs.js",document.baseURI).href)}var r,o="./this.program",n=typeof document>"u"?require("url").pathToFileURL(__filename).href:ce&&ce.tagName.toUpperCase()==="SCRIPT"&&ce.src||new URL("threedtiles.cjs.js",document.baseURI).href;if(I){var C=B("fs");n.startsWith("file:")&&B("path").dirname(B("url").fileURLToPath(n)),r=D=>(D=X(D)?new URL(D):D,C.readFileSync(D)),1<process.argv.length&&(o=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(t||i){try{new URL(".",n)}catch{}i&&(r=D=>{var u=new XMLHttpRequest;return u.open("GET",D,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)})}var Q,E,s,c,d,b,h,l,w,k,M,N,m,G,L=console.log.bind(console),x=console.error.bind(console),W=!1,X=D=>D.startsWith("file://"),eA=!1;function AA(){var D=c.buffer;d=new Int8Array(D),h=new Int16Array(D),e.HEAPU8=b=new Uint8Array(D),l=new Uint16Array(D),w=new Int32Array(D),k=new Uint32Array(D),e.HEAPF32=M=new Float32Array(D),N=new Float64Array(D),m=new BigInt64Array(D),G=new BigUint64Array(D)}var Z,nA=0,bA=null;function cA(D){var u;throw(u=e.onAbort)==null||u.call(e,D),x(D="Aborted("+D+")"),W=!0,D=new WebAssembly.RuntimeError(D+". Build with -sASSERTIONS for more info."),s?.(D),D}async function pA(D){var u=Z;try{var p=await async function(y){if(!ArrayBuffer.isView(y))if(y==Z&&Q)y=new Uint8Array(Q);else{if(!r)throw"both async and sync fetching of the wasm failed";y=r(y)}return y}(u);return await WebAssembly.instantiate(p,D)}catch(y){x(`failed to asynchronously prepare wasm: ${y}`),cA(y)}}var fA=D=>{for(;0<D.length;)D.shift()(e)},oA=[],MA=[],BA=()=>{var D=e.preRun.shift();MA.push(D)},CA={},uA=D=>{for(;D.length;){var u=D.pop();D.pop()(u)}};function yA(D){return this.N(k[D>>2])}var FA={},NA={},WA={},VA=class extends Error{constructor(D){super(D),this.name="InternalError"}},ra=(D,u,p)=>{function y(O){if((O=p(O)).length!==D.length)throw new VA("Mismatched type converter count");for(var aA=0;aA<D.length;++aA)R(D[aA],O[aA])}D.forEach(O=>WA[O]=u);var S=Array(u.length),q=[],v=0;u.forEach((O,aA)=>{NA.hasOwnProperty(O)?S[aA]=NA[O]:(q.push(O),FA.hasOwnProperty(O)||(FA[O]=[]),FA[O].push(()=>{S[aA]=NA[O],++v===q.length&&y(S)}))}),q.length===0&&y(S)},YA=D=>{for(var u="";;){var p=b[D++];if(!p)return u;u+=String.fromCharCode(p)}},QA=class extends Error{constructor(D){super(D),this.name="BindingError"}},F=D=>{throw new QA(D)};function R(D,u,p={}){return function(y,S,q={}){var v=S.name;if(!y)throw new QA(`type "${v}" must have a positive integer typeid pointer`);if(NA.hasOwnProperty(y)){if(q.wa)return;throw new QA(`Cannot register type '${v}' twice`)}NA[y]=S,delete WA[y],FA.hasOwnProperty(y)&&(S=FA[y],delete FA[y],S.forEach(O=>O()))}(D,u,p)}var U=(D,u,p)=>{switch(u){case 1:return p?y=>d[y]:y=>b[y];case 2:return p?y=>h[y>>1]:y=>l[y>>1];case 4:return p?y=>w[y>>2]:y=>k[y>>2];case 8:return p?y=>m[y>>3]:y=>G[y>>3];default:throw new TypeError(`invalid integer width (${u}): ${D}`)}},j=D=>{throw new QA(D.L.P.M.name+" instance already deleted")},H=!1,T=()=>{},V=D=>typeof FinalizationRegistry>"u"?(V=u=>u,D):(H=new FinalizationRegistry(u=>{--(u=u.L).count.value,u.count.value===0&&(u.S?u.W.Y(u.S):u.P.M.Y(u.O))}),V=u=>{var p=u.L;return p.S&&H.register(u,{L:p},u),u},T=u=>{H.unregister(u)},V(D));function K(){}var $=(D,u)=>Object.defineProperty(u,"name",{value:D}),P={},DA=(D,u,p)=>{if(D[u].R===void 0){var y=D[u];D[u]=function(...S){if(!D[u].R.hasOwnProperty(S.length))throw new QA(`Function '${p}' called with an invalid number of arguments (${S.length}) - expects one of (${D[u].R})!`);return D[u].R[S.length].apply(this,S)},D[u].R=[],D[u].R[y.aa]=y}},hA=(D,u,p)=>{if(e.hasOwnProperty(D)){if(p===void 0||e[D].R!==void 0&&e[D].R[p]!==void 0)throw new QA(`Cannot register public name '${D}' twice`);if(DA(e,D,D),e[D].R.hasOwnProperty(p))throw new QA(`Cannot register multiple overloads of a function with the same number of arguments (${p})!`);e[D].R[p]=u}else e[D]=u,e[D].aa=p};function xA(D,u,p,y,S,q,v,O){this.name=D,this.constructor=u,this.$=p,this.Y=y,this.U=S,this.ra=q,this.ea=v,this.pa=O,this.ya=[]}var OA=(D,u,p)=>{for(;u!==p;){if(!u.ea)throw new QA(`Expected null or instance of ${p.name}, got an instance of ${u.name}`);D=u.ea(D),u=u.U}return D},ia=D=>{if(D===null)return"null";var u=typeof D;return u==="object"||u==="array"||u==="function"?D.toString():""+D};function oa(D,u){if(u===null){if(this.ha)throw new QA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new QA(`Cannot pass "${ia(u)}" as a ${this.name}`);if(!u.L.O)throw new QA(`Cannot pass deleted object as a pointer of type ${this.name}`);return OA(u.L.O,u.L.P.M,this.M)}function la(D,u){if(u===null){if(this.ha)throw new QA(`null is not a valid ${this.name}`);if(this.ga){var p=this.ia();return D!==null&&D.push(this.Y,p),p}return 0}if(!u||!u.L)throw new QA(`Cannot pass "${ia(u)}" as a ${this.name}`);if(!u.L.O)throw new QA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&u.L.P.fa)throw new QA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);if(p=OA(u.L.O,u.L.P.M,this.M),this.ga){if(u.L.S===void 0)throw new QA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(u.L.W!==this)throw new QA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);p=u.L.S;break;case 1:p=u.L.S;break;case 2:if(u.L.W===this)p=u.L.S;else{var y=u.clone();p=this.za(p,xe(()=>y.delete())),D!==null&&D.push(this.Y,p)}break;default:throw new QA("Unsupporting sharing policy")}}return p}function Ja(D,u){if(u===null){if(this.ha)throw new QA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new QA(`Cannot pass "${ia(u)}" as a ${this.name}`);if(!u.L.O)throw new QA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(u.L.P.fa)throw new QA(`Cannot convert argument of type ${u.L.P.name} to parameter type ${this.name}`);return OA(u.L.O,u.L.P.M,this.M)}var Ae=(D,u,p)=>u===p?D:p.U===void 0||(D=Ae(D,u,p.U))===null?null:p.pa(D),Ng={},Ce=(D,u)=>{if(!u.P||!u.O)throw new VA("makeClassHandle requires ptr and ptrType");if(!!u.W!=!!u.S)throw new VA("Both smartPtrType and smartPtr must be specified");return u.count={value:1},V(Object.create(D,{L:{value:u,writable:!0}}))};function Ee(D,u,p,y,S,q,v,O,aA,tA,gA){this.name=D,this.M=u,this.ha=p,this.fa=y,this.ga=S,this.xa=q,this.Da=v,this.na=O,this.ia=aA,this.za=tA,this.Y=gA,S||u.U!==void 0?this.T=la:(this.T=y?oa:Ja,this.V=null)}var Oe,Pe=(D,u,p)=>{if(!e.hasOwnProperty(D))throw new VA("Replacing nonexistent public symbol");e[D].R!==void 0&&p!==void 0?e[D].R[p]=u:(e[D]=u,e[D].aa=p)},Ca=(D,u)=>{D=YA(D);var p=Oe.get(u);if(typeof p!="function")throw new QA(`unknown function pointer with signature ${D}: ${u}`);return p};class Gg extends Error{}var ze=D=>{D=vt(D);var u=YA(D);return Ka(D),u},Qe=(D,u)=>{var p=[],y={};throw u.forEach(function S(q){y[q]||NA[q]||(WA[q]?WA[q].forEach(S):(p.push(q),y[q]=!0))}),new Gg(`${D}: `+p.map(ze).join([", "]))},Re=(D,u)=>{for(var p=[],y=0;y<D;y++)p.push(k[u+4*y>>2]);return p};function We(D){for(var u=1;u<D.length;++u)if(D[u]!==null&&D[u].V===void 0)return!0;return!1}function Ne(D,u,p,y,S,q){var v=u.length;if(2>v)throw new QA("argTypes array size mismatch! Must at least get return value and 'this' types!");var O=u[1]!==null&&p!==null,aA=We(u);p=!u[0].ma;var tA=u[0],gA=u[1];for(y=[D,F,y,S,uA,tA.N.bind(tA),gA?.T.bind(gA)],S=2;S<v;++S)tA=u[S],y.push(tA.T.bind(tA));if(!aA)for(S=O?1:2;S<u.length;++S)u[S].V!==null&&y.push(u[S].V);for(aA=We(u),S=u.length-2,gA=[],tA=["fn"],O&&tA.push("thisWired"),v=0;v<S;++v)gA.push(`arg${v}`),tA.push(`arg${v}Wired`);gA=gA.join(","),tA=tA.join(","),gA=`return function (${gA}) {
7
+ `,aA&&(gA+=`var destructors = [];
8
+ `);var mA=aA?"destructors":"null",Qa="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");for(O&&(gA+=`var thisWired = toClassParamWire(${mA}, this);
9
+ `),v=0;v<S;++v){var aa=`toArg${v}Wire`;gA+=`var arg${v}Wired = ${aa}(${mA}, arg${v});
10
+ `,Qa.push(aa)}if(gA+=(p||q?"var rv = ":"")+`invoker(${tA});
11
+ `,aA)gA+=`runDestructors(destructors);
12
+ `;else for(v=O?1:2;v<u.length;++v)q=v===1?"thisWired":"arg"+(v-2)+"Wired",u[v].V!==null&&(gA+=`${q}_dtor(${q});
13
+ `,Qa.push(`${q}_dtor`));return p&&(gA+=`var ret = fromRetWire(rv);
14
+ return ret;
15
+ `),u=new Function(Qa,gA+`}
16
+ `)(...y),$(D,u)}for(var Ge,Ve=D=>{const u=(D=D.trim()).indexOf("(");return u===-1?D:D.slice(0,u)},Xe=[],ja=[0,1,,1,null,1,!0,1,!1,1],Se=D=>{9<D&&--ja[D+1]==0&&(ja[D]=void 0,Xe.push(D))},Ue=D=>{if(!D)throw new QA(`Cannot use deleted val. handle = ${D}`);return ja[D]},xe=D=>{switch(D){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const u=Xe.pop()||ja.length;return ja[u]=D,ja[u+1]=1,u}},Ze={name:"emscripten::val",N:D=>{var u=Ue(D);return Se(D),u},T:(D,u)=>xe(u),X:yA,V:null},Sg=(D,u,p)=>{switch(u){case 1:return p?function(y){return this.N(d[y])}:function(y){return this.N(b[y])};case 2:return p?function(y){return this.N(h[y>>1])}:function(y){return this.N(l[y>>1])};case 4:return p?function(y){return this.N(w[y>>2])}:function(y){return this.N(k[y>>2])};default:throw new TypeError(`invalid integer width (${u}): ${D}`)}},_e=(D,u)=>{var p=NA[D];if(p===void 0)throw D=`${u} has unknown type ${ze(D)}`,new QA(D);return p},Ug=(D,u)=>{switch(u){case 4:return function(p){return this.N(M[p>>2])};case 8:return function(p){return this.N(N[p>>3])};default:throw new TypeError(`invalid float width (${u}): ${D}`)}},xg=Object.assign({optional:!0},Ze),va=(D,u,p)=>{var y=b;if(!(0<p))return 0;var S=u;p=u+p-1;for(var q=0;q<D.length;++q){var v=D.codePointAt(q);if(127>=v){if(u>=p)break;y[u++]=v}else if(2047>=v){if(u+1>=p)break;y[u++]=192|v>>6,y[u++]=128|63&v}else if(65535>=v){if(u+2>=p)break;y[u++]=224|v>>12,y[u++]=128|v>>6&63,y[u++]=128|63&v}else{if(u+3>=p)break;y[u++]=240|v>>18,y[u++]=128|v>>12&63,y[u++]=128|v>>6&63,y[u++]=128|63&v,q++}}return y[u]=0,u-S},$e=D=>{for(var u=0,p=0;p<D.length;++p){var y=D.charCodeAt(p);127>=y?u++:2047>=y?u+=2:55296<=y&&57343>=y?(u+=4,++p):u+=3}return u},Ag=new TextDecoder,Le=(D,u,p,y)=>{if(p=u+p,y)return p;for(;D[u]&&!(u>=p);)++u;return u},ae=new TextDecoder("utf-16le"),sA=(D,u,p)=>(D>>=1,ae.decode(l.subarray(D,Le(l,D,u/2,p)))),Ea=(D,u,p)=>{if(p??(p=2147483647),2>p)return 0;var y=u;p=(p-=2)<2*D.length?p/2:D.length;for(var S=0;S<p;++S)h[u>>1]=D.charCodeAt(S),u+=2;return h[u>>1]=0,u-y},Je=D=>2*D.length,Ha=(D,u,p)=>{var y="";D>>=2;for(var S=0;!(S>=u/4);S++){var q=k[D+S];if(!q&&!p)break;y+=String.fromCodePoint(q)}return y},ee=(D,u,p)=>{if(p??(p=2147483647),4>p)return 0;var y=u;p=y+p-4;for(var S=0;S<D.length;++S){var q=D.codePointAt(S);if(65535<q&&S++,w[u>>2]=q,(u+=4)+4>p)break}return w[u>>2]=0,u-y},Lg=D=>{for(var u=0,p=0;p<D.length;++p)65535<D.codePointAt(p)&&p++,u+=4;return u},Jg=[],IB=(D,u,p)=>{var y=[];return D=D(y,p),y.length&&(k[u>>2]=xe(y)),D},BB={},nB=D=>{var u=BB[D];return u===void 0?YA(D):u},jg={},jt=()=>{if(!Ge){var D,u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:o||"./this.program"};for(D in jg)jg[D]===void 0?delete u[D]:u[D]=jg[D];var p=[];for(D in u)p.push(`${D}=${u[D]}`);Ge=p}return Ge},rB=[null,[],[]],Ra=new Uint8Array(123),Ya=25;0<=Ya;--Ya)Ra[48+Ya]=52+Ya,Ra[65+Ya]=Ya,Ra[97+Ya]=26+Ya;Ra[43]=62,Ra[47]=63,(()=>{let D=K.prototype;Object.assign(D,{isAliasOf:function(p){if(!(this instanceof K&&p instanceof K))return!1;var y=this.L.P.M,S=this.L.O;p.L=p.L;var q=p.L.P.M;for(p=p.L.O;y.U;)S=y.ea(S),y=y.U;for(;q.U;)p=q.ea(p),q=q.U;return y===q&&S===p},clone:function(){if(this.L.O||j(this),this.L.da)return this.L.count.value+=1,this;var p=V,y=Object,S=y.create,q=Object.getPrototypeOf(this),v=this.L;return(p=p(S.call(y,q,{L:{value:{count:v.count,ba:v.ba,da:v.da,O:v.O,P:v.P,S:v.S,W:v.W}}}))).L.count.value+=1,p.L.ba=!1,p},delete(){if(this.L.O||j(this),this.L.ba&&!this.L.da)throw new QA("Object already scheduled for deletion");T(this);var p=this.L;--p.count.value,p.count.value===0&&(p.S?p.W.Y(p.S):p.P.M.Y(p.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||j(this),this.L.ba&&!this.L.da)throw new QA("Object already scheduled for deletion");return this.L.ba=!0,this}});const u=Symbol.dispose;u&&(D[u]=D.delete)})(),Object.assign(Ee.prototype,{sa(D){return this.na&&(D=this.na(D)),D},ka(D){var u;(u=this.Y)==null||u.call(this,D)},X:yA,N:function(D){function u(){return this.ga?Ce(this.M.$,{P:this.xa,O:p,W:this,S:D}):Ce(this.M.$,{P:this,O:D})}var p=this.sa(D);if(!p)return this.ka(D),null;var y=((q,v)=>{if(v===void 0)throw new QA("ptr should not be undefined");for(;q.U;)v=q.ea(v),q=q.U;return Ng[v]})(this.M,p);if(y!==void 0)return y.L.count.value===0?(y.L.O=p,y.L.S=D,y.clone()):(y=y.clone(),this.ka(D),y);if(y=this.M.ra(p),!(y=P[y]))return u.call(this);y=this.fa?y.oa:y.pointerType;var S=Ae(p,this.M,y.M);return S===null?u.call(this):this.ga?Ce(y.M.$,{P:y,O:S,W:this,S:D}):Ce(y.M.$,{P:y,O:S})}}),e.print&&(L=e.print),e.printErr&&(x=e.printErr),e.wasmBinary&&(Q=e.wasmBinary),e.thisProgram&&(o=e.thisProgram);var vt,vg,Ka,oB={x:()=>cA(""),q:D=>{var u=CA[D];delete CA[D];var p=u.ia,y=u.Y,S=u.la,q=S.map(v=>v.va).concat(S.map(v=>v.Ba));ra([D],q,v=>{var O={};return S.forEach((aA,tA)=>{var gA=v[tA],mA=aA.ta,Qa=aA.ua,aa=v[tA+S.length],KA=aA.Aa,ea=aA.Ca;O[aA.qa]={read:Na=>gA.N(mA(Qa,Na)),write:(Na,je)=>{var qa=[];KA(ea,Na,aa.T(qa,je)),uA(qa)},optional:v[tA].optional}}),[{name:u.name,N:aA=>{var tA,gA={};for(tA in O)gA[tA]=O[tA].read(aA);return y(aA),gA},T:(aA,tA)=>{for(var gA in O)if(!(gA in tA)&&!O[gA].optional)throw new TypeError(`Missing field: "${gA}"`);var mA=p();for(gA in O)O[gA].write(mA,tA[gA]);return aA!==null&&aA.push(y,mA),mA},X:yA,V:y}]})},n:(D,u,p,y,S)=>{u=YA(u);let q=v=>v;if(y=y===0n){const v=8*p;q=O=>BigInt.asUintN(v,O),S=q(S)}R(D,{name:u,N:q,T:(v,O)=>(typeof O=="number"&&(O=BigInt(O)),O),X:U(u,p,!y),V:null})},B:(D,u,p,y)=>{R(D,{name:u=YA(u),N:function(S){return!!S},T:function(S,q){return q?p:y},X:function(S){return this.N(b[S])},V:null})},j:(D,u,p,y,S,q,v,O,aA,tA,gA,mA,Qa)=>{gA=YA(gA),q=Ca(S,q),O&&(O=Ca(v,O)),tA&&(tA=Ca(aA,tA)),Qa=Ca(mA,Qa);var aa=(KA=>{var ea=(KA=KA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=ea&&57>=ea?`_${KA}`:KA})(gA);hA(aa,function(){Qe(`Cannot construct ${gA} due to unbound types`,[y])}),ra([D,u,p],y?[y]:[],KA=>{if(KA=KA[0],y)var ea=KA.M,Na=ea.$;else Na=K.prototype;KA=$(gA,function(...Hg){if(Object.getPrototypeOf(this)!==je)throw new QA(`Use 'new' to construct ${gA}`);if(pa.Z===void 0)throw new QA(`${gA} has no accessible constructor`);var Ht=pa.Z[Hg.length];if(Ht===void 0)throw new QA(`Tried to invoke ctor of ${gA} with invalid number of parameters (${Hg.length}) - expected (${Object.keys(pa.Z).toString()}) parameters instead!`);return Ht.apply(this,Hg)});var je=Object.create(Na,{constructor:{value:KA}});KA.prototype=je;var qa,pa=new xA(gA,KA,je,Qa,ea,q,O,tA);return pa.U&&((qa=pa.U).ja??(qa.ja=[]),pa.U.ja.push(pa)),ea=new Ee(gA,pa,!0,!1,!1),qa=new Ee(gA+"*",pa,!1,!1,!1),Na=new Ee(gA+" const*",pa,!1,!0,!1),P[D]={pointerType:qa,oa:Na},Pe(aa,KA),[ea,qa,Na]})},g:(D,u,p,y,S,q)=>{var v=Re(u,p);S=Ca(y,S),ra([],[D],O=>{var aA=`constructor ${(O=O[0]).name}`;if(O.M.Z===void 0&&(O.M.Z=[]),O.M.Z[u-1]!==void 0)throw new QA(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${O.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return O.M.Z[u-1]=()=>{Qe(`Cannot construct ${O.name} due to unbound types`,v)},ra([],v,tA=>(tA.splice(1,0,null),O.M.Z[u-1]=Ne(aA,tA,null,S,q),[])),[]})},b:(D,u,p,y,S,q,v,O,aA)=>{var tA=Re(p,y);u=YA(u),u=Ve(u),q=Ca(S,q),ra([],[D],gA=>{function mA(){Qe(`Cannot call ${Qa} due to unbound types`,tA)}var Qa=`${(gA=gA[0]).name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),O&&gA.M.ya.push(u);var aa=gA.M.$,KA=aa[u];return KA===void 0||KA.R===void 0&&KA.className!==gA.name&&KA.aa===p-2?(mA.aa=p-2,mA.className=gA.name,aa[u]=mA):(DA(aa,u,Qa),aa[u].R[p-2]=mA),ra([],tA,ea=>(ea=Ne(Qa,ea,gA,q,v,aA),aa[u].R===void 0?(ea.aa=p-2,aa[u]=ea):aa[u].R[p-2]=ea,[])),[]})},z:D=>R(D,Ze),r:(D,u,p,y)=>{function S(){}u=YA(u),S.values={},R(D,{name:u,constructor:S,N:function(q){return this.constructor.values[q]},T:(q,v)=>v.value,X:Sg(u,p,y),V:null}),hA(u,S)},d:(D,u,p)=>{var y=_e(D,"enum");u=YA(u),D=y.constructor,y=Object.create(y.constructor.prototype,{value:{value:p},constructor:{value:$(`${y.name}_${u}`,function(){})}}),D.values[p]=y,D[u]=y},m:(D,u,p)=>{R(D,{name:u=YA(u),N:y=>y,T:(y,S)=>S,X:Ug(u,p),V:null})},l:(D,u,p,y,S,q,v)=>{var O=Re(u,p);D=YA(D),D=Ve(D),S=Ca(y,S),hA(D,function(){Qe(`Cannot call ${D} due to unbound types`,O)},u-1),ra([],O,aA=>(aA=[aA[0],null].concat(aA.slice(1)),Pe(D,Ne(D,aA,null,S,q,v),u-1),[]))},c:(D,u,p,y,S)=>{u=YA(u);let q=O=>O;if(y===0){var v=32-8*p;q=O=>O<<v>>>v,S=q(S)}R(D,{name:u,N:q,T:(O,aA)=>aA,X:U(u,p,y!==0),V:null})},a:(D,u,p)=>{function y(q){return new S(d.buffer,k[q+4>>2],k[q>>2])}var S=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][u];R(D,{name:p=YA(p),N:y,X:y},{wa:!0})},h:D=>{R(D,xg)},A:(D,u)=>{R(D,{name:u=YA(u),N(p){var y=(y=p+4)?Ag.decode(b.subarray(y,Le(b,y,k[p>>2],!0))):"";return Ka(p),y},T(p,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var S=typeof y=="string";if(!(S||ArrayBuffer.isView(y)&&y.BYTES_PER_ELEMENT==1))throw new QA("Cannot pass non-string to std::string");var q=S?$e(y):y.length,v=vg(4+q+1),O=v+4;return k[v>>2]=q,S?va(y,O,q+1):b.set(y,O),p!==null&&p.push(Ka,v),v},X:yA,V(p){Ka(p)}})},f:(D,u,p)=>{if(p=YA(p),u===2)var y=sA,S=Ea,q=Je;else y=Ha,S=ee,q=Lg;R(D,{name:p,N:v=>{var O=y(v+4,k[v>>2]*u,!0);return Ka(v),O},T:(v,O)=>{if(typeof O!="string")throw new QA(`Cannot pass non-string to C++ string type ${p}`);var aA=q(O),tA=vg(4+aA+u);return k[tA>>2]=aA/u,S(O,tA+4,aA+u),v!==null&&v.push(Ka,tA),tA},X:yA,V(v){Ka(v)}})},i:(D,u,p,y,S,q)=>{CA[D]={name:YA(u),ia:Ca(p,y),Y:Ca(S,q),la:[]}},e:(D,u,p,y,S,q,v,O,aA,tA)=>{CA[D].la.push({qa:YA(u),va:p,ta:Ca(y,S),ua:q,Ba:v,Aa:Ca(O,aA),Ca:tA})},C:(D,u)=>{R(D,{ma:!0,name:u=YA(u),N:()=>{},T:()=>{}})},p:(D,u,p)=>{var[y,...S]=((aA,tA)=>{for(var gA=Array(aA),mA=0;mA<aA;++mA)gA[mA]=_e(k[tA+4*mA>>2],`parameter ${mA}`);return gA})(D,u);u=y.T.bind(y);var q=S.map(aA=>aA.X.bind(aA));D--;var v={toValue:Ue};switch(D=q.map((aA,tA)=>{var gA=`argFromPtr${tA}`;return v[gA]=aA,`${gA}(args${tA?"+"+8*tA:""})`}),p){case 0:var O="toValue(handle)";break;case 2:O="new (toValue(handle))";break;case 3:O="";break;case 1:v.getStringOrSymbol=nB,O="toValue(handle)[getStringOrSymbol(methodName)]"}return O+=`(${D})`,y.ma||(v.toReturnWire=u,v.emval_returnValue=IB,O=`return emval_returnValue(toReturnWire, destructorsRef, ${O})`),O=`return function (handle, methodName, destructorsRef, args) {
17
+ ${O}
18
+ }`,p=new Function(Object.keys(v),O)(...Object.values(v)),O=`methodCaller<(${S.map(aA=>aA.name)}) => ${y.name}>`,(aA=>{var tA=Jg.length;return Jg.push(aA),tA})($(O,p))},E:Se,o:(D,u,p,y,S)=>Jg[D](u,p,y,S),D:D=>{var u=Ue(D);uA(u),Se(D)},s:(D,u,p,y)=>{var S=new Date().getFullYear(),q=new Date(S,0,1).getTimezoneOffset();S=new Date(S,6,1).getTimezoneOffset(),k[D>>2]=60*Math.max(q,S),w[u>>2]=+(q!=S),u=v=>{var O=Math.abs(v);return`UTC${0<=v?"-":"+"}${String(Math.floor(O/60)).padStart(2,"0")}${String(O%60).padStart(2,"0")}`},D=u(q),u=u(S),S<q?(va(D,p,17),va(u,y,17)):(va(D,y,17),va(u,p,17))},y:D=>{var u=b.length;if(2147483648<(D>>>=0))return!1;for(var p=1;4>=p;p*=2){var y=u*(1+.2/p);y=Math.min(y,D+100663296);A:{y=(Math.min(2147483648,65536*Math.ceil(Math.max(D,y)/65536))-c.buffer.byteLength+65535)/65536|0;try{c.grow(y),AA();var S=1;break A}catch{}S=void 0}if(S)return!0}return!1},t:(D,u)=>{var p,y=0,S=0;for(p of jt()){var q=u+y;k[D+S>>2]=q,y+=va(p,q,1/0)+1,S+=4}return 0},u:(D,u)=>{var p=jt();for(var y of(k[D>>2]=p.length,D=0,p))D+=$e(y)+1;return k[u>>2]=D,0},v:()=>52,w:function(){return 70},k:(D,u,p,y)=>{for(var S=0,q=0;q<p;q++){var v=k[u>>2],O=k[u+4>>2];u+=8;for(var aA=0;aA<O;aA++){var tA=D,gA=b[v+aA],mA=rB[tA];gA===0||gA===10?(tA=tA===1?L:x,gA=Le(mA,0),tA(gA=Ag.decode(mA.buffer?mA.subarray(0,gA):new Uint8Array(mA.slice(0,gA)))),mA.length=0):mA.push(gA)}S+=O}return k[y>>2]=S,0}},se=await async function(){var D;function u(y){var S;return se=y.exports,c=se.F,AA(),Oe=se.H,vt=(y=se).I,e._malloc=vg=y.J,e._free=Ka=y.K,nA--,(S=e.monitorRunDependencies)==null||S.call(e,nA),nA==0&&bA&&(y=bA,bA=null,y()),se}nA++,(D=e.monitorRunDependencies)==null||D.call(e,nA);var p={a:oB};return e.instantiateWasm?new Promise(y=>{e.instantiateWasm(p,(S,q)=>{y(u(S))})}):(Z??(Z=(y=>{if(I)return y=Buffer.from(y,"base64"),new Uint8Array(y.buffer,y.byteOffset,y.length);for(var S,q,v=0,O=0,aA=y.length,tA=new Uint8Array((3*aA>>2)-(y[aA-2]=="=")-(y[aA-1]=="="));v<aA;v+=4,O+=3)S=Ra[y.charCodeAt(v+1)],q=Ra[y.charCodeAt(v+2)],tA[O]=Ra[y.charCodeAt(v)]<<2|S>>4,tA[O+1]=S<<4|q>>2,tA[O+2]=q<<6|Ra[y.charCodeAt(v+3)];return tA})("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0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KAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUN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C14BA38gAEEANgIIIABCADcCACABKAIAIQMgASgCBCIBIANrIgRBAnUiAgRAIAAgAhCuAyAAKAIEIQIgBEUgASADRnJFBEAgAiADIAT8CgAACyAAIAIgBGo2AgQLIAALDQAgACgCACABQQJ0agsXACAAEEcEQCAAIAE2AgQPCyAAIAEQUAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ8wIgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC6wBAQR/IwBBEGsiByQAAkAgAEUNACAEKAIMIQYgAiABa0ECdSIIQQBKBEAgACABIAgQjQIgCEcNAQsgAyABa0ECdSIBIAZIBEAgACAHQQRqIAYgAWsiASAFEP0CIgUQIyABEI0CIQYgBRA5GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEI0CIAFHDQELIAQoAgwaIARBADYCDCAAIQkLIAdBEGokACAJCycBAX8jAEEQayIDJAAgAyACNgIMIABB5AAgASACENEBIANBEGokAAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAEC+wBAQR/IwBBEGsiBCQAIABBADYCBCMAQRBrIgUkACAEQQA6AA8gACAAKAIAQQxrKAIAahDZASEGIAAgACgCAEEMaygCAGohAwJAIAYEQCADKAJIBEAgACAAKAIAQQxrKAIAaigCSBDFAwsgBCAAIAAoAgBBDGsoAgBqENkBOgAPDAELIANBBBDVAQsgBUEQaiQAQQQhAyAELQAPBEAgACAAIAAoAgBBDGsoAgBqKAIYIgMgASACIAMoAgAoAiARAwAiATYCBEEGQQAgASACRxshAwsgACAAKAIAQQxrKAIAaiADENUBIARB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AxsLPAAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACywBAX8gAEEANgIIIABCADcCACAAIAEoAgAiAiABKAIEIgEgASACaxDAAyAACwgAIABB/wFxC/wBAQN/IAAoAgQgACgCACIDa0ECdSICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrQQJ1TQRAIAAoAgQiASACQQJ0aiECA0AgASACRgRAIAAgAjYCBAUgAUEANgIAIAFBBGohAQwBCwsMAQsgA0EMaiAAIAEgACgCAGtBAnUgAmoQtgEgACgCBCAAKAIAa0ECdSAAEIcCIgQoAggiASACQQJ0aiECA0AgASACRwRAIAFBADYCACABQQRqIQEMAQsLIAQgAjYCCCAAIAQQhQIgBBCBAgsgA0EgaiQADwsgASACSQRAIAAgAyABQQJ0ajYCBAsLUgECf0HU3gEoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQGA0BC0GI6gFBMDYCAEF/DwtB1N4BIAA2AgAgAQt/AgF+A38CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViACIQANAAsLIAJQRQRAIAKnIQMDQCABQQFrIgEgAyADQQpuIgRBCmxrQTByOgAAIANBCUsgBCEDDQALCyABC78BAQN/IAAoAgQgACgCACIDayICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrTQRAIAAgAhCYAwwBCyACIANBDGogACABIAJqIAAoAgBrELQBIAAoAgQgACgCAGsgABDGASIEKAIIIgFqIQIDQCABIAJHBEAgAUEAOgAAIAFBAWohAQwBCwsgBCACNgIIIAAgBBDvASAEELoBCyADQSBqJAAPCyABIAJJBEAgACABIANqNgIECwt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAA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BEBBCiEBIAAQXgwBCyAAEH5BAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEPQBIAAQIxoMAQsgABAjGiAEDQAgACIBIANBAWoQUAwBCyAAKAIAIQEgACADQQFqNgIECyABIANqIgAgAkEPahBdIAJBADoADiAAQQFqIAJBDmoQXSACQRBqJAALoQIBA38jAEEgayIIJABB9////wciCSABQX9zaiACTwRAIAAQIyEKIAFB8////wNJBEAgCCABQQF0NgIcIAggASACajYCECAIQRBqIAhBHGoQoAEoAgAQnwFBAWohCQsgCEEcaiAIQRhqIAAQVSgCABC8ASAIQRBqIAkQngEgCCgCECECIAgoAhQaIAQEQCACIAogBBBNCyAGBEAgAiAEaiAHIAYQTQsgAyAEIAVqIglrIQcgAyAJRwRAIAIgBGogBmogBCAKaiAFaiAHEE0LIAFBCkcEQCAKEIsCCyAAIAI2AgAgACAIKAIUEFwgACAEIAZqIAdqIgA2AgQgCEEAOgAPIAAgAmogCEEPahBdIAhBHGoQuwEgCEEgaiQADwsQWwALCQAgAEEBEKgCCwoAIAAoAgAQHxoLCQAgACABEFUaCwcAIABBAkkLBABBBAsoAQF/IAAgACgCBEEBayIBNgIEIAFBf0YEQCAAIAAoAgAoAggRAgALC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEGMgBCgCCCEDIwBBEGsiASQAIAEgAzYCDCABIAM2AghBfyEFAkBBAEEAIAIgAxDRASIDQQBIDQAgACADQQFqIgMQNCIANgIAIABFDQAgACADIAIgASgCDBDRASEFCyABQRBqJAAQYiAEQRBqJAAgBQsPACAAIAAoAgAoAiQRAAALEQAgACABIAEoAgAoAiARAQALDgAgACABKAIANgIAIAALCABB/////wcLBQBB/wALOwAgACADNgIQIAAgAQR/IAEQUwVBAAsiAzYCACAAIAIgA2oiAjYCCCAAIAEgA2o2AgwgACACNgIEIAALYQEBfyMAQRBrIgIkACACIAA2AgwCQCAAIAFGDQADQCACIAFBBGsiATYCCCAAIAFPDQEgAigCDCACKAIIENcBIAIgAigCDEEEaiIANgIMIAIoAgghAQwACwALIAJBEGokAAs5AgF/AX4jAEEQayIEJAAgAykDACEFIAQgAykDCDcDCCAEIAU3AwAgACABIAIgBBDAASAEQRBqJAAL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLKwEBfyMAQRBrIgUkACAFIAQoAgA2AgAgACABIAIgAyAFEJYBIAVBEGokAAuqAQEBfwJAIANBgBBxRSACRXINACADQcoAcSIEQQhGIARBwABGcg0AIABBKzoAACAAQQFqIQALIANBgARxBEAgAEEjOgAAIABBAWohAAsDQCABLQAAIgQEQCAAIAQ6AAAgAEEBaiEAIAFBAWohAQwBCwsgAAJ/Qe8AIANBygBxIgFBwABGDQAaQdgAQfgAIANBgIABcRsgAUEIRg0AGkHkAEH1ACACGws6AAALDAAgABAjIAFBAnRqC5IEAQt/IwBBgAFrIgokACAKIAE2AnwgAiADELUCIQggCkHjADYCECAKQQhqQQAgCkEQaiIJEDYhDwJAAkACQCAIQeUATwRAIAgQNCIJRQ0BIA8gCRA8CyAJIQcgAiEBA0AgASADRgRAA0AgACAKQfwAaiIBECtBASAIGwRAIAAgARArBEAgBSAFKAIAQQJyNgIACwNAIAIgA0YNBiAJLQAAQQJGDQcgCUEBaiEJIAJBDGohAgwACwALIAAQNyEOIAZFBEAgBCAOEEEhDgsgDUEBaiEMQQAhECAJIQcgAiEBA0AgASADRgRAIAwhDSAQRQ0CIAAQPhogCSEHIAIhASAIIAtqQQJJDQIDQCABIANGBEAMBAUCQCAHLQAAQQJHDQAgARAfIA1GDQAgB0EAOgAAIAtBAWshCwsgB0EBaiEHIAFBDGohAQwBCwALAAUCQCAHLQAAQQFHDQAgASANEMwBKAIAIRECQCAGBH8gEQUgBCAREEELIA5GBEBBASEQIAEQHyAMRw0CIAdBAjoAACALQQFqIQsMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARBaIgwbOgAAIAdBAWohByABQQxqIQEgCyAMaiELIAggDGshCAwBCwALAAsQPQALIAUgBSgCAEEEcjYCAAsgDxA1IApBgAFqJAAgAgsRACAAIAEgACgCACgCDBEEAAuTBAELfyMAQYABayIKJAAgCiABNgJ8IAIgAxC1AiEIIApB4wA2AhAgCkEIakEAIApBEGoiCRA2IQ8CQAJAAkAgCEHlAE8EQCAIEDQiCUUNASAPIAkQPAsgCSEHIAIhAQNAIAEgA0YEQANAIAAgCkH8AGoiARAsQQEgCBsEQCAAIAEQLARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEDghDiAGRQRAIAQgDhDOASEOCyANQQFqIQxBACEQIAkhByACIQEDQCABIANGBEAgDCENIBBFDQIgABA/GiAJIQcgAiEBIAggC2pBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABEB8gDUYNACAHQQA6AAAgC0EBayELCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIA0QIiwAACERAkAgBgR/IBEFIAQgERDOAQsgDkYEQEEBIRAgARAfIAxHDQIgB0ECOgAAIAtBAWohCwwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEFoiDBs6AAAgB0EBaiEHIAFBDGohASALIAxqIQsgCCAMayEIDAELAAsACxA9AAsgBSAFKAIAQQRyNgIACyAPEDUgCkGAAWokACACC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC4QBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiADYClAEgBCABQQFrIgVBACABIAVPGzYCmAEgBEEAQZAB/AsAIARBfzYCTCAEQeIANgIkIARBfzYCUCAEIARBnwFqNgIsIAQgBEGUAWo2AlQgAEEAOgAAIAQgAiADEM0DIARBoAFqJAALuwIBBH8gA0H87QEgAxsiBSgCACEDAkAC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IBAtIAAoAiQQLSAAKAIwEC0gACgCPBAtCyAACwcAIAEgAGsLDABBARDWARogABAtCwkAIAAQsQEQLQsTACAAIAEgAiAAKAIAKAIwEQMACwkAIAAQ2AEQLQsMACAAQQRqENoBIAALDAAgAEEIahDaASAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQZj1ADYCACAAQQRqECUgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQRCAFIAAgAiAGEIoBIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBB3OEBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAA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AXI2AgQgCSAGIAkoAgBBAXFyQQJyNgIAIAEgBmoiAiACKAIEQQFyNgIEIAEgBhDbAQsCQCAAKAIEIgJBA3FFDQAgAkF4cSIBIAVBEGpNDQAgACAFIAJBAXFyQQJyNgIEIAAgBWoiBCABIAVrIgJBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQgBCACENsBCyAAQQhqCwsiAEUNARogCCAANgIMQQAhAQsgAQshAEEAIAgoAgwgABshAQsgCEEQaiQAIAENAEHk/gEoAgAiAEUNACAAEQwADAELCyABRQRAEOsBCyABCwoAIAEgAGtBDG0LCQAgABAuNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cy8BAX8jAEEQayIDJAACQCAAIAFGBEAgAEEAOgB4DAELIAEgAhCpAQsgA0EQaiQACxAAIAAoAgggACgCAGtBAnULCQAgAEEANgIAC0kBAX8jAEEQayIDJAACQAJAIAJBHksNACABLQB4QQFxDQAgAUEBOgB4DAELIAIQwQIhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALOgECfyMAQRBrIgAkACAAQf////8DNgIMIABB/////wc2AgggAEEMaiAAQQhqELUDKAIAIABBEGokAAs0AQF/IwBBEGsiAyQAIAMgARBzNgIMIAMgAhBzNgIIIAAgA0EMaiADQQhqEGYgA0EQaiQAC04BAX8jAEEQayIDJAAgAyABNgIIIAMgADYCDCADIAI2AgRBACEBIANBBGoiACADQQxqENMBRQRAIAAgA0EIahDTASEBCyADQRBqJAAgAQswAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQZiADQRBqJAALMwEBfyMAQRBrIgMkACAAEB8aIAAgAhCDASADQQA6AA8gASACaiADQQ9qEF0gA0EQaiQACzEAIABB/////wNLBEAQqgIACwJ/IABBAnQhAEEEENYBBEAgAEEEELQCDAELIAAQUwsLCQAgABDtARAtCxUAIABB8KoBNgIAIABBEGoQIBogAAsVACAAQciqATYCACAAQQxqECAaIAALgAMBBH8gAiEAA0ACQCAEIAdNIAAgA09yDQAgACwAACIBQf8BcSEFAn9BASABQQBODQAaIAFBQkkNASABQV9NBEAgAyAA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ZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQQyALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAgGiANECAaIA4QIBogDBAgGiARECAaIA8QNQwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRD9AhoLCwAgAEEBQS0QsAILHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEPMCCyACIAEgASACKAIAEIoCIAZBDGogAyAAKAIAEJ4DIAFqNgIAIAZBEGokAAtBACABIAIgAyAEQQQQZyEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQAAIgAgAEGgAmogBSAEQQAQzQEgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAAAiACAAQagBaiAFIARBABDNASAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLQQAgASACIAMgBEEEEGghASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEM8BIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQzwEgAGsiAEGnAUwEQCABIABBDG1BB282AgALCxgBAX9BDBBTIgBBADYCCCAAQgA3AgAgAAsEAEECC8oBAQR/IwBBEGsiAyQAAkAgAUH3////A00EQAJAIAEQvQEEQCAAIAEQUCAAIQQMAQsgA0EIaiABEJABQQFqEI8BIAMoAgwaIAAgAygCCCIENgIAIAAgAygCDBBcIAAgATYCBAsjAEEQayIFJAAgBSACNgIMIAQhBiABIQIDQCACBEAgBiAFKAIMNgIAIAJBAWshAiAGQQRqIQYMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEFYgA0EQaiQADAELEFsACyAAC7IFAQp/IwBBEGsiCyQAIAYQSCEKIAtBBGogBhCZASIOEFggBSADNgIAAkACQCAAIggtAAAiBkEraw4DAAEAAQsgCiAGwBBLIQYgBSAFKAIAIgdBBGo2AgAgByAGNgIAIABBAWohCAsCQAJAIAIgCCIGa0EBTA0AIAYtAABBMEcNACAGLQABQSByQfgARw0AIApBMBBLIQcgBSAFKAIAIghBBGo2AgAgCCAHNgIAIAogBiwAARBLIQcgBSAFKAIAIghBBGo2AgAgCCAHNgIAIAZBAmoiCCEGA0AgAiAGTQ0CIAYsAAAQLhoQsANFDQIgBkEBaiEGDAALAAsDQCACIAZNDQEgBiwAABAuGhCvA0UNASAGQQFqIQYMAAsACwJAIAtBBGoQWgRAIAogCCAGIAUoAgAQbyAFIAUoAgAgBiAIa0ECdGo2AgAMAQsgCCAGEIQBIA4QWSEPIAghBwNAIAYgB00EQCADIAggAGtBAnRqIAUoAgAQxwEFAkAgC0EEaiIMIA0QIiwAAEEATA0AIAkgDCANECIsAABHDQAgBSAFKAIAIglBBGo2AgAgCSAPNgIAIA0gDSAMEB9BAWtJaiENQQAhCQsgCiAHLAAAEEshDCAFIAUoAgAiEEEEajYCACAQIAw2AgAgB0EBaiEHIAlBAWohCQwBCwsLAkACQANAIAIgBk0NASAGQQFqIQcgBiwAACIGQS5HBEAgCiAGEEshBiAFIAUoAgAiCEEEajYCACAIIAY2AgAgByEGDAELCyAOEHghBiAFIAUoAgAiCEEEaiIJNgIAIAggBjYCAAwBCyAFKAIAIQkgBiEHCyAKIAcgAiAJEG8gBSAFKAIAIAIgB2tBAnRqIgU2AgAgBCAFIAMgASAAa0ECdGogASACRhs2AgAgC0EEahAgGiALQRBqJAALDwAgAARAIAAQOgsgABAtC90DAQh/IwBBEGsiCyQAIAYQSCEKIAtBBGoiByAGEJkBIgYQWAJAIAcQWgRAIAogACACIAMQbyAFIAMgAiAAa0ECdGoiBjYCAAwBCyAFIAM2AgACQAJAIAAiBy0AACIIQStrDgMAAQABCyAKIAjAEEshByAFIAUoAgAiCEEEajYCACAIIAc2AgAgAEEBaiEHCwJAIAIgB2tBAkgNACAHLQAAQTBHDQAgBy0AAUEgckH4AEcNACAKQTAQSyEIIAUgBSgCACIJQQRqNgIAIAkgCDYCACAKIAcsAAEQSyEIIAUgBSgCACIJQQRqNgIAIAkgCDYCACAHQQJqIQcLIAcgAhCEAUEAIQkgBhBZIQ1BACEIIAchBgN/IAIgBk0EfyADIAcgAGtBAnRqIAUoAgAQxwEgBSgCAAUCQCALQQRqIgwgCBAiLQAARQ0AIAkgDCAIECIsAABHDQAgBSAFKAIAIglBBGo2AgAgCSANNgIAIAggCCAMEB9BAWtJaiEIQQAhCQsgCiAGLAAAEEshDCAFIAUoAgAiDkEEajYCACAOIAw2AgAgBkEBaiEGIAlBAWohCQwBCwshBgsgBCAGIAMgASAAa0ECdGogASACRhs2AgAgC0EEahAgGiALQRBqJAALRwIBfwF+IwBBIGsiBSQAIAMoAgAhAyAEKQMAIQYgBSAEKQMINwMQIAUgBjcDCCAFIAM2AgAgACABIAIgBRDAASAFQSBqJAALOwIBfwF+IwBBEGsiBCQAIAMpAwAhBSAEIAMpAwg3AwggBCAFNwMAIABBHiABIAIgBBCWASAEQRBqJAALSQIBfwF+IwBBIGsiBSQAIAMoAgAhAyAEKQMAIQYgBSAEKQMINwMQIAUgBjcDCCAFIAM2AgAgAEEeIAEgAiAFEJYBIAVBIGokAAuiBQEKfyMAQRBrIgokACAGEEkhCSAKQQRqIAYQmwEiDhBYIAUgAzYCAAJAAkAgACIILQAAIgZBK2sOAwABAAELIAkgBsAQQSEGIAUgBSgCACIHQQFqNgIAIAcgBjoAACAAQQFqIQgLAkACQCACIAgiBmtBAUwNACAGLQAAQTBHDQAgBi0AAUEgckH4AEcNACAJQTAQQSEHIAUgBSgCACIIQQFqNgIAIAggBzoAACAJIAYsAAEQQSEHIAUgBSgCACIIQQFqNgIAIAggBzoAACAGQQJqIgghBgNAIAIgBk0NAiAGLAAAEC4aELADRQ0CIAZBAWohBgwACwALA0AgAiAGTQ0BIAYsAAAQLhoQrwNFDQEgBkEBaiEGDAALAAsCQCAKQQRqEFoEQCAJIAggBiAFKAIAEHkgBSAFKAIAIAYgCGtqNgIADAELIAggBhCEASAOEFkhDyAIIQcDQCAGIAdNBEAgAyAIIABraiAFKAIAEIQBBQJAIApBBGoiDCANECIsAABBAEwNACALIAwgDRAiLAAARw0AIAUgBSgCACILQQFqNgIAIAsgDzoAACANIA0gDBAfQQFrSWohDUEAIQsLIAkgBywAABBBIQwgBSAFKAIAIhBBAWo2AgAgECAMOgAAIAdBAWohByALQQFqIQsMAQsLCwNAAkACQCACIAZNBEAgBiEHDAELIAZBAWohByAGLAAAIgZBLkcNASAOEHghBiAFIAUoAgAiCEEBajYCACAIIAY6AAALIAkgByACIAUoAgAQeSAFIAUoAgAgAiAHa2oiBTYCACAEIAUgAyABIABraiABIAJGGzYCACAKQQRqECAaIApBEGokAA8LIAkgBhBBIQYgBSAFKAIAIghBAWo2AgAgCCAGOgAAIAchBgwACwALKQEBfyMAQRBrIgQkACAEIAMrAwA5AwAgACABIAIgBBDAASAEQRBqJAALNwEBfyMAQRBrIgUkACADKAIAIQMgBSAEKwMAOQMIIAUgAzYCACAAIAEgAiAFEMABIAVBEGokAAsrAQF/IwBBEGsiBCQAIAQgAysDADkDACAAQR4gASACIAQQlgEgBEEQaiQACzkBAX8jAEEQayIFJAAgAygCACEDIAUgBCsDADkDCCAFIAM2AgAgAEEeIAEgAiAFEJYBIAVBEGokAAsrAQF/IwBBEGsiBCQAIAQgAykDADcDACAAQRggASACIAQQlgEgBEEQaiQAC9QDAQh/IwBBEGsiCyQAIAYQSSEKIAtBBGoiByAGEJsBIgYQWAJAIAcQWgRAIAogACACIAMQeSAFIAMgAiAAa2oiBjYCAAwBCyAFIAM2AgACQAJAIAAiBy0AACIIQStrDgMAAQABCyAKIAjAEEEhByAFIAUoAgAiCEEBajYCACAIIAc6AAAgAEEBaiEHCwJAIAIgB2tBAkgNACAHLQAAQTBHDQAgBy0AAUEgckH4AEcNACAKQTAQQSEIIAUgBSgCACIJQQFqNgIAIAkgCDoAACAKIAcsAAEQQSEIIAUgBSgCACIJQQFqNgIAIAkgCDoAACAHQQJqIQcLIAcgAhCEAUEAIQkgBhBZIQ1BACEIIAchBgN/IAIgBk0EfyADIAcgAGtqIAUoAgAQhAEgBSgCAAUCQCALQQRqIgwgCBAiLQAARQ0AIAkgDCAIECIsAABHDQAgBSAFKAIAIglBAWo2AgAgCSANOgAAIAggCCAMEB9BAWtJaiEIQQAhCQsgCiAGLAAAEEEhDCAFIAUoAgAiDkEBajYCACAOIAw6AAAgBkEBaiEGIAlBAWohCQwBCwshBgsgBCAGIAMgASAAa2ogASACRhs2AgAgC0EEahAgGiALQRBqJAALQwEBfyMAQRBrIgMkACADIAI2AgxBoCAgAUH02QFBuyxBGCADQQxqIgEQVEH02QFBvyxBGSABEFQQBCADQRBqJAAgAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCTAzYCACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAtbAQF/IwBBEGsiAyQAIAMgAigCADYCACMAQRBrIgIkACACIAE2AgwgAiADNgIIIAJBBGogAkEMahBjIABB1w0gAigCCBCkAyEAEGIgAkEQaiQAIANBEGokACAAC9kCAgR+Bn8jAEEgayIIJAACQAJAAkAgASACRwRAQYjqASgCACENQYjqAUEANgIAIwBBEGsiCSQAEC4aIwBBEGsiCiQAIwBBEGsiCyQAIwBBEGsiDCQAIAwgASAIQRxqQQIQgAIgDCkDACEEIAsgDCkDCDcDCCALIAQ3AwAgDEEQaiQAIAspAwAhBCAKIAspAwg3AwggCiAENwMAIAtBEGokACAKKQMAIQQgCSAKKQMINwMIIAkgBDcDACAKQRBqJAAgCSkDACEEIAggCSkDCDcDECAIIAQ3AwggCUEQaiQAIAgpAxAhBCAIKQMIIQVBiOoBKAIAIgFFDQEgCCgCHCACRw0CIAUhBiAEIQcgAUHEAEcNAwwCCyADQQQ2AgAMAgtBiOoBIA02AgAgCCgCHCACRg0BCyADQQQ2AgAgBiEFIAchBAsgACAFNwMAIAAgBDcDCCAIQSBqJAALwAECA38BfCMAQRBrIgMkAAJAAkACQCAAIAFHBEBBiOoBKAIAIQVBiOoBQQA2AgAQLhojAEEQayIEJAAgBCAAIANBDGpBARCAAiAEKQMAIAQpAwgQlQIhBiAEQRBqJAACQEGI6gEoAgAiAARAIAMoAgwgAUYNAQwDC0GI6gEgBTYCACADKAIMIAFHDQIMBAsgAEHEAEcNAwwCCyACQQQ2AgAMAgtEAAAAAAAAAAAhBgsgAkEENgIACyADQRBqJAAgBgubCgEEfyMAQRBrIgIkAEGACEEEQZAgQd4gQQRBAkEAQQAQC0HtC0ECQeQgQZghQQVBA0EAQQAQCyMAQSBrIgEkAEGY4AEtAABFBEBBmOABQQE6AABBnCFBvNoBEAcLQewgQYwlQcQlQQBB+iVBBkH9JUEAQf0lQQBB1xtB/yVBBxAJQewgQQFBhCZBiCZBIkEIEAYgAUEANgIcIAFBCTYCGCABIAEpAhg3AxAjAEEQayIAJAAgACABKQIQNwIIQewgQYoPQQNBjCZBmCZBIyAAQQhqEI0BQQBBAEEAEAEgAEEQaiQAIAFBADYCHCABQQo2AhggASABKQIYNwMIIwBBEGsiACQAIAAgASkCCDcCCEHsIEHKEEEEQaAmQbAmQSQgAEEIahCNAUEAQQBBABABIABBEGokACABQQA2AhwgAUELNgIYIAEgASkCGDcDACMAQRBrIgAkACAAIAEpAgA3AghB7CBB4BBBAkG4JkHAJkElIABBCGoQjQFBAEEAQQAQASAAQRBqJAAjAEEQayIAJAAgAEEMNgIMQewgQZoKQQNB6CZB9CZBJiAAQQxqEFRBAEEAQQAQASAAQRBqJAAjAEEQayIAJAAgAEENNgIMQewgQZYKQQRBgCdBkCdBJyAAQQxqEFRBAEEAQQAQASAAQRBqJAAgAUEgaiQAIwBBIGsiASQAQaTgAS0AAEUEQEGk4AFBAToAAEGYJ0HE2QEQBwtBpCpB0CpBiCtBAEG+K0EOQf0lQQBB/SVBAEG0FUHBK0EPEAlBpCpBAUHEK0HIK0EoQRAQBiABQQA2AhwgAUERNgIYIAEgASkCGDcDECMAQRBrIgAkACAAIAEpAhA3AghBpCpBig9BA0HMK0HYK0EpIABBCGoQjQFBAEEAQQAQASAAQRBqJAAgAUEANgIcIAFBEjYCGCABIAEpAhg3AwgjAEEQayIAJAAgACABKQIINwIIQaQqQcoQQQRB4CtB8CtBKiAAQQhqEI0BQQBBAEEAEAEgAEEQaiQAIAFBADYCHCABQRM2AhggASABKQIYNwMAIwBBEGsiACQAIAAgASkCADcCCEGkKkHgEEECQfgrQYAsQSsgAEEIahCNAUEAQQBBABABIABBEGokACMAQRBrIgAkACAAQRQ2AgxBpCpBmgpBA0GMLEGYLEEsIABBDGoQVEEAQQBBABABIABBEGokACMAQRBrIgAkACAAQRU2AgxBpCpBlgpBBEGgLEGwLEEtIABBDGoQVEEAQQBBABABIABBEGokACABQSBqJABBoCBBhhJBtixBFkG4LEEXEAggAkEPakHGCkEAEIsDQZMRQQQQiwMjAEEQayIBJAAgAUEINgIMQaAgQZ8TQazZAUHELEEaIAFBDGoiAxBUQazZAUHILEEbIAMQVBAEIAFBEGokAEHlCkEMEJcBQboLQRgQlwFB7wpBJBCXAUHBC0EwEJcBQdAKQTwQlwFBtg9ByAAQlwEaQaAgEBBB2CxB/w1BBEEBEBFB2CxBgBZBABADQdgsQZoWQQEQA0HYLEGWFkECEANB2CxBkhZBAxADQdgsQY4WQQQQA0HYLEH8FUEFEANB2CxB+BVBBhADQdgsQfAVQQcQA0HYLEHsFUEIEANBwCBB1wpB+SxBHkH7LEEfEAgjAEEQayIBJAAgAUEANgIMQcAgQe4NQdgsQf4sQSAgAUEMaiIAEFRB2CxBgi1BISAAEFQQBCABQRBqJABBwCAQECACQRBqJAALvAECA38BfSMAQRBrIgMkAAJAAkACQCAAIAFHBEBBiOoBKAIAIQVBiOoBQQA2AgAQLhojAEEQayIEJAAgBCAAIANBDGpBABCAAiAEKQMAIAQpAwgQpgMhBiAEQRBqJAACQEGI6gEoAgAiAARAIAMoAgwgAUYNAQwDC0GI6gEgBTYCACADKAIMIAFHDQIMBAsgAEHEAEcNAwwCCyACQQQ2AgAMAgtDAAAAACEGCyACQQQ2AgALIANBEGokACAGC8MBAgN/AX4jAEEQayIEJAACfgJAAkAgACABRwRAAkACQCAALQAAIgVBLUcNACAAQQFqIgAgAUcNAAwBC0GI6gEoAgAhBkGI6gFBADYCABAuGiAAIARBDGogAxCCAiEHAkBBiOoBKAIAIgAEQCAEKAIMIAFHDQEgAEHEAEYNBAwFC0GI6gEgBjYCACAEKAIMIAFGDQQLCwsgAkEENgIAQgAMAgsgAkEENgIAQn8MAQtCACAHfSAHIAVBLUYbCyAEQRBqJAAL1AECA38BfiMAQRBrIgQkAAJ/AkACQAJAIAAgAUcEQAJAAkAgAC0AACIFQS1HDQAgAEEBaiIAIAFHDQAMAQtBiOoBKAIAIQZBiOoBQQA2AgAQLhogACAEQQxqIAMQggIhBwJAQYjqASgCACIABEAgBCgCDCABRw0BIABBxABGDQUMBAtBiOoBIAY2AgAgBCgCDCABRg0DCwsLIAJBBDYCAEEADAMLIAdC/////w9YDQELIAJBBDYCAEF/DAELQQAgB6ciAGsgACAFQS1GGwsgBEEQaiQAC4sDAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxBqIQYgAEHEAWogAyAAQfcBahCvASAAQbgBahAkIgEgARAoECEgACABQQAQIiICNgK0ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQfwBaiAAQfgBahAsDQAgACgCtAEgARAfIAJqRgRAIAEQHyEDIAEgARAfQQF0ECEgASABECgQISAAIAMgAUEAECIiAmo2ArQBCyAAQfwBaiIDEDggBiACIABBtAFqIABBCGogACwA9wEgAEHEAWogAEEQaiAAQQxqQdCfARCaAQ0AIAMQPxoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCTAzYCACAAQcQBaiAAQRBqIAAoAgwgBBBDIABB/AFqIABB+AFqECwEQCAEIAQoAgBBAnI2AgALIAAoAvwBIAEQIBogAEHEAWoQIBogAEGAAmokAAvZAQIDfwF+IwBBEGsiBCQAAn8CQAJAAkAgACABRwRAAkACQCAALQAAIgVBLUcNACAAQQFqIgAgAUcNAAwBC0GI6gEoAgAhBkGI6gFBADYCABAuGiAAIARBDGogAxCCAiEHAkBBiOoBKAIAIgAEQCAEKAIMIAFHDQEgAEHEAEYNBQwEC0GI6gEgBjYCACAEKAIMIAFGDQMLCwsgAkEENgIAQQAMAwsgB0L//wNYDQELIAJBBDYCAEH//wMMAQtBACAHpyIAayAAIAVBLUYbCyAEQRBqJABB//8DcQu3AQIBfgJ/IwBBEGsiBSQAAkACQCAAIAFHBEBBiOoBKAIAIQZBiOoBQQA2AgAQLhogACAFQQxqIAMQmgMhBAJAQYjqASgCACIABEAgBSgCDCABRw0BIABBxABGDQMMBAtBiOoBIAY2AgAgBSgCDCABRg0DCwsgAkEENgIAQgAhBAwBCyACQQQ2AgAgBEIAVQRAQv///////////wAhBAwBC0KAgICAgICAgIB/IQQLIAVBEGokACAEC8ABAgJ/AX4jAEEQayIEJAACfwJAAkAgACABRwRAQYjqASgCACEFQYjqAUEANgIAEC4aIAAgBEEMaiADEJoDIQYCQEGI6gEoAgAiAARAIAQoAgwgAUcNASAAQcQARg0EDAMLQYjqASAFNgIAIAQoAgwgAUYNAgsLIAJBBDYCAEEADAILIAZCgICAgHhTIAZC/////wdVcg0AIAanDAELIAJBBDYCAEH/////ByAGQgBVDQAaQYCAgIB4CyAEQRBqJAALMwEBfyABIAAoAgQiAWohAgNAIAEgAkYEQCAAIAI2AgQFIAFBADoAACABQQFqIQEMAQsLC5EBAQN/AkAgASACEPUBIQQjAEEQayIDJAAgBEH3////A00EQAJAIAQQvQEEQCAAIAQQUCAAIQUMAQsgA0EIaiAEEJABQQFqEI8BIAMoAgwaIAAgAygCCCIFNgIAIAAgAygCDBBcIAAgBDYCBAsgASACIAUQ5wIgA0EANgIEIANBBGoQViADQRBqJAAMAQsQWwALCxYAIAAgASACQoCAgICAgICAgH8QhAILhwgBBX8gASgCACEEAkACQAJAAkACQAJAAkACfwJAAkACQAJAIANFDQAgAygCACIFRQ0AIABFBEAgAiEDDAMLIANBADYCACACIQMMAQsCQEHc4QEoAgAoAgBFBEAgAEUNASACRQ0MIAIhBQNAIAQsAAAiAwRAIAAgA0H/vwNxNgIAIABBBGohACAEQQFqIQQgBUEBayIFDQEMDgsLIABBADYCACABQQA2AgAgAiAFaw8LIAIhAyAARQ0DDAULIAQQqAEPC0EBIQYMAwtBAAwBC0EBCyEGA0AgBkUEQCAELQAAQQN2IgZBEGsgBUEadSAGanJBB0sNAwJ/IARBAWoiBiAFQYCAgBBxRQ0AGiAGLAAAQUBOBEAgBEEBayEEDAcLIARBAmoiBiAFQYCAIHFFDQAaIAYsAABBQE4EQCAEQQFrIQQMBwsgBEEDagshBCADQQFrIQNBASEGDAELA0ACQCAEQQNxIAQsAAAiBUEATHINACAEKAIAIgVBgYKECGsgBXJBgIGChHhxDQADQCADQQRrIQMgBCgCBCEFIARBBGohBCAFIAVBgYKECGtyQYCBgoR4cUUNAAsLIAXAQQBKBEAgA0EBayEDIARBAWohBAwBCwsgBUH/AXFBwgFrIgZBMksNAyAEQQFqIQQgBkECdCgCkIEBIQVBACEGDAALAAsDQCAGRQRAIANFDQcDQAJAIAQtAAAiBsAiBUEATA0AIARBA3EgA0EFSXJFBEACQANAIAQoAgAiBUGBgoQIayAFckGAgYKEeHENASAAIAVB/wFxNgIAIAAgBC0AATYCBCAAIAQtAAI2AgggACAELQADNgIMIABBEGohACAEQQRqIQQgA0EEayIDQQRLDQALIAQtAAAhBQsgBUH/AXEhBiAFwEEATA0BCyAAIAY2AgAgAEEEaiEAIARBAWohBCADQQFrIgMNAQwJCwsgBkHCAWsiBkEySw0DIARBAWohBCAGQQJ0KAKQgQEhBUEBIQYMAQsgBC0AACIGQQN2IgdBEGsgByAFQRp1anJBB0sNAQJAAkACfyAEQQFqIgcgBkGAAWsgBUEGdHIiBkEATg0AGiAHLQAAQYABayIHQT9LDQEgByAGQQZ0IghyIQYgBEECaiIHIAhBAE4NABogBy0AAEGAAWsiB0E/Sw0BIAcgBkEGdHIhBiAEQQNqCyEEIAAgBjYCACADQQFrIQMgAEEEaiEADAELQYjqAUEZNgIAIARBAWshBAwFC0EAIQYMAAsACyAEQQFrIQQgBQ0BIAQtAAAhBQsgBUH/AXENACAABEAgAEEANgIAIAFBADYCAAsgAiADaw8LQYjqAUEZNgIAIABFDQELIAEgBDYCAAtBfw8LIAEgBDYCACACCzEBAX9B3OEBKAIAIQEgAARAQdzhAUHk4AEgACAAQX9GGzYCAAtBfyABIAFB5OABRhsLOAAgAEHQD2sgACAAQZPx//8HShsiAEEDcQRAQQAPCyAAQewOaiIAQeQAbwRAQQEPCyAAQZADb0ULlxMCD38EfiMAQYABayIIJAAgAQRAAn8DQAJAAn8CQAJAAkAgAi0AACIGQSVHBEAgBg0BIAoMBwtBACEFQQEhCQJAIAItAAEiB0Etaw4EAgMDAgALIAdB3wBGDQEgBw0CCyAAIApqIAY6AAAgCkEBagwCCyAHIQUgAi0AAiEHQQIhCQtBACEOAkACfyACIAlqIAciEkErRmoiCSwAAEEwa0EJTQRAIAkgCEEMakEKQv////8PEIQCpyECIAgoAgwMAQsgCCAJNgIMQQAhAiAJCyIHLQAAIgZBwwBrIgtBFktBASALdEGZgIACcUVyDQAgAiIODQAgByAJRyEOCyAGQc8ARiAGQcUARnIEfyAHLQABIQYgB0EBagUgBwshAiAIQRBqIQcgBSEJQQAhBSMAQdAAayILJABB5QghDUEwIRBBqIAIIQwCQCAIAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAn4CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAbAIgZBJWsOViEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0BAwQnLQcICQotLS0NLS0tLRASFBYYFxweIC0tLS0tLQACJgYFLQgCLQstLQwOLQ8tJRETFS0ZGx0fLQsgAygCGCIFQQZNDSIMKgsgAygCGCIFQQZLDSkgBUGHgAhqDCILIAMoAhAiBUELSw0oIAVBjoAIagwhCyADKAIQIgVBC0sNJyAFQZqACGoMIAsgAzQCFELsDnxC5AB/IRQMIwtB3wAhEAsgAzQCDCEUDCELQa8TIQ0MHwsgAzQCFCIVQuwOfCEUAkAgAygCHCIFQQJMBEAgFCAVQusOfCADEIMCQQFGGyEUDAELIAVB6QJJDQAgFULtDnwgFCADEIMCQQFGGyEUCyAGQecARg0ZDCALIAM0AgghFAweC0ECIQUgAygCCCIGRQRAQgwhFAwgCyAGrCIUQgx9IBQgBkEMShshFAwfCyADKAIcQQFqrCEUQQMhBQweCyADKAIQQQFqrCEUDBsLIAM0AgQhFAwaCyAIQQE2AnxBwx8hBQweC0GngAhBpoAIIAMoAghBC0obDBQLQdQVIQ0MFgtBACEMQQAhESMAQRBrIg8kACADNAIUIRQCfiADKAIQIg1BDE8EQCANIA1BDG0iBkEMbGsiBUEMaiAFIAVBAEgbIQ0gBiAFQR91aqwgFHwhFAsgD0EMaiEGIBRCAn1CiAFYBEAgFKciDEHEAGtBAnUhBQJAIAYCfyAMQQNxRQRAIAVBAWshBSAGRQ0CQQEMAQsgBkUNAUEACzYCAAsgDEGA54QPbCAFQYCjBWxqQYDWr+MHaqwMAQsgFELkAH0iFCAUQpADfyIWQpADfn0iFUI/h6cgFqdqIRMCQAJAAkAgFaciBUGQA2ogBSAVQgBTGyIFBH8CfyAFQcgBTgRAIAVBrAJPBEBBAyEMIAVBrAJrDAILQQIhDCAFQcgBawwBCyAFQeQAayAFIAVB4wBKIgwbCyIFDQFBAAVBAQshBSAGDQEMAgsgBUECdiERIAVBA3FFIQUgBkUNAQsgBiAFNgIACyAUQoDnhA9+IBEgDEEYbCATQeEAbGpqIAVrrEKAowV+fEKAqrrDA3wLIRQgDUECdEGwnAFqKAIAIgVBgKMFaiAFIA8oAgwbIAUgDUEBShshBSADKAIMIQYgAzQCCCEVIAM0AgQhFiADNAIAIA9BEGokACAUIAWsfCAGQQFrrEKAowV+fCAVQpAcfnwgFkI8fnx8IAM0AiR9DAgLIAM0AgAhFAwVCyAIQQE2AnxBxR8hBQwZC0HBFSENDBILIAMoAhgiBUEHIAUbrAwECyADKAIcIAMoAhhrQQdqQQdurSEUDBELIAMoAhwgAygCGEEGakEHcGtBB2pBB26tIRQMEAsgAxCDAq0hFAwPCyADNAIYCyEUQQEhBQwPC0GpgAghDAwKC0GqgAghDAwJCyADNAIUQuwOfELkAIEiFCAUQj+HIhSFIBR9IRQMCgsgAzQCFCIVQuwOfCEUIBVCpD9TDQogCyAUNwMwIAggB0H4EiALQTBqEIYBNgJ8IAchBQwOCyADKAIgQQBIBEAgCEEANgJ8QcYfIQUMDgsgCyADKAIkIgVBkBxtIgZB5ABsIAUgBkGQHGxrwUE8bcFqNgJAIAggB0H+EiALQUBrEIYBNgJ8IAchBQwNCyADKAIgQQBIBEAgCEEANgJ8QcYfIQUMDQsgAygCKEG07wEtAABBAXFFBEBBiO8BQYzvAUHA7wFB4O8BEBJBlO8BQeDvATYCAEGQ7wFBwO8BNgIAQbTvAUEBOgAACwwLCyAIQQE2AnxBux4hBQwLCyAUQuQAgSEUDAULIAVBgIAIcgsgBBCfAwwHC0GrgAghDAsgDCAEEJ8DIQ0LIAggB0HkACANIAMgBBCeAyIFNgJ8IAdBACAFGyEFDAULQQIhBQwBC0EEIQULAkAgCSAQIAkbIgZB3wBHBEAgBkEtRw0BIAsgFDcDECAIIAdB+RIgC0EQahCGATYCfCAHIQUMBAsgCyAUNwMoIAsgBTYCICAIIAdB8hIgC0EgahCGATYCfCAHIQUMAwsgCyAUNwMIIAsgBTYCACAIIAdB6xIgCxCGATYCfCAHIQUMAgtB7RsLIgUQqAE2AnwLIAtB0ABqJAAgBUUNAQJAIA5FBEAgCCgCfCEJDAELAn8CQAJAIAUtAAAiBkEraw4DAQABAAsgCCgCfAwBCyAFLQABIQYgBUEBaiEFIAgoAnxBAWsLIQkCQCAGQf8BcUEwRw0AA0AgBSwAASIHQTBrQQlLDQEgBUEBaiEFIAlBAWshCSAHQTBGDQALCyAIIAk2AnxBACEGA0AgBiIHQQFqIQYgBSAHaiwAAEEwa0EKSQ0ACyAOIAkgCSAOSRshBgJAIAAgCmogAygCFEGUcUgEf0EtBSASQStHDQEgBiAJayAHakEDQQUgCCgCDC0AAEHDAEYbSQ0BQSsLOgAAIAZBAWshBiAKQQFqIQoLIAYgCU0gASAKTXINAANAIAAgCmpBMDoAACAKQQFqIQogBkEBayIGIAlNDQEgASAKSw0ACwsgCCAJIAEgCmsiByAHIAlLGyIHNgJ8IAAgCmogBSAHEHEaIAgoAnwgCmoLIQogAkEBaiECIAEgCksNAQsLIAFBAWsgCiABIApGGyEKQQALIQYgACAKakEAOgAACyAIQYABaiQAIAYLugEBAn8gAEEORgRAQdEbQeEVIAEoAgAbDwsgAEH//wNxIgJB//8DRyAAQRB1IgNBBUpyRQRAIAEgA0ECdGooAgAiAEEIakGMFiAAGw8LQcYfIQACQAJ/AkACQAJAIANBAWsOBQABBAQCBAsgAkEBSw0DQeCcAQwCCyACQTFLDQJB8JwBDAELIAJBA0sNAUGwnwELIQAgAkUEQCAADwsDQCAALQAAIABBAWohAA0AIAJBAWsiAg0ACwsgAAsOACAAEKEDBEAgABAtCwsnACAAQQBHIABBmIMBR3EgAEGwgwFHcSAAQYzuAUdxIABBpO4BR3EL5AIBA38CQCABLQAADQBB2hUQhgIiAQRAIAEtAAANAQsgAEEMbEHQgwFqEIYCIgEEQCABLQAADQELQecVEIYCIgEEQCABLQAADQELQc8bIQELAkADQCABIAJqLQAAIgRFIARBL0ZyRQRAQRchBCACQQFqIgJBF0cNAQwCCwsgAiEEC0HPGyEDAkACQAJAAkACQCABLQAAIgJBLkYNACABIARqLQAADQAgASEDIAJBwwBHDQELIAMtAAFFDQELIANBzxsQ0AFFDQAgA0GuFRDQAQ0BCyAARQRAQfSCASECIAMtAAFBLkYNAgtBAA8LQYjuASgCACICBEADQCADIAJBCGoQ0AFFDQIgAigCICICDQALC0EkEDQiAgRAIAJB9IIBKQIANwIAIAJBCGoiASADIAQQcRogASAEakEAOgAAIAJBiO4BKAIANgIgQYjuASACNgIACyACQfSCASAAIAJyGyECCyACCyUBAX8jAEEQayICJAAgAiABNgIMIABBxhAgARCkAyACQRBqJAALwR4CD38FfiMAQZABayIDJAAgA0EAQZAB/AsAIANBfzYCTCADIAA2AiwgA0HhADYCICADIAA2AlQgASEEIAIhDyMAQbACayIFJAAgAygCTBoCQAJAIAMoAgRFBEAgAxDJAxogAygCBEUNAQsgBC0AACIBRQ0BAkACQANAAkACQCABQf8BcSIAEH0EQANAIAQiAUEBaiEEIAEtAAEQfQ0ACyADQgAQZANAAn8gAygCBCIAIAMoAmhHBEAgAyAAQQFqNgIEIAAtAAAMAQsgAxAmCxB9DQALIAMoAgQhBCADKQNwQgBZBEAgAyAEQQFrIgQ2AgQLIAQgAygCLGusIAMpA3ggFHx8IRQMAQsCfwJAAkAgAEElRgRAIAQtAAEiAEEqRg0BIABBJUcNAgsgA0IAEGQCQCAELQAAQSVGBEADQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiARB9DQALIARBAWohBAwBCyADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AACEBDAELIAMQJiEBCyAELQAAIAFHBEAgAykDcEIAWQRAIAMgAygCBEEBazYCBAsgAUEATiANcg0KDAkLIAMoAgQgAygCLGusIAMpA3ggFHx8IRQgBCEBDAMLQQAhByAEQQJqDAELAkAgAEEwayIAQQlLDQAgBC0AAkEkRw0AIwBBEGsiASAPNgIMIAEgDyAAQQJ0akEEayAPIABBAUsbIgBBBGo2AgggACgCACEHIARBA2oMAQsgDygCACEHIA9BBGohDyAEQQFqCyEBQQAhC0EAIQIgAS0AACIEQTBrQf8BcUEJTQRAA0AgAkEKbCAEQf8BcWpBMGshAiABLQABIQQgAUEBaiEBIARBMGtB/wFxQQpJDQALCyAEQf8BcUHtAEcEfyABBUEAIQkgB0EARyELIAEtAAEhBEEAIQogAUEBagsiBkEBaiEBQQMhAAJAAkACQAJAAkACQCAEQf8BcUHBAGsOOgQJBAkEBAQJCQkJAwkJCQkJCQQJCQkJBAkJBAkJCQkJBAkEBAQEBAAEBQkBCQQEBAkJBAIECQkECQIJCyAGQQJqIAEgBi0AAUHoAEYiABshAUF+QX8gABshAAwECyAGQQJqIAEgBi0AAUHsAEYiABshAUEDQQEgABshAAwDC0EBIQAMAgtBAiEADAELQQAhACAGIQELQQEgACABLQAAIgBBL3FBA0YiBBshEAJAIABBIHIgACAEGyIMQdsARg0AAkAgDEHuAEcEQCAMQeMARw0BQQEgAiACQQFMGyECDAILIAcgECAUEKUDDAILIANCABBkA0ACfyADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AAAwBCyADECYLEH0NAAsgAygCBCEEIAMpA3BCAFkEQCADIARBAWsiBDYCBAsgBCADKAIsa6wgAykDeCAUfHwhFAsgAyACrCISEGQCQCADKAIEIgAgAygCaEcEQCADIABBAWo2AgQMAQsgAxAmQQBIDQQLIAMpA3BCAFkEQCADIAMoAgRBAWs2AgQLQRAhBAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAMQdgAaw4hBgsLAgsLCwsLAQsCBAEBAQsFCwsLCwsDBgsLAgsECwsGAAsgDEHBAGsiAEEGS0EBIAB0QfEAcUVyDQoLIAVBCGogAyAQQQAQqAMgAykDeEIAIAMoAgQgAygCLGusfVENDiAHRQ0JIAUpAxAhEiAFKQMIIRMgEA4DBQYHCQsgDEEQckHzAEYEQCAFQSBqQX9BgQIQmAIgBUEAOgAgIAxB8wBHDQggBUEAOgBBIAVBADoALiAFQQA2ASoMCAsgBUEgaiABLQABIgBB3gBGIgRBgQIQmAIgBUEAOgAgIAFBAmogAUEBaiAEGyEGAn8CQAJAIAFBAkEBIAQbai0AACIBQS1HBEAgAUHdAEYNASAAQd4ARyEIIAYMAwsgBSAAQd4ARyIIOgBODAELIAUgAEHeAEciCDoAfgsgBkEBagshAQNAAkAgAS0AACIAQS1HBEAgAEUNDyAAQd0ARg0KDAELQS0hACABLQABIgZFIAZB3QBGcg0AIAFBAWohDgJAIAYgAUEBay0AACIETQRAIAYhAAwBCwNAIARBAWoiBCAFQSBqaiAIOgAAIAQgDi0AACIASQ0ACwsgDiEBCyAAIAVBIGpqIAg6AAEgAUEBaiEBDAALAAtBCCEEDAILQQohBAwBC0EAIQQLQgAhEkEAIQJBACEGQQAhDiMAQRBrIggkAAJAIARBAUcgBEEkTXFFBEBBiOoBQRw2AgAMAQsDQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiABB9DQALAkACQCAAQStrDgMAAQABC0F/QQAgAEEtRhshDiADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AACEADAELIAMQJiEACwJAAkACQAJAIARBAEcgBEEQR3EgAEEwR3JFBEACfyADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AAAwBCyADECYLIgBBX3FB2ABGBEBBECEEAn8gAygCBCIAIAMoAmhHBEAgAyAAQQFqNgIEIAAtAAAMAQsgAxAmCyIAQYH/AGotAABBEEkNAyADKQNwQgBZBEAgAyADKAIEQQFrNgIECyADQgAQZAwGCyAEDQFBCCEEDAILIARBCiAEGyIEIABBgf8Aai0AAEsNACADKQNwQgBZBEAgAyADKAIEQQFrNgIECyADQgAQZEGI6gFBHDYCAAwECyAEQQpHDQAgAEEwayICQQlNBEBBACEAA0AgAEEKbCACaiIAQZmz5swBSQJ/IAMoAgQiAiADKAJoRwRAIAMgAkEBajYCBCACLQAADAELIAMQJgtBMGsiAkEJTXENAAsgAK0hEgsgAkEJSw0CIBJCCn4hEyACrSEVA0ACQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiAEEwayICQQlNIBMgFXwiEkKas+bMmbPmzBlUcUUEQCACQQlNDQEMBQsgEkIKfiITIAKtIhVCf4VYDQELC0EKIQQMAQsgBCAEQQFrcQRAIABBgf8Aai0AACIGIARJBEADQCAGIAIgBGxqIgJBx+PxOEkCfyADKAIEIgAgAygCaEcEQCADIABBAWo2AgQgAC0AAAwBCyADECYLIgBBgf8Aai0AACIGIARJcQ0ACyACrSESCyAEIAZNDQEgBK0hEwNAIBIgE34iFSAGrUL/AYMiFkJ/hVYNAiAVIBZ8IRIgBAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiAEGB/wBqLQAAIgZNDQIgCCATQgAgEkIAEEAgCCkDCFANAAsMAQsgBEEXbEEFdkEHcSwAgYEBIREgAEGB/wBqLQAAIgIgBEkEQANAIAIgBiARdCIAciEGIABBgICAwABJAn8gAygCBCIAIAMoAmhHBEAgAyAAQQFqNgIEIAAtAAAMAQsgAxAmCyIAQYH/AGotAAAiAiAESXENAAsgBq0hEgsgAiAETw0AQn8gEa0iE4giFSASVA0AA0AgAq1C/wGDIBIgE4aEIRIgBAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiAEGB/wBqLQAAIgJNDQEgEiAVWA0ACwsgBCAAQYH/AGotAABNDQADQCAEAn8gAygCBCIAIAMoAmhHBEAgAyAAQQFqNgIEIAAtAAAMAQsgAxAmC0GB/wBqLQAASw0AC0GI6gFBxAA2AgBBACEOQn8hEgsgAykDcEIAWQRAIAMgAygCBEEBazYCBAsgDkEBckUgEkJ/UXEEQEGI6gFBxAA2AgBCfiESDAELIBIgDqwiE4UgE30hEgsgCEEQaiQAIAMpA3hCACADKAIEIAMoAixrrH1RDQkgB0UgDEHwAEdyRQRAIAcgEj4CAAwFCyAHIBAgEhClAwwECyAHIBMgEhCmAzgCAAwDCyAHIBMgEhCVAjkDAAwCCyAHIBM3AwAgByASNwMIDAELQR8gAkEBaiAMQeMARyIGGyEIAn8gEEEBRgRAIAchAiALBEAgCEECdBA0IgJFDQULIAVCADcCqAJBACEEAkACQANAIAIhAANAAn8gAygCBCICIAMoAmhHBEAgAyACQQFqNgIEIAItAAAMAQsgAxAmCyICIAVqLQAhRQ0CIAUgAjoAGyAFQRxqIAVBG2pBASAFQagCahDSASICQX5GDQAgAkF/RgRAQQAhCQwECyAABEAgACAEQQJ0aiAFKAIcNgIAIARBAWohBAsgC0UgBCAIR3INAAsgACAIQQF0QQFyIghBAnQQ3AEiAg0AC0EAIQkgACEKQQEhCwwIC0EAIQkgACAFQagCagR/IAUoAqgCBUEAC0UNAhoLIAAhCgwGCyALBEBBACEEIAgQNCICRQ0EA0AgAiEAA0ACfyADKAIEIgIgAygCaEcEQCADIAJBAWo2AgQgAi0AAAwBCyADECYLIgIgBWotACFFBEAgACEJQQAMBAsgACAEaiACOgAAIARBAWoiBCAIRw0ACyAAIAhBAXRBAXIiCBDcASICDQALQQAhCiAAIQlBASELDAYLQQAhBCAHBEADQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsiACAFai0AIQRAIAQgB2ogADoAACAEQQFqIQQMAQUgByIAIQlBAAwDCwALAAsDQAJ/IAMoAgQiACADKAJoRwRAIAMgAEEBajYCBCAALQAADAELIAMQJgsgBWotACENAAtBACEAQQAhCUEACyEKIAMoAgQhAiADKQNwQgBZBEAgAyACQQFrIgI2AgQLIAMpA3ggAiADKAIsa6x8IhNQIAYgEiATUXJFcg0FIAsEQCAHIAA2AgALIAxB4wBGDQAgCgRAIAogBEECdGpBADYCAAsgCUUEQEEAIQkMAQsgBCAJakEAOgAACyADKAIEIAMoAixrrCADKQN4IBR8fCEUIA0gB0EAR2ohDQsgAUEBaiEEIAEtAAEiAQ0BDAULC0EBIQtBACEJQQAhCgsgDUF/IA0bIQ0LIAtFDQEgCRAtIAoQLQwBC0F/IQ0LIAVBsAJqJAAgA0GQAWokACANC0MAAkAgAEUNAAJAAkACQAJAIAFBAmoOBgABAgIEAwQLIAAgAjwAAA8LIAAgAj0BAA8LIAAgAj4CAA8LIAAgAjcDAAsL2QMCBX8CfiMAQSBrIgQkACABQv///////z+DIQcCQCABQjCIQv//AYMiCKciA0GB/wBrQf0BTQRAIAdCGYinIQICQCAAUCABQv///w+DIgdCgICACFQgB0KAgIAIURtFBEAgAkEBaiECDAELIAAgB0KAgIAIhYRCAFINACACQQFxIAJqIQILQQAgAiACQf///wNLIgUbIQJBgYF/QYCBfyAFGyADaiEDDAELIAAgB4RQIAhC//8BUnJFBEAgB0IZiKdBgICAAnIhAkH/ASEDDAELIANB/oABSwRAQf8BIQMMAQtBgP8AQYH/ACAIUCIFGyIGIANrIgJB8ABKBEBBACECQQAhAwwBCyAEQRBqIAAgByAHQoCAgICAgMAAhCAFGyIHQYABIAJrEEQgBCAAIAcgAhCKASAEKQMIIgBCGYinIQICQCAEKQMAIAMgBkcgBCkDECAEKQMYhEIAUnGthCIHUCAAQv///w+DIgBCgICACFQgAEKAgIAIURtFBEAgAkEBaiECDAELIAcgAEKAgIAIhYRCAFINACACQQFxIAJqIQILIAJBgICABHMgAiACQf///wNLIgMbIQILIARBIGokACABQiCIp0GAgICAeHEgA0EXdHIgAnK+C4kEAgN/AX4CQAJAAn8CQAJAAn8gACgCBCICIAAoAmhHBEAgACACQQFqNgIEIAItAAAMAQsgABAmCyICQStrDgMAAQABCyACQS1GIAFFAn8gACgCBCIDIAAoAmhHBEAgACADQQFqNgIEIAMtAAAMAQsgABAmCyIDQTprIgFBdUtyDQEaIAApA3BCAFMNAiAAIAAoAgRBAWs2AgQMAgsgAkE6ayEBIAIhA0EACyEEIAFBdkkNAAJAIANBMGtBCk8NAEEAIQIDQCADIAJBCmxqAn8gACgCBCICIAAoAmhHBEAgACACQQFqNgIEIAItAAAMAQsgABAmCyEDQTBrIQIgAkHMmbPmAEggA0EwayIBQQlNcQ0ACyACrCEFIAFBCk8NAANAIAOtIAVCCn58IQUCfyAAKAIEIgEgACgCaEcEQCAAIAFBAWo2AgQgAS0AAAwBCyAAECYLIgNBMGsiAUEJTSAFQjB9IgVCro+F18fC66MBU3ENAAsgAUEKTw0AA0ACfyAAKAIEIgEgACgCaEcEQCAAIAFBAWo2AgQgAS0AAAwBCyAAECYLQTBrQQpJDQALCyAAKQNwQgBZBEAgACAAKAIEQQFrNgIEC0IAIAV9IAUgBBshBQwBC0KAgICAgICAgIB/IQUgACkDcEIAUw0AIAAgACgCBEEBazYCBEKAgICAgICAgIB/DwsgBQuJMgMRfwd+AXwjAEEwayIMJAACQAJAIAJBAksNACACQQJ0IgIoAux+IREgAigC4H4hEANAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARAmCyICEH0NAAtBASEIAkACQCACQStrDgMAAQABC0F/QQEgAkEtRhshCCABKAIEIgIgASgCaEcEQCABIAJBAWo2AgQgAi0AACECDAELIAEQJiECCwJAAkAgAkFfcUHJAEYEQANAIAZBB0YNAgJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQJgshAiAGLACKCCAGQQFqIQYgAkEgckYNAAsLIAZBA0cEQCAGQQhGIgcNASADRSAGQQRJcg0CIAcNAQsgASkDcCIVQgBZBEAgASABKAIEQQFrNgIECyADRSAGQQRJcg0AIBVCAFMhAgNAIAJFBEAgASABKAIEQQFrNgIECyAGQQFrIgZBA0sNAAsLQgAhFSMAQRBrIgckACAIskMAAIB/lLwiA0H///8DcSEIAn8gA0EXdiICQf8BcSIBBEAgAUH/AUcEQCAIrUIZhiEVIAJB/wFxQYD/AGoMAgsgCK1CGYYhFUH//wEMAQtBACAIRQ0AGiAHIAitQgAgCGciAUHRAGoQRCAHKQMIQoCAgICAgMAAhSEVIAcpAwAhFkGJ/wAgAWsLIQEgDCAWNwMAIAwgAa1CMIYgA0Efdq1CP4aEIBWENwMIIAdBEGokACAMKQMIIRUgDCkDACEWDAILAkACQAJAAkACQAJAIAYNAEEAIQYgAkFfcUHOAEcNAANAIAZBAkYNAgJ/IAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAADAELIAEQJgshAiAGLADnDSAGQQFqIQYgAkEgckYNAAsLIAYOBAMBAQABCwJAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARAmC0EoRgRAQQEhBgwBC0KAgICAgIDg//8AIRUgASkDcEIAUw0GIAEgASgCBEEBazYCBAwGCwNAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARAmCyICQTBrQQpJIAJBwQBrQRpJciACQd8ARnJFIAJB4QBrQRpPcUUEQCAGQQFqIQYMAQsLQoCAgICAgOD//wAhFSACQSlGDQUgASkDcCIWQgBZBEAgASABKAIEQQFrNgIECwJAIAMEQCAGDQEMBQtBiOoBQRw2AgBCACEWDAILA0AgFkIAWQRAIAEgASgCBEEBazYCBAsgBkEBayIGDQALDAMLIAEpA3BCAFkEQCABIAEoAgRBAWs2AgQLQYjqAUEcNgIACyABQgAQZAwCCwJAIAJBMEcNAAJ/IAEoAgQiByABKAJoRwRAIAEgB0EBajYCBCAHLQAADAELIAEQJgtBX3FB2ABGBEAjAEGwA2siBSQAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARAmCyECAkACfwNAIAJBMEcEQAJAIAJBLkcNBCABKAIEIgIgASgCaEYNACABIAJBAWo2AgQgAi0AAAwDCwUgASgCBCICIAEoAmhHBH9BASEPIAEgAkEBajYCBCACLQAABUEBIQ8gARAmCyECDAELCyABECYLIgJBMEcEQEEBIQsMAQsDQCAYQgF9IRgCfyABKAIEIgIgASgCaEcEQCABIAJBAWo2AgQgAi0AAAwBCyABECYLIgJBMEYNAAtBASELQQEhDwtCgICAgICAwP8/IRYDQAJAIAIhBgJAAkAgAkEwayINQQpJDQAgAkEuRyIHIAJBIHIiBkHhAGtBBUtxDQIgBw0AIAsNAkEBIQsgFSEYDAELIAZB1wBrIA0gAkE5ShshAgJAIBVCB1cEQCACIAlBBHRqIQkMAQsgFUIcWARAIAVBMGogAhBPIAVBIGogGiAWQgBCgICAgICAwP0/EC8gBUEQaiAFKQMwIAUpAzggBSkDICIaIAUpAygiFhAvIAUgBSkDECAFKQMYIBcgGRBKIAUpAwghGSAFKQMAIRcMAQsgAkUgCnINACAFQdAAaiAaIBZCAEKAgICAgICA/z8QLyAFQUBrIAUpA1AgBSkDWCAXIBkQSkEBIQogBSkDSCEZIAUpA0AhFwsgFUIBfCEVQQEhDwsgASgCBCICIAEoAmhHBH8gASACQQFqNgIEIAItAAAFIAEQJgshAgwBCwsCfiAPRQRAAkACQCABKQNwQgBZBEAgASABKAIEIgJBAWs2AgQgA0UNASABIAJBAms2AgQgC0UNAiABIAJBA2s2AgQMAgsgAw0BCyABQgAQZAsgBUHgAGpEAAAAAAAAAAAgCLemEGwgBSkDYCEXIAUpA2gMAQsgFUIHVwRAIBUhFgNAIAlBBHQhCSAWQgF8IhZCCFINAAsLAkACQAJAIAJBX3FB0ABGBEAgASADEKcDIhZCgICAgICAgICAf1INAyADBEAgASkDcEIAWQ0CDAMLQgAhFyABQgAQZEIADAQLQgAhFiABKQNwQgBTDQILIAEgASgCBEEBazYCBAtCACEWCyAJRQRAIAVB8ABqRAAAAAAAAAAAIAi3phBsIAUpA3AhFyAFKQN4DAELIBggFSALG0IChiAWfEIgfSIVQQAgEWutVQRAQYjqAUHEADYCACAFQaABaiAIEE8gBUGQAWogBSkDoAEgBSkDqAFCf0L///////+///8AEC8gBUGAAWogBSkDkAEgBSkDmAFCf0L///////+///8AEC8gBSkDgAEhFyAFKQOIAQwBCyARQeIBa6wgFVcEQCAJQQBOBEADQCAFQaADaiAXIBlCAEKAgICAgIDA/79/EEogFyAZQoCAgICAgID/PxCtAyEBIAVBkANqIBcgGSAFKQOgAyAXIAFBAE4iAhsgBSkDqAMgGSACGxBKIAIgCUEBdCIBciEJIBVCAX0hFSAFKQOYAyEZIAUpA5ADIRcgAUEATg0ACwsCfiAVQSAgEWutfCIWpyIBQQAgAUEAShsgECAWIBCtUxsiAUHxAE8EQCAFQYADaiAIEE8gBSkDiAMhFiAFKQOAAyEaQgAMAQsgBUHgAmpBkAEgAWsQmQIQbCAFQdACaiAIEE8gBSkD0AIhGiAFQfACaiAFKQPgAiAFKQPoAiAFKQPYAiIWEKwDIAUpA/gCIRsgBSkD8AILIRggBUHAAmogCSAJQQFxRSAXIBlCAEIAEIcBQQBHIAFBIElxcSIBchCcASAFQbACaiAaIBYgBSkDwAIgBSkDyAIQLyAFQZACaiAFKQOwAiAFKQO4AiAYIBsQSiAFQaACaiAaIBZCACAXIAEbQgAgGSABGxAvIAVBgAJqIAUpA6ACIAUpA6gCIAUpA5ACIAUpA5gCEEogBUHwAWogBSkDgAIgBSkDiAIgGCAbEIgCIAUpA/ABIhggBSkD+AEiFkIAQgAQhwFFBEBBiOoBQcQANgIACyAFQeABaiAYIBYgFacQqwMgBSkD4AEhFyAFKQPoAQwBC0GI6gFBxAA2AgAgBUHQAWogCBBPIAVBwAFqIAUpA9ABIAUpA9gBQgBCgICAgICAwAAQLyAFQbABaiAFKQPAASAFKQPIAUIAQoCAgICAgMAAEC8gBSkDsAEhFyAFKQO4AQshFSAMIBc3AxAgDCAVNwMYIAVBsANqJAAgDCkDGCEVIAwpAxAhFgwECyABKQNwQgBTDQAgASABKAIEQQFrNgIECyABIQYgAiEHIAghDSADIQhBACEDIwBBkMYAayIEJABBACARayIPIBBrIRQCQAJ/A0ACQCAHQTBHBEAgB0EuRw0EIAYoAgQiASAGKAJoRg0BIAYgAUEBajYCBCABLQAADAMLIAYoAgQiASAGKAJoRwRAIAYgAUEBajYCBCABLQAAIQcFIAYQJiEHC0EBIQMMAQsLIAYQJgsiB0EwRgRAA0AgFUIBfSEVAn8gBigCBCIBIAYoAmhHBEAgBiABQQFqNgIEIAEtAAAMAQsgBhAmCyIHQTBGDQALQQEhAwtBASELCyAEQQA2ApAGAn4CQAJAAkACQCAHQS5GIgEgB0EwayICQQlNcgRAA0ACQCABQQFxBEAgC0UEQCAWIRVBASELDAILIANFIQEMBAsgFkIBfCEWIAlB/A9MBEAgDiAWpyAHQTBGGyEOIARBkAZqIAlBAnRqIgEgCgR/IAcgASgCAEEKbGpBMGsFIAILNgIAQQEhA0EAIApBAWoiASABQQlGIgEbIQogASAJaiEJDAELIAdBMEYNACAEIAQoAoBGQQFyNgKARkHcjwEhDgsCfyAGKAIEIgEgBigCaEcEQCAGIAFBAWo2AgQgAS0AAAwBCyAGECYLIgdBLkYiASAHQTBrIgJBCklyDQALCyAVIBYgCxshFSADRSAHQV9xQcUAR3JFBEACQCAGIAgQpwMiF0KAgICAgICAgIB/Ug0AIAhFDQRCACEXIAYpA3BCAFMNACAGIAYoAgRBAWs2AgQLIBUgF3whFQwECyADRSEBIAdBAEgNAQsgBikDcEIAUw0AIAYgBigCBEEBazYCBAsgAUUNAUGI6gFBHDYCAAsgBkIAEGRCACEVQgAMAQsgBCgCkAYiAUUEQCAERAAAAAAAAAAAIA23phBsIAQpAwghFSAEKQMADAELIBUgFlIgFkIJVXIgEEEeTUEAIAEgEHYbckUEQCAEQTBqIA0QTyAEQSBqIAEQnAEgBEEQaiAEKQMwIAQpAzggBCkDICAEKQMoEC8gBCkDGCEVIAQpAxAMAQsgD0EBdq0gFVMEQEGI6gFBxAA2AgAgBEHgAGogDRBPIARB0ABqIAQpA2AgBCkDaEJ/Qv///////7///wAQLyAEQUBrIAQpA1AgBCkDWEJ/Qv///////7///wAQLyAEKQNIIRUgBCkDQAwBCyARQeIBa6wgFVUEQEGI6gFBxAA2AgAgBEGQAWogDRBPIARBgAFqIAQpA5ABIAQpA5gBQgBCgICAgICAwAAQLyAEQfAAaiAEKQOAASAEKQOIAUIAQoCAgICAgMAAEC8gBCkDeCEVIAQpA3AMAQsgCgRAIApBCEwEQCAEQZAGaiAJQQJ0aiIBKAIAIQYDQCAGQQpsIQYgCkEBaiIKQQlHDQALIAEgBjYCAAsgCUEBaiEJCwJAIA5BCU4gFUIRVXIgFaciCiAOSHINACAVQglRBEAgBEHAAWogDRBPIARBsAFqIAQoApAGEJwBIARBoAFqIAQpA8ABIAQpA8gBIAQpA7ABIAQpA7gBEC8gBCkDqAEhFSAEKQOgAQwCCyAVQghXBEAgBEGQAmogDRBPIARBgAJqIAQoApAGEJwBIARB8AFqIAQpA5ACIAQpA5gCIAQpA4ACIAQpA4gCEC8gBEHgAWpBCCAKa0ECdCgCwH4QTyAEQdABaiAEKQPwASAEKQP4ASAEKQPgASAEKQPoARCqAyAEKQPYASEVIAQpA9ABDAILIBAgCkF9bGpBG2oiAkEeTEEAIAQoApAGIgEgAnYbDQAgBEHgAmogDRBPIARB0AJqIAEQnAEgBEHAAmogBCkD4AIgBCkD6AIgBCkD0AIgBCkD2AIQLyAEQbACaiAKQQJ0QZj+AGooAgAQTyAEQaACaiAEKQPAAiAEKQPIAiAEKQOwAiAEKQO4AhAvIAQpA6gCIRUgBCkDoAIMAQsDQCAEQZAGaiAJIgFBAWsiCUECdGooAgBFDQALQQAhDgJAIApBCW8iAkUEQEEAIQIMAQsgAkEJaiACIBVCAFMbIRICQCABRQRAQQAhAkEAIQEMAQtBgJTr3ANBACASa0ECdEHg/gBqKAIAIgVtIQtBACEHQQAhBkEAIQIDQCAEQZAGaiIPIAZBAnRqIgMgByADKAIAIgkgBW4iCGoiAzYCACACQQFqQf8PcSACIANFIAIgBkZxIgMbIQIgCkEJayAKIAMbIQogCyAJIAUgCGxrbCEHIAZBAWoiBiABRw0ACyAHRQ0AIAFBAnQgD2ogBzYCACABQQFqIQELIAogEmtBCWohCgsDQCAEQZAGaiACQQJ0aiEPIApBJEghBgJAA0AgBkUEQCAKQSRHDQIgDygCAEHR6fkETw0CCyABQf8PaiEJQQAhAwNAIAEhCCADrSAEQZAGaiAJQf8PcSILQQJ0aiIBNQIAQh2GfCIVQoGU69wDVAR/QQAFIBUgFUKAlOvcA4AiFkKAlOvcA359IRUgFqcLIQMgASAVPgIAIAggCCALIAggFVAbIAIgC0YbIAsgCEEBa0H/D3EiB0cbIQEgC0EBayEJIAIgC0cNAAsgDkEdayEOIAghASADRQ0ACyACQQFrQf8PcSICIAFGBEAgBEGQBmoiCCABQf4PakH/D3FBAnRqIgEgASgCACAHQQJ0IAhqKAIAcjYCACAHIQELIApBCWohCiAEQZAGaiACQQJ0aiADNgIADAELCwJAA0AgAUEBakH/D3EhCCAEQZAGaiABQQFrQf8PcUECdGohEgNAQQlBASAKQS1KGyETAkADQCACIQNBACEGAkADQAJAIAMgBmpB/w9xIgIgAUYNACAEQZAGaiACQQJ0aigCACIHIAZBAnQoArB+IgJJDQAgAiAHSQ0CIAZBAWoiBkEERw0BCwsgCkEkRw0AQgAhFUEAIQZCACEWA0AgASADIAZqQf8PcSICRgRAIAFBAWpB/w9xIgFBAnQgBGpBADYCjAYLIARBgAZqIARBkAZqIAJBAnRqKAIAEJwBIARB8AVqIBUgFkIAQoCAgIDlmreOwAAQLyAEQeAFaiAEKQPwBSAEKQP4BSAEKQOABiAEKQOIBhBKIAQpA+gFIRYgBCkD4AUhFSAGQQFqIgZBBEcNAAsgBEHQBWogDRBPIARBwAVqIBUgFiAEKQPQBSAEKQPYBRAvQgAhFSAEKQPIBSEWIAQpA8AFIRcgDkHxAGoiByARayIJQQAgCUEAShsgECAJIBBIIggbIgZB8ABNDQIMBQsgDiATaiEOIAEhAiABIANGDQALQYCU69wDIBN2IQVBfyATdEF/cyELQQAhBiADIQIDQCAEQZAGaiIPIANBAnRqIgcgBiAHKAIAIgkgE3ZqIgc2AgAgAkEBakH/D3EgAiAHRSACIANGcSIHGyECIApBCWsgCiAHGyEKIAkgC3EgBWwhBiADQQFqQf8PcSIDIAFHDQALIAZFDQEgAiAIRwRAIAFBAnQgD2ogBjYCACAIIQEMAwsgEiASKAIAQQFyNgIADAELCwsgBEGQBWpB4QEgBmsQmQIQbCAEQbAFaiAEKQOQBSAEKQOYBSAWEKwDIAQpA7gFIRogBCkDsAUhGSAEQYAFakHxACAGaxCZAhBsIARBoAVqIBcgFiAEKQOABSAEKQOIBRCpAyAEQfAEaiAXIBYgBCkDoAUiFSAEKQOoBSIYEIgCIARB4ARqIBkgGiAEKQPwBCAEKQP4BBBKIAQpA+gEIRYgBCkD4AQhFwsCQCADQQRqQf8PcSICIAFGDQACQCAEQZAGaiACQQJ0aigCACICQf/Jte4BTQRAIAJFIANBBWpB/w9xIAFGcQ0BIARB8ANqIA23RAAAAAAAANA/ohBsIARB4ANqIBUgGCAEKQPwAyAEKQP4AxBKIAQpA+gDIRggBCkD4AMhFQwBCyACQYDKte4BRwRAIARB0ARqIA23RAAAAAAAAOg/ohBsIARBwARqIBUgGCAEKQPQBCAEKQPYBBBKIAQpA8gEIRggBCkDwAQhFQwBCyANtyEcIAEgA0EFakH/D3FGBEAgBEGQBGogHEQAAAAAAADgP6IQbCAEQYAEaiAVIBggBCkDkAQgBCkDmAQQSiAEKQOIBCEYIAQpA4AEIRUMAQsgBEGwBGogHEQAAAAAAADoP6IQbCAEQaAEaiAVIBggBCkDsAQgBCkDuAQQSiAEKQOoBCEYIAQpA6AEIRULIAZB7wBLDQAgBEHQA2ogFSAYQgBCgICAgICAwP8/EKkDIAQpA9ADIAQpA9gDQgBCABCHAQ0AIARBwANqIBUgGEIAQoCAgICAgMD/PxBKIAQpA8gDIRggBCkDwAMhFQsgBEGwA2ogFyAWIBUgGBBKIARBoANqIAQpA7ADIAQpA7gDIBkgGhCIAiAEKQOoAyEWIAQpA6ADIRcCQCAUQQJrIAdB/////wdxTg0AIAQgFkL///////////8AgzcDmAMgBCAXNwOQAyAEQYADaiAXIBZCAEKAgICAgICA/z8QLyAEKQOQAyAEKQOYA0KAgICAgICAuMAAEK0DIQIgBCkDiAMgFiACQQBOIgEbIRYgBCkDgAMgFyABGyEXIAggBiAJRyACQQBIcnEgFSAYQgBCABCHAUEAR3FFIBQgASAOaiIOQe4Aak5xDQBBiOoBQcQANgIACyAEQfACaiAXIBYgDhCrAyAEKQP4AiEVIAQpA/ACCyEWIAwgFTcDKCAMIBY3AyAgBEGQxgBqJAAgDCkDKCEVIAwpAyAhFgwCC0IAIRYMAQtCACEVCyAAIBY3AwAgACAVNwMIIAxBMGokAAvDBgIEfwN+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEIcBRQ0AAn8gBEL///////8/gyEKAn8gBEIwiKdB//8BcSIHQf//AUcEQEEEIAcNARpBAkEDIAMgCoRQGwwCCyADIAqEUAsLRQ0AIAJCMIinIghB//8BcSIGQf//AUcNAQsgBUEQaiABIAIgAyAEEC8gBSAFKQMQIgIgBSkDGCIBIAIgARCqAyAFKQMIIQIgBSkDACEEDAELIAEgAkL///////////8AgyIKIAMgBEL///////////8AgyIJEIcBQQBMBEAgASAKIAMgCRCHAQRAIAEhBAwCCyAFQfAAaiABIAJCAEIAEC8gBSkDeCECIAUpA3AhBAwBCyAEQjCIp0H//wFxIQcgBgR+IAEFIAVB4ABqIAEgCkIAQoCAgICAgMC7wAAQLyAFKQNoIgpCMIinQfgAayEGIAUpA2ALIQQgB0UEQCAFQdAAaiADIAlCAEKAgICAgIDAu8AAEC8gBSkDWCIJQjCIp0H4AGshByAFKQNQIQMLIAlC////////P4NCgICAgICAwACEIQsgCkL///////8/g0KAgICAgIDAAIQhCiAGIAdKBEADQAJ+IAogC30gAyAEVq19IglCAFkEQCAJIAQgA30iBIRQBEAgBUEgaiABIAJCAEIAEC8gBSkDKCECIAUpAyAhBAwFCyAJQgGGIARCP4iEDAELIApCAYYgBEI/iIQLIQogBEIBhiEEIAZBAWsiBiAHSg0ACyAHIQYLAkAgCiALfSADIARWrX0iCUIAUwRAIAohCQwBCyAJIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQLyAFKQM4IQIgBSkDMCEEDAELIAlC////////P1gEQANAIARCP4ggBkEBayEGIARCAYYhBCAJQgGGhCIJQoCAgICAgMAAVA0ACwsgCEGAgAJxIQcgBkEATARAIAVBQGsgBCAJQv///////z+DIAZB+ABqIAdyrUIwhoRCAEKAgICAgIDAwz8QLyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAuIEAIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCEH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg5CgICAgICAwP//AFQgDkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAOhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyAOQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIJG3lCwABCACAJG3ynIglBD2sQRCAGIAlqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBAIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEEAgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQQCAFQfABaiAEQgBCACAFKQOIAn1CABBAIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEEAgBUHQAWogBEIAQgAgBSkD6AF9QgAQQCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBAIAVBsAFqIARCAEIAIAUpA8gBfUIAEEAgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQQCAFQZABaiADQg+GQgAgAkIAEEAgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDiAFKQOYAXwiBCAOVK18IARCAVatfH1CABBAIAVBgAFqQgEgBH1CACACQgAQQCAGIAggB2tqIghB//8AaiEGAn4gBSkDcCITQgGGIg0gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIOQiCIIgsgECAUVq0gDSAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig0gEVStIA0gDSATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig1WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCANIA9CIIZ8Ig8gDVStfCAPIA8gFEL/////D4MiFCAKfiINIAIgC358IhEgDVStIBEgESATIA5C/v///w+DIg1+fCIRVq18fCIPVq18IA8gBCAUfiIYIA0gEH58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA9UrXwgBCAEIBEgAiANfiIKIAsgFH58IgJCIIggAiAKVK1CIIaEfCIKIBFUrSAKIAogEEIghnwiClatfHwiBFatfCAEIAQgCiACQiCGIgIgDSAUfnwgAlStQn+FIgJWIAIgClJxrXwiBFatfCICQv////////8AWARAIBYgF4QhFSAFQdAAaiAEIAJCgICAgICAwABUIgetIguGIgogAiALhiAEQgGIIAdBP3OtiIQiBCADIBIQQCAIQf7/AGogBiAHG0EBayEGIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9DAELIAVB4ABqIAJCP4YgBEIBiIQiCiACQgGIIgQgAyASEEAgAUIwhiAFKQNofSAFKQNgIgJCAFKtfSELIAEhDkIAIAJ9CyECIAZB//8BTgRAIAxCgICAgICAwP//AIQhDEIAIQEMAQsCfiAGQQBKBEAgC0IBhiACQj+IhCEBIARC////////P4MgBq1CMIaEIQsgAkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAogBEEBIAZrEIoBIAVBMGogDiAVIAZB8ABqEEQgBUEgaiADIBIgBSkDQCIKIAUpA0giCxBAIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgIgAUIBhiIEVK19IQEgAiAEfQshAiAFQRBqIAMgEkIDQgAQQCAFIAMgEkIFQgAQQCALIAogAyAKQgGDIgMgAnwiAlQgASACIANUrXwiASASViABIBJRG618IgMgClStfCIEIAMgAyAEQoCAgICAgMD//wBUIAIgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgNWrXwiBCADIARCgICAgICAwP//AFQgAiAFKQMAViABIAUpAwgiAlYgASACURtxrXwiASADVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQLyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABAvQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORAvIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAvQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAvIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBScQ0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQCABIAJSIAEgAlNxDQEgACABIAKFhEIAUg8LIABCAFIgASACVSABIAJRGw0AIAAgASAChYRCAFIhAwsgAws0AQF/IAFBgICAgARPBEAQjAEACyAAIAEQswIiAjYCBCAAIAI2AgAgACACIAFBAnRqNgIICwoAIABBMGtBCkkLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILEwAgAEEgciAAIABBwQBrQRpJGwspAQF/IAAoAgAiAQRAIAEQvQNBf0cEQCAAKAIARQ8LIABBADYCAAtBAQspAQF/IAAoAgAiAQRAIAEQwwNBf0cEQCAAKAIARQ8LIABBADYCAAtBAQsUACACIAAgASAAayIAEE0gACACagskAQJ/IwBBEGsiAiQAIAEgABDTASEDIAJBEGokACABIAAgAxsLDAAgAEEAIABBf0cbCywBAX8gAUEASARAEIwBAAsgACABEFMiAjYCBCAAIAI2AgAgACABIAJqNgIIC5EBAQN/AkAgASACEIoCIQQjAEEQayIDJAAgBEH3////B00EQAJAIAQQ1AEEQCAAIAQQUCAAIQUMAQsgA0EIaiAEEJ8BQQFqEJ4BIAMoAgwaIAAgAygCCCIFNgIAIAAgAygCDBBcIAAgBDYCBAsgASACIAUQtAMgA0EAOgAHIANBB2oQXSADQRBqJAAMAQsQWwALCw8AIAAgACgCGCABajYCGAsXACAAIAI2AhwgACABNgIUIAAgATYCGAtUAQJ/AkAgACgCACICRQ0AAn8gAigCGCIDIAIoAhxGBEAgAiABIAIoAgAoAjQRBAAMAQsgAiADQQRqNgIYIAMgATYCACABC0F/Rw0AIABBADYCAAsLMQEBfyAAKAIMIgEgACgCEEYEQCAAIAAoAgAoAigRAAAPCyAAIAFBBGo2AgwgASgCAAsnAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBEAAA8LIAEoAgALLgEBfyMAQRBrIgEkACABIAA2AgBB6gsgARByEH9BoPEAKAIAEGEaIAFBEGokAAskAQF/AkAgACgCACICRQ0AIAIgARDCA0F/Rw0AIABBADYCAAsLPQEBfyADBEAgACADELcDIAAoAgQhAyACIAFrIgRFIAEgAkZyRQRAIAMgASAE/AoAAAsgACADIARqNgIECwsJACAAEI8CEC0LPQEBfyAAKAIYIgIgACgCHEYEQCAAIAEQowEgACgCACgCNBEEAA8LIAAgAkEBajYCGCACIAE6AAAgARCjAQsqAQF/IAAoAgwiASAAKAIQRgRAIAAgACgCACgCJBEAAA8LIAEsAAAQowELDwAgACAAKAIAKAIYEQAAC6wCAQJ/IwBBEGsiASQAIAAgACgCAEEMaygCAGooAhgEQCABIAA2AgwgAUEAOgAIIAAgACgCAEEMaygCAGoQ2QEEQCAAIAAoAgBBDGsoAgBqKAJIIgIEQCACEMUDCyABQQE6AAgLAkAgAS0ACEUNACAAIAAoAgBBDGsoAgBqKAIYEMQDQX9HDQAgACAAKAIAQQxrKAIAakEBENUBCwJAIAEoAgwiACAAKAIAQQxrKAIAaigCGEUNACABKAIMIgAgACgCAEEMaygCAGoQ2QFFDQAgASgCDCIAIAAoAgBBDGsoAgBqKAIEQYDAAHFFDQAgASgCDCIAIAAoAgBBDGsoAgBqKAIYEMQDQX9HDQAgASgCDCIAIAAoAgBBDGsoAgBqQQEQ1QELCyABQRBqJAALCQAgABCQAhAtCy0AIABByABqEDogAEE8ahA6IABBMGoQOiAAQSRqEDogAEEYahA6IABBDGoQOgsEAEF/C3wBAn8gACAAKAJIIgFBAWsgAXI2AkggACgCFCAAKAIcRwRAIABBAEEAIAAoAiQRAwAaCyAAQQA2AhwgAEIANwMQIAAoAgAiAUEEcQRAIAAgAUEgcjYCAEF/DwsgACAAKAIsIAAoAjBqIgI2AgggACACNgIEIAFBG3RBH3ULBQAQFwALLQAgAEHMAGoQOiAAQUBrEDogAEE0ahA6IABBKGoQOiAAQRxqEDogAEEQahA6CxIAIABFBEBBAA8LIAAgARCWAgsPACAAIAEgAkE0QTUQ0QMLvAIAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACAkKCAkBAgMECgkKCggJBQYHCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxEBAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALbwEFfyAAKAIAIgMsAABBMGsiAUEJSwRAQQAPCwNAQX8hBCACQcyZs+YATQRAQX8gASACQQpsIgVqIAEgBUH/////B3NLGyEECyAAIANBAWoiBTYCACADLAABIAQhAiAFIQNBMGsiAUEKSQ0ACyACC/oSAhN/An4jAEFAaiIIJAAgCCABNgI8IAhBKWohFyAIQSdqIRggCEEoaiERAkACQAJAAkADQEEAIQcDQCABIQ0gByAOQf////8Hc0oNAiAHIA5qIQ4CQAJAAkACQCABIgctAAAiCwRAA0ACQAJAIAtB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQsDQCALLQABQSVHBEAgCyEBDAILIAdBAWohByALLQACIAtBAmoiASELQSVGDQALCyAHIA1rIgcgDkH/////B3MiGUoNCSAABEAgACANIAcQQgsgBw0HIAggATYCPCABQQFqIQdBfyEQAkAgASwAAUEwayIKQQlLDQAgAS0AAkEkRw0AIAFBA2ohB0EBIRIgCiEQCyAIIAc2AjxBACEMAkAgBywAACILQSBrIgFBH0sEQCAHIQoMAQsgByEKQQEgAXQiAUGJ0QRxRQ0AA0AgCCAHQQFqIgo2AjwgASAMciEMIAcsAAEiC0EgayIBQSBPDQEgCiEHQQEgAXQiAUGJ0QRxDQALCwJAIAtBKkYEQAJ/AkAgCiwAAUEwayIBQQlLDQAgCi0AAkEkRw0AAn8gAEUEQCAEIAFBAnRqQQo2AgBBAAwBCyADIAFBA3RqKAIACyEPIApBA2ohAUEBDAELIBINBiAKQQFqIQEgAEUEQCAIIAE2AjxBACESQQAhDwwDCyACIAIoAgAiB0EEajYCACAHKAIAIQ9BAAshEiAIIAE2AjwgD0EATg0BQQAgD2shDyAMQYDAAHIhDAwBCyAIQTxqEM8DIg9BAEgNCiAIKAI8IQELQQAhB0F/IQkCf0EAIAEtAABBLkcNABogAS0AAUEqRgRAAn8CQCABLAACQTBrIgpBCUsNACABLQADQSRHDQAgAUEEaiEBAn8gAEUEQCAEIApBAnRqQQo2AgBBAAwBCyADIApBA3RqKAIACwwBCyASDQYgAUECaiEBQQAgAEUNABogAiACKAIAIgpBBGo2AgAgCigCAAshCSAIIAE2AjwgCUEATgwBCyAIIAFBAWo2AjwgCEE8ahDPAyEJIAgoAjwhAUEBCyEUA0AgByEVQRwhCiABIhMsAAAiB0H7AGtBRkkNCyABQQFqIQEgByAVQTpsakHv8ABqLQAAIgdBAWtB/wFxQQhJDQALIAggATYCPAJAIAdBG0cEQCAHRQ0MIBBBAE4EQCAARQRAIAQgEEECdGogBzYCAAwMCyAIIAMgEEEDdGopAwA3AzAMAgsgAEUNCCAIQTBqIAcgAiAGEM4DDAELIBBBAE4NC0EAIQcgAEUNCAsgAC0AAEEgcQ0LIAxB//97cSILIAwgDEGAwABxGyEMQQAhEEHuCCEWIBEhCgJAAkACfwJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgEy0AACIHwCITQVNxIBMgB0EPcUEDRhsgEyAVGyIHQdgAaw4hBBYWFhYWFhYWEBYJBhAQEBYGFhYWFgIFAxYWChYBFhYEAAsCQCAHQcEAaw4HEBYLFhAQEAALIAdB0wBGDQsMFQsgCCkDMCEbQe4IDAULQQAhBwJAAkACQAJAAkACQAJAIBUOCAABAgMEHAUGHAsgCCgCMCAONgIADBsLIAgoAjAgDjYCAAwaCyAIKAIwIA6sNwMADBkLIAgoAjAgDjsBAAwYCyAIKAIwIA46AAAMFwsgCCgCMCAONgIADBYLIAgoAjAgDqw3AwAMFQtBCCAJIAlBCE0bIQkgDEEIciEMQfgAIQcLIBEhASAHQSBxIQsgCCkDMCIbIhpQRQRAA0AgAUEBayIBIBqnQQ9xLQCAdSALcjoAACAaQg9WIBpCBIghGg0ACwsgASENIAxBCHFFIBtQcg0DIAdBBHZB7ghqIRZBAiEQDAMLIBEhASAIKQMwIhsiGlBFBEADQCABQQFrIgEgGqdBB3FBMHI6AAAgGkIHViAaQgOIIRoNAAsLIAEhDSAMQQhxRQ0CIAkgFyABayIBIAEgCUgbIQkMAgsgCCkDMCIbQgBTBEAgCEIAIBt9Ihs3AzBBASEQQe4IDAELIAxBgBBxBEBBASEQQe8IDAELQfAIQe4IIAxBAXEiEBsLIRYgGyAREKYBIQ0LIBQgCUEASHENESAMQf//e3EgDCAUGyEMIBtCAFIgCXJFBEAgESENQQAhCQwOCyAJIBtQIBEgDWtqIgEgASAJSBshCQwNCyAILQAwIQcMCwsgCCgCMCIBQZUcIAEbIg1BAEH/////ByAJIAlB/////wdPGyIHEOABIgEgDWsgByABGyIBIA1qIQogCUEATgRAIAshDCABIQkMDAsgCyEMIAEhCSAKLQAADQ8MCwsgCCkDMCIaUEUNAUEAIQcMCQsgCQRAIAgoAjAMAgtBACEHIABBICAPQQAgDBBFDAILIAhBADYCDCAIIBo+AgggCCAIQQhqIgc2AjBBfyEJIAcLIQtBACEHA0ACQCALKAIAIg1FDQAgCEEEaiANEMwDIg1BAEgNDyANIAkgB2tLDQAgC0EEaiELIAcgDWoiByAJSQ0BCwtBPSEKIAdBAEgNDCAAQSAgDyAHIAwQRSAHRQRAQQAhBwwBC0EAIQogCCgCMCELA0AgCygCACINRQ0BIAhBBGoiCSANEMwDIg0gCmoiCiAHSw0BIAAgCSANEEIgC0EEaiELIAcgCksNAAsLIABBICAPIAcgDEGAwABzEEUgDyAHIAcgD0gbIQcMCAsgFCAJQQBIcQ0JQT0hCiAAIAgrAzAgDyAJIAwgByAFESAAIgdBAE4NBwwKCyAHLQABIQsgB0EBaiEHDAALAAsgAA0JIBJFDQNBASEHA0AgBCAHQQJ0aigCACIABEAgAyAHQQN0aiAAIAIgBhDOA0EBIQ4gB0EBaiIHQQpHDQEMCwsLIAdBCk8EQEEBIQ4MCgsDQCAEIAdBAnRqKAIADQFBASEOIAdBAWoiB0EKRw0ACwwJC0EcIQoMBgsgCCAHOgAnQQEhCSAYIQ0gCyEMCyAJIAogDWsiCyAJIAtKGyIBIBBB/////wdzSg0DQT0hCiAPIAEgEGoiCSAJIA9IGyIHIBlLDQQgAEEgIAcgCSAMEEUgACAWIBAQQiAAQTAgByAJIAxBgIAEcxBFIABBMCABIAtBABBFIAAgDSALEEIgAEEgIAcgCSAMQYDAAHMQRSAIKAI8IQEMAQsLC0EAIQ4MAwtBPSEKC0GI6gEgCjYCAAtBfyEOCyAIQUBrJAAgDgvCAgEEfyMAQdABayIFJAAgBSACNgLMASAFQaABaiICQQBBKPwLACAFIAUoAswBNgLIAQJAQQAgASAFQcgBaiAFQdAAaiACIAMgBBDQA0EASARAQX8hBAwBCyAAKAJMQQBIIAAgACgCACIIQV9xNgIAAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhBiAAIAU2AiwMAQsgACgCEA0BC0F/IAAQ3wENARoLIAAgASAFQcgBaiAFQdAAaiAFQaABaiADIAQQ0AMLIQIgBgRAIABBAEEAIAAoAiQRAwAaIABBADYCMCAAIAY2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAhBIHFyNgIAQX8gAiAAQSBxGyEEDQALIAVB0AFqJAAgBAt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARDSAyEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCz4BAX8jAEEQayIBJAAgASAANgIMAn8gAEEETwRAQZ0fIAFBDGoQlwJBAAwBCyAAQQJ0KAKILQsgAUEQaiQACwYAIAEQLQsJACABIAJsEDQLJQECfyAAKAIEIgAQqAFBAWoiARA0IgIEfyACIAAgARBxBUEACwsNACAAKAIEIAAoAgBrCzABAX8jAEEQayIEJAAgACgCACEAIAQgAzoADyABIAIgBEEPaiAAEQMAIARBEGokAAuNAgIBfwF8IwBBEGsiAyQAIANBDmogASACIAAoAgARBQAgAyADLwAOOwEMIwBBEGsiASQAAkAgAy0ADUEBRgRAIwBBEGsiAiQAQazgAS0AAEEBcUUEQEECQYQsQQMQDyEAQazgAUEBOgAAQajgASAANgIACyACIAMtAAw2AgggAkEANgIEQajgASgCAEEAQQAgAkEEaiACQQhqEA4hBCACIAIoAgQ2AgAgAUEIaiIAIAT8AzYCBCAAQfzgATYCACACEJ8CIAJBEGokACAAKAIEIQIgAEEANgIEIAAQtQEMAQsgAUEANgIMIAFB/OABNgIIIAFBCGoQtQFBAiECCyABQRBqJAAgA0EQaiQAIAILVAECfyMAQRBrIgQkACABIAAoAgQiBUEBdWohASAAKAIAIQAgBUEBcQRAIAEoAgAgAGooAgAhAAsgBCADOgAPIAEgAiAEQQ9qIAARBQAgBEEQaiQAC1IBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAIARBAXEEQCABKAIAIABqKAIAIQALIAMgAjoADyABIANBD2ogABEBACADQRBqJAALMAEBfyMAQRBrIgQkACAAKAIAIQAgBCADOAIMIAEgAiAEQQxqIAARAwAgBEEQaiQAC40CAgF/AXwjAEEQayIDJAAgA0EIaiABIAIgACgCABEFACADIAMpAgg3AwAjAEEQayIBJAACQCADLQAEQQFGBEAjAEEQayICJABBoOABLQAAQQFxRQRAQQJBxCZBAxAPIQBBoOABQQE6AABBnOABIAA2AgALIAIgAyoCADgCCCACQQA2AgRBnOABKAIAQQBBACACQQRqIAJBCGoQDiEEIAIgAigCBDYCACABQQhqIgAgBPwDNgIEIABB/OABNgIAIAIQnwIgAkEQaiQAIAAoAgQhAiAAQQA2AgQgABC1AQwBCyABQQA2AgwgAUH84AE2AgggAUEIahC1AUECIQILIAFBEGokACADQRBqJAAgAgtUAQJ/IwBBEGsiBCQAIAEgACgCBCIFQQF1aiEBIAAoAgAhACAFQQFxBEAgASgCACAAaigCACEACyAEIAM4AgwgASACIARBDGogABEFACAEQRBqJAALUgECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQAgBEEBcQRAIAEoAgAgAGooAgAhAAsgAyACOAIMIAEgA0EMaiAAEQEAIANBEGokAAsbACAAIAEoAgggBRA7BEAgASACIAMgBBDnAQsLOAAgACABKAIIIAUQOwRAIAEgAiADIAQQ5wEPCyAAKAIIIgAgASACIAMgBCAFIAAoAgAoAhQRCgALkgIBBn8gACABKAIIIAUQOwRAIAEgAiADIAQQ5wEPCyABLQA1IAAoAgwhBiABQQA6ADUgAS0ANCABQQA6ADQgAEEQaiIJIAEgAiADIAQgBRDlASABLQA0IgpyIQggAS0ANSILciEHAkAgBkECSQ0AIAkgBkEDdGohCSAAQRhqIQYDQCABLQA2DQECQCAKQQFxBEAgASgCGEEBRg0DIAAtAAhBAnENAQwDCyALQQFxRQ0AIAAtAAhBAXFFDQILIAFBADsBNCAGIAEgAiADIAQgBRDlASABLQA1IgsgB3JBAXEhByABLQA0IgogCHJBAXEhCCAGQQhqIgYgCUkNAAsLIAEgB0EBcToANSABIAhBAXE6ADQLkgEAIAAgASgCCCAEEDsEQCABIAIgAxDmAQ8LAkAgACABKAIAIAQQO0UNAAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNASABQQE2AiAPCyABIAI2AhQgASADNgIgIAEgASgCKEEBajYCKAJAIAEoAiRBAUcNACABKAIYQQJHDQAgAUEBOgA2CyABQQQ2AiwLC/YBACAAIAEoAgggBBA7BEAgASACIAMQ5gEPCwJAIAAgASgCACAEEDsEQAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEKACABLQA1QQFGBEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBELAAsLrwQBA38gACABKAIIIAQQOwRAIAEgAiADEOYBDwsCQAJAIAAgASgCACAEEDsEQAJAIAEoAhAgAkcEQCACIAEoAhRHDQELIANBAUcNAyABQQE2AiAPCyABIAM2AiAgASgCLEEERg0BIABBEGoiBSAAKAIMQQN0aiEHQQAhAwNAAkACQCABAn8CQCAFIAdPDQAgAUEAOwE0IAUgASACIAJBASAEEOUBIAEtADYNACABLQA1QQFHDQMgAS0ANEEBRgRAIAEoAhhBAUYNA0EBIQNBASEGIAAtAAhBAnFFDQMMBAtBASEDIAAtAAhBAXENA0EDDAELQQNBBCADGws2AiwgBg0FDAQLIAFBAzYCLAwECyAFQQhqIQUMAAsACyAAKAIMIQUgAEEQaiIGIAEgAiADIAQQtwEgBUECSQ0BIAYgBUEDdGohBiAAQRhqIQUCQCAAKAIIIgBBAnFFBEAgASgCJEEBRw0BCwNAIAEtADYNAyAFIAEgAiADIAQQtwEgBUEIaiIFIAZJDQALDAILIABBAXFFBEADQCABLQA2DQMgASgCJEEBRg0DIAUgASACIAMgBBC3ASAFQQhqIgUgBkkNAAwDCwALA0AgAS0ANg0CIAEoAiRBAUYEQCABKAIYQQFGDQMLIAUgASACIAMgBBC3ASAFQQhqIgUgBkkNAAsMAQsgASACNgIUIAEgASgCKEEBajYCKCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsLjgUBBH8jAEFAaiIEJAACQCABQaDZAUEAEDsEQCACQQA2AgBBASEFDAELAkAgACABIAAtAAhBGHEEf0EBBSABRQ0BIAFB9NYBEFIiA0UNASADLQAIQRhxQQBHCxA7IQYLIAYEQEEBIQUgAigCACIARQ0BIAIgACgCADYCAAwBCwJAIAFFDQAgAUGk1wEQUiIGRQ0BIAIoAgAiAQRAIAIgASgCADYCAAsgBigCCCIDIAAoAggiAUF/c3FBB3EgA0F/cyABcUHgAHFyDQFBASEFIAAoAgwgBigCDEEAEDsNASAAKAIMQZTZAUEAEDsEQCAGKAIMIgBFDQIgAEHU1wEQUkUhBQwCCyAAKAIMIgNFDQBBACEFIANBpNcBEFIiAQRAIAAtAAhBAXFFDQICfyAGKAIMIQBBACECAkADQEEAIABFDQIaIABBpNcBEFIiA0UNASADKAIIIAEoAghBf3NxDQFBASABKAIMIAMoAgxBABA7DQIaIAEtAAhBAXFFDQEgASgCDCIARQ0BIABBpNcBEFIiAQRAIAMoAgwhAAwBCwsgAEGI2AEQUiIARQ0AIAAgAygCDBCpAiECCyACCyEFDAILIANBiNgBEFIiAQRAIAAtAAhBAXFFDQIgASAGKAIMEKkCIQUMAgsgA0HE1gEQUiIBRQ0BIAYoAgwiAEUNASAAQcTWARBSIgBFDQEgAigCACEDIARBCGpBAEE4/AsAIAQgA0EARzoAOyAEQX82AhAgBCABNgIMIAQgADYCBCAEQQE2AjQgACAEQQRqIANBASAAKAIAKAIcEQgAIAQoAhwiAEEBRgRAIAIgBCgCFEEAIAMbNgIACyAAQQFGIQUMAQtBACEFCyAEQUBrJAAgBQtvAQJ/IAAgASgCCEEAEDsEQCABIAIgAxDpAQ8LIAAoAgwhBCAAQRBqIgUgASACIAMQqwICQCAEQQJJDQAgBSAEQQN0aiEEIABBGGohAANAIAAgASACIAMQqwIgAS0ANg0BIABBCGoiACAESQ0ACwsLMgAgACABKAIIQQAQOwRAIAEgAiADEOkBDwsgACgCCCIAIAEgAiADIAAoAgAoAhwRCAALGQAgACABKAIIQQAQOwRAIAEgAiADEOkBCwvIAQECfyMAQdAAayIDJAACQAJ/QQEgACABQQAQOw0AGkEAIAFFDQAaQQAgAUHE1gEQUiIBRQ0AGiACKAIAIgRFDQEgA0EYakEAQTj8CwAgA0EBOgBLIANBfzYCICADIAA2AhwgAyABNgIUIANBATYCRCABIANBFGogBEEBIAEoAgAoAhwRCAAgAygCLCIAQQFGBEAgAiADKAIkNgIACyAAQQFGCyADQdAAaiQADwsgA0GeFjYCCCADQecDNgIEIANBig02AgAQPQALAwAACxEBAX9BBBBTIgBBADYCACAACwkAQaD0ARA5GgslAEGs9AEtAABFBEBBoPQBQdisARCRAUGs9AFBAToAAAtBoPQBCwkAQZD0ARAgGgskAEGc9AEtAABFBEBBkPQBQc4NELABQZz0AUEBOgAAC0GQ9AELCQBBgPQBEDkaCyUAQYz0AS0AAEUEQEGA9AFBhKwBEJEBQYz0AUEBOgAAC0GA9AELCQBB8PMBECAaCyQAQfzzAS0AAEUEQEHw8wFBmRUQsAFB/PMBQQE6AAALQfDzAQsJAEHg8wEQORoLqQIBBH8gAiABIAAoAgBqIgBHBEACQCACKAIEIgQgAigCACIBa0ECdSIGIAAoAgggACgCACICa0ECdU0EQCAGIAAoAgQiAyACayIFQQJ1SwRAIAIgA0cEQCAFBEAgAiABIAX8CgAACyAAKAIEIQMLIAQgASAFaiIBayICRSABIARGckUEQCADIAEgAvwKAAALIAAgAiADajYCBAwCCyAEIAFrIgNFIAEgBEZyRQRAIAIgASAD/AoAAAsgACACIANqNgIEDAELIAAoAgAiAgRAIAAgAjYCBCAAKAIIGiACEC0gAEEANgIIIABCADcCAAsgACAAIAYQtgEQrgMgACgCBCECIAQgAWsiA0UgASAERnJFBEAgAiABIAP8CgAACyAAIAIgA2o2AgQLCwslAEHs8wEtAABFBEBB4PMBQeCrARCRAUHs8wFBAToAAAtB4PMBCwkAQeTeARAgGgsaAEHd8wEtAABFBEBB3fMBQQE6AAALQeTeAQsJAEHQ8wEQORoLJQBB3PMBLQAARQRAQdDzAUG8qwEQkQFB3PMBQQE6AAALQdDzAQsJAEHY3gEQIBoLGgBBzfMBLQAARQRAQc3zAUEBOgAAC0HY3gELGwBBqPwBIQADQCAAQQxrEDkiAEGQ/AFHDQALC1QAQczzAS0AAARAQcjzASgCAA8LQaj8AS0AAEUEQEGo/AFBAToAAAtBkPwBQfjUARApQZz8AUGE1QEQKUHM8wFBAToAAEHI8wFBkPwBNgIAQZD8AQsbAEGI/AEhAANAIABBDGsQICIAQfD7AUcNAAsLFQAgASAAKAIAaiEAQQwQUyAAEIEBC1IAQcTzAS0AAARAQcDzASgCAA8LQYj8AS0AAEUEQEGI/AFBAToAAAtB8PsBQdEVECpB/PsBQc4VECpBxPMBQQE6AABBwPMBQfD7ATYCAEHw+wELGwBB4PsBIQADQCAAQQxrEDkiAEHA+QFHDQALC7ACAEG88wEtAAAEQEG48wEoAgAPC0Hg+wEtAABFBEBB4PsBQQE6AAALQcD5AUHw0AEQKUHM+QFBkNEBEClB2PkBQbTRARApQeT5AUHM0QEQKUHw+QFB5NEBEClB/PkBQfTRARApQYj6AUGI0gEQKUGU+gFBnNIBEClBoPoBQbjSARApQaz6AUHg0gEQKUG4+gFBgNMBEClBxPoBQaTTARApQdD6AUHI0wEQKUHc+gFB2NMBEClB6PoBQejTARApQfT6AUH40wEQKUGA+wFB5NEBEClBjPsBQYjUARApQZj7AUGY1AEQKUGk+wFBqNQBEClBsPsBQbjUARApQbz7AUHI1AEQKUHI+wFB2NQBEClB1PsBQejUARApQbzzAUEBOgAAQbjzAUHA+QE2AgBBwPkBCxsAQbD5ASEAA0AgAEEMaxAgIgBBkPcBRw0ACwuYAgBBtPMBLQAABEBBsPMBKAIADwtBsPkBLQAARQRAQbD5AUEBOgAAC0GQ9wFBmwgQKkGc9wFBkggQKkGo9wFBzQ8QKkG09wFBnA4QKkHA9wFB4QgQKkHM9wFBhxEQKkHY9wFBowgQKkHk9wFBkwkQKkHw9wFB1QwQKkH89wFBxAwQKkGI+AFBzAwQKkGU+AFB3wwQKkGg+AFB6g0QKkGs+AFBlRUQKkG4+AFBhg0QKkHE+AFB9gsQKkHQ+AFB4QgQKkHc+AFB3g0QKkHo+AFBkA4QKkH0+AFB0w8QKkGA+QFByg0QKkGM+QFBngoQKkGY+QFBiwkQKkGk+QFB+BQQKkG08wFBAToAAEGw8wFBkPcBNgIAQZD3AQsbAEGI9wEhAANAIABBDGsQOSIAQeD1AUcNAAsLzAEAQazzAS0AAARAQajzASgCAA8LQYj3AS0AAEUEQEGI9wFBAToAAAtB4PUBQZzOARApQez1AUG4zgEQKUH49QFB1M4BEClBhPYBQfTOARApQZD2AUGczwEQKUGc9gFBwM8BEClBqPYBQdzPARApQbT2AUGA0AEQKUHA9gFBkNABEClBzPYBQaDQARApQdj2AUGw0AEQKUHk9gFBwNABEClB8PYBQdDQARApQfz2AUHg0AEQKUGs8wFBAToAAEGo8wFB4PUBNgIAQeD1AQsbAEHY9QEhAANAIABBDGsQICIAQbD0AUcNAAsLvgEAQaTzAS0AAARAQaDzASgCAA8LQdj1AS0AAEUEQEHY9QFBAToAAAtBsPQBQcwIECpBvPQBQdMIECpByPQBQbEIECpB1PQBQbkIECpB4PQBQagIECpB7PQBQdoIECpB+PQBQcMIECpBhPUBQdoNECpBkPUBQeINECpBnPUBQeoQECpBqPUBQasTECpBtPUBQY8JECpBwPUBQbIPECpBzPUBQcIKECpBpPMBQQE6AABBoPMBQbD0ATYCAEGw9AELDwAgASAAKAIAaiACOgAACwsAIABBpKsBEJEBCwoAIABB7hAQsAELCwAgAEGQqwEQkQELCgAgAEHlEBCwAQsMACAAIAFBEGoQ5AELDAAgACABQQxqEOQBCwcAIAAsAAkLBwAgACwACAsJACAAEMMCEC0LDQAgASAAKAIAai0AAAsJACAAEMQCEC0LFQAgACgCCCIARQRAQQEPCyAAEMwCC44BAQZ/A0ACQCACIANGIAQgCE1yDQBBASEGIAAoAgghByMAQRBrIgUkACAFIAc2AgwgBUEIaiAFQQxqEGNBACACIAMgAmsgAUH07wEgARsQ0gEhChBiIAVBEGokAAJAAkAgCiIFQQJqDgMCAgEACyAFIQYLIAhBAWohCCAGIAlqIQkgAiAGaiECDAELCyAJC0YBAn8gACgCCCECIwBBEGsiASQAIAEgAjYCDCABQQhqIAFBDGoQYxBiIAFBEGokACAAKAIIIgBFBEBBAQ8LIAAQzAJBAUYLiQEBAn8jAEEQayIGJAAgBCACNgIAAn9BAiAGQQxqIgVBACAAKAIIEO4BIgBBAWpBAkkNABpBASAAQQFrIgIgAyAEKAIAa0sNABoDfyACBH8gBS0AACEAIAQgBCgCACIBQQFqNgIAIAEgADoAACACQQFrIQIgBUEBaiEFDAEFQQALCwsgBkEQaiQAC7kGAQ1/IwBBEGsiESQAIAIhCANAAkAgAyAIRgRAIAMhCAwBCyAILQAARQ0AIAhBAWohCAwBCwsgByAFNgIAIAQgAjYCAANAAkACfwJAIAIgA0YgBSAGRnINACARIAEpAgA3AwggACgCCCEJIwBBEGsiECQAIBAgCTYCDCAQQQhqIBBBDGoQYyAIIAJrIQ5BACELIwBBkAhrIgwkACAMIAQoAgAiCTYCDCAFIAxBEGogBRshDwJAAkACQCAJRSAGIAVrQQJ1QYACIAUbIg1FckUEQANAIA5BgwFLIA5BAnYiCiANT3JFBEAgCSEKDAQLIA8gDEEMaiAKIA0gCiANSRsgARCbAyESIAwoAgwhCiASQX9GBEBBACENQX8hCwwDCyANIBJBACAPIAxBEGpHGyIUayENIA8gFEECdGohDyAJIA5qIAprQQAgChshDiALIBJqIQsgCkUNAiAKIQkgDQ0ADAILAAsgCSEKCyAKRQ0BCyANRSAORXINACALIQkDQAJAAkAgDyAKIA4gARDSASILQQJqQQJNBEACQAJAIAtBAWoOAgYAAQsgDEEANgIMDAILIAFBADYCAAwBCyAMIAwoAgwgC2oiCjYCDCAJQQFqIQkgDUEBayINDQELIAkhCwwCCyAPQQRqIQ8gDiALayEOIAkhCyAODQALCyAFBEAgBCAMKAIMNgIACyAMQZAIaiQAEGIgEEEQaiQAAkACQAJAAkAgCyIJQX9GBEADQCAHIAU2AgAgAiAEKAIARg0GQQEhBgJAAkACQCAFIAIgCCACayARQQhqIAAoAggQzQIiAUECag4DBwACAQsgBCACNgIADAQLIAEhBgsgAiAGaiECIAcoAgBBBGohBQwACwALIAcgBygCACAJQQJ0aiIFNgIAIAUgBkYNAyAEKAIAIQIgAyAIRg0GIAUgAkEBIAEgACgCCBDNAkUNAQtBAgwECyAHIAcoAgBBBGoiBTYCACAEIAQoAgBBAWoiAjYCACACIQgDQCADIAhGDQUgCC0AAEUNBiAIQQFqIQgMAAsACyAEIAI2AgBBAQwCCyAEKAIAIQILIAIgA0cLIBFBEGokAA8LIAMhCAwACwALpgUBDH8jAEEQayIPJAAgAiEIA0ACQCADIAhGBEAgAyEIDAELIAgoAgBFDQAgCEEEaiEIDAELCyAHIAU2AgAgBCACNgIAAkADQAJAAkAgAiADRiAFIAZGcgR/IAIFIA8gASkCADcDCEEBIRAgBSEJIAYgBWshCyAAKAIIIQpBACENIwBBEGsiDiQAIA4gCjYCDCAOQQhqIA5BDGoQYyMAQRBrIhEkAAJAIAQoAgAiCkUgCCACa0ECdSISRXINACALQQAgBRshCwNAIBFBDGogCSALQQRJGyAKKAIAEJYCIgxBf0YEQEF/IQ0MAgsgCQR/IAtBA00EQCALIAxJDQMgCSARQQxqIAwQcRoLIAsgDGshCyAJIAxqBUEACyEJIAooAgBFBEBBACEKDAILIAwgDWohDSAKQQRqIQogEkEBayISDQALCyAJBEAgBCAKNgIACyARQRBqJAAQYiAOQRBqJAACQAJAAkACQCANIglBAWoOAgAIAQsgByAFNgIAA0AgAiAEKAIARg0CIAUgAigCACAAKAIIEO4BIgFBf0YNAiAHIAcoAgAgAWoiBTYCACACQQRqIQIMAAsACyAHIAcoAgAgCWoiBTYCACAFIAZGDQEgAyAIRgRAIAQoAgAhAiADIQgMBgsgD0EEaiICQQAgACgCCBDuASIIQX9GDQQgBiAHKAIAayAISQ0GA0AgCARAIAItAAAhBSAHIAcoAgAiCUEBajYCACAJIAU6AAAgCEEBayEIIAJBAWohAgwBCwsgBCAEKAIAQQRqIgI2AgAgAiEIA0AgAyAIRgRAIAMhCAwFCyAIKAIARQ0EIAhBBGohCAwACwALIAQgAjYCAAwDCyAEKAIACyADRyEQDAMLIAcoAgAhBQwBCwtBAiEQCyAPQRBqJAAgEAsJACAAENsCEC0LMwAjAEEQayIAJAAgACAENgIMIAAgAyACazYCCCAAQQxqIABBCGoQtQMoAgAgAEEQaiQACzsAA0AgASACRkUEQCADIQAgBCABLAAAEEwEfyABLQAABSAACzoAACAEQQFqIQQgAUEBaiEBDAELCyABCwsAIAEgAiABEEwbCyoAA0AgASACRkUEQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpgILHQAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABC8ALDwAgACABIAJBmIQBEKYCCyEAIAEQTAR/QZiEASgCACABQf8BcUECdGooAgAFIAELwAsJACAAENACEC0LOwADQCABIAJGRQRAIAMhACAEIAEoAgAQTAR/IAEoAgAFIAALOgAAIARBAWohBCABQQRqIQEMAQsLIAELDAAgASACIAEQTBvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpwILHAAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABCwsPACAAIAEgAkGYhAEQpwILHAAgARBMBH9BmIQBKAIAIAFBAnRqKAIABSABCwsQACAABEAgABDHAwsgABAtCzoAA0ACQCACIANGDQAgAigCABBMRQ0AIAIoAgBBAnRBkKIBaigCACABcUUNACACQQRqIQIMAQsLIAILOQADQAJAIAIgA0YNACACKAIAEEwEQCACKAIAQQJ0QZCiAWooAgAgAXENAQsgAkEEaiECDAELCyACC0YAA0AgASACRkUEQEEAIQAgAyABKAIAEEwEfyABKAIAQQJ0QZCiAWooAgAFQQALNgIAIANBBGohAyABQQRqIQEMAQsLIAELIwBBACEAIAIQTAR/IAJBAnRBkKIBaigCACABcUEARwVBAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQ1gIQLQsVAQF/QdQAEFMiAEEAQdQA/AsAIAALFAAgACgCACABaiACLQAAOgAAQQELrgEAAkAgBRBHRQRAIAAgBSkCADcCACAAIAUoAgg2AgggABBeGgwBCyAFKAIAIQQgBSgCBCECIwBBEGsiAyQAAkACQAJAIAIQvQEEQCAAIgEgAhBQDAELIAJB9////wNLDQEgA0EIaiACEJABQQFqEI8BIAMoAgwaIAAgAygCCCIBNgIAIAAgAygCDBBcIAAgAjYCBAsgASAEIAJBAWoQZSADQRBqJAAMAQsQWwALCwsJACAAIAUQ5AELhAMBCH8jAEHgA2siACQAIABB3ANqIgYgAxAnIAYQSCEKIAUQHwRAIAVBABDMASgCACAKQS0QS0YhCwsgAiALIABB3ANqIABB2ANqIABB1ANqIABB0ANqIABBxANqECQiDCAAQbgDahAkIgYgAEGsA2oQJCIHIABBqANqEN8CIABB4wA2AhAgAEEIakEAIABBEGoiAhA2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KAK8ASAEEI8DOQMAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwvKBAEDfwJ/IwBB4AJrIgAkACAAIAI2AtgCIAAgATYC3AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahD7ASAAQcABahAkIgEgARAoECEgACABQQAQIiICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGQQAhAwNAAkACQAJAIABB3AJqIABB2AJqECsNACAAKAK8ASABEB8gAmpGBEAgARAfIQYgASABEB9BAXQQISABIAEQKBAhIAAgBiABQQAQIiICajYCvAELIABB3AJqEDcgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQ+gENACADDQFBACEDIAAoArwBIAJrIgdBAEwNAgJAAkAgAi0AACIGQStrIggOAwEAAQALIAZBLkYNAkEBIQMgBkEwa0H/AXFBCkkNAwwBCyAHQQFGDQICQCAIDgMAAwADCyACLQABIgZBLkYNAUEBIQMgBkEwa0H/AXFBCU0NAgsCQCAAQcwBahAfRQ0AIAAtAAdBAXFFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEJEDOAIAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCSAzcDACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCVAzsBACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtB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DCECDAYLIANBIHIhAyABQQRqIQIgBEEEayEEIAEtAAMgCHQgB2ohBwsCQCAFQQRxRQ0AIAcgBigCIEYNACAKQd4ONgIYIAZB0f4ANgIEIAIhASAGKAIEIQUMAQsLIAIhAUEAIQdBACEDCyAGQdD+ADYCBAtBASECDAELQQAhBCAMIQILIAogDzYCECAKIBA2AgwgCiAENgIEIAogATYCACAGIAM2AkAgBiAHNgI8AkACQCAGKAIsRQRAIA8gFUYNASAGKAIEQdD+AEsNAQsCfyAVIA9rIQMCQAJAIAooAhwiASgCOCIMRQRAQQEhBSABIAooAihBASABKAIodEEBIAooAiARAwAiDDYCOCAMRQ0BCyABKAIsIgRFBEAgAUIANwIwIAFBASABKAIodCIENgIsCyADIARPBEAgBARAIAwgECAEayAE/AoAAAsgAUEANgI0DAILIAQgASgCNCIIayIFIAMgAyAFSxsiBARAIAggDGogECADayAE/AoAAAsgAyAFSwRAIAMgBGsiAwRAIAEoAjggECADayAD/AoAAAsgASADNgI0DAILQQAhBSABIAEoAjQgBGoiA0EAIAMgASgCLCIMRxs2AjQgDCABKAIwIgNNDQAgASADIARqNgIwCyAFDAELIAEgASgCLDYCMEEACw0BIAooAhAhDyAKKAIEIQQLIAogCigCCCAkIARrajYCCCAKIBUgD2siASAKKAIUajYCFCAGIAYoAiAgAWo2AiAgBi0ADEEEcUUgDyAVRnJFBEAgCigCDCABayEDIAYoAhwhBSAGAn8gBigCFARAIAUgAyABEFEMAQsgBSADIAEQswELIgE2AhwgCiABNgIwCyAKIAYoAkBBwABBACAGKAIIG2pBgAFBACAGKAIEIgFBv/4ARhtqQYACQYACQQAgAUHC/gBGGyABQcf+AEYbajYCLCACQXsgAhsgAiAPIBVGGyACIAQgJEYbIRwMAgsgBkHS/gA2AgQLQXwhHAsgF0EQaiQAIBxBAUsNASATQagBaiEBIBMoAqwBIQMgGigCACEJIBooAgQgEygCFGshDCMAQSBrIggkAAJAIAwgCWsiBUEATA0AIAEoAgggASgCBCICayAFTgRAIAIgA2siBCAFSARAIAwgBCAJaiIHayILRSAHIAxGckUEQCACIAcgC/wKAAALIAEgAiALajYCBCAEQQBMDQIgASADIAIgAyAFahCeAiAERQ0CIAMgCSAE/AoAAAwCCyABIAMgAiADIAVqEJ4CIAVFDQEgAyAJIAX8CgAADAELIAUgCEEMaiABIAUgASgCAGsgAmoQtAEgAyABKAIAayABEMYBIgIoAggiBGohBQNAIAQgBUcEQCAEIAktAAA6AAAgCUEBaiEJIARBAWohBAwBCwsgAiAFNgIIIAIoAgQaIAEoAgQgA2siBARAIAIoAgggAyAE/AoAAAsgAiACKAIIIAEoAgQgA2tqNgIIIAEgAzYCBCACKAIEIAEoAgAiBCADa2ohBSADIARrIgMEQCAFIAQgA/wKAAALIAIgBTYCBCABIAEoAgAiAzYCBCABIAIoAgQ2AgAgAiADNgIEIAEoAgQhAyABIAIoAgg2AgQgAiADNgIIIAEoAgghAyABIAIoAgw2AgggAiADNgIMIAIgAigCBDYCACACELoBCyAIQSBqJAAgHEEBRw0ACyAKEJsCIBoQOiATQZgBaiIDIBMoAqgBIgIgEygCrAEgAmsQsQIgARA6IApBADYCXCAKQfD7ADYCQCAKQcj7ADYCACAKQdz7ADYCCCAKQYD8ACgCACIBNgIAIAogAUEMaygCAGpBhPwAKAIANgIAIApBADYCBCAKIAooAgBBDGsoAgBqIgJBADYCFCACIApBDGoiATYCGCACQQA2AgwgAkKCoICA4AA3AgQgAiABRTYCECACQSBqQQBBKPwLACACQRxqENMCIAJBADoAUCACQoCAgIBwNwJIIApBiPwAKAIAIgI2AgggAkEMaygCACAKQQhqakGM/AAoAgA2AgAgCkH8+wAoAgAiAjYCACAKIAJBDGsoAgBqQZD8ACgCADYCACAKQZT8ACgCADYCCCAKQcj7ADYCACAKQdz7ADYCCCAKQfD7ADYCQCABQZj1ADYCACABQQRqENMCIAFCADcCGCABQgA3AhAgAUIANwIIIAFCADcCICABQZD3ADYCACABQRg2AjAgAUIANwIoAkAgAyABQSBqIgJGDQAgAhBHRQRAIAMQR0UEQCACEF4aIAIQXiADEF5JBEAgAxBeGiACEF4aCyACIAMpAgA3AgAgAiADKAIINgIIIAIQXhoMAgsgAxAjIQUgAxAfIQMjAEEQayIEJAAgAhBeIQwCQCADQQpNBEAgAiADEFAgAiAFIAMQTSAEQQA6AA8gAiADaiAEQQ9qEF0MAQsgAkEKIANBCmsgDEEAIAwgAyAFELkBCyAEQRBqJAAMAQsgAxAjIQwgAxAfIQMjAEEQayIEJAAgAhB+IQUgAigCBCEIAkAgAyAFSQRAIAIoAgAhBSACIAM2AgQgBSAMIAMQTSAEQQA6AA8gAyAFaiAEQQ9qEF0MAQsgAiAFQQFrIAMgBWtBAWogCEEAIAggAyAMELkBCyAEQRBqJAALIAFBADYCLCABKAIgIAFBIGoiAyABLAArIgJBAEgiBBshCSABKAIkIAIgBBshCCABKAIwIgRBCHEEQCABIAk2AgwgASAJNgIIIAEgCCAJaiIFNgIQIAEgBTYCLAsCQCAEQRBxRQ0AIAEgCCAJajYCLCADQQogASgCKEH/////B3FBAWsgAkEAThsQISABIAk2AhggASAJNgIUIAEgCSABKAIkIAEsACsiAiACQQBIG2o2AhwgAS0AMEEDcUUNAANAIAhBAEgEQCABIAlB/////wdqIgk2AhggCEH/////B2shCAwBCwsgCEUNACABIAggCWo2AhgLIwBBwAFrIgEkACABQgA3ArgBIAFCzo7NgjU3ArABIAogAUGwAWpBEBCIAQJAAkAgCiAKKAIAQQxrKAIAai0AEEEFcUUEQCABKAKwAUHOjs2CBUYNAQtBshIQvgMgDUIANwAFIA1CADcCACANQQE6AA0gDUEQakEAQcgA/AsADAELIAEoArQBQQRrQXxNBEBBthQgAUG0AWoQlwIgDUIANwAFIA1CADcCACANQQE6AA0gDUEQakEAQcgA/AsADAELIAEoArgBIgJBga3iBE8EQEG4EyABQbgBahCXAiANQgA3AAUgDUIANwIAIA1BAToADSANQRBqQQBByAD8CwAMAQsgAS0AvAEiA0EETwRAIAEgAzYCAEH0EyABEHIQf0Gg8QAoAgAQYRogDUIANwAFIA1CADcCACANQQE6AA0gDUEQakEAQcgA/AsADAELIAMQ0wMhDCABKAK0ASEEIAFBAToAZSABQegAaiIFQQBByAD8CwAgASACNgJYIAEgAS0AvAE2AlwgASABLQC9ATYCYCABIAEtAL4BQQFxOgBkIAUgAkEDbCIDQQJBAyAEQQFGG2wQpwEgAUH0AGoiCCADEKcBIAEgBEECSyIEOgBlIAFBgAFqIglBBEEDIAQbIAJsEKcBIAFBjAFqIgQgAhCnASABQZgBaiIHIAMQpwEgAUGkAWoiCyADIAxsEKcBIAogASgCaCABQcwAaiAFEKIBIgIoAgQgAigCAGsQiAEgAhA6IAogASgCjAEgAUFAayAEEKIBIgIoAgQgAigCAGsQiAEgAhA6IAogASgCmAEgAUE0aiAHEKIBIgIoAgQgAigCAGsQiAEgAhA6IAogASgCdCABQShqIAgQogEiAigCBCACKAIAaxCIASACEDogCiABKAKAASABQRxqIAkQogEiAigCBCACKAIAaxCIASACEDogCiABKAKkASABQRBqIAsQogEiAigCBCACKAIAaxCIASACEDoCQCAKIAooAgBBDGsoAgBqLQAQQQVxBEBBkQwQvgMgDUIANwAFIA1CADcCACANQQE6AA0gDUEQakEAQcgA/AsADAELIA0gAUHYAGoiAikCADcCACANIAIpAQY3AQYgDUEQaiACQRBqEKEBIA1BHGogAkEcahChASANQShqIAJBKGoQoQEgDUE0aiACQTRqEKEBIA1BQGsgAkFAaxChASANQcwAaiACQcwAahChAQsgAUHYAGoQywMLIAFBwAFqJAAgChCxARoMAgsgE0EEahCbAgsgGhA6IBNBqAFqEDogDUIANwAFIA1CADcCACANQQE6AA0gDUEQakEAQcgA/AsACyATQZgBahAgGiATQcABaiQAIwBBkAFrIgIkACANKAIAIQQgDSgCBBDTAyEBAkACQAJAIA0oAhQgDSgCEGsiBSAEQQNsIgNBAkEDIAUgDSgCACIMQQZsIghGG2xHBEAgAkH2HTYCOCACQfgANgI0IAJB/BQ2AjBByAsgAkEwahByEH9BoPEAKAIAEGEaDAELIAMgDSgCICANKAIca0cEQCACQfkANgI8IAJBPGpBxhwQmgIMAQsgDSgCLCANKAIoa0EEQQMgDS0ADSIJQQFxGyAEbEcEQCACQZ4dNgIoIAJB+gA2AiQgAkH8FDYCIEHICyACQSBqEHIQf0Gg8QAoAgAQYRoMAQsgBCANKAI4IA0oAjRrRwRAIAJB7xs2AhggAkH7ADYCFCACQfwUNgIQQcgLIAJBEGoQchB/QaDxACgCABBhGgwBCyADIA0oAkQgDSgCQGtHBEAgAkH8ADYCPCACQTxqQZwcEJoCDAELIA0oAlAgDSgCTGsiByABIANsRg0BIAJB8Bw2AgggAkH9ADYCBCACQfwUNgIAQcgLIAIQchB/QaDxACgCABBhGgsgAEIANwIAIABBADoACCAAQQxqQQBByAD8CwAMAQsgAEEMaiIBQQBByAD8CwAgACAMNgIAIAAgDSgCBDYCBCAAIA0tAAw6AAggASADEKQBIABBGGogAxCkASAAQSRqIARBAnQQpAEgAEEwaiAEEKQBIABBPGogAxCkASAAQcgAaiAHEKQBAkAgBSAIRgRAIAEoAgAhDCANKAIQIQgDQCADIBFGDQIgDCARQQJ0agJ9QwAAgD9DAACAvyAIIBFBAXRqLwEAIgHBQQBOGyEzIAFB/wdxIQUCQCABQQp2QR9xIgFBH0cEQCABDQEgM0MAAIA4lCAFs5RDAACAOpQMAgtDAADAfyAzQwAAgH+UIAUbDAELQwAAgD8hMgJAIAFBD2siAUGAAU4EQEMAAAB/ITIgAUH/AUkEQCABQf8AayEBDAILQwAAgH8hMkH9AiABIAFB/QJPG0H+AWshAQwBCyABQYF/Sg0AQwAAgAwhMiABQZt+SwRAIAFB5gBqIQEMAQtDAAAAACEyQbZ9IAEgAUG2fU0bQcwBaiEBCyAFs0MAAIA6lEMAAIA/kiAzIDIgAUEXdEGAgID8A2q+lJSUCzgCACARQQFqIREMAAsACyANKAIQIgVBAmohDCAFQQFqIQhEAAAAAAAA8D9BASANKAIIdLejtiEyIAEoAgAhBwNAIAMgEUYNASAHIBFBAnRqIDIgCCARQQNsIgFqLQAAQQh0IAEgBWotAAByIAEgDGosAAAiAUH/AXFBEHRyQYCAgHhBACABQQBIG3KylDgCACARQQFqIREMAAsACyAAKAIYIQEgDSgCHCEFQQAhEQNAIAMgEUYEQCACQdQAaiEIQQAhESAJQQFxIQcDfyAEIBFGBH8gACgCMCEFIA0oAjQhDEEABQJAIAcEQCAAKAIkIA0oAighBSACQoCAgPyDgIDAPzcCTCACQoCAgPyDgIDAPzcCRCACQoCAgPyDgIDAPzcCPCAIQcgfQTz8CgAAIBFBBHRqIQwgAkE8aiELQwAAAAAhMiAFIBFBAnRqIgEvAAAgAS0AAkEQdHIgAS0AAyIBQRh0ciEFIAFBBnYhCUEDIQEDfyABQQBIBH8gDCAJQQJ0akMAAIA/IDKTkTgCACALQQxqIQVBAAUgASAJRwRAIAwgAUECdGogBUH/A3GzQ/MENT+UQwCA/0OVIjOMIDMgBUGABHEbIjM4AgAgMyAzlCAykiEyIAVBCnYhBQsgAUEBayEBDAELCyEBA0AgAUEDRwRAIAwgAUECdCIJaiILIAUgCWoqAgAgCyoCAJQ4AgAgAUEBaiEBDAELCwwBCyAAKAIkIA0oAiggAkKAgID8g4CAwD83AkwgAkKAgID8g4CAwD83AkQgAkKAgID8g4CAwD83AjwgCEHIH0E8/AoAACMAQRBrIgEkACARQQNsaiIFLQACIQkgBS0AASELIAEgBS0AALNDgYAAPJRDAACAv5IgAioCSJQ4AgQgASALs0OBgAA8lEMAAIC/kiACKgJMlDgCCCABIAmzQ4GAADyUQwAAgL+SIAIqAlCUOAIMIBFBBHRqIgUgASkCBDcCACAFIAEoAgw2AgggBUMAAIA/IAEqAgwgASoCDJQgASoCBCABKgIElCABKgIIIAEqAgiUkpKTIjJDAAAAACAyQwAAAABeG5E4AgwgAUEQaiQACyARQQFqIREMAQsLIREDQCAEIBFHBEAgBSARQQJ0agJ9QwAAAAAgDCARai0AALNDAAB/Q5UiMkMAAIA/IDKTlSIyvCIBQYCAgPwDRg0AGgJAIAFBgICA/AdrQf///4d4TQRAIAFBAXQiCEUEQCMAQRBrIgFDAACAvzgCDCABKgIMQwAAAACVDAMLIAFBgICA/AdGDQEgCEGAgIB4SSABQQBOcUUEQCAyIDKTIjIgMpUMAwsgMkMAAABLlLxBgICA3ABrIQELQYjxACsDACABIAFBgIDM+QNrIgFBgICAfHFrvrsgAUEPdkHwAXEiCCsDgG+iRAAAAAAAAPC/oCI3IDeiIjiiQZDxACsDACA3okGY8QArAwCgoCA4oiABQRd1t0GA8QArAwCiIAgrA4hvoCA3oKC2ITILIDILOAIAIBFBAWohEQwBCwsgACgCPCEBIA0oAkAhBEEAIREDQCADIBFGBEAgDSgCUCANKAJMIgFrIQQgACgCSCEFQQAhAwNAIAMgBEYEQCAZKAIMIQwjAEHgAGsiBCQAIwBBEGsiBSQAQQEhAQJ/QQEhA0EBIAxBAEwNABogDEEBa0EDcyIMQX9zQQFxIQEgDEEEcUUhAyAMQQJxRQshDCAFIAM6AA8gBSAMOgAOIAUgAToADSAFLQAOIQEgBS0ADyEDIAUtAA0hDCAEQYCAgPwDNgJAIARBgICA/AM2AjggBEMAAIA/QwAAgL8gDBsiMzgCXCAEQwAAgD9DAACAvyADGyIyOAJYIAQgMzgCVCAEIDI4AlAgBEMAAIA/QwAAgL8gARsiNDgCTCAEIDQ4AkQgBCAzOAIsIAQgMjgCKCAEIDQ4AiQgBCAyOAIUIAQgNDgCECAEIDM4AgwgBCAzIDKUIjU4AjwgBCA0IDKUIjY4AjQgBCAzIDSUIjM4AjAgBCAzOAIgIAQgNTgCHCAEIDY4AhggBCAzIDKUOAJIIAVBEGokACAAKAIMIgFBCGohDCABQQRqIQggACgCECABa0ECdSEJQQAhAwNAIAMgCU8EQCAAKAIkIgFBCGohDCABQQRqIQggACgCKCABa0ECdSEJQQAhAwNAIAMgCU8EQAJAIAAoAkgiBUEIaiEJIAVBBGohByAAKAJMIAVrQQJ1QQNuIgsgACgCAG4hDCAEQSRqIQ5BACEAQQAhAQNAQQAhAyABIAtPDQEDQCADIAxPBEAgASAMaiEBDAIFIAUgAEECdCIIaiIPIA4gA0ECdGoqAgAiMiAPKgIAlDgCACAHIAhqIg8gMiAPKgIAlDgCACAIIAlqIgggMiAIKgIAlDgCACAAQQNqIQAgA0EBaiEDDAELAAsACwALBSABIANBAnQiBWoiByAEKgIYIAcqAgCUOAIAIAUgCGoiByAEKgIcIAcqAgCUOAIAIAUgDGoiBSAEKgIgIAUqAgCUOAIAIANBBGohAwwBCwsgBEHgAGokAAUgASADQQJ0IgVqIgcgBCoCDCAHKgIAlDgCACAFIAhqIgcgBCoCECAHKgIAlDgCACAFIAxqIgUgBCoCFCAFKgIAlDgCACADQQNqIQMMAQsLBSAFIANBAnRqIAEgA2otAACzQwAAAMOSQwAAADyUOAIAIANBAWohAwwBCwsFIAEgEUECdGogBCARai0AALNDAAB/Q5VDAAAAv5JDmpkZPpU4AgAgEUEBaiERDAELCwUgASARQQJ0aiAFIBFqLQAAs0MAAIA9lEMAACDBkjgCACARQQFqIREMAQsLCyACQZABaiQAIA0QywMgIkHgAGokACAZEDogGUEQaiQAC5UBAQN/IAACfyAAKAIEIgIgACgCCEkEQCACIAEqAgA4AgAgAkEEagwBCyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0ECdUEBahC2ASAAKAIEIAAoAgBrQQJ1IAAQhwIiAigCCCIEIAEqAgA4AgAgAiAEQQRqNgIIIAAgAhCFAiAAKAIEIAIQgQIgA0EgaiQACzYCBAvqAQEBfyMAQSBrIgYkACAGIAE2AhwCQCADKAIEQQFxRQRAIAZBfzYCACAAIAEgAiADIAQgBiAAKAIAKAIQEQYAIQECQAJAAkAgBigCAA4CAAECCyAFQQA6AAAMAwsgBUEBOgAADAILIAVBAToAACAEQQQ2AgAMAQsgBiADECcgBhBJIQEgBhAlIAYgAxAnIAYQmwEhACAGECUgBiAAEHwgBkEMciAAEHsgBSAGQRxqIAIgBiAGQRhqIgMgASAEQQEQzwEgBkY6AAAgBigCHCEBA0AgA0EMaxAgIgMgBkcNAAsLIAZBIGokACABC0ABAX9BACEAA38gASACRgR/IAAFIAEoAgAgAEEEdGoiAEGAgICAf3EiA0EYdiADciAAcyEAIAFBBGohAQwBCwsLCwAgACACIAMQmQMLVAECfwJAA0AgAyAERwRAQX8hACABIAJGDQIgASgCACIFIAMoAgAiBkgNAiAFIAZKBEBBAQ8FIANBBGohAyABQQRqIQEMAgsACwsgASACRyEACyAAC0ABAX9BACEAA38gASACRgR/IAAFIAEsAAAgAEEEdGoiAEGAgICAf3EiA0EYdiADciAAcyEAIAFBAWohAQwBCwsLCwAgACACIAMQuAMLXgEDfyABIAQgA2tqIQUCQANAIAMgBEcEQEF/IQAgASACRg0CIAEsAAAiBiADLAAAIgdIDQIgBiAHSgRAQQEPBSADQQFqIQMgAUEBaiEBDAILAAsLIAIgBUchAAsgAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGEHEaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEEHEaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC1QBAn8gASAAKAJUIgEgAUEAIAJBgAJqIgMQ4AEiBCABayADIAQbIgMgAiACIANLGyICEHEaIAAgASADaiIDNgJUIAAgAzYCCCAAIAEgAmo2AgQgAgsJACAAEIkCEC0LEwAgACAAKAIAQQxrKAIAahCMAgsTACAAIAAoAgBBDGsoAgBqELEBCwoAIABBCGsQjAILCgAgAEEIaxCxAQsaACAAIAEgAikDCEEAIAMgASgCACgCEBEXAAsJACAAEPwBEC0LlAICAX8DfiABKAIYIAEoAixLBEAgASABKAIYNgIsC0J/IQgCQCAEQRhxIgVFIANBAUYgBUEYRnFyDQAgASgCLCIFBEAgBSABQSBqECNrrCEGCwJAAkACQCADDgMCAAEDCyAEQQhxBEAgASgCDCABKAIIa6whBwwCCyABKAIYIAEoAhRrrCEHDAELIAYhBwsgAiAHfCICQgBTIAIgBlVyDQAgBEEIcSEDAkAgAlANACADBEAgASgCDEUNAgsgBEEQcUUNACABKAIYRQ0BCyADBEAgASABKAIIIAEoAgggAqdqIAEoAiwQsgELIARBEHEEQCABIAEoAhQgASgCHBC6AyABIAKnELkDCyACIQgLIAAgCBCSAgv8AQEJfyMAQRBrIgMkAAJ/IAFBf0cEQCAAKAIMIQQgACgCCCEFIAAoAhggACgCHEYEQEF/IAAtADBBEHFFDQIaIAAoAhghBiAAKAIUIQcgACgCLCEIIAAoAhQhCSAAQSBqIgJBABC4ASACIAIQKBAhIAAgAhAjIgogAhAfIApqELoDIAAgBiAHaxC5AyAAIAAoAhQgCCAJa2o2AiwLIAMgACgCGEEBajYCDCAAIANBDGogAEEsahCgASgCADYCLCAALQAwQQhxBEAgACAAQSBqECMiAiACIAQgBWtqIAAoAiwQsgELIAAgAcAQwgMMAQsgARC2AwsgA0EQaiQAC5YBACAAKAIYIAAoAixLBEAgACAAKAIYNgIsCwJAIAAoAgggACgCDE8NACABQX9GBEAgACAAKAIIIAAoAgxBAWsgACgCLBCyASABELYDDwsgAC0AMEEQcUUEQCAAKAIMQQFrLQAAIAFB/wFxRw0BCyAAIAAoAgggACgCDEEBayAAKAIsELIBIAAoAgwgAcA6AAAgAQ8LQX8LZQAgACgCGCAAKAIsSwRAIAAgACgCGDYCLAsCQCAALQAwQQhxRQ0AIAAoAhAgACgCLEkEQCAAIAAoAgggACgCDCAAKAIsELIBCyAAKAIMIAAoAhBPDQAgACgCDCwAABCjAQ8LQX8LBwAgACgCDAsHACAAKAIICxMAIAAgACgCAEEMaygCAGoQjgILCgAgAEEIaxCOAgsTACAAIAAoAgBBDGsoAgBqENgBCwoAIABBCGsQ2AELEwAgACAAKAIAQQxrKAIAahDBAwsTACAAIAAoAgBBDGsoAgBqEI8CCxMAIAAgACgCAEEMaygCAGoQxgMLEwAgACAAKAIAQQxrKAIAahCQAguuAQEEfyMAQRBrIgUkAANAAkAgAiAETA0AIAAoAhgiAyAAKAIcIgZPBEAgACABLAAAEKMBIAAoAgAoAjQRBABBf0YNASAEQQFqIQQgAUEBaiEBBSAFIAYgA2s2AgwgBSACIARrNgIIIAVBDGogBUEIahCRAiEDIAAoAhggASADKAIAIgMQTSAAIAMgACgCGGo2AhggAyAEaiEEIAEgA2ohAQsMAQsLIAVBEGokACAECy8AIAAgACgCACgCJBEAAEF/RgRAQX8PCyAAIAAoAgwiAEEBajYCDCAALAAAEKMBCwQAQX8LvQEBBH8jAEEQayIEJAADQAJAIAIgBUwNAAJAIAAoAgwiAyAAKAIQIgZJBEAgBEH/////BzYCDCAEIAYgA2s2AgggBCACIAVrNgIEIARBDGogBEEIaiAEQQRqEJECEJECIQMgASAAKAIMIAMoAgAiAxBNIAAgACgCDCADajYCDAwBCyAAIAAoAgAoAigRAAAiA0F/Rg0BIAEgA8A6AABBASEDCyABIANqIQEgAyAFaiEFDAELCyAEQRBqJAAgBQsJACAAQn8QkgILCQAgAEJ/EJICCwQAIAALDAAgABCUAhogABAtCwwAIAAoAjwQFRDdAQs7AQF/IAAoAjwjAEEQayIAJAAgASACQf8BcSAAQQhqEBYQ3QEhAiAAKQMIIQEgAEEQaiQAQn8gASACGwspACABIAEoAgBBB2pBeHEiAUEQajYCACAAIAEpAwAgASkDCBCVAjkDAAu5FwMSfwF8A34jAEGwBGsiCyQAIAtBADYCLAJAIAG9IhlCAFMEQEEBIRBB+AghFCABmiIBvSEZDAELIARBgBBxBEBBASEQQfsIIRQMAQtB/ghB+QggBEEBcSIQGyEUIBBFIRcLAkAgGUKAgICAgICA+P8Ag0KAgICAgICA+P8AUQRAIABBICACIBBBA2oiBiAEQf//e3EQRSAAIBQgEBBCIABB5g1ByhUgBUEgcSIDG0G8EEH0FSADGyABIAFiG0EDEEIgAEEgIAIgBiAEQYDAAHMQRSACIAYgAiAGShshDQwBCyALQRBqIRECQAJAAkAgASALQSxqENIDIgEgAaAiAUQAAAAAAAAAAGIEQCALIAsoAiwiBkEBazYCLCAFQSByIhVB4QBHDQEMAwsgBUEgciIVQeEARg0CIAsoAiwhDAwBCyALIAZBHWsiDDYCLCABRAAAAAAAALBBoiEBC0EGIAMgA0EASBshCiALQTBqQaACQQAgDEEAThtqIg4hBwNAIAcgAfwDIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIAxBAEwEQCAMIQkgByEGIA4hCAwBCyAOIQggDCEJA0BBHSAJIAlBHU8bIQMCQCAHQQRrIgYgCEkNACADrSEbQgAhGQNAIAYgBjUCACAbhiAZfCIaIBpCgJTr3AOAIhlCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgGkKAlOvcA1QNACAIQQRrIgggGT4CAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyALIAsoAiwgA2siCTYCLCAGIQcgCUEASg0ACwsgCUEASARAIApBGWpBCW5BAWohEiAVQeYARiETA0BBCUEAIAlrIgMgA0EJTxshDQJAIAYgCE0EQEEAQQQgCCgCABshBwwBC0GAlOvcAyANdiEWQX8gDXRBf3MhD0EAIQkgCCEHA0AgByAHKAIAIgMgDXYgCWo2AgAgAyAPcSAWbCEJIAdBBGoiByAGSQ0AC0EAQQQgCCgCABshByAJRQ0AIAYgCTYCACAGQQRqIQYLIAsgCygCLCANaiIJNgIsIA4gByAIaiIIIBMbIgMgEkECdGogBiAGIANrQQJ1IBJKGyEGIAlBAEgNAAsLQQAhCQJAIAYgCE0NACAOIAhrQQJ1QQlsIQlBCiEHIAgoAgAiA0EKSQ0AA0AgCUEBaiEJIAMgB0EKbCIHTw0ACwsgCiAJQQAgFUHmAEcbayAVQecARiAKQQBHcWsiAyAGIA5rQQJ1QQlsQQlrSARAIAtBMGpBhGBBpGIgDEEASBtqIANBgMgAaiIMQQltIgNBAnRqIQ1BCiEHIAwgA0EJbGsiA0EHTARAA0AgB0EKbCEHIANBAWoiA0EIRw0ACwsCQCANKAIAIgwgDCAHbiISIAdsayIPRSANQQRqIgMgBkZxDQACQCASQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cgCCANT3INASANQQRrLQAAQQFxRQ0BC0QBAAAAAABAQyEBC0QAAAAAAADgP0QAAAAAAADwP0QAAAAAAAD4PyADIAZGG0QAAAAAAAD4PyAPIAdBAXYiA0YbIAMgD0sbIRgCQCAXDQAgFC0AAEEtRw0AIBiaIRggAZohAQsgDSAMIA9rIgM2AgAgASAYoCABYQ0AIA0gAyAHaiIDNgIAIANBgJTr3ANPBEADQCANQQA2AgAgCCANQQRrIg1LBEAgCEEEayIIQQA2AgALIA0gDSgCAEEBaiIDNgIAIANB/5Pr3ANLDQALCyAOIAhrQQJ1QQlsIQlBCiEHIAgoAgAiA0EKSQ0AA0AgCUEBaiEJIAMgB0EKbCIHTw0ACwsgDUEEaiIDIAYgAyAGSRshBgsDQCAGIgwgCE0iB0UEQCAGQQRrIgYoAgBFDQELCwJAIBVB5wBHBEAgBEEIcSETDAELIAlBf3NBfyAKQQEgChsiBiAJSiAJQXtKcSIDGyAGaiEKQX9BfiADGyAFaiEFIARBCHEiEw0AQXchBgJAIAcNACAMQQRrKAIAIg9FDQBBCiEDQQAhBiAPQQpwDQADQCAGIgdBAWohBiAPIANBCmwiA3BFDQALIAdBf3MhBgsgDCAOa0ECdUEJbCEDIAVBX3FBxgBGBEBBACETIAogAyAGakEJayIDQQAgA0EAShsiAyADIApKGyEKDAELQQAhEyAKIAMgCWogBmpBCWsiA0EAIANBAEobIgMgAyAKShshCgtBfyENIApB/f///wdB/v///wcgCiATciIPG0oNASAKIA9BAEdqQQFqIRYCQCAFQV9xIgdBxgBGBEAgCSAWQf////8Hc0oNAyAJQQAgCUEAShshBgwBCyARIAkgCUEfdSIDcyADa60gERCmASIGa0EBTARAA0AgBkEBayIGQTA6AAAgESAGa0ECSA0ACwsgBkECayISIAU6AAAgBkEBa0EtQSsgCUEASBs6AAAgESASayIGIBZB/////wdzSg0CCyAGIBZqIgMgEEH/////B3NKDQEgAEEgIAIgAyAQaiIJIAQQRSAAIBQgEBBCIABBMCACIAkgBEGAgARzEEUCQAJAAkAgB0HGAEYEQCALQRBqQQlyIQUgDiAIIAggDksbIgMhCANAIAg1AgAgBRCmASEGAkAgAyAIRwRAIAYgC0EQak0NAQNAIAZBAWsiBkEwOgAAIAYgC0EQaksNAAsMAQsgBSAGRw0AIAZBAWsiBkEwOgAACyAAIAYgBSAGaxBCIAhBBGoiCCAOTQ0ACyAPBEAgAEHrG0EBEEILIApBAEwgCCAMT3INAQNAIAg1AgAgBRCmASIGIAtBEGpLBEADQCAGQQFrIgZBMDoAACAGIAtBEGpLDQALCyAAIAZBCSAKIApBCU4bEEIgCkEJayEGIAhBBGoiCCAMTw0DIApBCUogBiEKDQALDAILAkAgCkEASA0AIAwgCEEEaiAIIAxJGyEDIAtBEGpBCXIhDCAIIQcDQCAMIAc1AgAgDBCmASIGRgRAIAZBAWsiBkEwOgAACwJAIAcgCEcEQCAGIAtBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAtBEGpLDQALDAELIAAgBkEBEEIgBkEBaiEGIAogE3JFDQAgAEHrG0EBEEILIAAgBiAMIAZrIgUgCiAFIApIGxBCIAogBWshCiAHQQRqIgcgA08NASAKQQBODQALCyAAQTAgCkESakESQQAQRSAAIBIgESASaxBCDAILIAohBgsgAEEwIAZBCWpBCUEAEEULIABBICACIAkgBEGAwABzEEUgAiAJIAIgCUobIQ0MAQsgFCAFQRp0QR91QQlxaiEJAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEYA0AgGEQAAAAAAAAwQKIhGCAGQQFrIgYNAAsgCS0AAEEtRgRAIBggAZogGKGgmiEBDAELIAEgGKAgGKEhAQsgESALKAIsIgcgB0EfdSIGcyAGa60gERCmASIGRgRAIAZBAWsiBkEwOgAAIAsoAiwhBwsgEEECciEKIAVBIHEhDCAGQQJrIg4gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxRSADQQBMcSEIIAtBEGohBwNAIAciBSAB/AIiBkGA9QBqLQAAIAxyOgAAIAEgBrehRAAAAAAAADBAoiIBRAAAAAAAAAAAYSAIcSAHQQFqIgcgC0EQamtBAUdyRQRAIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hDSADQf3///8HIAogESAOayIIaiIGa0oNACAAQSAgAiAGIANBAmogByALQRBqIgVrIgcgB0ECayADSBsgByADGyIDaiIGIAQQRSAAIAkgChBCIABBMCACIAYgBEGAgARzEEUgACAFIAcQQiAAQTAgAyAHa0EAQQAQRSAAIA4gCBBCIABBICACIAYgBEGAwABzEEUgAiAGIAIgBkobIQ0LIAtBsARqJAAgDQsEAEIAC9YCAQd/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBSADQRBqIQFBAiEHAn8CQAJAAkAgACgCPCABQQIgA0EMahAKEN0BBEAgASEEDAELA0AgBSADKAIMIgZGDQIgBkEASARAIAEhBAwECyABQQhBACAGIAEoAgQiCEsiCRtqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQChDdAUUNAAsLIAVBf0cNAQsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAELIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgB0ECRg0AGiACIAQoAgRrCyADQSBqJAALiQIBA38jAEEQayIAJAACQCAAQQxqIABBCGoQFA0AQYDuASAAKAIMQQJ0QQRqEDQiATYCACABRQ0AIAAoAggQNCIBBEBBgO4BKAIAIgIgACgCDEECdGpBADYCACACIAEQE0UNAQtBgO4BQQA2AgALIABBEGokAEGU4AFBADYCAEGQ4AFBATYCABCQA0GU4AFBsOABKAIANgIAQbDgAUGQ4AE2AgBBtOABQS42AgBBuOABQQA2AgAQnAJBuOABQbDgASgCADYCAEGw4AFBtOABNgIAQdzhAUHk4AE2AgBBtOEBQYCABDYCAEGw4QFB8P4FNgIAQZThAUEqNgIAQbjhAUG43QEoAgA2AgALC8jAASoAQYAIC4QYbG9hZF9zcHoAaW5maW5pdHkARmVicnVhcnkASmFudWFyeQBKdWx5AFRodXJzZGF5AFR1ZXNkYXkAV2VkbmVzZGF5AFNhdHVyZGF5AFN1bmRheQBNb25kYXkARnJpZGF5AE1heQAlbS8lZC8leQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AE5vdgBUaHUAQXVndXN0AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAZ2V0AE9jdABmbG9hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AFNhdABudW1Qb2ludHMAY29sb3JzAFVucGFja09wdGlvbnMAcG9zaXRpb25zAHJvdGF0aW9ucwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHNjYWxlcwBhbHBoYXMAW1NQWjogRVJST1JdIENoZWNrIGZhaWxlZDogJXM6JWQ6ICVzAHZmMzJfcHRyAEFwcgB2ZWN0b3IAbW9uZXlfZ2V0IGVycm9yAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiByZWFkIGVycm9yAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAU2VwACVJOiVNOiVTICVwAFN1bgBKdW4ATW9uAG5hbgBKYW4AY29vcmRpbmF0ZVN5c3RlbQBDb29yZGluYXRlU3lzdGVtAEp1bABib29sAGxsAEFwcmlsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAcHVzaF9iYWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAEZyaQBzaABoZWFkZXIgY3JjIG1pc21hdGNoAE1hcmNoAEF1ZwB1bnNpZ25lZCBsb25nIGxvbmcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlLjBMZgAlTGYAcmVzaXplAGludmFsaWQgd2luZG93IHNpemUAdHJ1ZQBUdWUAZmFsc2UAaW52YWxpZCBibG9jayB0eXBlAEp1bmUAZG91YmxlAHNoRGVncmVlAGJhZF9hcnJheV9uZXdfbGVuZ3RoIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBSYXdHYXVzc2lhbkNsb3VkAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiBoZWFkZXIgbm90IGZvdW5kACUwKmxsZAAlKmxsZAArJWxsZAAlKy40bGQAdm9pZABsb2NhbGUgbm90IHN1cHBvcnRlZABhbnRpYWxpYXNlZABXZWQAJVktJW0tJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFRvbyBtYW55IHBvaW50czogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IHZlcnNpb24gbm90IHN1cHBvcnRlZDogJWQARGVjAC4vc3B6L3NyYy9jYy9sb2FkLXNwei5jYwBGZWIAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAVmVjdG9yVUludDhUACVIOiVNOiVTAE5BTgBQTQBBTQAlSDolTQBMQ19BTEwAQVNDSUkATEFORwBSVUYATFVGAElORgBSREYATERGAFVOU1BFQ0lGSUVEAEMAUlVCAExVQgBSREIATERCAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+ADAxMjM0NTY3ODkAQy5VVEYtOABWZWN0b3JGbG9hdDMyADEuMy4xAC4ALQAocGFja2VkLmFscGhhcy5zaXplKCkpID09IChudW1Qb2ludHMpAChudWxsKQAocGFja2VkLmNvbG9ycy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNjYWxlcy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNoLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIHNoRGltICogMykAKHBhY2tlZC5yb3RhdGlvbnMuc2l6ZSgpKSA9PSAobnVtUG9pbnRzICogKHBhY2tlZC51c2VzUXVhdGVybmlvblNtYWxsZXN0VGhyZWUgPyA0IDogMykpAChwYWNrZWQucG9zaXRpb25zLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIDMgKiAodXNlc0Zsb2F0MTYgPyAyIDogMykpACUAbGVuZ3RoX2Vycm9yIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUgd2l0aCBtZXNzYWdlICIlcyIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAW1NQWjogRVJST1JdIFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQKAAkAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwBBkCALthMgEAAA9GwAAPRsAABAEAAAqG0AACgQAABOM3NwejEzR2F1c3NpYW5DbG91ZEUAAACobQAASBAAAE4zc3B6MTNVbnBhY2tPcHRpb25zRQBwcGlpcAD0bAAAbBAAAKhtAAB0EAAATlN0M19fMjZ2ZWN0b3JJZk5TXzlhbGxvY2F0b3JJZkVFRUUAaXBwACxuAADEEAAAAAAAAAMAAADcEAAAAAAAACgSAAAAAAAAWBIAAAAAAABOU3QzX18yOG9wdGlvbmFsSWZFRQAAAADQbQAA6BAAABgRAABOU3QzX18yMjdfX29wdGlvbmFsX21vdmVfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAJBEAAFQRAABOU3QzX18yMjdfX29wdGlvbmFsX2NvcHlfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAYBEAAIgRAABOU3QzX18yMjBfX29wdGlvbmFsX21vdmVfYmFzZUlmTGIxRUVFAAAA0G0AAJQRAAC8EQAATlN0M19fMjIwX19vcHRpb25hbF9jb3B5X2Jhc2VJZkxiMUVFRQAAANBtAADIEQAA9BEAAE5TdDNfXzIyM19fb3B0aW9uYWxfc3RvcmFnZV9iYXNlSWZMYjBFRUUAAAAAqG0AAPwRAABOU3QzX18yMjRfX29wdGlvbmFsX2Rlc3RydWN0X2Jhc2VJZkxiMUVFRQAAAKhtAAAwEgAATlN0M19fMjE4X19zZmluYWVfY3Rvcl9iYXNlSUxiMUVMYjFFRUUAAKhtAABgEgAATlN0M19fMjIwX19zZmluYWVfYXNzaWduX2Jhc2VJTGIxRUxiMUVFRQAAAACIbgAAnBIAAAAAAABsEAAAUE5TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAAAAAIhuAADUEgAAAQAAAGwQAABQS05TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAHBwAHYAdnAAAACMEgAAcHAAAJRsAACMEgAAPG0AAHZwcGQAAAAAlGwAAIwSAAAYbQAAPG0AAHZwcHBkAAAAGG0AAMQSAABwcHAATBMAADxtAACobQAAVBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAnBAAAGwQAAAYbQAAcHBwcAAAAAAAAAAArGwAAGwQAAAYbQAAPG0AAGlwcHBkAAAALG4AAMATAAAAAAAAAwAAANgTAAAAAAAAKBIAAAAAAABYEgAAAAAAAE5TdDNfXzI4b3B0aW9uYWxJaEVFAAAAANBtAADkEwAAFBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfbW92ZV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAAAgFAAAUBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfY29weV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAABcFAAAhBQAAE5TdDNfXzIyMF9fb3B0aW9uYWxfbW92ZV9iYXNlSWhMYjFFRUUAAADQbQAAkBQAALgUAABOU3QzX18yMjBfX29wdGlvbmFsX2NvcHlfYmFzZUloTGIxRUVFAAAA0G0AAMQUAADwFAAATlN0M19fMjIzX19vcHRpb25hbF9zdG9yYWdlX2Jhc2VJaExiMEVFRQAAAACobQAA+BQAAE5TdDNfXzIyNF9fb3B0aW9uYWxfZGVzdHJ1Y3RfYmFzZUloTGIxRUVFAAAAqG0AACwVAABOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQCIbgAAYBUAAAAAAAAkFQAAUE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAAAAAIhuAACYFQAAAQAAACQVAABQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAHBwAHZwAFAVAABwcAAAlGwAAFAVAADEbAAAdnBwaQAAAACUbAAAUBUAABhtAADEbAAAdnBwcGkAAAAYbQAAiBUAAHBwcABMEwAAxGwAAJgTAAAkFQAAGG0AAHBwcHAAAAAArGwAACQVAAAYbQAAxGwAAGlwcHBpAHAAdnAAaXBwAHZwcGkAaXBwAHZwcGkAcHBwAHZwcHAAAABcbQAAYBYAAE4zc3B6MTZDb29yZGluYXRlU3lzdGVtRQBwAHZwAGlwcAB2cHBpAAAAAAAAAwAAAAgAAAAPAAAAqG0AAKAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAqG0AAOgWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAqG0AADAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKhtAAB8FwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACobQAAyBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAqG0AAPAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKhtAAAYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACobQAAQBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAqG0AAGgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKhtAACQGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACobQAAuBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAqG0AAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKhtAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACobQAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAqG0AAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKhtAACAGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAACobQAAqBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQBB1DMLoSiWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAARjtnZYx2zsrKTamvWevtTh/QiivVnSOEk6ZE4bLW25307bz4PqAVV3ibcjLrPTbTrQZRtmdL+BkhcJ98JavG4GOQoYWp3Qgq7+ZvT3xAK646e0zL8DblZLYNggGXfR190UZ6GBsL07ddMLTSzpbwM4itl1ZC4D75BNtZnAtQ/BpNa5t/hyYy0MEdVbVSuxFUFIB2Md7N356Y9rj7uYYnh/+9QOI18OlNc8uOKOBtysmmVq2sbBsEAyogY2Yu+zr6aMBdn6KN9DDktpNVdxDXtDErsNH7Zhl+vV1+G5wt4WfaFoYCEFsvrVZgSMjFxgwpg/1rTEmwwuMPi6WGFqD4NVCbn1Ca1jb/3O1Rmk9LFXsJcHIewz3bsYUGvNSkdiOo4k1EzSgA7WJuO4oH/Z3O5rumqYNx6wAsN9BnSTMLPtV1MFmwv33wH/lGl3pq4NObLNu0/uaWHVGgrXo0gd3lSMfmgi0NqyuCS5BM59g2CAaeDW9jVEDGzBJ7oakd8AQvW8tjSpGGyuXXva2ARBvpYQIgjgTIbSerjlZAzq8m37LpHbjXI1AReGVrdh32zTL8sPZVmXq7/DY8gJtTOFvCz35gpaq0LQwF8hZrYGGwL4Eni0jk7cbhS6v9hi6KjRlSzLZ+Nwb715hAwLD902b0HJVdk3lfEDrWGStdsyxA8Wtqe5YOoDY/oeYNWMR1qxwlM5B7QPnd0u+/5rWKnpYq9titTZMS4OQ8VNuDWcd9x7iBRqDdSwsJcg0wbhcJ6zeLT9BQ7oWd+UHDpp4kUADaxRY7vaDcdhQPmk1zars97Bb9BotzN0si3HFwRbni1gFYpO1mPW6gz5Iom6j3JxANcWErahSrZsO77V2k3n774D84wIda8o0u9bS2SZCVxtbs0/2xiRmwGCZfi39DzC07oooWXMdAW/VoBmCSDQK7y5FEgKz0js0FW8j2Yj5bUCbfHWtButcm6BWRHY9wsG0QDPZWd2k8G97GeiC5o+mG/UKvvZonZfAziCPLVO064AlefNtuO7aWx5TwraDxYwvkECUwg3XvfSraqUZNv4g20sPODbWmBEAcCUJ7e2zR3T+Nl+ZY6F2r8UcbkJYiH0vPvllwqNuTPQF01QZmEUagIvAAm0WVytbsOozti1+tnRQj66ZzRiHr2uln0L2M9Hb5bbJNngh4ADenPjtQwjGw9UR3i5IhvcY7jvv9XOtoWxgKLmB/b+Qt1sCiFrGlg2Yu2cVdSbwPEOATSSuHdtqNw5ectqTyVvsNXRDAajgUGzOkUiBUwZht/W7eVpoLTfDe6gvLuY/BhhAgh713RabN6Dng9o9cKrsm82yAQZb/JgV3uR1iEnNQy701a6zYAAAAAFiA4tfxBrR0qYZWo+INaOm6jYo+EwvcnUuLPkqFHaEJ3Z1D3nQbFX0sm/eqZxDJ4D+QKzeWFn2UzpafQwo7QhNSu6DE+z32Z6O9FLDoNir6sLbILRkwno5BsHxZjybjGtemAc1+IFduJqC1uW0ri/M1q2kknC0/h8St3VAUdoQmTPZm8eVwMFK98NKF9nvsz677DhgHfVi7X/26bJFrJS/J68f4YG2RWzjtc4xzZk3GK+avEYJg+bLa4BtlHk3GNUbNJOLvS3JBt8uQlvxArtykwEwLDUYaqFXG+H+bUGc8w9CF62pW00gy1jGfeV0P1SHd7QKIW7uh0NtZdijsCE1wbOqa2eq8OYFqXu7K4WCkkmGCczvn1NBjZzYHrfGpRPVxS5Nc9x0wBHf/50/8wa0XfCN6vvp12eZ6lw4i10peeleoidPR/iqLURz9wNoit5hawGAx3JbDaVx0FKfK61f/SgmAVsxfIw5MvfRFx4O+HUdhabTBN8rsQdUdPJqMa2QabrzNnDgflRzayN6X5IKGFwZVL5FQ9ncRsiG5hy1i4QfPtUiBmRYQAXvBW4pFiwMKp1yqjPH/8gwTKDahznhuISyvx6d6DJ8nmNvUrKaRjCxERiWqEuV9KvAys7xvces8jaZCutsFGjo50lGxB5gJMeVPoLez7Pg3UTtQ2BGaCFjzTaHepe75Xkc5stV5c+pVm6RD080HG1Mv0NXFsJONRVJEJMME53xD5jA3yNh6b0g6rcbObA6eTo7ZWuNTiQJjsV6r5ef982UFKrjuO2Dgbtm3SeiPFBFobcPf/vKAh34QVy74RvR2eKQjPfOaaWVzeL7M9S4dlHXMykSulbwcLndrtaghyO0owx+mo/1V/iMfglelSSEPJav2wbM0tZkz1mIwtYDBaDViFiO+XFx7Pr6L0rjoKIo4Cv9OldevFhU1eL+TY9vnE4EMrJi/RvQYXZFdngsyBR7p5cuIdqaTCJRxOo7C0mIOIAUphR5PcQX8mNiDqjuAA0jseDQZ1yC0+wCJMq2j0bJPdJo5cT7CuZPpaz/FSjO/J539KbjepalaCQwvDKpUr+59HyTQN0ekMuDuImRDtqKGlHIPW8Qqj7kTgwnvsNuJDWeQAjMtyILR+mEEh1k5hGWO9xL6za+SGBoGFE65XpSsbhUfkiRNn3Dz5BkmULyZxIdsQp3xNMJ/Jp1EKYXFxMtSjk/1GNbPF89/SUFsJ8mju+lfPPix394vGFmIjEDZalsLUlQRU9K2xvpU4GWi1AKyZnnf4j75PTWXf2uWz/+JQYR0twvc9FXcdXIDfy3y4ajjZH7ru+ScPBJiyp9K4ihIAWkWAlnp9NXwb6J2qO9AoQAAAADhtlLvg2vUBWLdhuoG16gL52H65IW8fA5kCi7hDK5RF+0YA/iPxYUSbnPX/Qp5+Rzrz6vziRItGWikf/YYXKMu+erxwZs3dyt6gSXEHosLJf89Wcqd4N8gfFaNzxTy8jn1RKDWl5kmPHYvdNMSJVoy85MI3ZFOjjdw+NzYMLhGXdEOFLKz05JYUmXAtzZv7lbX2by5tQQ6U1SyaLw8FhdK3aBFpb99w09ey5GgOsG/Qdt37a65qmtEWBw5qyjk5XPJUrecq48xdko5Y5kuM014z4Ufl61YmX1M7suSJEq0ZMX85ounIWBhRpcyjiKdHG/DK06AofbIakBAmoVgcI26gcbfVeMbWb8CrQtQZqclsYcRd17lzPG0BHqjW2ze3K2NaI5C77UIqA4DWkdqCXSmi78mSelioKMI1PJMeCwulJmafHv7R/qRGvGofn77hp+fTdRw/ZBSmhwmAHV0gn+DlTQtbPfpq4YWX/lpclXXiJPjhWfxPgONEIhRYlDIy+exfpkI06Mf4jIVTQ1WH2Pst6kxA9V0t+k0wuUGXGaa8L3QyB/fDU71PrscGlqxMvu7B2AU2drm/jhstBFIlGjJqSI6Jsv/vMwqSe4jTkPAwq/1ki3NKBTHLJ5GKEQ6Od6ljGsxx1Ht2ybnvzRC7ZHVo1vDOsGGRdAgMBc/geZrrmBQOUECjb+r4zvtRIcxw6Vmh5FKBFoXoOXsRU+NSDq5bP5oVg4j7rzvlbxTi5+SsmopwF0I9Ea36UIUWJm6yIB4DJpvGtEchftnTmqfbWCLftsyZBwGtI79sOZhlRSZl3Siy3gWf02S98kffZPDMZxydWNzEKjlmfEet3axXi3zUOh/HDI1+fbTg6sZt4mF+FY/1xc04lH91VQDEr3wfORcRi4LPpuo4d8t+g67J9TvWpGGADhMAOrZ+lIFqQKO3Ui03DIqaVrYy98IN6/VJtZOY3Q5LL7y080IoDylrN/KRBqNJSbHC8/HcVkgo3t3wULNJS4gEKPEwabxK+GW5hQAILT7Yv0yEYNLYP7nQU4fBvcc8GQqmhqFnMj17Ti3AwyO5exuU2MGj+Ux6evvHwgKWU3naITLDYkymeL5ykU6GHwX1XqhkT+bF8PQ/x3tMR6rv958djk0ncBr2/VkFC0U0kbCdg/AKJe5ksfzs7wmEgXuyXDYaCORbjrM0S6gSTCY8qZSRXRMs/Mmo9f5CEI2T1qtVJLcR7UkjqjdgPFePDajsV7rJVu/XXe021dZVTrhC7pYPI1QuYrfv8lyA2coxFGIShnXYquvhY3PpatsLhP5g0zOf2mteC2GxdxScCRqAJ9Gt4Z1pwHUmsML+nsivaiUQGAufqHWfJEAAAAAQ8umh8eQPNSEW5pTzycIc4zsrvQItzSnS3ySIJ5PEObdhLZhWd8sMhoUirVRaBiVEqO+Epb4JEHVM4LGfZlRFz5S95C6CW3D+cLLRLK+WWTxdf/jdS5lsDblwzfj1kHxoB3ndiRGfSVnjduiLPFJgm867wXrYXVWqKrT0foyoy65+QWpPaKf+n5pOX01Fatddt4N2vKFl4mxTjEOZH2zyCe2FU+j7Y8c4CYpm6tau7vokR08bMqHby8BIeiHq/I5xGBUvkA7zu0D8GhqSIz6SgtHXM2PHMaezNdgGRnk4t9aL0RY3nTeC52/eIzWw+qslQhMKxFT1nhSmHD/9GVGXbeu4Noz9XqJcD7cDjtCTi54ieip/NJy+r8Z1H1qKla7KeHwPK26am/ucczopQ1eyObG+E9inWIcIVbEm4n8F0rKN7HNTmwrng2njRlG2x85BRC5voFLI+3CgIVqF7MHrFR4oSvQIzt4k+id/9iUD9+bX6lYHwQzC1zPlYwOV+VzTZxD9MnH2aeKDH8gwXDtAIK7S4cG4NHURSt3U5AY9ZXT01MSV4jJQRRDb8ZfP/3mHPRbYZivwTLbZGe1c860ZDAFEuO0Xoiw95UuN7zpvBf/IhqQe3mAwziyJkTtgaSCrkoCBSoRmFZp2j7RIqas8WFtCnblNpAlpv02oujLjLqrACo9L1uwbmyQFukn7ITJZCciTuB8uB2jtx6adoScXDVPOtuxFKCI8t8GD7mjlC/6aDKofjOo+z34DnyVUt2t1pl7KlLC4XkRCUf+WnXV3hm+c1md5ekK3i5PjQsdzUtI1mvMzI3xn49GVxjEOsU4h/FjvwOq+exAYV9rEvkvlFEyiRPVaRNAlqK1x93eJ+eeFYFgGk4bM1mFvbSMtj9yz32Z9UsmA6YI7aUhQ5E3AQBakYaEAQvVx8qtUm9gfoMsq9gEqPBCV+s75NCgR3bw44zQd2fXSiQkHOyj8S9uZbLkyOI2v1KxdXT0Nj4IZhZ9w8CR+ZhawrpT/EUcrsrnX2VsYNs+9jOY9VC004nClJBCZBMUGf5AV9JYx4Lh2gHBKnyGRXHm1Qa6QFJNxtJyDg109YpW7qbJnUghYTeb8CL8PXemp6ck5WwBo64Qk4Pt2zUEaYCvVypLCdD/eIsWvLMtkTjot8J7IxFFMF+DZXOUJeL3z7+xtAQZNuacacmlV89OIQxVHWLH85opu2G6anDHPe4rXW6t4PvpeNN5LzsY36i/Q0X7/IjjfLf0cVz0P9fbcGRNiDOv6w+bBTje2M6eWVyVBAofXqKNVCIwrRfpliqTsgx50Hmq/gVKKDhGgY6/wtoU7IERsmvKbSBLiaaGzA39HJ9ONroYEAARABIAAAAIAAcACQAGAAoABQALAAQADAADAA0AAgAOAAEADwBBgNwAC6IVYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwAAQBwoAAAhgAAAIIAAACaAAAAgAAAAIgAAACEAAAAngABAHBgAACFgAAAgYAAAJkAATBzsAAAh4AAAIOAAACdAAEQcRAAAIaAAACCgAAAmwAAAICAAACIgAAAhIAAAJ8AAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnIABEHDQAACGQAAAgkAAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgH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Y05TXzExY2hhcl90cmFpdHNJY0VFRUUA0G0AAHg9AAAAPAAATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAABAAAAAAAAAAKw+AABZAAAAWgAAADgAAAD4////rD4AAFsAAABcAAAAwP///8D///+sPgAAXQAAAF4AAADIPQAALD4AAGg+AAB8PgAAkD4AAKQ+AABUPgAAQD4AAPA9AADcPQAAQAAAAAAAAAAcPQAATAAAAE0AAAA4AAAA+P///xw9AABOAAAATwAAAMD////A////HD0AAFAAAABRAAAAQAAAAAAAAAA8PAAARAAAAEUAAADA////wP///zw8AABGAAAARwAAADgAAAAAAAAAhDwAAEgAAABJAAAAyP///8j///+EPAAASgAAAEsAAADQbQAAuD4AABw9AABOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAAAAAAAAED8AAF8AAABgAAAAqG0AABg/AABOU3QzX18yOGlvc19iYXNlRQAAAAAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADA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")),u((await async function(y){return pA(y)}(p)).instance))}();if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.shift()();return function D(){function u(){var p;if(e.calledRun=!0,!W){if(eA=!0,se.G(),E?.(e),(p=e.onRuntimeInitialized)==null||p.call(e),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var y=e.postRun.shift();oA.push(y)}fA(oA)}}if(0<nA)bA=D;else{if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)BA();fA(MA),0<nA?bA=D:e.setStatus?(e.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>e.setStatus(""),1),u()},1)):u()}}(),a=eA?e:new Promise((D,u)=>{E=D,s=u}),a}const he=(g,A,a=e=>e)=>{const e=g.vf32_ptr(A),t=A.size();return new Float32Array(g.HEAPF32.buffer,e,t).map(a)},cB=g=>1/(1+Math.exp(-g)),hB=g=>A=>A*g+.5,dB=async(g,A)=>{var a;const e=await sB(),t=g instanceof Uint8Array?g:new Uint8Array(g);let i=null;try{if(i=e._malloc(Uint8Array.BYTES_PER_ELEMENT*t.length),i===null)throw new Error("couldn't allocate memory");e.HEAPU8.set(t,i/Uint8Array.BYTES_PER_ELEMENT);const I=e.CoordinateSystem[((a=A?.unpackOptions)==null?void 0:a.coordinateSystem)??"UNSPECIFIED"],B=e.load_spz(i,t.length,{coordinateSystem:I}),r=((o,n,C)=>{const Q=C?.colorScaleFactor??.282;return{numPoints:n.numPoints,shDegree:n.shDegree,antialiased:n.antialiased,positions:he(o,n.positions),scales:he(o,n.scales,Math.exp),rotations:he(o,n.rotations),alphas:he(o,n.alphas,cB),colors:he(o,n.colors,hB(Q)),sh:he(o,n.sh)}})(e,B,A);return((o,n)=>{o._free(o.vf32_ptr(n.positions)),o._free(o.vf32_ptr(n.scales)),o._free(o.vf32_ptr(n.rotations)),o._free(o.vf32_ptr(n.alphas)),o._free(o.vf32_ptr(n.colors)),o._free(o.vf32_ptr(n.sh))})(e,B),r}catch(I){throw I}finally{i!==null&&e._free(i)}},bB=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function uB(g){return new Worker(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/assets/SPZ.worker-d-ZlUCr9.js").href:new URL("assets/SPZ.worker-d-ZlUCr9.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:g?.name})}class lB{constructor(A,a){this.gltfLoader=A,this.renderer=a,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.spzWorker=new uB({type:"module"}),this.spzWorkerJobId=0,this.spzWorkerCallbacks=new Map,this.spzWorker.onmessage=e=>{const{id:t,pos:i,col:I,c0:B,c1:r,error:o}=e.data||{},n=this.spzWorkerCallbacks.get(t);n&&(this.spzWorkerCallbacks.delete(t),o?n.reject(new Error(o)):n.resolve({pos:i,col:I,c0:B,c1:r}))},this.spzWorker.onerror=e=>{for(const[,t]of this.spzWorkerCallbacks)t.reject(e instanceof Error?e:new Error(String(e)));this.spzWorkerCallbacks.clear()}}catch{this.spzWorker=void 0}}parseSplats(A,a,e,t){return new Promise(async(i,I)=>{await this.#n(),this.gltfLoader.parse(A,"",async B=>{try{const r=await this.#g(B,t);i(r)}catch(r){I(r)}},B=>I(B))})}async#g(A,a){if(a)return this.#A(A);const e=A.parser,t=e.json,i=this.#t(t);return i?.type==="SPZ"?this.#i(e,i,A):i?.type==="KHR"?this.#I(e,t,i,A):i?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new z.Object3D),A.scene.asset=A.asset,A.scene)}#t(A){if(!A?.meshes)return null;for(let a=0;a<A.meshes.length;a++){const e=A.meshes[a];for(let t=0;t<(e.primitives?.length||0);t++){const i=e.primitives[t],I=i?.extensions;if(I?.KHR_spz_gaussian_splats_compression&&Number.isInteger(I.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:a,prim:t,type:"SPZ",bv:I.KHR_spz_gaussian_splats_compression.bufferView};if(I?.KHR_gaussian_splatting)return{mesh:a,prim:t,type:"KHR"};if(I?.ULTRA_splats)return{mesh:a,prim:t,type:"ULTRA"}}}return null}async#i(A,a,e){let t=await A.getDependency("bufferView",a.bv);if(t?.buffer?.byteLength&&(t=t.buffer.slice(t.byteOffset,t.byteLength+t.byteOffset)),this.spzWorker){const h=this.spzWorkerJobId++,l=new Promise((Z,nA)=>{this.spzWorkerCallbacks.set(h,{resolve:Z,reject:nA})});try{this.spzWorker.postMessage({id:h,spz:t},[t])}catch(Z){throw this.spzWorkerCallbacks.delete(h),Z}const{pos:w,col:k,c0:M,c1:N}=await l,m=new Float32Array(w),G=new Float32Array(k),L=new Float32Array(M),x=new Float32Array(N),W=new z.BufferAttribute(m,3),X=new z.BufferAttribute(G,4),eA=new z.BufferAttribute(L,3),AA=new z.BufferAttribute(x,3);return e.scene.traverse(Z=>Z.dispose&&Z.dispose()),{isSplatsData:!0,positions:W,colors:X,cov0:eA,cov1:AA}}const i=await dB(t,{coordinateSystem:"LUF"}),I=i.numPoints??i.positions.length/3,B=new Float32Array(i.positions),r=i.colors??i.color,o=i.alphas??i.opacity??i.opacities,n=new Float32Array(4*I);for(let h=0;h<I;h++){const l=r[3*h+0],w=r[3*h+1],k=r[3*h+2],M=o?this.#B(o[h]):1,[N,m,G]=this.#e(l,w,k);n.set([N,m,G,M],4*h)}const C=i.rotations??i.quaternions,Q=i.scales??i.scale,E=this.#a(C,Q),s=new z.BufferAttribute(B,3),c=new z.BufferAttribute(n,4),d=new z.BufferAttribute(E.c0,3),b=new z.BufferAttribute(E.c1,3);return e.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:d,cov1:b}}async#I(A,a,e,t){const i=a.meshes[e.mesh].primitives[e.prim],I=async h=>{const l=i.attributes?.[h];return Number.isInteger(l)?A.getDependency("accessor",l):null};let B=await I("POSITION");if(!B)return this.#A(t);B?.buffer&&(B=new Float32Array(B.buffer,B.byteOffset,3*B.count));let r=await I("COLOR_0");r?.buffer&&(r=new Float32Array(r.buffer,r.byteOffset,(r.itemSize||4)*r.count));let o=await I("ROTATION")||await I("_ROTATION"),n=await I("SCALE")||await I("_SCALE");o?.buffer&&(o=new Float32Array(o.buffer,o.byteOffset,4*o.count)),n?.buffer&&(n=new Float32Array(n.buffer,n.byteOffset,3*n.count));const C=B.length/3,Q=new Float32Array(4*C);if(r){const h=r.length===4*C?4:3;for(let l=0;l<C;l++){const w=r[l*h+0],k=r[l*h+1],M=r[l*h+2],[N,m,G]=this.#e(w,k,M);Q.set([N,m,G,h===4?r[l*h+3]:1],4*l)}}else for(let h=0;h<C;h++)Q.set([1,1,1,1],4*h);const E=this.#a(o,n),s=new z.BufferAttribute(B,3),c=new z.BufferAttribute(Q,4),d=new z.BufferAttribute(E.c0,3),b=new z.BufferAttribute(E.c1,3);return t.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:d,cov1:b}}async#A(A){const a=A.scene.children[0].geometry,e=a.attributes.position,t=a.attributes.color,i=a.attributes.cov_0||a.attributes.COV_0,I=a.attributes.cov_1||a.attributes.COV_1;return A.scene.traverse(B=>B.dispose&&B.dispose()),{isSplatsData:!0,positions:e,colors:t,cov0:i,cov1:I}}#a(A,a){const e=(A?.length||0)/4,t=new Float32Array(3*e),i=new Float32Array(3*e),I=new Float32Array(9);for(let B=0;B<e;B++){const r=A?A[4*B+0]:0,o=A?A[4*B+1]:0,n=A?A[4*B+2]:0,C=A?A[4*B+3]:1,Q=r*r,E=o*o,s=n*n,c=r*o,d=r*n,b=o*n,h=C*r,l=C*o,w=C*n;I[0]=1-2*(E+s),I[1]=2*(c-w),I[2]=2*(d+l),I[3]=2*(c+w),I[4]=1-2*(Q+s),I[5]=2*(b-h),I[6]=2*(d-l),I[7]=2*(b+h),I[8]=1-2*(Q+E);const k=Math.max(1e-12,a?a[3*B+0]:0),M=Math.max(1e-12,a?a[3*B+1]:0),N=Math.max(1e-12,a?a[3*B+2]:0),m=k*k,G=M*M,L=N*N,x=I[0]*I[0]*m+I[1]*I[1]*G+I[2]*I[2]*L,W=I[3]*I[0]*m+I[4]*I[1]*G+I[5]*I[2]*L,X=I[6]*I[0]*m+I[7]*I[1]*G+I[8]*I[2]*L,eA=I[3]*I[3]*m+I[4]*I[4]*G+I[5]*I[5]*L,AA=I[6]*I[3]*m+I[7]*I[4]*G+I[8]*I[5]*L,Z=I[6]*I[6]*m+I[7]*I[7]*G+I[8]*I[8]*L,nA=3*B;t[nA+0]=x,t[nA+1]=W,t[nA+2]=X,i[nA+0]=eA,i[nA+1]=AA,i[nA+2]=Z}return{c0:t,c1:i}}#B(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#e(A,a,e){const t=C=>C>=0&&C<=255&&Math.abs(C-Math.round(C))<.001,i=C=>C>=0&&C<=65535&&Math.abs(C-Math.round(C))<.001,I=C=>C<=.04045?C/12.92:Math.pow((C+.055)/1.055,2.4),B=C=>Math.min(1,Math.max(0,C));let r=A,o=a,n=e;if(!(A>=0&&A<=1&&a>=0&&a<=1&&e>=0&&e<=1))if(t(A)&&t(a)&&t(e))r=A/255,o=a/255,n=e/255;else if(i(A)&&i(a)&&i(e))r=A/65535,o=a/65535,n=e/65535;else{const C=Q=>.5+.28209479177387814*Q;r=C(A),o=C(a),n=C(e)}return r=B(r),o=B(o),n=B(n),[I(r),I(o),I(n)]}#n(){return new Promise(A=>{const a=setInterval(()=>{const e=this.gltfLoader;e.hasDracoLoader&&!e.dracoLoader||e.hasKTX2Loader&&!e.ktx2Loader||(clearInterval(a),A())},10)})}}class _i extends f.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(a){return new pB(a)}),this.register(function(a){return new FB(a)}),this.register(function(a){return new xB(a)}),this.register(function(a){return new LB(a)}),this.register(function(a){return new JB(a)}),this.register(function(a){return new MB(a)}),this.register(function(a){return new kB(a)}),this.register(function(a){return new RB(a)}),this.register(function(a){return new NB(a)}),this.register(function(a){return new yB(a)}),this.register(function(a){return new GB(a)}),this.register(function(a){return new mB(a)}),this.register(function(a){return new UB(a)}),this.register(function(a){return new SB(a)}),this.register(function(a){return new DB(a)}),this.register(function(a){return new jB(a)}),this.register(function(a){return new vB(a)})}load(A,a,e,t){const i=this;let I;if(this.resourcePath!=="")I=this.resourcePath;else if(this.path!==""){const o=f.LoaderUtils.extractUrlBase(A);I=f.LoaderUtils.resolveURL(o,this.path)}else I=f.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const B=function(o){t?t(o):console.error(o),i.manager.itemError(A),i.manager.itemEnd(A)},r=new f.FileLoader(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(A,function(o){try{i.parse(o,I,function(n){a(n),i.manager.itemEnd(A)},B)}catch(n){B(n)}},e,B)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,a,e,t){let i;const I={},B={},r=new TextDecoder;if(typeof A=="string")i=JSON.parse(A);else if(A instanceof ArrayBuffer)if(r.decode(new Uint8Array(A,0,4))===$i){try{I[dA.KHR_BINARY_GLTF]=new KB(A)}catch(n){return void(t&&t(n))}i=JSON.parse(I[dA.KHR_BINARY_GLTF].content)}else i=JSON.parse(r.decode(A));else i=A;if(i.asset===void 0||i.asset.version[0]<2)return void(t&&t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const o=new an(i,{path:a||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});o.fileLoader.setRequestHeader(this.requestHeader);for(let n=0;n<this.pluginCallbacks.length;n++){const C=this.pluginCallbacks[n](o);C.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),B[C.name]=C,I[C.name]=!0}if(i.extensionsUsed)for(let n=0;n<i.extensionsUsed.length;++n){const C=i.extensionsUsed[n],Q=i.extensionsRequired||[];switch(C){case dA.KHR_MATERIALS_UNLIT:I[C]=new wB;break;case dA.KHR_DRACO_MESH_COMPRESSION:I[C]=new qB(i,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:I[C]=new TB;break;case dA.KHR_MESH_QUANTIZATION:I[C]=new OB;break;default:Q.indexOf(C)>=0&&B[C]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+C+'".')}}o.setExtensions(I),o.setPlugins(B),o.parse(e,t)}parseAsync(A,a){const e=this;return new Promise(function(t,i){e.parse(A,a,t,i)})}}function fB(){let g={};return{get:function(A){return g[A]},add:function(A,a){g[A]=a},remove:function(A){delete g[A]},removeAll:function(){g={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class DB{constructor(A){this.parser=A,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,a=this.parser.json.nodes||[];for(let e=0,t=a.length;e<t;e++){const i=a[e];i.extensions&&i.extensions[this.name]&&i.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(A){const a=this.parser,e="light:"+A;let t=a.cache.get(e);if(t)return t;const i=a.json,I=((i.extensions&&i.extensions[this.name]||{}).lights||[])[A];let B;const r=new f.Color(16777215);I.color!==void 0&&r.setRGB(I.color[0],I.color[1],I.color[2],f.LinearSRGBColorSpace);const o=I.range!==void 0?I.range:0;switch(I.type){case"directional":B=new f.DirectionalLight(r),B.target.position.set(0,0,-1),B.add(B.target);break;case"point":B=new f.PointLight(r),B.distance=o;break;case"spot":B=new f.SpotLight(r),B.distance=o,I.spot=I.spot||{},I.spot.innerConeAngle=I.spot.innerConeAngle!==void 0?I.spot.innerConeAngle:0,I.spot.outerConeAngle=I.spot.outerConeAngle!==void 0?I.spot.outerConeAngle:Math.PI/4,B.angle=I.spot.outerConeAngle,B.penumbra=1-I.spot.innerConeAngle/I.spot.outerConeAngle,B.target.position.set(0,0,-1),B.add(B.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+I.type)}return B.position.set(0,0,0),xa(B,I),I.intensity!==void 0&&(B.intensity=I.intensity),B.name=a.createUniqueName(I.name||"light_"+A),t=Promise.resolve(B),a.cache.add(e,t),t}getDependency(A,a){if(A==="light")return this._loadLight(a)}createNodeAttachment(A){const a=this,e=this.parser,t=e.json.nodes[A],i=(t.extensions&&t.extensions[this.name]||{}).light;return i===void 0?null:this._loadLight(i).then(function(I){return e._getNodeRef(a.cache,i,I)})}}class wB{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return f.MeshBasicMaterial}extendParams(A,a,e){const t=[];A.color=new f.Color(1,1,1),A.opacity=1;const i=a.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){const I=i.baseColorFactor;A.color.setRGB(I[0],I[1],I[2],f.LinearSRGBColorSpace),A.opacity=I[3]}i.baseColorTexture!==void 0&&t.push(e.assignTexture(A,"map",i.baseColorTexture,f.SRGBColorSpace))}return Promise.all(t)}}class yB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const t=e.extensions[this.name].emissiveStrength;return t!==void 0&&(a.emissiveIntensity=t),Promise.resolve()}}class pB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];if(I.clearcoatFactor!==void 0&&(a.clearcoat=I.clearcoatFactor),I.clearcoatTexture!==void 0&&i.push(e.assignTexture(a,"clearcoatMap",I.clearcoatTexture)),I.clearcoatRoughnessFactor!==void 0&&(a.clearcoatRoughness=I.clearcoatRoughnessFactor),I.clearcoatRoughnessTexture!==void 0&&i.push(e.assignTexture(a,"clearcoatRoughnessMap",I.clearcoatRoughnessTexture)),I.clearcoatNormalTexture!==void 0&&(i.push(e.assignTexture(a,"clearcoatNormalMap",I.clearcoatNormalTexture)),I.clearcoatNormalTexture.scale!==void 0)){const B=I.clearcoatNormalTexture.scale;a.clearcoatNormalScale=new f.Vector2(B,B)}return Promise.all(i)}}class FB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const t=e.extensions[this.name];return a.dispersion=t.dispersion!==void 0?t.dispersion:0,Promise.resolve()}}class mB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];return I.iridescenceFactor!==void 0&&(a.iridescence=I.iridescenceFactor),I.iridescenceTexture!==void 0&&i.push(e.assignTexture(a,"iridescenceMap",I.iridescenceTexture)),I.iridescenceIor!==void 0&&(a.iridescenceIOR=I.iridescenceIor),a.iridescenceThicknessRange===void 0&&(a.iridescenceThicknessRange=[100,400]),I.iridescenceThicknessMinimum!==void 0&&(a.iridescenceThicknessRange[0]=I.iridescenceThicknessMinimum),I.iridescenceThicknessMaximum!==void 0&&(a.iridescenceThicknessRange[1]=I.iridescenceThicknessMaximum),I.iridescenceThicknessTexture!==void 0&&i.push(e.assignTexture(a,"iridescenceThicknessMap",I.iridescenceThicknessTexture)),Promise.all(i)}}class MB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[];a.sheenColor=new f.Color(0,0,0),a.sheenRoughness=0,a.sheen=1;const I=t.extensions[this.name];if(I.sheenColorFactor!==void 0){const B=I.sheenColorFactor;a.sheenColor.setRGB(B[0],B[1],B[2],f.LinearSRGBColorSpace)}return I.sheenRoughnessFactor!==void 0&&(a.sheenRoughness=I.sheenRoughnessFactor),I.sheenColorTexture!==void 0&&i.push(e.assignTexture(a,"sheenColorMap",I.sheenColorTexture,f.SRGBColorSpace)),I.sheenRoughnessTexture!==void 0&&i.push(e.assignTexture(a,"sheenRoughnessMap",I.sheenRoughnessTexture)),Promise.all(i)}}class kB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];return I.transmissionFactor!==void 0&&(a.transmission=I.transmissionFactor),I.transmissionTexture!==void 0&&i.push(e.assignTexture(a,"transmissionMap",I.transmissionTexture)),Promise.all(i)}}class RB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];a.thickness=I.thicknessFactor!==void 0?I.thicknessFactor:0,I.thicknessTexture!==void 0&&i.push(e.assignTexture(a,"thicknessMap",I.thicknessTexture)),a.attenuationDistance=I.attenuationDistance||1/0;const B=I.attenuationColor||[1,1,1];return a.attenuationColor=new f.Color().setRGB(B[0],B[1],B[2],f.LinearSRGBColorSpace),Promise.all(i)}}class NB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser.json.materials[A];if(!e.extensions||!e.extensions[this.name])return Promise.resolve();const t=e.extensions[this.name];return a.ior=t.ior!==void 0?t.ior:1.5,Promise.resolve()}}class GB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];a.specularIntensity=I.specularFactor!==void 0?I.specularFactor:1,I.specularTexture!==void 0&&i.push(e.assignTexture(a,"specularIntensityMap",I.specularTexture));const B=I.specularColorFactor||[1,1,1];return a.specularColor=new f.Color().setRGB(B[0],B[1],B[2],f.LinearSRGBColorSpace),I.specularColorTexture!==void 0&&i.push(e.assignTexture(a,"specularColorMap",I.specularColorTexture,f.SRGBColorSpace)),Promise.all(i)}}class SB{constructor(A){this.parser=A,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];return a.bumpScale=I.bumpFactor!==void 0?I.bumpFactor:1,I.bumpTexture!==void 0&&i.push(e.assignTexture(a,"bumpMap",I.bumpTexture)),Promise.all(i)}}class UB{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const a=this.parser.json.materials[A];return a.extensions&&a.extensions[this.name]?f.MeshPhysicalMaterial:null}extendMaterialParams(A,a){const e=this.parser,t=e.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const i=[],I=t.extensions[this.name];return I.anisotropyStrength!==void 0&&(a.anisotropy=I.anisotropyStrength),I.anisotropyRotation!==void 0&&(a.anisotropyRotation=I.anisotropyRotation),I.anisotropyTexture!==void 0&&i.push(e.assignTexture(a,"anisotropyMap",I.anisotropyTexture)),Promise.all(i)}}class xB{constructor(A){this.parser=A,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(A){const a=this.parser,e=a.json,t=e.textures[A];if(!t.extensions||!t.extensions[this.name])return null;const i=t.extensions[this.name],I=a.options.ktx2Loader;if(!I){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return a.loadTextureImage(A,i.source,I)}}class LB{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_WEBP}loadTexture(A){const a=this.name,e=this.parser,t=e.json,i=t.textures[A];if(!i.extensions||!i.extensions[a])return null;const I=i.extensions[a],B=t.images[I.source];let r=e.textureLoader;if(B.uri){const o=e.options.manager.getHandler(B.uri);o!==null&&(r=o)}return e.loadTextureImage(A,I.source,r)}}class JB{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_AVIF}loadTexture(A){const a=this.name,e=this.parser,t=e.json,i=t.textures[A];if(!i.extensions||!i.extensions[a])return null;const I=i.extensions[a],B=t.images[I.source];let r=e.textureLoader;if(B.uri){const o=e.options.manager.getHandler(B.uri);o!==null&&(r=o)}return e.loadTextureImage(A,I.source,r)}}class jB{constructor(A){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const a=this.parser.json,e=a.bufferViews[A];if(e.extensions&&e.extensions[this.name]){const t=e.extensions[this.name],i=this.parser.getDependency("buffer",t.buffer),I=this.parser.options.meshoptDecoder;if(!I||!I.supported){if(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(B){const r=t.byteOffset||0,o=t.byteLength||0,n=t.count,C=t.byteStride,Q=new Uint8Array(B,r,o);return I.decodeGltfBufferAsync?I.decodeGltfBufferAsync(n,C,Q,t.mode,t.filter).then(function(E){return E.buffer}):I.ready.then(function(){const E=new ArrayBuffer(n*C);return I.decodeGltfBuffer(new Uint8Array(E),n,C,Q,t.mode,t.filter),E})})}return null}}class vB{constructor(A){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const a=this.parser.json,e=a.nodes[A];if(!e.extensions||!e.extensions[this.name]||e.mesh===void 0)return null;const t=a.meshes[e.mesh];for(const r of t.primitives)if(r.mode!==ba.TRIANGLES&&r.mode!==ba.TRIANGLE_STRIP&&r.mode!==ba.TRIANGLE_FAN&&r.mode!==void 0)return null;const i=e.extensions[this.name].attributes,I=[],B={};for(const r in i)I.push(this.parser.getDependency("accessor",i[r]).then(o=>(B[r]=o,B[r])));return I.length<1?null:(I.push(this.parser.createNodeMesh(A)),Promise.all(I).then(r=>{const o=r.pop(),n=o.isGroup?o.children:[o],C=r[0].count,Q=[];for(const E of n){const s=new f.Matrix4,c=new f.Vector3,d=new f.Quaternion,b=new f.Vector3(1,1,1),h=new f.InstancedMesh(E.geometry,E.material,C);for(let l=0;l<C;l++)B.TRANSLATION&&c.fromBufferAttribute(B.TRANSLATION,l),B.ROTATION&&d.fromBufferAttribute(B.ROTATION,l),B.SCALE&&b.fromBufferAttribute(B.SCALE,l),h.setMatrixAt(l,s.compose(c,d,b));for(const l in B)if(l==="_COLOR_0"){const w=B[l];h.instanceColor=new f.InstancedBufferAttribute(w.array,w.itemSize,w.normalized)}else l!=="TRANSLATION"&&l!=="ROTATION"&&l!=="SCALE"&&E.geometry.setAttribute(l,B[l]);f.Object3D.prototype.copy.call(h,E),this.parser.assignFinalMaterial(h),Q.push(h)}return o.isGroup?(o.clear(),o.add(...Q),o):Q[0]}))}}const $i="glTF",HB=1313821514,YB=5130562;class KB{constructor(A){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const a=new DataView(A,0,12),e=new TextDecoder;if(this.header={magic:e.decode(new Uint8Array(A.slice(0,4))),version:a.getUint32(4,!0),length:a.getUint32(8,!0)},this.header.magic!==$i)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const t=this.header.length-12,i=new DataView(A,12);let I=0;for(;I<t;){const B=i.getUint32(I,!0);I+=4;const r=i.getUint32(I,!0);if(I+=4,r===HB){const o=new Uint8Array(A,12+I,B);this.content=e.decode(o)}else if(r===YB){const o=12+I;this.body=A.slice(o,o+B)}I+=B}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class qB{constructor(A,a){if(!a)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=a,this.dracoLoader.preload()}decodePrimitive(A,a){const e=this.json,t=this.dracoLoader,i=A.extensions[this.name].bufferView,I=A.extensions[this.name].attributes,B={},r={},o={};for(const n in I){const C=Et[n]||n.toLowerCase();B[C]=I[n]}for(const n in A.attributes){const C=Et[n]||n.toLowerCase();if(I[n]!==void 0){const Q=e.accessors[A.attributes[n]],E=pe[Q.componentType];o[C]=E.name,r[C]=Q.normalized===!0}}return a.getDependency("bufferView",i).then(function(n){return new Promise(function(C,Q){t.decodeDracoFile(n,function(E){for(const s in E.attributes){const c=E.attributes[s],d=r[s];d!==void 0&&(c.normalized=d)}C(E)},B,o,f.LinearSRGBColorSpace,Q)})})}}class TB{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(A,a){return(a.texCoord!==void 0&&a.texCoord!==A.channel||a.offset!==void 0||a.rotation!==void 0||a.scale!==void 0)&&(A=A.clone(),a.texCoord!==void 0&&(A.channel=a.texCoord),a.offset!==void 0&&A.offset.fromArray(a.offset),a.rotation!==void 0&&(A.rotation=a.rotation),a.scale!==void 0&&A.repeat.fromArray(a.scale),A.needsUpdate=!0),A}}class OB{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class AI extends f.Interpolant{constructor(A,a,e,t){super(A,a,e,t)}copySampleValue_(A){const a=this.resultBuffer,e=this.sampleValues,t=this.valueSize,i=A*t*3+t;for(let I=0;I!==t;I++)a[I]=e[i+I];return a}interpolate_(A,a,e,t){const i=this.resultBuffer,I=this.sampleValues,B=this.valueSize,r=2*B,o=3*B,n=t-a,C=(e-a)/n,Q=C*C,E=Q*C,s=A*o,c=s-o,d=-2*E+3*Q,b=E-Q,h=1-d,l=b-Q+C;for(let w=0;w!==B;w++){const k=I[c+w+B],M=I[c+w+r]*n,N=I[s+w+B],m=I[s+w]*n;i[w]=h*k+l*M+d*N+b*m}return i}}const PB=new f.Quaternion;class zB extends AI{interpolate_(A,a,e,t){const i=super.interpolate_(A,a,e,t);return PB.fromArray(i).normalize().toArray(i),i}}const ba={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},pe={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},zt={9728:f.NearestFilter,9729:f.LinearFilter,9984:f.NearestMipmapNearestFilter,9985:f.LinearMipmapNearestFilter,9986:f.NearestMipmapLinearFilter,9987:f.LinearMipmapLinearFilter},Wt={33071:f.ClampToEdgeWrapping,33648:f.MirroredRepeatWrapping,10497:f.RepeatWrapping},Yg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Et={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Ta={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},WB={CUBICSPLINE:void 0,LINEAR:f.InterpolateLinear,STEP:f.InterpolateDiscrete},VB="OPAQUE",XB="MASK",ZB="BLEND";function ge(g,A,a){for(const e in a.extensions)g[e]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[e]=a.extensions[e])}function xa(g,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(g.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function _B(g,A){if(g.updateMorphTargets(),A.weights!==void 0)for(let a=0,e=A.weights.length;a<e;a++)g.morphTargetInfluences[a]=A.weights[a];if(A.extras&&Array.isArray(A.extras.targetNames)){const a=A.extras.targetNames;if(g.morphTargetInfluences.length===a.length){g.morphTargetDictionary={};for(let e=0,t=a.length;e<t;e++)g.morphTargetDictionary[a[e]]=e}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function $B(g){let A;const a=g.extensions&&g.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(A=a?"draco:"+a.bufferView+":"+a.indices+":"+Kg(a.attributes):g.indices+":"+Kg(g.attributes)+":"+g.mode,g.targets!==void 0)for(let e=0,t=g.targets.length;e<t;e++)A+=":"+Kg(g.targets[e]);return A}function Kg(g){let A="";const a=Object.keys(g).sort();for(let e=0,t=a.length;e<t;e++)A+=a[e]+":"+g[a[e]]+";";return A}function Qt(g){switch(g){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const An=new f.Matrix4;class an{constructor(A={},a={}){this.json=A,this.extensions={},this.plugins={},this.options=a,this.cache=new fB,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let e=!1,t=-1,i=!1,I=-1;if(typeof navigator<"u"){const B=navigator.userAgent;e=/^((?!chrome|android).)*safari/i.test(B)===!0;const r=B.match(/Version\/(\d+)/);t=e&&r?parseInt(r[1],10):-1,i=B.indexOf("Firefox")>-1,I=i?B.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||e&&t<17||i&&I<98?this.textureLoader=new f.TextureLoader(this.options.manager):this.textureLoader=new f.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new f.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,a){const e=this,t=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(I){return I._markDefs&&I._markDefs()}),Promise.all(this._invokeAll(function(I){return I.beforeRoot&&I.beforeRoot()})).then(function(){return Promise.all([e.getDependencies("scene"),e.getDependencies("animation"),e.getDependencies("camera")])}).then(function(I){const B={scene:I[0][t.scene||0],scenes:I[0],animations:I[1],cameras:I[2],asset:t.asset,parser:e,userData:{}};return ge(i,B,t),xa(B,t),Promise.all(e._invokeAll(function(r){return r.afterRoot&&r.afterRoot(B)})).then(function(){for(const r of B.scenes)r.updateMatrixWorld();A(B)})}).catch(a)}_markDefs(){const A=this.json.nodes||[],a=this.json.skins||[],e=this.json.meshes||[];for(let t=0,i=a.length;t<i;t++){const I=a[t].joints;for(let B=0,r=I.length;B<r;B++)A[I[B]].isBone=!0}for(let t=0,i=A.length;t<i;t++){const I=A[t];I.mesh!==void 0&&(this._addNodeRef(this.meshCache,I.mesh),I.skin!==void 0&&(e[I.mesh].isSkinnedMesh=!0)),I.camera!==void 0&&this._addNodeRef(this.cameraCache,I.camera)}}_addNodeRef(A,a){a!==void 0&&(A.refs[a]===void 0&&(A.refs[a]=A.uses[a]=0),A.refs[a]++)}_getNodeRef(A,a,e){if(A.refs[a]<=1)return e;const t=e.clone(),i=(I,B)=>{const r=this.associations.get(I);r!=null&&this.associations.set(B,r);for(const[o,n]of I.children.entries())i(n,B.children[o])};return i(e,t),t.name+="_instance_"+A.uses[a]++,t}_invokeOne(A){const a=Object.values(this.plugins);a.push(this);for(let e=0;e<a.length;e++){const t=A(a[e]);if(t)return t}return null}_invokeAll(A){const a=Object.values(this.plugins);a.unshift(this);const e=[];for(let t=0;t<a.length;t++){const i=A(a[t]);i&&e.push(i)}return e}getDependency(A,a){const e=A+":"+a;let t=this.cache.get(e);if(!t){switch(A){case"scene":t=this.loadScene(a);break;case"node":t=this._invokeOne(function(i){return i.loadNode&&i.loadNode(a)});break;case"mesh":t=this._invokeOne(function(i){return i.loadMesh&&i.loadMesh(a)});break;case"accessor":t=this.loadAccessor(a);break;case"bufferView":t=this._invokeOne(function(i){return i.loadBufferView&&i.loadBufferView(a)});break;case"buffer":t=this.loadBuffer(a);break;case"material":t=this._invokeOne(function(i){return i.loadMaterial&&i.loadMaterial(a)});break;case"texture":t=this._invokeOne(function(i){return i.loadTexture&&i.loadTexture(a)});break;case"skin":t=this.loadSkin(a);break;case"animation":t=this._invokeOne(function(i){return i.loadAnimation&&i.loadAnimation(a)});break;case"camera":t=this.loadCamera(a);break;default:if(t=this._invokeOne(function(i){return i!=this&&i.getDependency&&i.getDependency(A,a)}),!t)throw new Error("Unknown type: "+A)}this.cache.add(e,t)}return t}getDependencies(A){let a=this.cache.get(A);if(!a){const e=this,t=this.json[A+(A==="mesh"?"es":"s")]||[];a=Promise.all(t.map(function(i,I){return e.getDependency(A,I)})),this.cache.add(A,a)}return a}loadBuffer(A){const a=this.json.buffers[A],e=this.fileLoader;if(a.type&&a.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+a.type+" buffer type is not supported.");if(a.uri===void 0&&A===0)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const t=this.options;return new Promise(function(i,I){e.load(f.LoaderUtils.resolveURL(a.uri,t.path),i,void 0,function(){I(new Error('THREE.GLTFLoader: Failed to load buffer "'+a.uri+'".'))})})}loadBufferView(A){const a=this.json.bufferViews[A];return this.getDependency("buffer",a.buffer).then(function(e){const t=a.byteLength||0,i=a.byteOffset||0;return e.slice(i,i+t)})}loadAccessor(A){const a=this,e=this.json,t=this.json.accessors[A];if(t.bufferView===void 0&&t.sparse===void 0){const I=Yg[t.type],B=pe[t.componentType],r=t.normalized===!0,o=new B(t.count*I);return Promise.resolve(new f.BufferAttribute(o,I,r))}const i=[];return t.bufferView!==void 0?i.push(this.getDependency("bufferView",t.bufferView)):i.push(null),t.sparse!==void 0&&(i.push(this.getDependency("bufferView",t.sparse.indices.bufferView)),i.push(this.getDependency("bufferView",t.sparse.values.bufferView))),Promise.all(i).then(function(I){const B=I[0],r=Yg[t.type],o=pe[t.componentType],n=o.BYTES_PER_ELEMENT,C=n*r,Q=t.byteOffset||0,E=t.bufferView!==void 0?e.bufferViews[t.bufferView].byteStride:void 0,s=t.normalized===!0;let c,d;if(E&&E!==C){const b=Math.floor(Q/E),h="InterleavedBuffer:"+t.bufferView+":"+t.componentType+":"+b+":"+t.count;let l=a.cache.get(h);l||(c=new o(B,b*E,t.count*E/n),l=new f.InterleavedBuffer(c,E/n),a.cache.add(h,l)),d=new f.InterleavedBufferAttribute(l,r,Q%E/n,s)}else c=B===null?new o(t.count*r):new o(B,Q,t.count*r),d=new f.BufferAttribute(c,r,s);if(t.sparse!==void 0){const b=Yg.SCALAR,h=pe[t.sparse.indices.componentType],l=t.sparse.indices.byteOffset||0,w=t.sparse.values.byteOffset||0,k=new h(I[1],l,t.sparse.count*b),M=new o(I[2],w,t.sparse.count*r);B!==null&&(d=new f.BufferAttribute(d.array.slice(),d.itemSize,d.normalized)),d.normalized=!1;for(let N=0,m=k.length;N<m;N++){const G=k[N];if(d.setX(G,M[N*r]),r>=2&&d.setY(G,M[N*r+1]),r>=3&&d.setZ(G,M[N*r+2]),r>=4&&d.setW(G,M[N*r+3]),r>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}d.normalized=s}return d})}loadTexture(A){const a=this.json,e=this.options,t=a.textures[A].source,i=a.images[t];let I=this.textureLoader;if(i.uri){const B=e.manager.getHandler(i.uri);B!==null&&(I=B)}return this.loadTextureImage(A,t,I)}loadTextureImage(A,a,e){const t=this,i=this.json,I=i.textures[A],B=i.images[a],r=(B.uri||B.bufferView)+":"+I.sampler;if(this.textureCache[r])return this.textureCache[r];const o=this.loadImageSource(a,e).then(function(n){n.flipY=!1,n.name=I.name||B.name||"",n.name===""&&typeof B.uri=="string"&&B.uri.startsWith("data:image/")===!1&&(n.name=B.uri);const C=(i.samplers||{})[I.sampler]||{};return n.magFilter=zt[C.magFilter]||f.LinearFilter,n.minFilter=zt[C.minFilter]||f.LinearMipmapLinearFilter,n.wrapS=Wt[C.wrapS]||f.RepeatWrapping,n.wrapT=Wt[C.wrapT]||f.RepeatWrapping,n.generateMipmaps=!n.isCompressedTexture&&n.minFilter!==f.NearestFilter&&n.minFilter!==f.LinearFilter,t.associations.set(n,{textures:A}),n}).catch(function(){return null});return this.textureCache[r]=o,o}loadImageSource(A,a){const e=this,t=this.json,i=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(C=>C.clone());const I=t.images[A],B=self.URL||self.webkitURL;let r=I.uri||"",o=!1;if(I.bufferView!==void 0)r=e.getDependency("bufferView",I.bufferView).then(function(C){o=!0;const Q=new Blob([C],{type:I.mimeType});return r=B.createObjectURL(Q),r});else if(I.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const n=Promise.resolve(r).then(function(C){return new Promise(function(Q,E){let s=Q;a.isImageBitmapLoader===!0&&(s=function(c){const d=new f.Texture(c);d.needsUpdate=!0,Q(d)}),a.load(f.LoaderUtils.resolveURL(C,i.path),s,void 0,E)})}).then(function(C){var Q;return o===!0&&B.revokeObjectURL(r),xa(C,I),C.userData.mimeType=I.mimeType||((Q=I.uri).search(/\.jpe?g($|\?)/i)>0||Q.search(/^data\:image\/jpeg/)===0?"image/jpeg":Q.search(/\.webp($|\?)/i)>0||Q.search(/^data\:image\/webp/)===0?"image/webp":Q.search(/\.ktx2($|\?)/i)>0||Q.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),C}).catch(function(C){throw console.error("THREE.GLTFLoader: Couldn't load texture",r),C});return this.sourceCache[A]=n,n}assignTexture(A,a,e,t){const i=this;return this.getDependency("texture",e.index).then(function(I){if(!I)return null;if(e.texCoord!==void 0&&e.texCoord>0&&((I=I.clone()).channel=e.texCoord),i.extensions[dA.KHR_TEXTURE_TRANSFORM]){const B=e.extensions!==void 0?e.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(B){const r=i.associations.get(I);I=i.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(I,B),i.associations.set(I,r)}}return t!==void 0&&(I.colorSpace=t),A[a]=I,I})}assignFinalMaterial(A){const a=A.geometry;let e=A.material;const t=a.attributes.tangent===void 0,i=a.attributes.color!==void 0,I=a.attributes.normal===void 0;if(A.isPoints){const B="PointsMaterial:"+e.uuid;let r=this.cache.get(B);r||(r=new f.PointsMaterial,f.Material.prototype.copy.call(r,e),r.color.copy(e.color),r.map=e.map,r.sizeAttenuation=!1,this.cache.add(B,r)),e=r}else if(A.isLine){const B="LineBasicMaterial:"+e.uuid;let r=this.cache.get(B);r||(r=new f.LineBasicMaterial,f.Material.prototype.copy.call(r,e),r.color.copy(e.color),r.map=e.map,this.cache.add(B,r)),e=r}if(t||i||I){let B="ClonedMaterial:"+e.uuid+":";t&&(B+="derivative-tangents:"),i&&(B+="vertex-colors:"),I&&(B+="flat-shading:");let r=this.cache.get(B);r||(r=e.clone(),i&&(r.vertexColors=!0),I&&(r.flatShading=!0),t&&(r.normalScale&&(r.normalScale.y*=-1),r.clearcoatNormalScale&&(r.clearcoatNormalScale.y*=-1)),this.cache.add(B,r),this.associations.set(r,this.associations.get(e))),e=r}A.material=e}getMaterialType(){return f.MeshStandardMaterial}loadMaterial(A){const a=this,e=this.json,t=this.extensions,i=e.materials[A];let I;const B={},r=[];if((i.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const n=t[dA.KHR_MATERIALS_UNLIT];I=n.getMaterialType(),r.push(n.extendParams(B,i,a))}else{const n=i.pbrMetallicRoughness||{};if(B.color=new f.Color(1,1,1),B.opacity=1,Array.isArray(n.baseColorFactor)){const C=n.baseColorFactor;B.color.setRGB(C[0],C[1],C[2],f.LinearSRGBColorSpace),B.opacity=C[3]}n.baseColorTexture!==void 0&&r.push(a.assignTexture(B,"map",n.baseColorTexture,f.SRGBColorSpace)),B.metalness=n.metallicFactor!==void 0?n.metallicFactor:1,B.roughness=n.roughnessFactor!==void 0?n.roughnessFactor:1,n.metallicRoughnessTexture!==void 0&&(r.push(a.assignTexture(B,"metalnessMap",n.metallicRoughnessTexture)),r.push(a.assignTexture(B,"roughnessMap",n.metallicRoughnessTexture))),I=this._invokeOne(function(C){return C.getMaterialType&&C.getMaterialType(A)}),r.push(Promise.all(this._invokeAll(function(C){return C.extendMaterialParams&&C.extendMaterialParams(A,B)})))}i.doubleSided===!0&&(B.side=f.DoubleSide);const o=i.alphaMode||VB;if(o===ZB?(B.transparent=!0,B.depthWrite=!1):(B.transparent=!1,o===XB&&(B.alphaTest=i.alphaCutoff!==void 0?i.alphaCutoff:.5)),i.normalTexture!==void 0&&I!==f.MeshBasicMaterial&&(r.push(a.assignTexture(B,"normalMap",i.normalTexture)),B.normalScale=new f.Vector2(1,1),i.normalTexture.scale!==void 0)){const n=i.normalTexture.scale;B.normalScale.set(n,n)}if(i.occlusionTexture!==void 0&&I!==f.MeshBasicMaterial&&(r.push(a.assignTexture(B,"aoMap",i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(B.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&I!==f.MeshBasicMaterial){const n=i.emissiveFactor;B.emissive=new f.Color().setRGB(n[0],n[1],n[2],f.LinearSRGBColorSpace)}return i.emissiveTexture!==void 0&&I!==f.MeshBasicMaterial&&r.push(a.assignTexture(B,"emissiveMap",i.emissiveTexture,f.SRGBColorSpace)),Promise.all(r).then(function(){const n=new I(B);return i.name&&(n.name=i.name),xa(n,i),a.associations.set(n,{materials:A}),i.extensions&&ge(t,n,i),n})}createUniqueName(A){const a=f.PropertyBinding.sanitizeNodeName(A||"");return a in this.nodeNamesUsed?a+"_"+ ++this.nodeNamesUsed[a]:(this.nodeNamesUsed[a]=0,a)}loadGeometries(A){const a=this,e=this.extensions,t=this.primitiveCache;function i(B){return e[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(B,a).then(function(r){return Vt(r,B,a)})}const I=[];for(let B=0,r=A.length;B<r;B++){const o=A[B],n=$B(o),C=t[n];if(C)I.push(C.promise);else{let Q;Q=o.extensions&&o.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?i(o):Vt(new f.BufferGeometry,o,a),t[n]={primitive:o,promise:Q},I.push(Q)}}return Promise.all(I)}loadMesh(A){const a=this,e=this.json,t=this.extensions,i=e.meshes[A],I=i.primitives,B=[];for(let o=0,n=I.length;o<n;o++){const C=I[o].material===void 0?((r=this.cache).DefaultMaterial===void 0&&(r.DefaultMaterial=new f.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:f.FrontSide})),r.DefaultMaterial):this.getDependency("material",I[o].material);B.push(C)}var r;return B.push(a.loadGeometries(I)),Promise.all(B).then(function(o){const n=o.slice(0,o.length-1),C=o[o.length-1],Q=[];for(let s=0,c=C.length;s<c;s++){const d=C[s],b=I[s];let h;const l=n[s];if(b.mode===ba.TRIANGLES||b.mode===ba.TRIANGLE_STRIP||b.mode===ba.TRIANGLE_FAN||b.mode===void 0)h=i.isSkinnedMesh===!0?new f.SkinnedMesh(d,l):new f.Mesh(d,l),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),b.mode===ba.TRIANGLE_STRIP?h.geometry=Pt(h.geometry,f.TriangleStripDrawMode):b.mode===ba.TRIANGLE_FAN&&(h.geometry=Pt(h.geometry,f.TriangleFanDrawMode));else if(b.mode===ba.LINES)h=new f.LineSegments(d,l);else if(b.mode===ba.LINE_STRIP)h=new f.Line(d,l);else if(b.mode===ba.LINE_LOOP)h=new f.LineLoop(d,l);else{if(b.mode!==ba.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);h=new f.Points(d,l)}Object.keys(h.geometry.morphAttributes).length>0&&_B(h,i),h.name=a.createUniqueName(i.name||"mesh_"+A),xa(h,i),b.extensions&&ge(t,h,b),a.assignFinalMaterial(h),Q.push(h)}for(let s=0,c=Q.length;s<c;s++)a.associations.set(Q[s],{meshes:A,primitives:s});if(Q.length===1)return i.extensions&&ge(t,Q[0],i),Q[0];const E=new f.Group;i.extensions&&ge(t,E,i),a.associations.set(E,{meshes:A});for(let s=0,c=Q.length;s<c;s++)E.add(Q[s]);return E})}loadCamera(A){let a;const e=this.json.cameras[A],t=e[e.type];if(t)return e.type==="perspective"?a=new f.PerspectiveCamera(f.MathUtils.radToDeg(t.yfov),t.aspectRatio||1,t.znear||1,t.zfar||2e6):e.type==="orthographic"&&(a=new f.OrthographicCamera(-t.xmag,t.xmag,t.ymag,-t.ymag,t.znear,t.zfar)),e.name&&(a.name=this.createUniqueName(e.name)),xa(a,e),Promise.resolve(a);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const a=this.json.skins[A],e=[];for(let t=0,i=a.joints.length;t<i;t++)e.push(this._loadNodeShallow(a.joints[t]));return a.inverseBindMatrices!==void 0?e.push(this.getDependency("accessor",a.inverseBindMatrices)):e.push(null),Promise.all(e).then(function(t){const i=t.pop(),I=t,B=[],r=[];for(let o=0,n=I.length;o<n;o++){const C=I[o];if(C){B.push(C);const Q=new f.Matrix4;i!==null&&Q.fromArray(i.array,16*o),r.push(Q)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',a.joints[o])}return new f.Skeleton(B,r)})}loadAnimation(A){const a=this.json,e=this,t=a.animations[A],i=t.name?t.name:"animation_"+A,I=[],B=[],r=[],o=[],n=[];for(let C=0,Q=t.channels.length;C<Q;C++){const E=t.channels[C],s=t.samplers[E.sampler],c=E.target,d=c.node,b=t.parameters!==void 0?t.parameters[s.input]:s.input,h=t.parameters!==void 0?t.parameters[s.output]:s.output;c.node!==void 0&&(I.push(this.getDependency("node",d)),B.push(this.getDependency("accessor",b)),r.push(this.getDependency("accessor",h)),o.push(s),n.push(c))}return Promise.all([Promise.all(I),Promise.all(B),Promise.all(r),Promise.all(o),Promise.all(n)]).then(function(C){const Q=C[0],E=C[1],s=C[2],c=C[3],d=C[4],b=[];for(let h=0,l=Q.length;h<l;h++){const w=Q[h],k=E[h],M=s[h],N=c[h],m=d[h];if(w===void 0)continue;w.updateMatrix&&w.updateMatrix();const G=e._createAnimationTracks(w,k,M,N,m);if(G)for(let L=0;L<G.length;L++)b.push(G[L])}return new f.AnimationClip(i,void 0,b)})}createNodeMesh(A){const a=this.json,e=this,t=a.nodes[A];return t.mesh===void 0?null:e.getDependency("mesh",t.mesh).then(function(i){const I=e._getNodeRef(e.meshCache,t.mesh,i);return t.weights!==void 0&&I.traverse(function(B){if(B.isMesh)for(let r=0,o=t.weights.length;r<o;r++)B.morphTargetInfluences[r]=t.weights[r]}),I})}loadNode(A){const a=this,e=this.json.nodes[A],t=a._loadNodeShallow(A),i=[],I=e.children||[];for(let r=0,o=I.length;r<o;r++)i.push(a.getDependency("node",I[r]));const B=e.skin===void 0?Promise.resolve(null):a.getDependency("skin",e.skin);return Promise.all([t,Promise.all(i),B]).then(function(r){const o=r[0],n=r[1],C=r[2];C!==null&&o.traverse(function(Q){Q.isSkinnedMesh&&Q.bind(C,An)});for(let Q=0,E=n.length;Q<E;Q++)o.add(n[Q]);return o})}_loadNodeShallow(A){const a=this.json,e=this.extensions,t=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const i=a.nodes[A],I=i.name?t.createUniqueName(i.name):"",B=[],r=t._invokeOne(function(o){return o.createNodeMesh&&o.createNodeMesh(A)});return r&&B.push(r),i.camera!==void 0&&B.push(t.getDependency("camera",i.camera).then(function(o){return t._getNodeRef(t.cameraCache,i.camera,o)})),t._invokeAll(function(o){return o.createNodeAttachment&&o.createNodeAttachment(A)}).forEach(function(o){B.push(o)}),this.nodeCache[A]=Promise.all(B).then(function(o){let n;if(n=i.isBone===!0?new f.Bone:o.length>1?new f.Group:o.length===1?o[0]:new f.Object3D,n!==o[0])for(let C=0,Q=o.length;C<Q;C++)n.add(o[C]);if(i.name&&(n.userData.name=i.name,n.name=I),xa(n,i),i.extensions&&ge(e,n,i),i.matrix!==void 0){const C=new f.Matrix4;C.fromArray(i.matrix),n.applyMatrix4(C)}else i.translation!==void 0&&n.position.fromArray(i.translation),i.rotation!==void 0&&n.quaternion.fromArray(i.rotation),i.scale!==void 0&&n.scale.fromArray(i.scale);if(t.associations.has(n)){if(i.mesh!==void 0&&t.meshCache.refs[i.mesh]>1){const C=t.associations.get(n);t.associations.set(n,{...C})}}else t.associations.set(n,{});return t.associations.get(n).nodes=A,n}),this.nodeCache[A]}loadScene(A){const a=this.extensions,e=this.json.scenes[A],t=this,i=new f.Group;e.name&&(i.name=t.createUniqueName(e.name)),xa(i,e),e.extensions&&ge(a,i,e);const I=e.nodes||[],B=[];for(let r=0,o=I.length;r<o;r++)B.push(t.getDependency("node",I[r]));return Promise.all(B).then(function(r){for(let o=0,n=r.length;o<n;o++)i.add(r[o]);return t.associations=(o=>{const n=new Map;for(const[C,Q]of t.associations)(C instanceof f.Material||C instanceof f.Texture)&&n.set(C,Q);return o.traverse(C=>{const Q=t.associations.get(C);Q!=null&&n.set(C,Q)}),n})(i),i})}_createAnimationTracks(A,a,e,t,i){const I=[],B=A.name?A.name:A.uuid,r=[];let o;switch(Ta[i.path]===Ta.weights?A.traverse(function(Q){Q.morphTargetInfluences&&r.push(Q.name?Q.name:Q.uuid)}):r.push(B),Ta[i.path]){case Ta.weights:o=f.NumberKeyframeTrack;break;case Ta.rotation:o=f.QuaternionKeyframeTrack;break;case Ta.translation:case Ta.scale:o=f.VectorKeyframeTrack;break;default:e.itemSize===1?o=f.NumberKeyframeTrack:o=f.VectorKeyframeTrack}const n=t.interpolation!==void 0?WB[t.interpolation]:f.InterpolateLinear,C=this._getArrayFromAccessor(e);for(let Q=0,E=r.length;Q<E;Q++){const s=new o(r[Q]+"."+Ta[i.path],a.array,C,n);t.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(s),I.push(s)}return I}_getArrayFromAccessor(A){let a=A.array;if(A.normalized){const e=Qt(a.constructor),t=new Float32Array(a.length);for(let i=0,I=a.length;i<I;i++)t[i]=a[i]*e;a=t}return a}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(a){return new(this instanceof f.QuaternionKeyframeTrack?zB:AI)(this.times,this.values,this.getValueSize()/3,a)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function Vt(g,A,a){const e=A.attributes,t=[];function i(I,B){return a.getDependency("accessor",I).then(function(r){g.setAttribute(B,r)})}for(const I in e){const B=Et[I]||I.toLowerCase();B in g.attributes||t.push(i(e[I],B))}if(A.indices!==void 0&&!g.index){const I=a.getDependency("accessor",A.indices).then(function(B){g.setIndex(B)});t.push(I)}return f.ColorManagement.workingColorSpace!==f.LinearSRGBColorSpace&&"COLOR_0"in e&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${f.ColorManagement.workingColorSpace}" not supported.`),xa(g,A),function(I,B,r){const o=B.attributes,n=new f.Box3;if(o.POSITION===void 0)return;{const E=r.json.accessors[o.POSITION],s=E.min,c=E.max;if(s===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(n.set(new f.Vector3(s[0],s[1],s[2]),new f.Vector3(c[0],c[1],c[2])),E.normalized){const d=Qt(pe[E.componentType]);n.min.multiplyScalar(d),n.max.multiplyScalar(d)}}const C=B.targets;if(C!==void 0){const E=new f.Vector3,s=new f.Vector3;for(let c=0,d=C.length;c<d;c++){const b=C[c];if(b.POSITION!==void 0){const h=r.json.accessors[b.POSITION],l=h.min,w=h.max;if(l!==void 0&&w!==void 0){if(s.setX(Math.max(Math.abs(l[0]),Math.abs(w[0]))),s.setY(Math.max(Math.abs(l[1]),Math.abs(w[1]))),s.setZ(Math.max(Math.abs(l[2]),Math.abs(w[2]))),h.normalized){const k=Qt(pe[h.componentType]);s.multiplyScalar(k)}E.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}n.expandByVector(E)}I.boundingBox=n;const Q=new f.Sphere;n.getCenter(Q.center),Q.radius=n.min.distanceTo(n.max)/2,I.boundingSphere=Q}(g,A,a),Promise.all(t).then(function(){return A.targets!==void 0?function(I,B,r){let o=!1,n=!1,C=!1;for(let c=0,d=B.length;c<d;c++){const b=B[c];if(b.POSITION!==void 0&&(o=!0),b.NORMAL!==void 0&&(n=!0),b.COLOR_0!==void 0&&(C=!0),o&&n&&C)break}if(!o&&!n&&!C)return Promise.resolve(I);const Q=[],E=[],s=[];for(let c=0,d=B.length;c<d;c++){const b=B[c];if(o){const h=b.POSITION!==void 0?r.getDependency("accessor",b.POSITION):I.attributes.position;Q.push(h)}if(n){const h=b.NORMAL!==void 0?r.getDependency("accessor",b.NORMAL):I.attributes.normal;E.push(h)}if(C){const h=b.COLOR_0!==void 0?r.getDependency("accessor",b.COLOR_0):I.attributes.color;s.push(h)}}return Promise.all([Promise.all(Q),Promise.all(E),Promise.all(s)]).then(function(c){const d=c[0],b=c[1],h=c[2];return o&&(I.morphAttributes.position=d),n&&(I.morphAttributes.normal=b),C&&(I.morphAttributes.color=h),I.morphTargetsRelative=!0,I})}(g,A.targets,a):g})}const qg=new WeakMap;class aI extends f.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,a,e,t){const i=new f.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,I=>{this.parse(I,a,t)},e,t)}parse(A,a,e=()=>{}){this.decodeDracoFile(A,a,null,null,f.SRGBColorSpace,e).catch(e)}decodeDracoFile(A,a,e,t,i=f.LinearSRGBColorSpace,I=()=>{}){const B={attributeIDs:e||this.defaultAttributeIDs,attributeTypes:t||this.defaultAttributeTypes,useUniqueIDs:!!e,vertexColorSpace:i};return this.decodeGeometry(A,B).then(a).catch(I)}decodeGeometry(A,a){const e=JSON.stringify(a);if(qg.has(A)){const r=qg.get(A);if(r.key===e)return r.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let t;const i=this.workerNextTaskID++,I=A.byteLength,B=this._getWorker(i,I).then(r=>(t=r,new Promise((o,n)=>{t._callbacks[i]={resolve:o,reject:n},t.postMessage({type:"decode",id:i,taskConfig:a,buffer:A},[A])}))).then(r=>this._createGeometry(r.geometry));return B.catch(()=>!0).then(()=>{t&&i&&this._releaseTask(t,i)}),qg.set(A,{key:e,promise:B}),B}_createGeometry(A){const a=new f.BufferGeometry;A.index&&a.setIndex(new f.BufferAttribute(A.index.array,1));for(let e=0;e<A.attributes.length;e++){const t=A.attributes[e],i=t.name,I=t.array,B=t.itemSize,r=new f.BufferAttribute(I,B);i==="color"&&(this._assignVertexColorSpace(r,t.vertexColorSpace),r.normalized=!(I instanceof Float32Array)),a.setAttribute(i,r)}return a}_assignVertexColorSpace(A,a){if(a!==f.SRGBColorSpace)return;const e=new f.Color;for(let t=0,i=A.count;t<i;t++)e.fromBufferAttribute(A,t),f.ColorManagement.colorSpaceToWorking(e,f.SRGBColorSpace),A.setXYZ(t,e.r,e.g,e.b)}_loadLibrary(A,a){const e=new f.FileLoader(this.manager);return e.setPath(this.decoderPath),e.setResponseType(a),e.setWithCredentials(this.withCredentials),new Promise((t,i)=>{e.load(A,t,void 0,i)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",a=[];return A?a.push(this._loadLibrary("draco_decoder.js","text")):(a.push(this._loadLibrary("draco_wasm_wrapper.js","text")),a.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(a).then(e=>{const t=e[0];A||(this.decoderConfig.wasmBinary=e[1]);const i=en.toString(),I=["/* draco decoder */",t,"","/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join(`
19
+ `);this.workerSourceURL=URL.createObjectURL(new Blob([I]))}),this.decoderPending}_getWorker(A,a){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const t=new Worker(this.workerSourceURL);t._callbacks={},t._taskCosts={},t._taskLoad=0,t.postMessage({type:"init",decoderConfig:this.decoderConfig}),t.onmessage=function(i){const I=i.data;switch(I.type){case"decode":t._callbacks[I.id].resolve(I);break;case"error":t._callbacks[I.id].reject(I);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+I.type+'"')}},this.workerPool.push(t)}else this.workerPool.sort(function(t,i){return t._taskLoad>i._taskLoad?-1:1});const e=this.workerPool[this.workerPool.length-1];return e._taskCosts[A]=a,e._taskLoad+=a,e})}_releaseTask(A,a){A._taskLoad-=A._taskCosts[a],delete A._callbacks[a],delete A._taskCosts[a]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function en(){let g,A;function a(e,t,i,I,B,r){const o=r.num_components(),n=i.num_points()*o,C=n*B.BYTES_PER_ELEMENT,Q=function(c,d){switch(d){case Float32Array:return c.DT_FLOAT32;case Int8Array:return c.DT_INT8;case Int16Array:return c.DT_INT16;case Int32Array:return c.DT_INT32;case Uint8Array:return c.DT_UINT8;case Uint16Array:return c.DT_UINT16;case Uint32Array:return c.DT_UINT32}}(e,B),E=e._malloc(C);t.GetAttributeDataArrayForAllPoints(i,r,Q,C,E);const s=new B(e.HEAPF32.buffer,E,n).slice();return e._free(E),{name:I,array:s,itemSize:o}}onmessage=function(e){const t=e.data;switch(t.type){case"init":g=t.decoderConfig,A=new Promise(function(B){g.onModuleLoaded=function(r){B({draco:r})},DracoDecoderModule(g)});break;case"decode":const i=t.buffer,I=t.taskConfig;A.then(B=>{const r=B.draco,o=new r.Decoder;try{const n=function(Q,E,s,c){const d=c.attributeIDs,b=c.attributeTypes;let h,l;const w=E.GetEncodedGeometryType(s);if(w===Q.TRIANGULAR_MESH)h=new Q.Mesh,l=E.DecodeArrayToMesh(s,s.byteLength,h);else{if(w!==Q.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");h=new Q.PointCloud,l=E.DecodeArrayToPointCloud(s,s.byteLength,h)}if(!l.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const k={index:null,attributes:[]};for(const M in d){const N=self[b[M]];let m,G;if(c.useUniqueIDs)G=d[M],m=E.GetAttributeByUniqueId(h,G);else{if(G=E.GetAttributeId(h,Q[d[M]]),G===-1)continue;m=E.GetAttribute(h,G)}const L=a(Q,E,h,M,N,m);M==="color"&&(L.vertexColorSpace=c.vertexColorSpace),k.attributes.push(L)}return w===Q.TRIANGULAR_MESH&&(k.index=function(M,N,m){const G=m.num_faces(),L=3*G,x=4*L,W=M._malloc(x);N.GetTrianglesUInt32Array(m,x,W);const X=new Uint32Array(M.HEAPF32.buffer,W,L).slice();return M._free(W),{array:X,itemSize:1}}(Q,E,h)),Q.destroy(h),k}(r,o,new Int8Array(i),I),C=n.attributes.map(Q=>Q.array.buffer);n.index&&C.push(n.index.array.buffer),self.postMessage({type:"decode",id:t.id,geometry:n},C)}catch(n){console.error(n),self.postMessage({type:"error",id:t.id,error:n.message})}finally{r.destroy(o)}})}}}class gn{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const a=this.workerCreator();a.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=a}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,a){const e=this.workersResolve[A];if(e&&e(a),this.queue.length){const{resolve:t,msg:i,transfer:I}=this.queue.shift();this.workersResolve[A]=t,this.workers[A].postMessage(i,I)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,a){return new Promise(e=>{const t=this._getIdleWorker();t!==-1?(this._initWorker(t),this.workerStatus|=1<<t,this.workersResolve[t]=e,this.workers[t].postMessage(A,a)):this.queue.push({resolve:e,msg:A,transfer:a})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const eI=9,gI=15,tI=16,iI=22,II=37,BI=43,nI=76,rI=83,oI=97,CI=100,EI=103,QI=109,tn=131,In=132,Bn=133,nn=134,rn=137,on=138,Cn=141,En=142,Qn=145,sn=146,sI=148,cI=152,cn=157,hn=158,hI=165,dI=166,Ft=1000066e3;class dn{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class ve{constructor(A,a,e,t){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+a,e),this._littleEndian=t,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const a=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,a}_skip(A){return this._offset+=A,this}_scan(A,a){a===void 0&&(a=0);const e=this._offset;let t=0;for(;this._dataView.getUint8(this._offset)!==a&&t<A;)t++,this._offset++;return t<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+e,t)}}const ga=[171,75,84,88,32,50,48,187,13,10,26,10];function Xt(g){return new TextDecoder().decode(g)}let Tg,Ua,st;const Og={env:{emscripten_notify_memory_growth:function(g){st=new Uint8Array(Ua.exports.memory.buffer)}}};class bn{init(){return Tg||(Tg=typeof fetch<"u"?fetch("data:application/wasm;base64,"+Zt).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,Og)).then(this._init):WebAssembly.instantiate(Buffer.from(Zt,"base64"),Og).then(this._init),Tg)}_init(A){Ua=A.instance,Og.env.emscripten_notify_memory_growth(0)}decode(A,a=0){if(!Ua)throw new Error("ZSTDDecoder: Await .init() before decoding.");const e=A.byteLength,t=Ua.exports.malloc(e);st.set(A,t),a=a||Number(Ua.exports.ZSTD_findDecompressedSize(t,e));const i=Ua.exports.malloc(a),I=Ua.exports.ZSTD_decompress(i,a,t,e),B=st.slice(i,i+I);return Ua.exports.free(t),Ua.exports.free(i),B}}const Zt="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",Pg=new WeakMap;let zg,Wg=0;class ca extends f.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new gn,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bptc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new f.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const a=A.loadAsync("basis_transcoder.js"),e=new f.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setResponseType("arraybuffer"),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([a,t]).then(([i,I])=>{const B=ca.BasisWorker.toString(),r=["/* constants */","let _EngineFormat = "+JSON.stringify(ca.EngineFormat),"let _EngineType = "+JSON.stringify(ca.EngineType),"let _TranscoderFormat = "+JSON.stringify(ca.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(ca.BasisFormat),"/* basis_transcoder.js */",i,"/* worker */",B.substring(B.indexOf("{")+1,B.lastIndexOf("}"))].join(`
20
+ `);this.workerSourceURL=URL.createObjectURL(new Blob([r])),this.transcoderBinary=I,this.workerPool.setWorkerCreator(()=>{const o=new Worker(this.workerSourceURL),n=this.transcoderBinary.slice(0);return o.postMessage({type:"init",config:this.workerConfig,transcoderBinary:n},[n]),o})}),Wg>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Wg++}return this.transcoderPending}load(A,a,e,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new f.FileLoader(this.manager);i.setPath(this.path),i.setCrossOrigin(this.crossOrigin),i.setWithCredentials(this.withCredentials),i.setResponseType("arraybuffer"),i.load(A,I=>{this.parse(I,a,t)},e,t)}parse(A,a,e){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(Pg.has(A))return Pg.get(A).promise.then(a).catch(e);this._createTexture(A).then(t=>a?a(t):null).catch(e)}_createTextureFrom(A,a){const{type:e,error:t,data:{faces:i,width:I,height:B,format:r,type:o,dfdFlags:n}}=A;if(e==="error")return Promise.reject(t);let C;if(a.faceCount===6)C=new f.CompressedCubeTexture(i,r,o);else{const Q=i[0].mipmaps;C=a.layerCount>1?new f.CompressedArrayTexture(Q,I,B,a.layerCount,r,o):new f.CompressedTexture(Q,I,B,r,o)}return C.minFilter=i[0].mipmaps.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,C.magFilter=f.LinearFilter,C.generateMipmaps=!1,C.needsUpdate=!0,C.colorSpace=_t(a),C.premultiplyAlpha=!!(1&n),C}async _createTexture(A,a={}){const e=function(B){const r=new Uint8Array(B.buffer,B.byteOffset,ga.length);if(r[0]!==ga[0]||r[1]!==ga[1]||r[2]!==ga[2]||r[3]!==ga[3]||r[4]!==ga[4]||r[5]!==ga[5]||r[6]!==ga[6]||r[7]!==ga[7]||r[8]!==ga[8]||r[9]!==ga[9]||r[10]!==ga[10]||r[11]!==ga[11])throw new Error("Missing KTX 2.0 identifier.");const o=new dn,n=17*Uint32Array.BYTES_PER_ELEMENT,C=new ve(B,ga.length,n,!0);o.vkFormat=C._nextUint32(),o.typeSize=C._nextUint32(),o.pixelWidth=C._nextUint32(),o.pixelHeight=C._nextUint32(),o.pixelDepth=C._nextUint32(),o.layerCount=C._nextUint32(),o.faceCount=C._nextUint32();const Q=C._nextUint32();o.supercompressionScheme=C._nextUint32();const E=C._nextUint32(),s=C._nextUint32(),c=C._nextUint32(),d=C._nextUint32(),b=C._nextUint64(),h=C._nextUint64(),l=new ve(B,ga.length+n,3*Q*8,!0);for(let BA=0;BA<Q;BA++)o.levels.push({levelData:new Uint8Array(B.buffer,B.byteOffset+l._nextUint64(),l._nextUint64()),uncompressedByteLength:l._nextUint64()});const w=new ve(B,E,s,!0),k={vendorId:w._skip(4)._nextUint16(),descriptorType:w._nextUint16(),versionNumber:w._nextUint16(),descriptorBlockSize:w._nextUint16(),colorModel:w._nextUint8(),colorPrimaries:w._nextUint8(),transferFunction:w._nextUint8(),flags:w._nextUint8(),texelBlockDimension:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],bytesPlane:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],samples:[]},M=(k.descriptorBlockSize/4-6)/4;for(let BA=0;BA<M;BA++){const CA={bitOffset:w._nextUint16(),bitLength:w._nextUint8(),channelType:w._nextUint8(),samplePosition:[w._nextUint8(),w._nextUint8(),w._nextUint8(),w._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&CA.channelType?(CA.sampleLower=w._nextInt32(),CA.sampleUpper=w._nextInt32()):(CA.sampleLower=w._nextUint32(),CA.sampleUpper=w._nextUint32()),k.samples[BA]=CA}o.dataFormatDescriptor.length=0,o.dataFormatDescriptor.push(k);const N=new ve(B,c,d,!0);for(;N._offset<d;){const BA=N._nextUint32(),CA=N._scan(BA),uA=Xt(CA);if(o.keyValue[uA]=N._nextUint8Array(BA-CA.byteLength-1),uA.match(/^ktx/i)){const yA=Xt(o.keyValue[uA]);o.keyValue[uA]=yA.substring(0,yA.lastIndexOf("\0"))}N._skip(BA%4?4-BA%4:0)}if(h<=0)return o;const m=new ve(B,b,h,!0),G=m._nextUint16(),L=m._nextUint16(),x=m._nextUint32(),W=m._nextUint32(),X=m._nextUint32(),eA=m._nextUint32(),AA=[];for(let BA=0;BA<Q;BA++)AA.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});const Z=b+m._offset,nA=Z+x,bA=nA+W,cA=bA+X,pA=new Uint8Array(B.buffer,B.byteOffset+Z,x),fA=new Uint8Array(B.buffer,B.byteOffset+nA,W),oA=new Uint8Array(B.buffer,B.byteOffset+bA,X),MA=new Uint8Array(B.buffer,B.byteOffset+cA,eA);return o.globalData={endpointCount:G,selectorCount:L,imageDescs:AA,endpointsData:pA,selectorsData:fA,tablesData:oA,extendedData:MA},o}(new Uint8Array(A)),t=e.vkFormat===Ft&&e.dataFormatDescriptor[0].colorModel===167;if(!(e.vkFormat===0||t&&!this.workerConfig.astcHDRSupported))return async function(B){const{vkFormat:r}=B;if(Vg[r]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let o;B.supercompressionScheme===2&&(zg||(zg=new Promise(async Q=>{const E=new bn;await E.init(),Q(E)})),o=await zg);const n=[];for(let Q=0;Q<B.levels.length;Q++){const E=Math.max(1,B.pixelWidth>>Q),s=Math.max(1,B.pixelHeight>>Q),c=B.pixelDepth?Math.max(1,B.pixelDepth>>Q):0,d=B.levels[Q];let b,h;if(B.supercompressionScheme===0)b=d.levelData;else{if(B.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");b=o.decode(d.levelData,d.uncompressedByteLength)}h=Xg[r]===f.FloatType?new Float32Array(b.buffer,b.byteOffset,b.byteLength/Float32Array.BYTES_PER_ELEMENT):Xg[r]===f.HalfFloatType?new Uint16Array(b.buffer,b.byteOffset,b.byteLength/Uint16Array.BYTES_PER_ELEMENT):b,n.push({data:h,width:E,height:s,depth:c})}let C;if(un.has(Vg[r]))C=B.pixelDepth===0?new f.DataTexture(n[0].data,B.pixelWidth,B.pixelHeight):new f.Data3DTexture(n[0].data,B.pixelWidth,B.pixelHeight,B.pixelDepth);else{if(B.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");C=new f.CompressedTexture(n,B.pixelWidth,B.pixelHeight),C.minFilter=n.length===1?f.LinearFilter:f.LinearMipmapLinearFilter,C.magFilter=f.LinearFilter}return C.mipmaps=n,C.type=Xg[r],C.format=Vg[r],C.colorSpace=_t(B),C.needsUpdate=!0,Promise.resolve(C)}(e);const i=a,I=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:i},[A])).then(B=>this._createTextureFrom(B.data,e));return Pg.set(A,{promise:I}),I}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Wg--}}ca.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},ca.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},ca.EngineFormat={RGBAFormat:f.RGBAFormat,RGBA_ASTC_4x4_Format:f.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:f.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:f.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:f.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:f.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:f.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:f.RGB_ETC1_Format,RGB_ETC2_Format:f.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:f.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:f.RGBA_S3TC_DXT1_Format},ca.EngineType={UnsignedByteType:f.UnsignedByteType,HalfFloatType:f.HalfFloatType,FloatType:f.FloatType},ca.BasisWorker=function(){let g,A,a;const e=_EngineFormat,t=_EngineType,i=_TranscoderFormat,I=_BasisFormat;self.addEventListener("message",function(C){const Q=C.data;switch(Q.type){case"init":g=Q.config,E=Q.transcoderBinary,A=new Promise(s=>{a={wasmBinary:E,onRuntimeInitialized:s},BASIS(a)}).then(()=>{a.initializeBasis(),a.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:s,buffers:c,width:d,height:b,hasAlpha:h,format:l,type:w,dfdFlags:k}=function(M){const N=new a.KTX2File(new Uint8Array(M));function m(){N.close(),N.delete()}if(!N.isValid())throw m(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let G;if(N.isUASTC())G=I.UASTC;else if(N.isETC1S())G=I.ETC1S;else{if(!N.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");G=I.UASTC_HDR}const L=N.getWidth(),x=N.getHeight(),W=N.getLayers()||1,X=N.getLevels(),eA=N.getFaces(),AA=N.getHasAlpha(),Z=N.getDFDFlags(),{transcoderFormat:nA,engineFormat:bA,engineType:cA}=function(oA,MA,BA,CA){const uA=r[oA];for(let yA=0;yA<uA.length;yA++){const FA=uA[yA];if(!(FA.if&&!g[FA.if])&&FA.basisFormat.includes(oA)&&!(CA&&FA.transcoderFormat.length<2)&&!(FA.needsPowerOfTwo&&(!o(MA)||!o(BA))))return{transcoderFormat:FA.transcoderFormat[CA?1:0],engineFormat:FA.engineFormat[CA?1:0],engineType:FA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(G,L,x,AA);if(!L||!x||!X)throw m(),new Error("THREE.KTX2Loader: Invalid texture");if(!N.startTranscoding())throw m(),new Error("THREE.KTX2Loader: .startTranscoding failed");const pA=[],fA=[];for(let oA=0;oA<eA;oA++){const MA=[];for(let BA=0;BA<X;BA++){const CA=[];let uA,yA;for(let NA=0;NA<W;NA++){const WA=N.getImageLevelInfo(BA,NA,oA);oA!==0||BA!==0||NA!==0||WA.origWidth%4==0&&WA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),X>1?(uA=WA.origWidth,yA=WA.origHeight):(uA=WA.width,yA=WA.height);let VA=new Uint8Array(N.getImageTranscodedSizeInBytes(BA,NA,0,nA));const ra=N.transcodeImage(VA,BA,NA,oA,nA,0,-1,-1);if(cA===t.HalfFloatType&&(VA=new Uint16Array(VA.buffer,VA.byteOffset,VA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!ra)throw m(),new Error("THREE.KTX2Loader: .transcodeImage failed.");CA.push(VA)}const FA=n(CA);MA.push({data:FA,width:uA,height:yA}),fA.push(FA.buffer)}pA.push({mipmaps:MA,width:L,height:x,format:bA,type:cA})}return m(),{faces:pA,buffers:fA,width:L,height:x,hasAlpha:AA,dfdFlags:Z,format:bA,type:cA}}(Q.buffer);self.postMessage({type:"transcode",id:Q.id,data:{faces:s,width:d,height:b,hasAlpha:h,format:l,type:w,dfdFlags:k}},c)}catch(s){console.error(s),self.postMessage({type:"error",id:Q.id,error:s.message})}})}var E});const B=[{if:"astcSupported",basisFormat:[I.UASTC],transcoderFormat:[i.ASTC_4x4,i.ASTC_4x4],engineFormat:[e.RGBA_ASTC_4x4_Format,e.RGBA_ASTC_4x4_Format],engineType:[t.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.BC7_M5,i.BC7_M5],engineFormat:[e.RGBA_BPTC_Format,e.RGBA_BPTC_Format],engineType:[t.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.BC1,i.BC3],engineFormat:[e.RGBA_S3TC_DXT1_Format,e.RGBA_S3TC_DXT5_Format],engineType:[t.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.ETC1,i.ETC2],engineFormat:[e.RGB_ETC2_Format,e.RGBA_ETC2_EAC_Format],engineType:[t.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.ETC1],engineFormat:[e.RGB_ETC1_Format],engineType:[t.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.PVRTC1_4_RGB,i.PVRTC1_4_RGBA],engineFormat:[e.RGB_PVRTC_4BPPV1_Format,e.RGBA_PVRTC_4BPPV1_Format],engineType:[t.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[I.UASTC_HDR],transcoderFormat:[i.BC6H],engineFormat:[e.RGB_BPTC_UNSIGNED_Format],engineType:[t.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[I.ETC1S,I.UASTC],transcoderFormat:[i.RGBA32,i.RGBA32],engineFormat:[e.RGBAFormat,e.RGBAFormat],engineType:[t.UnsignedByteType,t.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[I.UASTC_HDR],transcoderFormat:[i.RGBA_HALF],engineFormat:[e.RGBAFormat],engineType:[t.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],r={[I.ETC1S]:B.filter(C=>C.basisFormat.includes(I.ETC1S)).sort((C,Q)=>C.priorityUASTC-Q.priorityUASTC),[I.UASTC]:B.filter(C=>C.basisFormat.includes(I.UASTC)).sort((C,Q)=>C.priorityUASTC-Q.priorityUASTC),[I.UASTC_HDR]:B.filter(C=>C.basisFormat.includes(I.UASTC_HDR)).sort((C,Q)=>C.priorityHDR-Q.priorityHDR)};function o(C){return C<=2||!(C&C-1)&&C!==0}function n(C){if(C.length===1)return C[0];let Q=0;for(let c=0;c<C.length;c++)Q+=C[c].byteLength;const E=new Uint8Array(Q);let s=0;for(let c=0;c<C.length;c++){const d=C[c];E.set(d,s),s+=d.byteLength}return E}};const un=new Set([f.RGBAFormat,f.RGFormat,f.RedFormat]),Vg={[QI]:f.RGBAFormat,[oI]:f.RGBAFormat,[II]:f.RGBAFormat,[BI]:f.RGBAFormat,[EI]:f.RGFormat,[rI]:f.RGFormat,[tI]:f.RGFormat,[iI]:f.RGFormat,[CI]:f.RedFormat,[nI]:f.RedFormat,[gI]:f.RedFormat,[eI]:f.RedFormat,[sI]:f.RGB_ETC2_Format,[cI]:f.RGBA_ETC2_EAC_Format,[Ft]:f.RGBA_ASTC_4x4_Format,[hn]:f.RGBA_ASTC_4x4_Format,[cn]:f.RGBA_ASTC_4x4_Format,[dI]:f.RGBA_ASTC_6x6_Format,[hI]:f.RGBA_ASTC_6x6_Format,[Bn]:f.RGBA_S3TC_DXT1_Format,[nn]:f.RGBA_S3TC_DXT1_Format,[tn]:f.RGB_S3TC_DXT1_Format,[In]:f.RGB_S3TC_DXT1_Format,[on]:f.RGBA_S3TC_DXT3_Format,[rn]:f.RGBA_S3TC_DXT3_Format,[En]:f.RGBA_S3TC_DXT5_Format,[Cn]:f.RGBA_S3TC_DXT5_Format,[sn]:f.RGBA_BPTC_Format,[Qn]:f.RGBA_BPTC_Format},Xg={[QI]:f.FloatType,[oI]:f.HalfFloatType,[II]:f.UnsignedByteType,[BI]:f.UnsignedByteType,[EI]:f.FloatType,[rI]:f.HalfFloatType,[tI]:f.UnsignedByteType,[iI]:f.UnsignedByteType,[CI]:f.FloatType,[nI]:f.HalfFloatType,[gI]:f.UnsignedByteType,[eI]:f.UnsignedByteType,[sI]:f.UnsignedByteType,[cI]:f.UnsignedByteType,[Ft]:f.HalfFloatType,[dI]:f.UnsignedByteType,[hI]:f.UnsignedByteType};function _t(g){const A=g.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?f.SRGBColorSpace:f.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),f.NoColorSpace)}async function $t(g){const A=g.split("?")[0].split(".").pop(),a=await fetch(g);if(!a.ok)throw new Error(`Failed to fetch ${g}: ${a.statusText}`);if(A==="json"){const e=await a.json();return handleJSONSubtree(e,Ai(g))}if(A==="subtree")return async function(e,t){const i=new DataView(e),I=i.getBigUint64(8,!0),B=i.getBigUint64(16,!0),r=24,o=r+Number(I),n=o+(8-o%8)%8,C=n+Number(B),Q=e.slice(r,o),E=new TextDecoder().decode(Q).trim(),s=JSON.parse(E);if(!s.buffers)throw new Error("subtree has no buffers");const c=s.buffers.map(async b=>{if(b.uri){const h=new URL(b.uri,t).href,l=await fetch(h);if(!l.ok)throw new Error(`Failed to fetch binary file ${h}: ${l.statusText}`);return new Uint8Array(await l.arrayBuffer())}return new Uint8Array(e.slice(n,C))}),d=await Promise.all(c);return function(b,h){function l(m,G){if(!m)throw new Error("incomplete json subtree");if(m.constant){if(m.constant==0)return!1;if(m.constant==1)return!0}if(m.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!b.bufferViews||!b.bufferViews[m.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const L=b.bufferViews[m.bitstream];return w(h[L.buffer],L.byteOffset,G)}function w(m,G,L){const x=L%8;return m[G+Math.floor(L/8)]>>x&!0}function k(m){let G=0;return G=m.z==null?Zg(m.x,m.y,m.level):$g(m.x,m.y,m.z,m.level),l(b.tileAvailability,G)}function M(m){let G=0;G=m.z==null?Zg(m.x,m.y,m.level):$g(m.x,m.y,m.z,m.level);const L=[];return b.contentAvailability.forEach(x=>{L.push(l(x,G))}),L}function N(m){let G=0;return G=m.z==null?Zg(m.x,m.y):$g(m.x,m.y,m.z),l(b.childSubtreeAvailability,G)}return{isTileAvailable:k,isContentAvailable:M,isChildSubtreeAvailable:N}}(s,d)}(await a.arrayBuffer(),Ai(g));throw new Error(`Unsupported file extension: ${A}`)}function Ai(g){const A=g.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function ai(g){return g=1431655765&((g=858993459&((g=252645135&((g=16711935&((g&=65535)^g<<8))^g<<4))^g<<2))^g<<1)}function Zg(g,A,a){let e=0;return a&&(e=(Math.pow(4,a)-1)/3),e+(ai(g)|ai(A)<<1)}function _g(g){return g=153391689&((g=51130563&((g=50393103&((g=4278190335&((g&=1023)^g<<16))^g<<8))^g<<4))^g<<2)}function $g(g,A,a,e){let t=0;return e&&(t=(Math.pow(8,e)-1)/7),t+(_g(g)|_g(A)<<1|_g(a)<<2)}const He=new Map;async function mt(g,A){if(!g.root||!g.root.implicitTiling)return g;if(!g.root.content&&!g.root.contents)throw new Error("implicit tiling requires a Template URI");let a=!0;g.root.implicitTiling.subdivisionScheme&&(a=g.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let e="";g.root.implicitTiling.subtrees&&(g.root.implicitTiling.subtrees.uri?e=g.root.implicitTiling.subtrees.uri:g.root.implicitTiling.subtrees.url&&(e=g.root.implicitTiling.subtrees.url));let t=[];g.root.content?g.root.content.uri?t.push(g.root.content.uri):g.root.content.url&&t.push(g.root.content.url):g.root.contents&&g.root.contents.forEach(E=>{E.uri?t.push(E.uri):E.url&&t.push(E.url)});const i=function(E){const s=E.split("?")[0];return s.substring(0,s.lastIndexOf("/")+1)}(A);let I;a&&(I=e.replace("{level}",0).replace("{x}",0).replace("{y}",0)),a||(I=e.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const B={level:0,x:0,y:0},r={level:0,x:0,y:0};a||(B.z=0,r.z=0),He.set(I,await $t(i+I));const o=He.get(I),n=[];o.isContentAvailable(r)&&t.forEach(E=>{let s;a&&(s=E.replace("{level}",B.level).replace("{x}",B.x).replace("{y}",B.y)),a||(s=E.replace("{level}",B.level).replace("{x}",B.x).replace("{y}",B.y).replace("{z}",B.z)),n.push({uri:s})});const C={geometricError:g.root.geometricError,boundingVolume:g.root.boundingVolume,refine:g.root.refine,globalAddress:B,localAddress:r,subtree:o,contents:n,getChildren:async()=>Q(C)};return{root:C};async function Q(E){const s=[];if(E.localAddress.level==g.root.implicitTiling.availableLevels-1)return s;if((E.localAddress.level+1)%g.root.implicitTiling.subtreeLevels==0){const c=eg(E.localAddress),d=eg(E.globalAddress),b=ei(a,g.root.boundingVolume,d);for(let h=0;h<c.length;h++){const l=c[h],w=d[h];E.subtree.isChildSubtreeAvailable(l)&&(a&&e.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y),a||e.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),He.has(I)||He.set(I,await $t(i+I));const k=He.get(I),M={level:0,x:0,y:0};a||(M.z=0);const N=[];k.isContentAvailable(M)&&t.forEach(G=>{let L;a&&(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y)),a||(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),N.push({uri:L})});const m={geometricError:E.geometricError/2,boundingVolume:b[h],refine:g.root.refine,globalAddress:w,localAddress:M,subtree:k,contents:N,getChildren:async()=>Q(m)};s.push(m)}}else{const c=eg(E.localAddress),d=eg(E.globalAddress),b=ei(a,g.root.boundingVolume,d);for(let h=0;h<c.length;h++){const l=c[h],w=d[h];if(!E.subtree.isTileAvailable(l))continue;const k=[],M=E.subtree.isContentAvailable(l);for(let m=0;m<t.length;m++){if(!M[m])continue;const G=t[m];let L;a&&(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y)),a||(L=G.replace("{level}",w.level).replace("{x}",w.x).replace("{y}",w.y).replace("{z}",w.z)),k.push({uri:L})}const N={geometricError:E.geometricError/2,boundingVolume:b[h],refine:g.root.refine,globalAddress:w,localAddress:l,subtree:E.subtree,contents:k,getChildren:async()=>Q(N)};s.push(N)}}return s.length>0?s:void 0}}function eg(g){const{level:A,x:a,y:e,z:t}=g,i=A+1;let I=[];return I=t===void 0?[{level:i,x:2*a,y:2*e},{level:i,x:2*a+1,y:2*e},{level:i,x:2*a,y:2*e+1},{level:i,x:2*a+1,y:2*e+1}]:[{level:i,x:2*a,y:2*e,z:2*t},{level:i,x:2*a+1,y:2*e,z:2*t},{level:i,x:2*a,y:2*e+1,z:2*t},{level:i,x:2*a+1,y:2*e+1,z:2*t},{level:i,x:2*a,y:2*e,z:2*t+1},{level:i,x:2*a+1,y:2*e,z:2*t+1},{level:i,x:2*a,y:2*e+1,z:2*t+1},{level:i,x:2*a+1,y:2*e+1,z:2*t+1}],I}function ei(g,A,a){const e=[];for(let t=0;t<a.length;t++)e.push(ln(g,A,a[t]));return e}function ln(g,A,a){if(A.region)return function(e,t,i){const[I,B,r,o,n,C]=t,Q=(r-I)/2**i.level,E=(o-B)/2**i.level,s=e?0:(C-n)/2**i.level,c=I+Q*i.x,d=B+E*i.y,b=c+Q,h=d+E,l=e?n:n+s*i.z,w=e?C:l+s;return{region:[c,d,b,h,l,w]}}(g,A.region,a);if(A.box)return function(e,t,i){const I=t.slice(0,3),B=[t.slice(3,6),t.slice(6,9),t.slice(9,12)],r=1/Math.pow(2,i.level),o=[r,r,e?1:r],n=B.map((E,s)=>E.map(c=>c*o[s])),C=[I[0]-B[0][0]-B[1][0]-B[2][0],I[1]-B[0][1]-B[1][1]-B[2][1],I[2]-B[0][2]-B[1][2]-B[2][2]];return{box:[C[0]+(2*i.x+1)*(n[0][0]+n[1][0]+n[2][0]),C[1]+(2*i.y+1)*(n[0][1]+n[1][1]+n[2][1]),e?I[2]:C[2]+(2*i.z+1)*(n[0][2]+n[1][2]+n[2][2])].concat(...n)}}(g,A.box,a);throw new Error("Unsupported bounding volume type")}(function(){var g,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function a(r){if(!r)throw new Error("Assertion failed")}function e(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function t(r,o,n,C,Q,E,s){var c=g.exports.sbrk,d=c(o),b=c(C*Q),h=new Uint8Array(g.exports.memory.buffer);h.set(e(n),b);var l=r(d,o,b,C,Q,E,s),w=new Uint8Array(l);return w.set(h.subarray(d,d+l)),c(d-c(0)),w}function i(r){for(var o=0,n=0;n<r.length;++n)var C=r[n];return o}function I(r,o){if(a(o==2||o==4),o==4)return new Uint32Array(r.buffer,r.byteOffset,r.byteLength/4);var n=new Uint16Array(r.buffer,r.byteOffset,r.byteLength/2);return new Uint32Array(n)}function B(r,o,n,C,Q,E,s){var c=g.exports.sbrk,d=c(n*C),b=c(n*E),h=new Uint8Array(g.exports.memory.buffer);h.set(e(o),b),r(d,n,C,Q,b,s);var l=new Uint8Array(n*C);return l.set(h.subarray(d,d+n*C)),c(d-c(0)),l}WebAssembly.instantiate(function(r){for(var o=new Uint8Array(r.length),n=0;n<r.length;++n){var C=r.charCodeAt(n);o[n]=C>96?C-97:C>64?C-39:C+4}var Q=0;for(n=0;n<r.length;++n)o[Q++]=o[n]<60?A[o[n]]:64*(o[n]-60)+o[++n];return o.buffer.slice(0,Q)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(r){(g=r.instance).exports.__wasm_call_ctors(),g.exports.meshopt_encodeVertexVersion(0),g.exports.meshopt_encodeIndexVersion(1)})})();var bI=function(){var g=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a,e=WebAssembly.validate(g)?i("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):i("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),t=WebAssembly.instantiate(e,{}).then(function(E){(a=E.instance).exports.__wasm_call_ctors()});function i(E){for(var s=new Uint8Array(E.length),c=0;c<E.length;++c){var d=E.charCodeAt(c);s[c]=d>96?d-97:d>64?d-39:d+4}var b=0;for(c=0;c<E.length;++c)s[b++]=s[c]<60?A[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,b)}function I(E,s,c,d,b,h,l){var w=E.exports.sbrk,k=d+3&-4,M=w(k*b),N=w(h.length),m=new Uint8Array(E.exports.memory.buffer);m.set(h,N);var G=s(M,d,b,N,h.length);if(G==0&&l&&l(M,k,b),c.set(m.subarray(M,M+d*b)),w(M-w(0)),G!=0)throw new Error("Malformed buffer data: "+G)}var B={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},r={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},o=[],n=0;function C(E){var s={object:new Worker(E),pending:0,requests:{}};return s.object.onmessage=function(c){var d=c.data;s.pending-=d.count,s.requests[d.id][d.action](d.value),delete s.requests[d.id]},s}function Q(E){var s=E.data;if(!s.id)return self.close();self.ready.then(function(c){try{var d=new Uint8Array(s.count*s.size);I(c,c.exports[s.mode],d,s.count,s.size,s.source,c.exports[s.filter]),self.postMessage({id:s.id,count:s.count,action:"resolve",value:d},[d.buffer])}catch(b){self.postMessage({id:s.id,count:s.count,action:"reject",value:b})}})}return{ready:t,supported:!0,useWorkers:function(E){(function(s){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+Q.name+";"+I.toString()+Q.toString(),d=new Blob([c],{type:"text/javascript"}),b=URL.createObjectURL(d),h=o.length;h<s;++h)o[h]=C(b);for(h=s;h<o.length;++h)o[h].object.postMessage({});o.length=s,URL.revokeObjectURL(b)})(E)},decodeVertexBuffer:function(E,s,c,d,b){I(a,a.exports.meshopt_decodeVertexBuffer,E,s,c,d,a.exports[B[b]])},decodeIndexBuffer:function(E,s,c,d){I(a,a.exports.meshopt_decodeIndexBuffer,E,s,c,d)},decodeIndexSequence:function(E,s,c,d){I(a,a.exports.meshopt_decodeIndexSequence,E,s,c,d)},decodeGltfBuffer:function(E,s,c,d,b,h){I(a,a.exports[r[b]],E,s,c,d,a.exports[B[h]])},decodeGltfBufferAsync:function(E,s,c,d,b){return o.length>0?function(h,l,w,k,M){for(var N=o[0],m=1;m<o.length;++m)o[m].pending<N.pending&&(N=o[m]);return new Promise(function(G,L){var x=new Uint8Array(w),W=++n;N.pending+=h,N.requests[W]={resolve:G,reject:L},N.object.postMessage({id:W,count:h,size:l,source:x,mode:k,filter:M},[x.buffer])})}(E,s,c,r[d],B[b]):t.then(function(){var h=new Uint8Array(E*s);return I(a,a.exports[r[d]],h,E,s,c,a.exports[B[b]]),h})}}}();(function(){var g,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(B){for(var r=new Uint8Array(B.length),o=0;o<B.length;++o){var n=B.charCodeAt(o);r[o]=n>96?n-97:n>64?n-39:n+4}var C=0;for(o=0;o<B.length;++o)r[C++]=r[o]<60?A[r[o]]:64*(r[o]-60)+r[++o];return r.buffer.slice(0,C)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(B){(g=B.instance).exports.__wasm_call_ctors()});function e(B){if(!B)throw new Error("Assertion failed")}function t(B){return new Uint8Array(B.buffer,B.byteOffset,B.byteLength)}function i(B,r,o,n,C,Q,E,s){var c=g.exports.sbrk,d=c(4*s),b=c(o*n),h=c(o*Q),l=new Uint8Array(g.exports.memory.buffer);l.set(t(r),b),C&&l.set(t(C),h);var w=B(d,b,o,n,h,Q,E,s);new Uint8Array(g.exports.memory.buffer);var k=new Uint32Array(w);return t(k).set(l.subarray(d,d+4*w)),c(d-c(0)),k}var I={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var g,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var a=WebAssembly.instantiate(function(I){for(var B=new Uint8Array(I.length),r=0;r<I.length;++r){var o=I.charCodeAt(r);B[r]=o>96?o-97:o>64?o-39:o+4}var n=0;for(r=0;r<I.length;++r)B[n++]=B[r]<60?A[B[r]]:64*(B[r]-60)+B[++r];return B.buffer.slice(0,n)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(I){(g=I.instance).exports.__wasm_call_ctors()});function e(I){if(!I)throw new Error("Assertion failed")}function t(I){return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}function i(I){var B=new Float32Array(g.exports.memory.buffer,I,12);return{centerX:B[0],centerY:B[1],centerZ:B[2],radius:B[3],coneApexX:B[4],coneApexY:B[5],coneApexZ:B[6],coneAxisX:B[7],coneAxisY:B[8],coneAxisZ:B[9],coneCutoff:B[10]}}}();let te=0;class uI{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new z.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new _i,this.gltfLoader.register(a=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const a=new aI;a.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=a,this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const a=new ca;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=a,this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(bI),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new Zi(this.gltfLoader),this.splatsDecoder=new lB(this.gltfLoader,this.renderer),this.cache=new Vi,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;te<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(this.concurrentDownloads<this.downloadParallelism)}_meshReceived(A,a,e,t,i,I,B){this.ready.unshift([A,a,e,t,i,I,B])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const a=A[0],e=A[1],t=A[2],i=a.get(t);i&&e[t]&&Object.keys(e[t]).forEach(I=>{const B=e[t][I];B&&(a.put(t,B(i)),e[t][I]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,a=-1;for(let B=this.downloads.length-1;B>=0;B--)this.downloads[B].shouldDoDownload()?this.downloads[B].distanceFunction||this.nextDownloads.push(this.downloads.splice(B,1)[0]):this.downloads.splice(B,1);if(this.nextDownloads.length>0)return;let e,t=0,i=Number.MAX_SAFE_INTEGER,I=-1;for(let B=this.downloads.length-1;B>=0;B--){const r=this.downloads[B].distanceFunction();r<=A&&(A=r,a=B),t=Math.max(this.downloads[B].level),this.downloads[B].loadingStrategy!="IMMEDIATE"&&this.downloads[B].level<i&&(i=this.downloads[B].level,I=B)}if(t>i+4?e=this.downloads.splice(I,1).pop():a>=0&&(e=this.downloads.splice(a,1).pop()),e){this.nextDownloads.push(e);const B=e.getSiblings();for(let r=this.downloads.length-1;r>=0;r--)B.map(o=>o.uuid).includes(this.downloads[r].uuid)&&this.nextDownloads.push(this.downloads.splice(r,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,a=-1;for(let e=this.ready.length-1;e>=0;e--)this.ready[e][3]||this.nextReady.push(this.ready.splice(e,1)[0]);if(!(this.nextReady.length>0)){for(let e=this.ready.length-1;e>=0;e--){const t=this.ready[e][3]()*this.ready[e][5];t<=A&&(A=t,a=e)}if(a>=0){const e=this.ready.splice(a,1).pop();this.nextReady.push(e);const t=e[4]();for(let i=this.ready.length-1;i>=0;i--)t.map(I=>I.uuid).includes(this.ready[i][6])&&this.nextReady.push(this.ready.splice(i,1).pop())}}}get(A,a,e,t,i,I,B,r,o,n,C,Q){const E=this,s=gi(e),c=new AbortController;if(A.signal.addEventListener("abort",()=>{E.register[s]&&Object.keys(E.register[s]).length!=0||c.abort("user abort")}),!(e.includes(".b3dm")||e.includes(".json")||e.includes(".gltf")||e.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(E.register[s]||(E.register[s]={}),E.register[s][a]&&console.error(" a tile should only be loaded once"),E.register[s][a]=t,E.cache.get(s))this._meshReceived(E.cache,E.register,s,i,I,B,a);else{let d;e.includes(".b3dm")?d=()=>{var b;b=E.proxy?()=>fetch(E.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),te++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,l=>{E.meshCallback(l,C)},o,n)).then(h=>{E.cache.put(s,h),this._meshReceived(E.cache,E.register,s,i,I,B,a),E._checkSize()}).catch(h=>{}).finally(()=>{te--})}:e.includes(".glb")||e.includes(".gltf")?d=()=>{var b;b=E.proxy?()=>fetch(E.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),te++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.splatsDecoder.parseSplats(h,o,n,Q)).then(h=>{h.isSplatsData||(o&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(l=>{l.isMesh&&(n&&l.applyMatrix4(this.zUpToYUpMatrix),E.meshCallback&&E.meshCallback(l,C)),l.isPoints&&E.pointsCallback&&E.pointsCallback(l,C)})),E.cache.put(s,h),E._meshReceived(E.cache,E.register,s,i,I,B,a),E._checkSize()}).catch(h=>{}).finally(()=>{te--})}:e.includes(".json")&&(d=()=>{var b;b=E.proxy?()=>fetch(E.proxy,{method:"POST",body:e,signal:c.signal}):()=>fetch(e,{signal:c.signal}),te++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+e),new Error(`couldn't load "${e}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>mt(h,e)).then(h=>{E.cache.put(s,h),E._meshReceived(E.cache,E.register,s),E._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{te--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!E.register[s]&&Object.keys(E.register[s]).length>0&&!E.cache.get(s),doDownload:d,distanceFunction:i,getSiblings:I,level:B,loadingStrategy:r,uuid:a})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,a){const e=gi(A),t=this;t.register[e]&&setTimeout(()=>{t.register&&t.register[e]&&(delete t.register[e][a],t._checkSize())},t.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let a=0;for(;A.cache.size()>A.maxCachedItems&&a<A.cache.size();){a++;const e=A.cache.head(),t=A.register[e.key];t&&(Object.keys(t).length>0?(A.cache.remove(e.key),A.cache.put(e.key,e.value)):(A.cache.remove(e.key),delete A.register[e.key],A._disposeEntryContent(e)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(a=>{if(a.material)if(a.material.length)for(let e=0;e<a.material.length;++e)a.material[e].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}))}}function gi(g){for(var A=g.split("/"),a=[],e=0,t=0;t<A.length;t++){var i=A[t];i!=="."&&i!==""&&i!==".."?a[e++]=i:i===".."&&e>0&&e--}if(e===0)return"/";var I="";for(t=0;t<e;t++)I+="/"+a[t];return I}const ZA=[];for(let g=0;g<256;++g)ZA.push((g+256).toString(16).slice(1));let At;const fn=new Uint8Array(16),ti={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function lI(g,A,a){if(ti.randomUUID&&!g)return ti.randomUUID();const e=(g=g||{}).random??g.rng?.()??function(){if(!At){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");At=crypto.getRandomValues.bind(crypto)}return At(fn)}();if(e.length<16)throw new Error("Random bytes length must be >= 16");return e[6]=15&e[6]|64,e[8]=63&e[8]|128,function(t,i=0){return(ZA[t[i+0]]+ZA[t[i+1]]+ZA[t[i+2]]+ZA[t[i+3]]+"-"+ZA[t[i+4]]+ZA[t[i+5]]+"-"+ZA[t[i+6]]+ZA[t[i+7]]+"-"+ZA[t[i+8]]+ZA[t[i+9]]+"-"+ZA[t[i+10]]+ZA[t[i+11]]+ZA[t[i+12]]+ZA[t[i+13]]+ZA[t[i+14]]+ZA[t[i+15]]).toLowerCase()}(e)}var ii,Ii,Za=function(){if(Ii)return ii;function g(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function A(e,t){for(var i,I="",B=0,r=-1,o=0,n=0;n<=e.length;++n){if(n<e.length)i=e.charCodeAt(n);else{if(i===47)break;i=47}if(i===47){if(!(r===n-1||o===1))if(r!==n-1&&o===2){if(I.length<2||B!==2||I.charCodeAt(I.length-1)!==46||I.charCodeAt(I.length-2)!==46){if(I.length>2){var C=I.lastIndexOf("/");if(C!==I.length-1){C===-1?(I="",B=0):B=(I=I.slice(0,C)).length-1-I.lastIndexOf("/"),r=n,o=0;continue}}else if(I.length===2||I.length===1){I="",B=0,r=n,o=0;continue}}t&&(I.length>0?I+="/..":I="..",B=2)}else I.length>0?I+="/"+e.slice(r+1,n):I=e.slice(r+1,n),B=n-r-1;r=n,o=0}else i===46&&o!==-1?++o:o=-1}return I}Ii=1;var a={resolve:function(){for(var e,t="",i=!1,I=arguments.length-1;I>=-1&&!i;I--){var B;I>=0?B=arguments[I]:(e===void 0&&(e=process.cwd()),B=e),g(B),B.length!==0&&(t=B+"/"+t,i=B.charCodeAt(0)===47)}return t=A(t,!i),i?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(g(e),e.length===0)return".";var t=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;return(e=A(e,!t)).length!==0||t||(e="."),e.length>0&&i&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return g(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,t=0;t<arguments.length;++t){var i=arguments[t];g(i),i.length>0&&(e===void 0?e=i:e+="/"+i)}return e===void 0?".":a.normalize(e)},relative:function(e,t){if(g(e),g(t),e===t||(e=a.resolve(e))===(t=a.resolve(t)))return"";for(var i=1;i<e.length&&e.charCodeAt(i)===47;++i);for(var I=e.length,B=I-i,r=1;r<t.length&&t.charCodeAt(r)===47;++r);for(var o=t.length-r,n=B<o?B:o,C=-1,Q=0;Q<=n;++Q){if(Q===n){if(o>n){if(t.charCodeAt(r+Q)===47)return t.slice(r+Q+1);if(Q===0)return t.slice(r+Q)}else B>n&&(e.charCodeAt(i+Q)===47?C=Q:Q===0&&(C=0));break}var E=e.charCodeAt(i+Q);if(E!==t.charCodeAt(r+Q))break;E===47&&(C=Q)}var s="";for(Q=i+C+1;Q<=I;++Q)Q!==I&&e.charCodeAt(Q)!==47||(s.length===0?s+="..":s+="/..");return s.length>0?s+t.slice(r+C):(r+=C,t.charCodeAt(r)===47&&++r,t.slice(r))},_makeLong:function(e){return e},dirname:function(e){if(g(e),e.length===0)return".";for(var t=e.charCodeAt(0),i=t===47,I=-1,B=!0,r=e.length-1;r>=1;--r)if((t=e.charCodeAt(r))===47){if(!B){I=r;break}}else B=!1;return I===-1?i?"/":".":i&&I===1?"//":e.slice(0,I)},basename:function(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');g(e);var i,I=0,B=-1,r=!0;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,n=-1;for(i=e.length-1;i>=0;--i){var C=e.charCodeAt(i);if(C===47){if(!r){I=i+1;break}}else n===-1&&(r=!1,n=i+1),o>=0&&(C===t.charCodeAt(o)?--o==-1&&(B=i):(o=-1,B=n))}return I===B?B=n:B===-1&&(B=e.length),e.slice(I,B)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===47){if(!r){I=i+1;break}}else B===-1&&(r=!1,B=i+1);return B===-1?"":e.slice(I,B)},extname:function(e){g(e);for(var t=-1,i=0,I=-1,B=!0,r=0,o=e.length-1;o>=0;--o){var n=e.charCodeAt(o);if(n!==47)I===-1&&(B=!1,I=o+1),n===46?t===-1?t=o:r!==1&&(r=1):t!==-1&&(r=-1);else if(!B){i=o+1;break}}return t===-1||I===-1||r===0||r===1&&t===I-1&&t===i+1?"":e.slice(t,I)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(t,i){var I=i.dir||i.root,B=i.base||(i.name||"")+(i.ext||"");return I?I===i.root?I+B:I+t+B:B}("/",e)},parse:function(e){g(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;var i,I=e.charCodeAt(0),B=I===47;B?(t.root="/",i=1):i=0;for(var r=-1,o=0,n=-1,C=!0,Q=e.length-1,E=0;Q>=i;--Q)if((I=e.charCodeAt(Q))!==47)n===-1&&(C=!1,n=Q+1),I===46?r===-1?r=Q:E!==1&&(E=1):r!==-1&&(E=-1);else if(!C){o=Q+1;break}return r===-1||n===-1||E===0||E===1&&r===n-1&&r===o+1?n!==-1&&(t.base=t.name=o===0&&B?e.slice(1,n):e.slice(o,n)):(o===0&&B?(t.name=e.slice(1,r),t.base=e.slice(1,n)):(t.name=e.slice(o,r),t.base=e.slice(o,n)),t.ext=e.slice(r,n)),o>0?t.dir=e.slice(0,o-1):B&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};return a.posix=a,ii=a}();function ug(){return ug=Object.assign?Object.assign.bind():function(g){for(var A=1;A<arguments.length;A++){var a=arguments[A];for(var e in a)({}).hasOwnProperty.call(a,e)&&(g[e]=a[e])}return g},ug.apply(null,arguments)}var fI={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function Dn(g,A){if(Eg(g,A))return g[A];throw typeof g[A]=="function"&&function(a,e){return a==null||typeof a[e]!="function"||fg(a,e)&&Object.getPrototypeOf&&e in Object.getPrototypeOf(a)?!1:fg(yn,e)?!0:!(e in Object.prototype||e in Function.prototype)}(g,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function Eg(g,A){return!(!function(a){return typeof a=="object"&&a&&a.constructor===Object}(g)&&!Array.isArray(g))&&(!!fg(wn,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var wn={length:!0,name:!0},yn={toString:!0,valueOf:!0,toLocaleString:!0};class pn{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return Dn(this.wrappedObject,A)}set(A,a){return function(e,t,i){if(Eg(e,t))return e[t]=i,i;throw new Error('No access to property "'+t+'"')}(this.wrappedObject,A,a),this}has(A){return Eg(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,a){return{next:()=>{var e=A.next();return e.done?e:{value:a(e.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var a of this.keys())A(this.get(a),a,this)}delete(A){Eg(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function RA(g){return typeof g=="number"}function TA(g){return!(!g||typeof g!="object"||typeof g.constructor!="function")&&(g.isBigNumber===!0&&typeof g.constructor.prototype=="object"&&g.constructor.prototype.isBigNumber===!0||typeof g.constructor.isDecimal=="function"&&g.constructor.isDecimal(g)===!0)}function Fn(g){return typeof g=="bigint"}function DI(g){return g&&typeof g=="object"&&Object.getPrototypeOf(g).isComplex===!0||!1}function wI(g){return g&&typeof g=="object"&&Object.getPrototypeOf(g).isFraction===!0||!1}function yI(g){return g&&g.constructor.prototype.isUnit===!0||!1}function Ma(g){return typeof g=="string"}var PA=Array.isArray;function HA(g){return g&&g.constructor.prototype.isMatrix===!0||!1}function lg(g){return Array.isArray(g)||HA(g)}function mn(g){return g&&g.isDenseMatrix&&g.constructor.prototype.isMatrix===!0||!1}function Mn(g){return g&&g.isSparseMatrix&&g.constructor.prototype.isMatrix===!0||!1}function kn(g){return g&&g.constructor.prototype.isRange===!0||!1}function Mt(g){return g&&g.constructor.prototype.isIndex===!0||!1}function Rn(g){return typeof g=="boolean"}function Nn(g){return g&&g.constructor.prototype.isResultSet===!0||!1}function Gn(g){return g&&g.constructor.prototype.isHelp===!0||!1}function Sn(g){return typeof g=="function"}function Un(g){return g instanceof Date}function xn(g){return g instanceof RegExp}function kt(g){return!(!g||typeof g!="object"||g.constructor!==Object||DI(g)||wI(g))}function Ln(g){return!!g&&(g instanceof Map||g instanceof pn||typeof g.set=="function"&&typeof g.get=="function"&&typeof g.keys=="function"&&typeof g.has=="function")}function Jn(g){return g===null}function jn(g){return g===void 0}function vn(g){return g&&g.isAccessorNode===!0&&g.constructor.prototype.isNode===!0||!1}function Hn(g){return g&&g.isArrayNode===!0&&g.constructor.prototype.isNode===!0||!1}function Yn(g){return g&&g.isAssignmentNode===!0&&g.constructor.prototype.isNode===!0||!1}function Kn(g){return g&&g.isBlockNode===!0&&g.constructor.prototype.isNode===!0||!1}function qn(g){return g&&g.isConditionalNode===!0&&g.constructor.prototype.isNode===!0||!1}function Tn(g){return g&&g.isConstantNode===!0&&g.constructor.prototype.isNode===!0||!1}function On(g){return g&&g.isFunctionAssignmentNode===!0&&g.constructor.prototype.isNode===!0||!1}function Pn(g){return g&&g.isFunctionNode===!0&&g.constructor.prototype.isNode===!0||!1}function zn(g){return g&&g.isIndexNode===!0&&g.constructor.prototype.isNode===!0||!1}function Wn(g){return g&&g.isNode===!0&&g.constructor.prototype.isNode===!0||!1}function Vn(g){return g&&g.isObjectNode===!0&&g.constructor.prototype.isNode===!0||!1}function Xn(g){return g&&g.isOperatorNode===!0&&g.constructor.prototype.isNode===!0||!1}function Zn(g){return g&&g.isParenthesisNode===!0&&g.constructor.prototype.isNode===!0||!1}function _n(g){return g&&g.isRangeNode===!0&&g.constructor.prototype.isNode===!0||!1}function $n(g){return g&&g.isRelationalNode===!0&&g.constructor.prototype.isNode===!0||!1}function Ar(g){return g&&g.isSymbolNode===!0&&g.constructor.prototype.isNode===!0||!1}function ar(g){return g&&g.constructor.prototype.isChain===!0||!1}function _a(g){var A=typeof g;return A==="object"?g===null?"null":TA(g)?"BigNumber":g.constructor&&g.constructor.name?g.constructor.name:"Object":A}function vA(g){var A=typeof g;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||g==null)return g;if(typeof g.clone=="function")return g.clone();if(Array.isArray(g))return g.map(function(a){return vA(a)});if(g instanceof Date)return new Date(g.valueOf());if(TA(g))return g;if(kt(g))return function(a,e){var t={};for(var i in a)fg(a,i)&&(t[i]=e(a[i]));return t}(g,vA);if(A==="function")return g;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(g,")"))}function Me(g,A){var a,e,t;if(Array.isArray(g)){if(!Array.isArray(A)||g.length!==A.length)return!1;for(e=0,t=g.length;e<t;e++)if(!Me(g[e],A[e]))return!1;return!0}if(typeof g=="function")return g===A;if(g instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(a in g)if(!(a in A)||!Me(g[a],A[a]))return!1;for(a in A)if(!(a in g))return!1;return!0}return g===A}function fg(g,A){return g&&Object.hasOwnProperty.call(g,A)}var re=function(g){if(g)throw new Error(`The global config is readonly.
9
21
  Please create a mathjs instance if you want to change the default configuration.
10
22
  Example:
11
23
 
12
24
  import { create, all } from 'mathjs';
13
25
  const mathjs = create(all);
14
26
  mathjs.config({ number: 'BigNumber' });
15
- `);return Object.freeze(bn)};function $r(){return!0}function Ve(){return!1}function Sa(){}Bt(ka,bn,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const ei="Argument is not a typed-function.",wt=function r(){function e(B){return typeof B=="object"&&B!==null&&B.constructor===Object}const a=[{name:"number",test:function(B){return typeof B=="number"}},{name:"string",test:function(B){return typeof B=="string"}},{name:"boolean",test:function(B){return typeof B=="boolean"}},{name:"Function",test:function(B){return typeof B=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(B){return B instanceof Date}},{name:"RegExp",test:function(B){return B instanceof RegExp}},{name:"Object",test:e},{name:"null",test:function(B){return B===null}},{name:"undefined",test:function(B){return B===void 0}}],t={name:"any",test:$r,isAny:!0};let i,n,o=0,s={createCount:0};function c(B){const v=i.get(B);if(v)return v;let Q='Unknown type "'+B+'"';const R=B.toLowerCase();let T;for(T of n)if(T.toLowerCase()===R){Q+='. Did you mean "'+T+'" ?';break}throw new TypeError(Q)}function u(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const Q=v?c(v).index:n.length,R=[];for(let U=0;U<B.length;++U){if(!B[U]||typeof B[U].name!="string"||typeof B[U].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const z=B[U].name;if(i.has(z))throw new TypeError('Duplicate type name "'+z+'"');R.push(z),i.set(z,{name:z,test:B[U].test,isAny:B[U].isAny,index:Q+U,conversionsTo:[]})}const T=n.slice(Q);n=n.slice(0,Q).concat(R).concat(T);for(let U=Q+R.length;U<n.length;++U)i.get(n[U]).index=U}function A(){i=new Map,n=[],o=0,u([t],!1)}function d(B){const v=n.filter(Q=>{const R=i.get(Q);return!R.isAny&&R.test(B)});return v.length?v:["any"]}function b(B){return B&&typeof B=="function"&&"_typedFunctionData"in B}function h(B,v,Q){if(!b(B))throw new TypeError(ei);const R=Q&&Q.exact,T=p(Array.isArray(v)?v.join(","):v),U=l(T);if(!R||U in B.signatures){const L=B._typedFunctionData.signatureMap.get(U);if(L)return L}const z=T.length;let N,K;if(R){let L;for(L in N=[],B.signatures)N.push(B._typedFunctionData.signatureMap.get(L))}else N=B._typedFunctionData.signatures;for(let L=0;L<z;++L){const de=T[L],ie=[];let ye;for(ye of N){const Ue=y(ye.params,L);if(Ue&&(!de.restParam||Ue.restParam)){if(!Ue.hasAny){const ra=E(Ue);if(de.types.some(Ye=>!ra.has(Ye.name)))continue}ie.push(ye)}}if(N=ie,N.length===0)break}for(K of N)if(K.params.length<=z)return K;throw new TypeError("Signature not found (signature: "+(B.name||"unnamed")+"("+l(T,", ")+"))")}function l(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return B.map(Q=>Q.name).join(v)}function g(B){const v=B.indexOf("...")===0,Q=(v?B.length>3?B.slice(3):"any":B).split("|").map(U=>c(U.trim()));let R=!1,T=v?"...":"";return{types:Q.map(function(U){return R=U.isAny||R,T+=U.name+"|",{name:U.name,typeIndex:U.index,test:U.test,isAny:U.isAny,conversion:null,conversionIndex:-1}}),name:T.slice(0,-1),hasAny:R,hasConversion:!1,restParam:v}}function m(B){const v=B.types.map(z=>z.name),Q=function(z){if(z.length===0)return[];const N=z.map(c);z.length>1&&N.sort((de,ie)=>de.index-ie.index);let K=N[0].conversionsTo;if(z.length===1)return K;K=K.concat([]);const L=new Set(z);for(let de=1;de<N.length;++de){let ie;for(ie of N[de].conversionsTo)L.has(ie.from)||(K.push(ie),L.add(ie.from))}return K}(v);let R=B.hasAny,T=B.name;const U=Q.map(function(z){const N=c(z.from);return R=N.isAny||R,T+="|"+z.from,{name:z.from,typeIndex:N.index,test:N.test,isAny:N.isAny,conversion:z,conversionIndex:z.index}});return{types:B.types.concat(U),name:T,hasAny:R,hasConversion:U.length>0,restParam:B.restParam}}function E(B){return B.typeSet||(B.typeSet=new Set,B.types.forEach(v=>B.typeSet.add(v.name))),B.typeSet}function p(B){const v=[];if(typeof B!="string")throw new TypeError("Signatures must be strings");const Q=B.trim();if(Q==="")return v;const R=Q.split(",");for(let T=0;T<R.length;++T){const U=g(R[T].trim());if(U.restParam&&T!==R.length-1)throw new SyntaxError('Unexpected rest parameter "'+R[T]+'": only allowed for the last parameter');if(U.types.length===0)return null;v.push(U)}return v}function C(B){const v=X(B);return!!v&&v.restParam}function I(B){if(B&&B.types.length!==0){if(B.types.length===1)return c(B.types[0].name).test;if(B.types.length===2){const v=c(B.types[0].name).test,Q=c(B.types[1].name).test;return function(R){return v(R)||Q(R)}}{const v=B.types.map(function(Q){return c(Q.name).test});return function(Q){for(let R=0;R<v.length;R++)if(v[R](Q))return!0;return!1}}}return $r}function x(B){let v,Q,R;if(C(B)){v=ge(B).map(I);const T=v.length,U=I(X(B)),z=function(N){for(let K=T;K<N.length;K++)if(!U(N[K]))return!1;return!0};return function(N){for(let K=0;K<v.length;K++)if(!v[K](N[K]))return!1;return z(N)&&N.length>=T+1}}return B.length===0?function(T){return T.length===0}:B.length===1?(Q=I(B[0]),function(T){return Q(T[0])&&T.length===1}):B.length===2?(Q=I(B[0]),R=I(B[1]),function(T){return Q(T[0])&&R(T[1])&&T.length===2}):(v=B.map(I),function(T){for(let U=0;U<v.length;U++)if(!v[U](T[U]))return!1;return T.length===v.length})}function y(B,v){return v<B.length?B[v]:C(B)?X(B):null}function w(B,v){const Q=y(B,v);return Q?E(Q):new Set}function D(B){return B.conversion===null||B.conversion===void 0}function F(B,v){const Q=new Set;return B.forEach(R=>{const T=w(R.params,v);let U;for(U of T)Q.add(U)}),Q.has("any")?["any"]:Array.from(Q)}function M(B,v,Q){let R,T;const U=B||"unnamed";let z,N=Q;for(z=0;z<v.length;z++){const ie=[];if(N.forEach(ye=>{const Ue=I(y(ye.params,z));(z<ye.params.length||C(ye.params))&&Ue(v[z])&&ie.push(ye)}),ie.length===0){if(T=F(N,z),T.length>0){const ye=d(v[z]);return R=new TypeError("Unexpected type of argument in function "+U+" (expected: "+T.join(" or ")+", actual: "+ye.join(" | ")+", index: "+z+")"),R.data={category:"wrongType",fn:U,index:z,actual:ye,expected:T},R}}else N=ie}const K=N.map(function(ie){return C(ie.params)?1/0:ie.params.length});if(v.length<Math.min.apply(null,K))return T=F(N,z),R=new TypeError("Too few arguments in function "+U+" (expected: "+T.join(" or ")+", index: "+v.length+")"),R.data={category:"tooFewArgs",fn:U,index:v.length,expected:T},R;const L=Math.max.apply(null,K);if(v.length>L)return R=new TypeError("Too many arguments in function "+U+" (expected: "+L+", actual: "+v.length+")"),R.data={category:"tooManyArgs",fn:U,index:v.length,expectedLength:L},R;const de=[];for(let ie=0;ie<v.length;++ie)de.push(d(v[ie]).join("|"));return R=new TypeError('Arguments of type "'+de.join(", ")+'" do not match any of the defined signatures of function '+U+"."),R.data={category:"mismatch",actual:de},R}function k(B){let v=n.length+1;for(let Q=0;Q<B.types.length;Q++)D(B.types[Q])&&(v=Math.min(v,B.types[Q].typeIndex));return v}function _(B){let v=o+1;for(let Q=0;Q<B.types.length;Q++)D(B.types[Q])||(v=Math.min(v,B.types[Q].conversionIndex));return v}function q(B,v){if(B.hasAny){if(!v.hasAny)return 1}else if(v.hasAny)return-1;if(B.restParam){if(!v.restParam)return 1}else if(v.restParam)return-1;if(B.hasConversion){if(!v.hasConversion)return 1}else if(v.hasConversion)return-1;const Q=k(B)-k(v);if(Q<0)return-1;if(Q>0)return 1;const R=_(B)-_(v);return R<0?-1:R>0?1:0}function V(B,v){const Q=B.params,R=v.params,T=X(Q),U=X(R),z=C(Q),N=C(R);if(z&&T.hasAny){if(!N||!U.hasAny)return 1}else if(N&&U.hasAny)return-1;let K,L=0,de=0;for(K of Q)K.hasAny&&++L,K.hasConversion&&++de;let ie=0,ye=0;for(K of R)K.hasAny&&++ie,K.hasConversion&&++ye;if(L!==ie)return L-ie;if(z&&T.hasConversion){if(!N||!U.hasConversion)return 1}else if(N&&U.hasConversion)return-1;if(de!==ye)return de-ye;if(z){if(!N)return 1}else if(N)return-1;const Ue=(Q.length-R.length)*(z?-1:1);if(Ue!==0)return Ue;const ra=[];let Ye,Aa=0;for(let Ma=0;Ma<Q.length;++Ma){const tt=q(Q[Ma],R[Ma]);ra.push(tt),Aa+=tt}if(Aa!==0)return Aa;for(Ye of ra)if(Ye!==0)return Ye;return 0}function J(B,v){let Q=v;if(B.some(T=>T.hasConversion)){const T=C(B),U=B.map(O);Q=function(){const z=[],N=T?arguments.length-1:arguments.length;for(let K=0;K<N;K++)z[K]=U[K](arguments[K]);return T&&(z[N]=arguments[N].map(U[N])),v.apply(this,z)}}let R=Q;if(C(B)){const T=B.length-1;R=function(){return Q.apply(this,ee(arguments,0,T).concat([ee(arguments,T)]))}}return R}function O(B){let v,Q,R,T;const U=[],z=[];switch(B.types.forEach(function(N){N.conversion&&(U.push(c(N.conversion.from).test),z.push(N.conversion.convert))}),z.length){case 0:return function(N){return N};case 1:return v=U[0],R=z[0],function(N){return v(N)?R(N):N};case 2:return v=U[0],Q=U[1],R=z[0],T=z[1],function(N){return v(N)?R(N):Q(N)?T(N):N};default:return function(N){for(let K=0;K<z.length;K++)if(U[K](N))return z[K](N);return N}}}function se(B){return function v(Q,R,T){if(R<Q.length){const N=Q[R];let K=[];if(N.restParam){const L=N.types.filter(D);L.length<N.types.length&&K.push({types:L,name:"..."+L.map(de=>de.name).join("|"),hasAny:L.some(de=>de.isAny),hasConversion:!1,restParam:!0}),K.push(N)}else K=N.types.map(function(L){return{types:[L],name:L.name,hasAny:L.isAny,hasConversion:L.conversion,restParam:!1}});return U=K,z=function(L){return v(Q,R+1,T.concat([L]))},Array.prototype.concat.apply([],U.map(z))}return[T];var U,z}(B,0,[])}function ce(B,v){const Q=Math.max(B.length,v.length);for(let N=0;N<Q;N++){const K=w(B,N),L=w(v,N);let de,ie=!1;for(de of L)if(K.has(de)){ie=!0;break}if(!ie)return!1}const R=B.length,T=v.length,U=C(B),z=C(v);return U?z?R===T:T>=R:z?R>=T:R===T}function re(B,v,Q){const R=[];let T;for(T of B){let U=Q[T];if(typeof U!="number")throw new TypeError('No definition for referenced signature "'+T+'"');if(U=v[U],typeof U!="function")return!1;R.push(U)}return R}function le(B,v,Q){const R=function(z){return z.map(N=>Se(N)?Ee(N.referToSelf.callback):De(N)?Ae(N.referTo.references,N.referTo.callback):N)}(B),T=new Array(R.length).fill(!1);let U=!0;for(;U;){U=!1;let z=!0;for(let N=0;N<R.length;++N){if(T[N])continue;const K=R[N];if(Se(K))R[N]=K.referToSelf.callback(Q),R[N].referToSelf=K.referToSelf,T[N]=!0,z=!1;else if(De(K)){const L=re(K.referTo.references,R,v);L?(R[N]=K.referTo.callback.apply(this,L),R[N].referTo=K.referTo,T[N]=!0,z=!1):U=!0}}if(z&&U)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return R}function ue(B,v){if(s.createCount++,Object.keys(v).length===0)throw new SyntaxError("No signatures provided");s.warnAgainstDeprecatedThis&&function(te){const Ze=/\bthis(\(|\.signatures\b)/;Object.keys(te).forEach(St=>{const Ra=te[St];if(Ze.test(Ra.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(v);const Q=[],R=[],T={},U=[];let z;for(z in v){if(!Object.prototype.hasOwnProperty.call(v,z))continue;const te=p(z);if(!te)continue;Q.forEach(function(Xa){if(ce(Xa,te))throw new TypeError('Conflicting signatures "'+l(Xa)+'" and "'+l(te)+'".')}),Q.push(te);const Ze=R.length;R.push(v[z]);const St=te.map(m);let Ra;for(Ra of se(St)){const Xa=l(Ra);U.push({params:Ra,name:Xa,fn:Ze}),Ra.every(ko=>!ko.hasConversion)&&(T[Xa]=Ze)}}U.sort(V);const N=le(R,T,Wa);let K;for(K in T)Object.prototype.hasOwnProperty.call(T,K)&&(T[K]=N[T[K]]);const L=[],de=new Map;for(K of U)de.has(K.name)||(K.fn=N[K.fn],L.push(K),de.set(K.name,K));const ie=L[0]&&L[0].params.length<=2&&!C(L[0].params),ye=L[1]&&L[1].params.length<=2&&!C(L[1].params),Ue=L[2]&&L[2].params.length<=2&&!C(L[2].params),ra=L[3]&&L[3].params.length<=2&&!C(L[3].params),Ye=L[4]&&L[4].params.length<=2&&!C(L[4].params),Aa=L[5]&&L[5].params.length<=2&&!C(L[5].params),Ma=ie&&ye&&Ue&&ra&&Ye&&Aa;for(let te=0;te<L.length;++te)L[te].test=x(L[te].params);const tt=ie?I(L[0].params[0]):Ve,ao=ye?I(L[1].params[0]):Ve,to=Ue?I(L[2].params[0]):Ve,ro=ra?I(L[3].params[0]):Ve,io=Ye?I(L[4].params[0]):Ve,no=Aa?I(L[5].params[0]):Ve,oo=ie?I(L[0].params[1]):Ve,so=ye?I(L[1].params[1]):Ve,Ao=Ue?I(L[2].params[1]):Ve,co=ra?I(L[3].params[1]):Ve,uo=Ye?I(L[4].params[1]):Ve,ho=Aa?I(L[5].params[1]):Ve;for(let te=0;te<L.length;++te)L[te].implementation=J(L[te].params,L[te].fn);const lo=ie?L[0].implementation:Sa,bo=ye?L[1].implementation:Sa,go=Ue?L[2].implementation:Sa,fo=ra?L[3].implementation:Sa,po=Ye?L[4].implementation:Sa,mo=Aa?L[5].implementation:Sa,Eo=ie?L[0].params.length:-1,Co=ye?L[1].params.length:-1,Io=Ue?L[2].params.length:-1,Bo=ra?L[3].params.length:-1,Do=Ye?L[4].params.length:-1,yo=Aa?L[5].params.length:-1,wo=Ma?6:0,xo=L.length,vo=L.map(te=>te.test),Fo=L.map(te=>te.implementation),Qo=function(){for(let te=wo;te<xo;te++)if(vo[te](arguments))return Fo[te].apply(this,arguments);return s.onMismatch(B,arguments,L)};function Wa(te,Ze){return arguments.length===Eo&&tt(te)&&oo(Ze)?lo.apply(this,arguments):arguments.length===Co&&ao(te)&&so(Ze)?bo.apply(this,arguments):arguments.length===Io&&to(te)&&Ao(Ze)?go.apply(this,arguments):arguments.length===Bo&&ro(te)&&co(Ze)?fo.apply(this,arguments):arguments.length===Do&&io(te)&&uo(Ze)?po.apply(this,arguments):arguments.length===yo&&no(te)&&ho(Ze)?mo.apply(this,arguments):Qo.apply(this,arguments)}try{Object.defineProperty(Wa,"name",{value:B})}catch{}return Wa.signatures=T,Wa._typedFunctionData={signatures:L,signatureMap:de},Wa}function Z(B,v,Q){throw M(B,v,Q)}function ge(B){return ee(B,0,B.length-1)}function X(B){return B[B.length-1]}function ee(B,v,Q){return Array.prototype.slice.call(B,v,Q)}function Ae(B,v){return{referTo:{references:B,callback:v}}}function Ee(B){if(typeof B!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:B}}}function De(B){return B&&typeof B.referTo=="object"&&Array.isArray(B.referTo.references)&&typeof B.referTo.callback=="function"}function Se(B){return B&&typeof B.referToSelf=="object"&&typeof B.referToSelf.callback=="function"}function qe(B,v){if(!B)return v;if(v&&v!==B){const Q=new Error("Function names do not match (expected: "+B+", actual: "+v+")");throw Q.data={actual:v,expected:B},Q}return B}function Ke(B){let v;for(const Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(b(B[Q])||typeof B[Q].signature=="string")&&(v=qe(v,B[Q].name));return v}function Ha(B,v){let Q;for(Q in v)if(Object.prototype.hasOwnProperty.call(v,Q)){if(Q in B&&v[Q]!==B[Q]){const R=new Error('Signature "'+Q+'" is defined twice');throw R.data={signature:Q,sourceFunction:v[Q],destFunction:B[Q]},R}B[Q]=v[Q]}}A(),u(a);const eo=s;function Mr(B){if(!B||typeof B.from!="string"||typeof B.to!="string"||typeof B.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(B.to===B.from)throw new SyntaxError('Illegal to define conversion from "'+B.from+'" to itself.')}return s=function(B){const v=typeof B=="string";let Q=v?B:"";const R={};for(let T=v?1:0;T<arguments.length;++T){const U=arguments[T];let z,N={};if(typeof U=="function"?(z=U.name,typeof U.signature=="string"?N[U.signature]=U:b(U)&&(N=U.signatures)):e(U)&&(N=U,v||(z=Ke(U))),Object.keys(N).length===0){const K=new TypeError("Argument to 'typed' at index "+T+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw K.data={index:T,argument:U},K}v||(Q=qe(Q,z)),Ha(R,N)}return ue(Q||"",R)},s.create=r,s.createCount=eo.createCount,s.onMismatch=Z,s.throwMismatchError=Z,s.createError=M,s.clear=A,s.clearConversions=function(){let B;for(B of n)i.get(B).conversionsTo=[];o=0},s.addTypes=u,s._findType=c,s.referTo=function(){const B=ge(arguments).map(Q=>l(p(Q))),v=X(arguments);if(typeof v!="function")throw new TypeError("Callback function expected as last argument");return Ae(B,v)},s.referToSelf=Ee,s.convert=function(B,v){const Q=c(v);if(Q.test(B))return B;const R=Q.conversionsTo;if(R.length===0)throw new Error("There are no conversions to "+v+" defined.");for(let T=0;T<R.length;T++)if(c(R[T].from).test(B))return R[T].convert(B);throw new Error("Cannot convert "+B+" to "+v)},s.findSignature=h,s.find=function(B,v,Q){return h(B,v,Q).implementation},s.isTypedFunction=b,s.warnAgainstDeprecatedThis=!0,s.addType=function(B,v){let Q="any";v!==!1&&i.has("Object")&&(Q="Object"),s.addTypes([B],Q)},s.addConversion=function(B){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};Mr(B);const Q=c(B.to),R=Q.conversionsTo.find(T=>T.from===B.from);if(R){if(!v||!v.override)throw new Error('There is already a conversion from "'+B.from+'" to "'+Q.name+'"');s.removeConversion({from:R.from,to:B.to,convert:R.convert})}Q.conversionsTo.push({from:B.from,convert:B.convert,index:o++})},s.addConversions=function(B,v){B.forEach(Q=>s.addConversion(Q,v))},s.removeConversion=function(B){Mr(B);const v=c(B.to),Q=function(T,U){for(let z=0;z<T.length;z++)if(U(T[z]))return T[z]}(v.conversionsTo,T=>T.from===B.from);if(!Q)throw new Error("Attempt to remove nonexistent conversion from "+B.from+" to "+B.to);if(Q.convert!==B.convert)throw new Error("Conversion to remove does not match existing conversion");const R=v.conversionsTo.indexOf(Q);v.conversionsTo.splice(R,1)},s.resolve=function(B,v){if(!b(B))throw new TypeError(ei);const Q=B._typedFunctionData.signatures;for(let R=0;R<Q.length;++R)if(Q[R].test(v))return Q[R];return null},s}();function ne(r,e,a,t){function i(n){var o=function(s,c){for(var u={},A=0;A<c.length;A++){var d=c[A],b=s[d];b!==void 0&&(u[d]=b)}return u}(n,e.map(gA));return function(s,c,u){var A=c.filter(b=>!function(h){return h&&h[0]==="?"}(b)).every(b=>u[b]!==void 0);if(!A){var d=c.filter(b=>u[b]===void 0);throw new Error('Cannot create function "'.concat(s,'", ')+"some dependencies are missing: ".concat(d.map(b=>'"'.concat(b,'"')).join(", "),"."))}}(r,e,n),a(o)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),t&&(i.meta=t),i}function gA(r){return r&&r[0]==="?"?r.slice(1):r}function Ce(r){return typeof r=="boolean"||!!isFinite(r)&&r===Math.round(r)}function Wt(r,e,a){var t={2:"0b",8:"0o",16:"0x"}[e],i="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!Ce(a))throw new Error("size must be an integer");if(r>2**(a-1)-1||r<-(2**(a-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!Ce(r))throw new Error("Value must be an integer");r<0&&(r+=2**a),i="i".concat(a)}var n="";return r<0&&(r=-r,n="-"),"".concat(n).concat(t).concat(r.toString(e)).concat(i)}function cr(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:a,precision:t,wordSize:i}=mn(e);switch(a){case"fixed":return function(n,o){if(isNaN(n)||!isFinite(n))return String(n);var s=ft(n),c=typeof o=="number"?pt(s,s.exponent+1+o):s,u=c.coefficients,A=c.exponent+1,d=A+(o||0);return u.length<d&&(u=u.concat(Ga(d-u.length))),A<0&&(u=Ga(1-A).concat(u),A=1),A<u.length&&u.splice(A,0,A===0?"0.":"."),c.sign+u.join("")}(r,t);case"exponential":return ai(r,t);case"engineering":return function(n,o){if(isNaN(n)||!isFinite(n))return String(n);var s=ft(n),c=pt(s,o),u=c.exponent,A=c.coefficients,d=u%3==0?u:u<0?u-3-u%3:u-u%3;if(be(o))for(;o>A.length||u-d+1>A.length;)A.push(0);else for(var b=Math.abs(u-d)-(A.length-1),h=0;h<b;h++)A.push(0);for(var l=Math.abs(u-d),g=1;l>0;)g++,l--;var m=A.slice(g).join(""),E=be(o)&&m.length||m.match(/[1-9]/)?"."+m:"",p=A.slice(0,g).join("")+E+"e"+(u>=0?"+":"")+d.toString();return c.sign+p}(r,t);case"bin":return Wt(r,2,i);case"oct":return Wt(r,8,i);case"hex":return Wt(r,16,i);case"auto":return function(n,o,s){if(isNaN(n)||!isFinite(n))return String(n);var c=ri(s?.lowerExp,-3),u=ri(s?.upperExp,5),A=ft(n),d=o?pt(A,o):A;if(d.exponent<c||d.exponent>=u)return ai(n,o);var b=d.coefficients,h=d.exponent;b.length<o&&(b=b.concat(Ga(o-b.length))),b=b.concat(Ga(h-b.length+1+(b.length<o?o-b.length:0)));var l=h>0?h:0;return l<(b=Ga(-h).concat(b)).length-1&&b.splice(l+1,0,"."),d.sign+b.join("")}(r,t,e).replace(/((\.\d*?)(0+))($|e)/,function(){var n=arguments[2],o=arguments[4];return n!=="."?n+o:o});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function mn(r){var e,a,t="auto";if(r!==void 0)if(be(r))e=r;else if(Fe(r))e=r.toNumber();else{if(!Dr(r))throw new Error("Unsupported type of options, number, BigNumber, or object expected");r.precision!==void 0&&(e=ti(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(a=ti(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(t=r.notation)}return{notation:t,precision:e,wordSize:a}}function ft(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var a=e[1],t=e[2],i=parseFloat(e[4]||"0"),n=t.indexOf(".");i+=n!==-1?n-1:t.length-1;var o=t.replace(".","").replace(/^0*/,function(s){return i-=s.length,""}).replace(/0*$/,"").split("").map(function(s){return parseInt(s)});return o.length===0&&(o.push(0),i++),{sign:a,coefficients:o,exponent:i}}function ai(r,e){if(isNaN(r)||!isFinite(r))return String(r);var a=ft(r),t=e?pt(a,e):a,i=t.coefficients,n=t.exponent;i.length<e&&(i=i.concat(Ga(e-i.length)));var o=i.shift();return t.sign+o+(i.length>0?"."+i.join(""):"")+"e"+(n>=0?"+":"")+n}function pt(r,e){for(var a={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},t=a.coefficients;e<=0;)t.unshift(0),a.exponent++,e++;if(t.length>e&&t.splice(e,t.length-e)[0]>=5){var i=e-1;for(t[i]++;t[i]===10;)t.pop(),i===0&&(t.unshift(0),a.exponent++,i++),t[--i]++}return a}function Ga(r){for(var e=[],a=0;a<r;a++)e.push(0);return e}function mt(r,e){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(a<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(r)&&!isNaN(e)&&(isFinite(r)&&isFinite(e)?r===e||Math.abs(r-e)<=Math.max(a*Math.max(Math.abs(r),Math.abs(e)),t):r===e)}function ti(r,e){return be(r)?r:Fe(r)?r.toNumber():void e()}function ri(r,e){return be(r)?r:Fe(r)?r.toNumber():e}var En=function(){return En=wt.create,wt},fA=ne("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(r){var{BigNumber:e,Complex:a,DenseMatrix:t,Fraction:i}=r,n=En();return n.clear(),n.addTypes([{name:"number",test:be},{name:"Complex",test:gn},{name:"BigNumber",test:Fe},{name:"bigint",test:Gs},{name:"Fraction",test:fn},{name:"Unit",test:pn},{name:"identifier",test:o=>oa&&/^(?:[A-Za-z\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\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\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\u09FC\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\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\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\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\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-\uAB69\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\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\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-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\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]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\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-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\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\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\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\u09FC\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\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\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\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\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-\uAB69\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\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\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-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\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]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\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-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(o)},{name:"string",test:oa},{name:"Chain",test:bA},{name:"Array",test:Qe},{name:"Matrix",test:xe},{name:"DenseMatrix",test:_s},{name:"SparseMatrix",test:zs},{name:"Range",test:Ps},{name:"Index",test:Br},{name:"boolean",test:qs},{name:"ResultSet",test:Ks},{name:"Help",test:Os},{name:"function",test:Js},{name:"Date",test:Vs},{name:"RegExp",test:Hs},{name:"null",test:Xs},{name:"undefined",test:Ys},{name:"AccessorNode",test:Zs},{name:"ArrayNode",test:$s},{name:"AssignmentNode",test:eA},{name:"BlockNode",test:aA},{name:"ConditionalNode",test:tA},{name:"ConstantNode",test:rA},{name:"FunctionNode",test:nA},{name:"FunctionAssignmentNode",test:iA},{name:"IndexNode",test:oA},{name:"Node",test:sA},{name:"ObjectNode",test:AA},{name:"OperatorNode",test:cA},{name:"ParenthesisNode",test:uA},{name:"RangeNode",test:dA},{name:"RelationalNode",test:hA},{name:"SymbolNode",test:lA},{name:"Map",test:Ws},{name:"Object",test:Dr}]),n.addConversions([{from:"number",to:"BigNumber",convert:function(o){if(e||nt(o),o.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+o+"). Use function bignumber(x) to convert to BigNumber.");return new e(o)}},{from:"number",to:"Complex",convert:function(o){return a||ot(o),new a(o,0)}},{from:"BigNumber",to:"Complex",convert:function(o){return a||ot(o),new a(o.toNumber(),0)}},{from:"bigint",to:"number",convert:function(o){if(o>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+o+")");return Number(o)}},{from:"bigint",to:"BigNumber",convert:function(o){return e||nt(o),new e(o.toString())}},{from:"bigint",to:"Fraction",convert:function(o){return i||st(o),new i(o)}},{from:"Fraction",to:"BigNumber",convert:function(o){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(o){return a||ot(o),new a(o.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(o){i||st(o);var s=new i(o);if(s.valueOf()!==o)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+o+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(o){var s=Number(o);if(isNaN(s))throw new Error('Cannot convert "'+o+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(o){e||nt(o);try{return new e(o)}catch{throw new Error('Cannot convert "'+o+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(o){try{return BigInt(o)}catch{throw new Error('Cannot convert "'+o+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(o){i||st(o);try{return new i(o)}catch{throw new Error('Cannot convert "'+o+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(o){a||ot(o);try{return new a(o)}catch{throw new Error('Cannot convert "'+o+'" to Complex')}}},{from:"boolean",to:"number",convert:function(o){return+o}},{from:"boolean",to:"BigNumber",convert:function(o){return e||nt(o),new e(+o)}},{from:"boolean",to:"bigint",convert:function(o){return BigInt(+o)}},{from:"boolean",to:"Fraction",convert:function(o){return i||st(o),new i(+o)}},{from:"boolean",to:"string",convert:function(o){return String(o)}},{from:"Array",to:"Matrix",convert:function(o){return t||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new t(o)}},{from:"Matrix",to:"Array",convert:function(o){return o.valueOf()}}]),n.onMismatch=(o,s,c)=>{var u=n.createError(o,s,c);if(["wrongType","mismatch"].includes(u.data.category)&&s.length===1&&Dt(s[0])&&c.some(d=>!d.params.includes(","))){var A=new TypeError("Function '".concat(o,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(o,")'."));throw A.data=u.data,A}throw u},n.onMismatch=(o,s,c)=>{var u=n.createError(o,s,c);if(["wrongType","mismatch"].includes(u.data.category)&&s.length===1&&Dt(s[0])&&c.some(d=>!d.params.includes(","))){var A=new TypeError("Function '".concat(o,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(o,")'."));throw A.data=u.data,A}throw u},n});function nt(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function ot(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function st(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}/*!
27
+ `);return Object.freeze(fI)};function Bi(){return!0}function ha(){return!1}function de(){}ug(re,fI,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const ni="Argument is not a typed-function.",Dg=function g(){function A(F){return typeof F=="object"&&F!==null&&F.constructor===Object}const a=[{name:"number",test:function(F){return typeof F=="number"}},{name:"string",test:function(F){return typeof F=="string"}},{name:"boolean",test:function(F){return typeof F=="boolean"}},{name:"Function",test:function(F){return typeof F=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(F){return F instanceof Date}},{name:"RegExp",test:function(F){return F instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(F){return F===null}},{name:"undefined",test:function(F){return F===void 0}}],e={name:"any",test:Bi,isAny:!0};let t,i,I=0,B={createCount:0};function r(F){const R=t.get(F);if(R)return R;let U='Unknown type "'+F+'"';const j=F.toLowerCase();let H;for(H of i)if(H.toLowerCase()===j){U+='. Did you mean "'+H+'" ?';break}throw new TypeError(U)}function o(F){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const U=R?r(R).index:i.length,j=[];for(let T=0;T<F.length;++T){if(!F[T]||typeof F[T].name!="string"||typeof F[T].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const V=F[T].name;if(t.has(V))throw new TypeError('Duplicate type name "'+V+'"');j.push(V),t.set(V,{name:V,test:F[T].test,isAny:F[T].isAny,index:U+T,conversionsTo:[]})}const H=i.slice(U);i=i.slice(0,U).concat(j).concat(H);for(let T=U+j.length;T<i.length;++T)t.get(i[T]).index=T}function n(){t=new Map,i=[],I=0,o([e],!1)}function C(F){const R=i.filter(U=>{const j=t.get(U);return!j.isAny&&j.test(F)});return R.length?R:["any"]}function Q(F){return F&&typeof F=="function"&&"_typedFunctionData"in F}function E(F,R,U){if(!Q(F))throw new TypeError(ni);const j=U&&U.exact,H=h(Array.isArray(R)?R.join(","):R),T=s(H);if(!j||T in F.signatures){const P=F._typedFunctionData.signatureMap.get(T);if(P)return P}const V=H.length;let K,$;if(j){let P;for(P in K=[],F.signatures)K.push(F._typedFunctionData.signatureMap.get(P))}else K=F._typedFunctionData.signatures;for(let P=0;P<V;++P){const DA=H[P],hA=[];let xA;for(xA of K){const OA=M(xA.params,P);if(OA&&(!DA.restParam||OA.restParam)){if(!OA.hasAny){const ia=b(OA);if(DA.types.some(oa=>!ia.has(oa.name)))continue}hA.push(xA)}}if(K=hA,K.length===0)break}for($ of K)if($.params.length<=V)return $;throw new TypeError("Signature not found (signature: "+(F.name||"unnamed")+"("+s(H,", ")+"))")}function s(F){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return F.map(U=>U.name).join(R)}function c(F){const R=F.indexOf("...")===0,U=(R?F.length>3?F.slice(3):"any":F).split("|").map(T=>r(T.trim()));let j=!1,H=R?"...":"";return{types:U.map(function(T){return j=T.isAny||j,H+=T.name+"|",{name:T.name,typeIndex:T.index,test:T.test,isAny:T.isAny,conversion:null,conversionIndex:-1}}),name:H.slice(0,-1),hasAny:j,hasConversion:!1,restParam:R}}function d(F){const R=F.types.map(V=>V.name),U=function(V){if(V.length===0)return[];const K=V.map(r);V.length>1&&K.sort((DA,hA)=>DA.index-hA.index);let $=K[0].conversionsTo;if(V.length===1)return $;$=$.concat([]);const P=new Set(V);for(let DA=1;DA<K.length;++DA){let hA;for(hA of K[DA].conversionsTo)P.has(hA.from)||($.push(hA),P.add(hA.from))}return $}(R);let j=F.hasAny,H=F.name;const T=U.map(function(V){const K=r(V.from);return j=K.isAny||j,H+="|"+V.from,{name:V.from,typeIndex:K.index,test:K.test,isAny:K.isAny,conversion:V,conversionIndex:V.index}});return{types:F.types.concat(T),name:H,hasAny:j,hasConversion:T.length>0,restParam:F.restParam}}function b(F){return F.typeSet||(F.typeSet=new Set,F.types.forEach(R=>F.typeSet.add(R.name))),F.typeSet}function h(F){const R=[];if(typeof F!="string")throw new TypeError("Signatures must be strings");const U=F.trim();if(U==="")return R;const j=U.split(",");for(let H=0;H<j.length;++H){const T=c(j[H].trim());if(T.restParam&&H!==j.length-1)throw new SyntaxError('Unexpected rest parameter "'+j[H]+'": only allowed for the last parameter');if(T.types.length===0)return null;R.push(T)}return R}function l(F){const R=BA(F);return!!R&&R.restParam}function w(F){if(F&&F.types.length!==0){if(F.types.length===1)return r(F.types[0].name).test;if(F.types.length===2){const R=r(F.types[0].name).test,U=r(F.types[1].name).test;return function(j){return R(j)||U(j)}}{const R=F.types.map(function(U){return r(U.name).test});return function(U){for(let j=0;j<R.length;j++)if(R[j](U))return!0;return!1}}}return Bi}function k(F){let R,U,j;if(l(F)){R=MA(F).map(w);const H=R.length,T=w(BA(F)),V=function(K){for(let $=H;$<K.length;$++)if(!T(K[$]))return!1;return!0};return function(K){for(let $=0;$<R.length;$++)if(!R[$](K[$]))return!1;return V(K)&&K.length>=H+1}}return F.length===0?function(H){return H.length===0}:F.length===1?(U=w(F[0]),function(H){return U(H[0])&&H.length===1}):F.length===2?(U=w(F[0]),j=w(F[1]),function(H){return U(H[0])&&j(H[1])&&H.length===2}):(R=F.map(w),function(H){for(let T=0;T<R.length;T++)if(!R[T](H[T]))return!1;return H.length===R.length})}function M(F,R){return R<F.length?F[R]:l(F)?BA(F):null}function N(F,R){const U=M(F,R);return U?b(U):new Set}function m(F){return F.conversion===null||F.conversion===void 0}function G(F,R){const U=new Set;return F.forEach(j=>{const H=N(j.params,R);let T;for(T of H)U.add(T)}),U.has("any")?["any"]:Array.from(U)}function L(F,R,U){let j,H;const T=F||"unnamed";let V,K=U;for(V=0;V<R.length;V++){const hA=[];if(K.forEach(xA=>{const OA=w(M(xA.params,V));(V<xA.params.length||l(xA.params))&&OA(R[V])&&hA.push(xA)}),hA.length===0){if(H=G(K,V),H.length>0){const xA=C(R[V]);return j=new TypeError("Unexpected type of argument in function "+T+" (expected: "+H.join(" or ")+", actual: "+xA.join(" | ")+", index: "+V+")"),j.data={category:"wrongType",fn:T,index:V,actual:xA,expected:H},j}}else K=hA}const $=K.map(function(hA){return l(hA.params)?1/0:hA.params.length});if(R.length<Math.min.apply(null,$))return H=G(K,V),j=new TypeError("Too few arguments in function "+T+" (expected: "+H.join(" or ")+", index: "+R.length+")"),j.data={category:"tooFewArgs",fn:T,index:R.length,expected:H},j;const P=Math.max.apply(null,$);if(R.length>P)return j=new TypeError("Too many arguments in function "+T+" (expected: "+P+", actual: "+R.length+")"),j.data={category:"tooManyArgs",fn:T,index:R.length,expectedLength:P},j;const DA=[];for(let hA=0;hA<R.length;++hA)DA.push(C(R[hA]).join("|"));return j=new TypeError('Arguments of type "'+DA.join(", ")+'" do not match any of the defined signatures of function '+T+"."),j.data={category:"mismatch",actual:DA},j}function x(F){let R=i.length+1;for(let U=0;U<F.types.length;U++)m(F.types[U])&&(R=Math.min(R,F.types[U].typeIndex));return R}function W(F){let R=I+1;for(let U=0;U<F.types.length;U++)m(F.types[U])||(R=Math.min(R,F.types[U].conversionIndex));return R}function X(F,R){if(F.hasAny){if(!R.hasAny)return 1}else if(R.hasAny)return-1;if(F.restParam){if(!R.restParam)return 1}else if(R.restParam)return-1;if(F.hasConversion){if(!R.hasConversion)return 1}else if(R.hasConversion)return-1;const U=x(F)-x(R);if(U<0)return-1;if(U>0)return 1;const j=W(F)-W(R);return j<0?-1:j>0?1:0}function eA(F,R){const U=F.params,j=R.params,H=BA(U),T=BA(j),V=l(U),K=l(j);if(V&&H.hasAny){if(!K||!T.hasAny)return 1}else if(K&&T.hasAny)return-1;let $,P=0,DA=0;for($ of U)$.hasAny&&++P,$.hasConversion&&++DA;let hA=0,xA=0;for($ of j)$.hasAny&&++hA,$.hasConversion&&++xA;if(P!==hA)return P-hA;if(V&&H.hasConversion){if(!K||!T.hasConversion)return 1}else if(K&&T.hasConversion)return-1;if(DA!==xA)return DA-xA;if(V){if(!K)return 1}else if(K)return-1;const OA=(U.length-j.length)*(V?-1:1);if(OA!==0)return OA;const ia=[];let oa,la=0;for(let Ja=0;Ja<U.length;++Ja){const Ae=X(U[Ja],j[Ja]);ia.push(Ae),la+=Ae}if(la!==0)return la;for(oa of ia)if(oa!==0)return oa;return 0}function AA(F,R){let U=R;if(F.some(H=>H.hasConversion)){const H=l(F),T=F.map(Z);U=function(){const V=[],K=H?arguments.length-1:arguments.length;for(let $=0;$<K;$++)V[$]=T[$](arguments[$]);return H&&(V[K]=arguments[K].map(T[K])),R.apply(this,V)}}let j=U;if(l(F)){const H=F.length-1;j=function(){return U.apply(this,CA(arguments,0,H).concat([CA(arguments,H)]))}}return j}function Z(F){let R,U,j,H;const T=[],V=[];switch(F.types.forEach(function(K){K.conversion&&(T.push(r(K.conversion.from).test),V.push(K.conversion.convert))}),V.length){case 0:return function(K){return K};case 1:return R=T[0],j=V[0],function(K){return R(K)?j(K):K};case 2:return R=T[0],U=T[1],j=V[0],H=V[1],function(K){return R(K)?j(K):U(K)?H(K):K};default:return function(K){for(let $=0;$<V.length;$++)if(T[$](K))return V[$](K);return K}}}function nA(F){return function R(U,j,H){if(j<U.length){const K=U[j];let $=[];if(K.restParam){const P=K.types.filter(m);P.length<K.types.length&&$.push({types:P,name:"..."+P.map(DA=>DA.name).join("|"),hasAny:P.some(DA=>DA.isAny),hasConversion:!1,restParam:!0}),$.push(K)}else $=K.types.map(function(P){return{types:[P],name:P.name,hasAny:P.isAny,hasConversion:P.conversion,restParam:!1}});return T=$,V=function(P){return R(U,j+1,H.concat([P]))},Array.prototype.concat.apply([],T.map(V))}return[H];var T,V}(F,0,[])}function bA(F,R){const U=Math.max(F.length,R.length);for(let K=0;K<U;K++){const $=N(F,K),P=N(R,K);let DA,hA=!1;for(DA of P)if($.has(DA)){hA=!0;break}if(!hA)return!1}const j=F.length,H=R.length,T=l(F),V=l(R);return T?V?j===H:H>=j:V?j>=H:j===H}function cA(F,R,U){const j=[];let H;for(H of F){let T=U[H];if(typeof T!="number")throw new TypeError('No definition for referenced signature "'+H+'"');if(T=R[T],typeof T!="function")return!1;j.push(T)}return j}function pA(F,R,U){const j=function(V){return V.map(K=>NA(K)?yA(K.referToSelf.callback):FA(K)?uA(K.referTo.references,K.referTo.callback):K)}(F),H=new Array(j.length).fill(!1);let T=!0;for(;T;){T=!1;let V=!0;for(let K=0;K<j.length;++K){if(H[K])continue;const $=j[K];if(NA($))j[K]=$.referToSelf.callback(U),j[K].referToSelf=$.referToSelf,H[K]=!0,V=!1;else if(FA($)){const P=cA($.referTo.references,j,R);P?(j[K]=$.referTo.callback.apply(this,P),j[K].referTo=$.referTo,H[K]=!0,V=!1):T=!0}}if(V&&T)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return j}function fA(F,R){if(B.createCount++,Object.keys(R).length===0)throw new SyntaxError("No signatures provided");B.warnAgainstDeprecatedThis&&function(sA){const Ea=/\bthis(\(|\.signatures\b)/;Object.keys(sA).forEach(Je=>{const Ha=sA[Je];if(Ea.test(Ha.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(R);const U=[],j=[],H={},T=[];let V;for(V in R){if(!Object.prototype.hasOwnProperty.call(R,V))continue;const sA=h(V);if(!sA)continue;U.forEach(function(ee){if(bA(ee,sA))throw new TypeError('Conflicting signatures "'+s(ee)+'" and "'+s(sA)+'".')}),U.push(sA);const Ea=j.length;j.push(R[V]);const Je=sA.map(d);let Ha;for(Ha of nA(Je)){const ee=s(Ha);T.push({params:Ha,name:ee,fn:Ea}),Ha.every(Lg=>!Lg.hasConversion)&&(H[ee]=Ea)}}T.sort(eA);const K=pA(j,H,ae);let $;for($ in H)Object.prototype.hasOwnProperty.call(H,$)&&(H[$]=K[H[$]]);const P=[],DA=new Map;for($ of T)DA.has($.name)||($.fn=K[$.fn],P.push($),DA.set($.name,$));const hA=P[0]&&P[0].params.length<=2&&!l(P[0].params),xA=P[1]&&P[1].params.length<=2&&!l(P[1].params),OA=P[2]&&P[2].params.length<=2&&!l(P[2].params),ia=P[3]&&P[3].params.length<=2&&!l(P[3].params),oa=P[4]&&P[4].params.length<=2&&!l(P[4].params),la=P[5]&&P[5].params.length<=2&&!l(P[5].params),Ja=hA&&xA&&OA&&ia&&oa&&la;for(let sA=0;sA<P.length;++sA)P[sA].test=k(P[sA].params);const Ae=hA?w(P[0].params[0]):ha,Ng=xA?w(P[1].params[0]):ha,Ce=OA?w(P[2].params[0]):ha,Ee=ia?w(P[3].params[0]):ha,Oe=oa?w(P[4].params[0]):ha,Pe=la?w(P[5].params[0]):ha,Ca=hA?w(P[0].params[1]):ha,Gg=xA?w(P[1].params[1]):ha,ze=OA?w(P[2].params[1]):ha,Qe=ia?w(P[3].params[1]):ha,Re=oa?w(P[4].params[1]):ha,We=la?w(P[5].params[1]):ha;for(let sA=0;sA<P.length;++sA)P[sA].implementation=AA(P[sA].params,P[sA].fn);const Ne=hA?P[0].implementation:de,Ge=xA?P[1].implementation:de,Ve=OA?P[2].implementation:de,Xe=ia?P[3].implementation:de,ja=oa?P[4].implementation:de,Se=la?P[5].implementation:de,Ue=hA?P[0].params.length:-1,xe=xA?P[1].params.length:-1,Ze=OA?P[2].params.length:-1,Sg=ia?P[3].params.length:-1,_e=oa?P[4].params.length:-1,Ug=la?P[5].params.length:-1,xg=Ja?6:0,va=P.length,$e=P.map(sA=>sA.test),Ag=P.map(sA=>sA.implementation),Le=function(){for(let sA=xg;sA<va;sA++)if($e[sA](arguments))return Ag[sA].apply(this,arguments);return B.onMismatch(F,arguments,P)};function ae(sA,Ea){return arguments.length===Ue&&Ae(sA)&&Ca(Ea)?Ne.apply(this,arguments):arguments.length===xe&&Ng(sA)&&Gg(Ea)?Ge.apply(this,arguments):arguments.length===Ze&&Ce(sA)&&ze(Ea)?Ve.apply(this,arguments):arguments.length===Sg&&Ee(sA)&&Qe(Ea)?Xe.apply(this,arguments):arguments.length===_e&&Oe(sA)&&Re(Ea)?ja.apply(this,arguments):arguments.length===Ug&&Pe(sA)&&We(Ea)?Se.apply(this,arguments):Le.apply(this,arguments)}try{Object.defineProperty(ae,"name",{value:F})}catch{}return ae.signatures=H,ae._typedFunctionData={signatures:P,signatureMap:DA},ae}function oA(F,R,U){throw L(F,R,U)}function MA(F){return CA(F,0,F.length-1)}function BA(F){return F[F.length-1]}function CA(F,R,U){return Array.prototype.slice.call(F,R,U)}function uA(F,R){return{referTo:{references:F,callback:R}}}function yA(F){if(typeof F!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:F}}}function FA(F){return F&&typeof F.referTo=="object"&&Array.isArray(F.referTo.references)&&typeof F.referTo.callback=="function"}function NA(F){return F&&typeof F.referToSelf=="object"&&typeof F.referToSelf.callback=="function"}function WA(F,R){if(!F)return R;if(R&&R!==F){const U=new Error("Function names do not match (expected: "+F+", actual: "+R+")");throw U.data={actual:R,expected:F},U}return F}function VA(F){let R;for(const U in F)Object.prototype.hasOwnProperty.call(F,U)&&(Q(F[U])||typeof F[U].signature=="string")&&(R=WA(R,F[U].name));return R}function ra(F,R){let U;for(U in R)if(Object.prototype.hasOwnProperty.call(R,U)){if(U in F&&R[U]!==F[U]){const j=new Error('Signature "'+U+'" is defined twice');throw j.data={signature:U,sourceFunction:R[U],destFunction:F[U]},j}F[U]=R[U]}}n(),o(a);const YA=B;function QA(F){if(!F||typeof F.from!="string"||typeof F.to!="string"||typeof F.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(F.to===F.from)throw new SyntaxError('Illegal to define conversion from "'+F.from+'" to itself.')}return B=function(F){const R=typeof F=="string";let U=R?F:"";const j={};for(let H=R?1:0;H<arguments.length;++H){const T=arguments[H];let V,K={};if(typeof T=="function"?(V=T.name,typeof T.signature=="string"?K[T.signature]=T:Q(T)&&(K=T.signatures)):A(T)&&(K=T,R||(V=VA(T))),Object.keys(K).length===0){const $=new TypeError("Argument to 'typed' at index "+H+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw $.data={index:H,argument:T},$}R||(U=WA(U,V)),ra(j,K)}return fA(U||"",j)},B.create=g,B.createCount=YA.createCount,B.onMismatch=oA,B.throwMismatchError=oA,B.createError=L,B.clear=n,B.clearConversions=function(){let F;for(F of i)t.get(F).conversionsTo=[];I=0},B.addTypes=o,B._findType=r,B.referTo=function(){const F=MA(arguments).map(U=>s(h(U))),R=BA(arguments);if(typeof R!="function")throw new TypeError("Callback function expected as last argument");return uA(F,R)},B.referToSelf=yA,B.convert=function(F,R){const U=r(R);if(U.test(F))return F;const j=U.conversionsTo;if(j.length===0)throw new Error("There are no conversions to "+R+" defined.");for(let H=0;H<j.length;H++)if(r(j[H].from).test(F))return j[H].convert(F);throw new Error("Cannot convert "+F+" to "+R)},B.findSignature=E,B.find=function(F,R,U){return E(F,R,U).implementation},B.isTypedFunction=Q,B.warnAgainstDeprecatedThis=!0,B.addType=function(F,R){let U="any";R!==!1&&t.has("Object")&&(U="Object"),B.addTypes([F],U)},B.addConversion=function(F){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};QA(F);const U=r(F.to),j=U.conversionsTo.find(H=>H.from===F.from);if(j){if(!R||!R.override)throw new Error('There is already a conversion from "'+F.from+'" to "'+U.name+'"');B.removeConversion({from:j.from,to:F.to,convert:j.convert})}U.conversionsTo.push({from:F.from,convert:F.convert,index:I++})},B.addConversions=function(F,R){F.forEach(U=>B.addConversion(U,R))},B.removeConversion=function(F){QA(F);const R=r(F.to),U=function(H,T){for(let V=0;V<H.length;V++)if(T(H[V]))return H[V]}(R.conversionsTo,H=>H.from===F.from);if(!U)throw new Error("Attempt to remove nonexistent conversion from "+F.from+" to "+F.to);if(U.convert!==F.convert)throw new Error("Conversion to remove does not match existing conversion");const j=R.conversionsTo.indexOf(U);R.conversionsTo.splice(j,1)},B.resolve=function(F,R){if(!Q(F))throw new TypeError(ni);const U=F._typedFunctionData.signatures;for(let j=0;j<U.length;++j)if(U[j].test(R))return U[j];return null},B}();function lA(g,A,a,e){function t(i){var I=function(B,r){for(var o={},n=0;n<r.length;n++){var C=r[n],Q=B[C];Q!==void 0&&(o[C]=Q)}return o}(i,A.map(er));return function(B,r,o){var n=r.filter(Q=>!function(E){return E&&E[0]==="?"}(Q)).every(Q=>o[Q]!==void 0);if(!n){var C=r.filter(Q=>o[Q]===void 0);throw new Error('Cannot create function "'.concat(B,'", ')+"some dependencies are missing: ".concat(C.map(Q=>'"'.concat(Q,'"')).join(", "),"."))}}(g,A,i),a(I)}return t.isFactory=!0,t.fn=g,t.dependencies=A.slice().sort(),e&&(t.meta=e),t}function er(g){return g&&g[0]==="?"?g.slice(1):g}function LA(g){return typeof g=="boolean"||!!isFinite(g)&&g===Math.round(g)}function at(g,A,a){var e={2:"0b",8:"0o",16:"0x"}[A],t="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!LA(a))throw new Error("size must be an integer");if(g>2**(a-1)-1||g<-(2**(a-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!LA(g))throw new Error("Value must be an integer");g<0&&(g+=2**a),t="i".concat(a)}var i="";return g<0&&(g=-g,i="-"),"".concat(i).concat(e).concat(g.toString(A)).concat(t)}function ct(g,A){if(typeof A=="function")return A(g);if(g===1/0)return"Infinity";if(g===-1/0)return"-Infinity";if(isNaN(g))return"NaN";var{notation:a,precision:e,wordSize:t}=pI(A);switch(a){case"fixed":return function(i,I){if(isNaN(i)||!isFinite(i))return String(i);var B=Qg(i),r=typeof I=="number"?sg(B,B.exponent+1+I):B,o=r.coefficients,n=r.exponent+1,C=n+(I||0);return o.length<C&&(o=o.concat(De(C-o.length))),n<0&&(o=De(1-n).concat(o),n=1),n<o.length&&o.splice(n,0,n===0?"0.":"."),r.sign+o.join("")}(g,e);case"exponential":return ri(g,e);case"engineering":return function(i,I){if(isNaN(i)||!isFinite(i))return String(i);var B=Qg(i),r=sg(B,I),o=r.exponent,n=r.coefficients,C=o%3==0?o:o<0?o-3-o%3:o-o%3;if(RA(I))for(;I>n.length||o-C+1>n.length;)n.push(0);else for(var Q=Math.abs(o-C)-(n.length-1),E=0;E<Q;E++)n.push(0);for(var s=Math.abs(o-C),c=1;s>0;)c++,s--;var d=n.slice(c).join(""),b=RA(I)&&d.length||d.match(/[1-9]/)?"."+d:"",h=n.slice(0,c).join("")+b+"e"+(o>=0?"+":"")+C.toString();return r.sign+h}(g,e);case"bin":return at(g,2,t);case"oct":return at(g,8,t);case"hex":return at(g,16,t);case"auto":return function(i,I,B){if(isNaN(i)||!isFinite(i))return String(i);var r=Ci(B?.lowerExp,-3),o=Ci(B?.upperExp,5),n=Qg(i),C=I?sg(n,I):n;if(C.exponent<r||C.exponent>=o)return ri(i,I);var Q=C.coefficients,E=C.exponent;Q.length<I&&(Q=Q.concat(De(I-Q.length))),Q=Q.concat(De(E-Q.length+1+(Q.length<I?I-Q.length:0)));var s=E>0?E:0;return s<(Q=De(-E).concat(Q)).length-1&&Q.splice(s+1,0,"."),C.sign+Q.join("")}(g,e,A).replace(/((\.\d*?)(0+))($|e)/,function(){var i=arguments[2],I=arguments[4];return i!=="."?i+I:I});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function pI(g){var A,a,e="auto";if(g!==void 0)if(RA(g))A=g;else if(TA(g))A=g.toNumber();else{if(!kt(g))throw new Error("Unsupported type of options, number, BigNumber, or object expected");g.precision!==void 0&&(A=oi(g.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),g.wordSize!==void 0&&(a=oi(g.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),g.notation&&(e=g.notation)}return{notation:e,precision:A,wordSize:a}}function Qg(g){var A=String(g).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+g);var a=A[1],e=A[2],t=parseFloat(A[4]||"0"),i=e.indexOf(".");t+=i!==-1?i-1:e.length-1;var I=e.replace(".","").replace(/^0*/,function(B){return t-=B.length,""}).replace(/0*$/,"").split("").map(function(B){return parseInt(B)});return I.length===0&&(I.push(0),t++),{sign:a,coefficients:I,exponent:t}}function ri(g,A){if(isNaN(g)||!isFinite(g))return String(g);var a=Qg(g),e=A?sg(a,A):a,t=e.coefficients,i=e.exponent;t.length<A&&(t=t.concat(De(A-t.length)));var I=t.shift();return e.sign+I+(t.length>0?"."+t.join(""):"")+"e"+(i>=0?"+":"")+i}function sg(g,A){for(var a={sign:g.sign,coefficients:g.coefficients,exponent:g.exponent},e=a.coefficients;A<=0;)e.unshift(0),a.exponent++,A++;if(e.length>A&&e.splice(A,e.length-A)[0]>=5){var t=A-1;for(e[t]++;e[t]===10;)e.pop(),t===0&&(e.unshift(0),a.exponent++,t++),e[--t]++}return a}function De(g){for(var A=[],a=0;a<g;a++)A.push(0);return A}function cg(g,A){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,e=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(a<=0)throw new Error("Relative tolerance must be greater than 0");if(e<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(g)&&!isNaN(A)&&(isFinite(g)&&isFinite(A)?g===A||Math.abs(g-A)<=Math.max(a*Math.max(Math.abs(g),Math.abs(A)),e):g===A)}function oi(g,A){return RA(g)?g:TA(g)?g.toNumber():void A()}function Ci(g,A){return RA(g)?g:TA(g)?g.toNumber():A}var FI=function(){return FI=Dg.create,Dg},gr=lA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(g){var{BigNumber:A,Complex:a,DenseMatrix:e,Fraction:t}=g,i=FI();return i.clear(),i.addTypes([{name:"number",test:RA},{name:"Complex",test:DI},{name:"BigNumber",test:TA},{name:"bigint",test:Fn},{name:"Fraction",test:wI},{name:"Unit",test:yI},{name:"identifier",test:I=>Ma&&/^(?:[A-Za-z\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\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\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\u09FC\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\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\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\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\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-\uAB69\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\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\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-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\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]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\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-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\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\u0560-\u0588\u05D0-\u05EA\u05EF-\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\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\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\u09FC\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\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\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\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\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-\uAB69\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\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\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-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\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]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\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-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(I)},{name:"string",test:Ma},{name:"Chain",test:ar},{name:"Array",test:PA},{name:"Matrix",test:HA},{name:"DenseMatrix",test:mn},{name:"SparseMatrix",test:Mn},{name:"Range",test:kn},{name:"Index",test:Mt},{name:"boolean",test:Rn},{name:"ResultSet",test:Nn},{name:"Help",test:Gn},{name:"function",test:Sn},{name:"Date",test:Un},{name:"RegExp",test:xn},{name:"null",test:Jn},{name:"undefined",test:jn},{name:"AccessorNode",test:vn},{name:"ArrayNode",test:Hn},{name:"AssignmentNode",test:Yn},{name:"BlockNode",test:Kn},{name:"ConditionalNode",test:qn},{name:"ConstantNode",test:Tn},{name:"FunctionNode",test:Pn},{name:"FunctionAssignmentNode",test:On},{name:"IndexNode",test:zn},{name:"Node",test:Wn},{name:"ObjectNode",test:Vn},{name:"OperatorNode",test:Xn},{name:"ParenthesisNode",test:Zn},{name:"RangeNode",test:_n},{name:"RelationalNode",test:$n},{name:"SymbolNode",test:Ar},{name:"Map",test:Ln},{name:"Object",test:kt}]),i.addConversions([{from:"number",to:"BigNumber",convert:function(I){if(A||gg(I),I.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+I+"). Use function bignumber(x) to convert to BigNumber.");return new A(I)}},{from:"number",to:"Complex",convert:function(I){return a||tg(I),new a(I,0)}},{from:"BigNumber",to:"Complex",convert:function(I){return a||tg(I),new a(I.toNumber(),0)}},{from:"bigint",to:"number",convert:function(I){if(I>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+I+")");return Number(I)}},{from:"bigint",to:"BigNumber",convert:function(I){return A||gg(I),new A(I.toString())}},{from:"bigint",to:"Fraction",convert:function(I){return t||ig(I),new t(I)}},{from:"Fraction",to:"BigNumber",convert:function(I){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(I){return a||tg(I),new a(I.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(I){t||ig(I);var B=new t(I);if(B.valueOf()!==I)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+I+"). Use function fraction(x) to convert to Fraction.");return B}},{from:"string",to:"number",convert:function(I){var B=Number(I);if(isNaN(B))throw new Error('Cannot convert "'+I+'" to a number');return B}},{from:"string",to:"BigNumber",convert:function(I){A||gg(I);try{return new A(I)}catch{throw new Error('Cannot convert "'+I+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(I){try{return BigInt(I)}catch{throw new Error('Cannot convert "'+I+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(I){t||ig(I);try{return new t(I)}catch{throw new Error('Cannot convert "'+I+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(I){a||tg(I);try{return new a(I)}catch{throw new Error('Cannot convert "'+I+'" to Complex')}}},{from:"boolean",to:"number",convert:function(I){return+I}},{from:"boolean",to:"BigNumber",convert:function(I){return A||gg(I),new A(+I)}},{from:"boolean",to:"bigint",convert:function(I){return BigInt(+I)}},{from:"boolean",to:"Fraction",convert:function(I){return t||ig(I),new t(+I)}},{from:"boolean",to:"string",convert:function(I){return String(I)}},{from:"Array",to:"Matrix",convert:function(I){return e||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new e(I)}},{from:"Matrix",to:"Array",convert:function(I){return I.valueOf()}}]),i.onMismatch=(I,B,r)=>{var o=i.createError(I,B,r);if(["wrongType","mismatch"].includes(o.data.category)&&B.length===1&&lg(B[0])&&r.some(C=>!C.params.includes(","))){var n=new TypeError("Function '".concat(I,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(I,")'."));throw n.data=o.data,n}throw o},i.onMismatch=(I,B,r)=>{var o=i.createError(I,B,r);if(["wrongType","mismatch"].includes(o.data.category)&&B.length===1&&lg(B[0])&&r.some(C=>!C.params.includes(","))){var n=new TypeError("Function '".concat(I,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(I,")'."));throw n.data=o.data,n}throw o},i});function gg(g){throw new Error("Cannot convert value ".concat(g," into a BigNumber: no class 'BigNumber' provided"))}function tg(g){throw new Error("Cannot convert value ".concat(g," into a Complex number: no class 'Complex' provided"))}function ig(g){throw new Error("Cannot convert value ".concat(g," into a Fraction, no class 'Fraction' provided."))}/*!
16
28
  * decimal.js v10.5.0
17
29
  * An arbitrary-precision Decimal type for JavaScript.
18
30
  * https://github.com/MikeMcl/decimal.js
19
31
  * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
20
32
  * MIT Licence
21
- */var Cn,ba,_a=9e15,Ia=1e9,ur="0123456789abcdef",xt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",vt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",dr={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-_a,maxE:_a,crypto:!1},Y=!0,Mt="[DecimalError] ",ya=Mt+"Invalid argument: ",In=Mt+"Precision limit exceeded",Bn=Mt+"crypto unavailable",Dn="[object Decimal]",Ne=Math.floor,ke=Math.pow,pA=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,mA=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,EA=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,yn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ta=1e7,CA=xt.length-1,hr=vt.length-1,S={toStringTag:Dn};function Re(r){var e,a,t,i=r.length-1,n="",o=r[0];if(i>0){for(n+=o,e=1;e<i;e++)(a=7-(t=r[e]+"").length)&&(n+=Ca(a)),n+=t;(a=7-(t=(o=r[e])+"").length)&&(n+=Ca(a))}else if(o===0)return"0";for(;o%10==0;)o/=10;return n+o}function ze(r,e,a){if(r!==~~r||r<e||r>a)throw Error(ya+r)}function $a(r,e,a,t){var i,n,o,s;for(n=r[0];n>=10;n/=10)--e;return--e<0?(e+=7,i=0):(i=Math.ceil((e+1)/7),e%=7),n=ke(10,7-e),s=r[i]%n|0,t==null?e<3?(e==0?s=s/100|0:e==1&&(s=s/10|0),o=a<4&&s==99999||a>3&&s==49999||s==5e4||s==0):o=(a<4&&s+1==n||a>3&&s+1==n/2)&&(r[i+1]/n/100|0)==ke(10,e-2)-1||(s==n/2||s==0)&&!(r[i+1]/n/100|0):e<4?(e==0?s=s/1e3|0:e==1?s=s/100|0:e==2&&(s=s/10|0),o=(t||a<4)&&s==9999||!t&&a>3&&s==4999):o=((t||a<4)&&s+1==n||!t&&a>3&&s+1==n/2)&&(r[i+1]/n/1e3|0)==ke(10,e-3)-1,o}function Et(r,e,a){for(var t,i,n=[0],o=0,s=r.length;o<s;){for(i=n.length;i--;)n[i]*=e;for(n[0]+=ur.indexOf(r.charAt(o++)),t=0;t<n.length;t++)n[t]>a-1&&(n[t+1]===void 0&&(n[t+1]=0),n[t+1]+=n[t]/a|0,n[t]%=a)}return n.reverse()}S.absoluteValue=S.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),H(r)},S.ceil=function(){return H(new this.constructor(this),this.e+1,2)},S.clampedTo=S.clamp=function(r,e){var a=this,t=a.constructor;if(r=new t(r),e=new t(e),!r.s||!e.s)return new t(NaN);if(r.gt(e))throw Error(ya+e);return a.cmp(r)<0?r:a.cmp(e)>0?e:new t(a)},S.comparedTo=S.cmp=function(r){var e,a,t,i,n=this,o=n.d,s=(r=new n.constructor(r)).d,c=n.s,u=r.s;if(!o||!s)return c&&u?c!==u?c:o===s?0:!o^c<0?1:-1:NaN;if(!o[0]||!s[0])return o[0]?c:s[0]?-u:0;if(c!==u)return c;if(n.e!==r.e)return n.e>r.e^c<0?1:-1;for(e=0,a=(t=o.length)<(i=s.length)?t:i;e<a;++e)if(o[e]!==s[e])return o[e]>s[e]^c<0?1:-1;return t===i?0:t>i^c<0?1:-1},S.cosine=S.cos=function(){var r,e,a=this,t=a.constructor;return a.d?a.d[0]?(r=t.precision,e=t.rounding,t.precision=r+Math.max(a.e,a.sd())+7,t.rounding=1,a=function(i,n){var o,s,c;if(n.isZero())return n;s=n.d.length,s<32?c=(1/At(4,o=Math.ceil(s/3))).toString():(o=16,c="2.3283064365386962890625e-10"),i.precision+=o,n=Ta(i,1,n.times(c),new i(1));for(var u=o;u--;){var A=n.times(n);n=A.times(A).minus(A).times(8).plus(1)}return i.precision-=o,n}(t,oi(t,a)),t.precision=r,t.rounding=e,H(ba==2||ba==3?a.neg():a,r,e,!0)):new t(1):new t(NaN)},S.cubeRoot=S.cbrt=function(){var r,e,a,t,i,n,o,s,c,u,A=this,d=A.constructor;if(!A.isFinite()||A.isZero())return new d(A);for(Y=!1,(n=A.s*ke(A.s*A,1/3))&&Math.abs(n)!=1/0?t=new d(n.toString()):(a=Re(A.d),(n=((r=A.e)-a.length+1)%3)&&(a+=n==1||n==-2?"0":"00"),n=ke(a,1/3),r=Ne((r+1)/3)-(r%3==(r<0?-1:2)),(t=new d(a=n==1/0?"5e"+r:(a=n.toExponential()).slice(0,a.indexOf("e")+1)+r)).s=A.s),o=(r=d.precision)+3;;)if(u=(c=(s=t).times(s).times(s)).plus(A),t=he(u.plus(A).times(s),u.plus(c),o+2,1),Re(s.d).slice(0,o)===(a=Re(t.d)).slice(0,o)){if((a=a.slice(o-3,o+1))!="9999"&&(i||a!="4999")){+a&&(+a.slice(1)||a.charAt(0)!="5")||(H(t,r+1,1),e=!t.times(t).times(t).eq(A));break}if(!i&&(H(s,r+1,0),s.times(s).times(s).eq(A))){t=s;break}o+=4,i=1}return Y=!0,H(t,r,d.rounding,e)},S.decimalPlaces=S.dp=function(){var r,e=this.d,a=NaN;if(e){if(a=7*((r=e.length-1)-Ne(this.e/7)),r=e[r])for(;r%10==0;r/=10)a--;a<0&&(a=0)}return a},S.dividedBy=S.div=function(r){return he(this,new this.constructor(r))},S.dividedToIntegerBy=S.divToInt=function(r){var e=this.constructor;return H(he(this,new e(r),0,1,1),e.precision,e.rounding)},S.equals=S.eq=function(r){return this.cmp(r)===0},S.floor=function(){return H(new this.constructor(this),this.e+1,3)},S.greaterThan=S.gt=function(r){return this.cmp(r)>0},S.greaterThanOrEqualTo=S.gte=function(r){var e=this.cmp(r);return e==1||e===0},S.hyperbolicCosine=S.cosh=function(){var r,e,a,t,i,n=this,o=n.constructor,s=new o(1);if(!n.isFinite())return new o(n.s?1/0:NaN);if(n.isZero())return s;a=o.precision,t=o.rounding,o.precision=a+Math.max(n.e,n.sd())+4,o.rounding=1,(i=n.d.length)<32?e=(1/At(4,r=Math.ceil(i/3))).toString():(r=16,e="2.3283064365386962890625e-10"),n=Ta(o,1,n.times(e),new o(1),!0);for(var c,u=r,A=new o(8);u--;)c=n.times(n),n=s.minus(c.times(A.minus(c.times(A))));return H(n,o.precision=a,o.rounding=t,!0)},S.hyperbolicSine=S.sinh=function(){var r,e,a,t,i=this,n=i.constructor;if(!i.isFinite()||i.isZero())return new n(i);if(e=n.precision,a=n.rounding,n.precision=e+Math.max(i.e,i.sd())+4,n.rounding=1,(t=i.d.length)<3)i=Ta(n,2,i,i,!0);else{r=(r=1.4*Math.sqrt(t))>16?16:0|r,i=Ta(n,2,i=i.times(1/At(5,r)),i,!0);for(var o,s=new n(5),c=new n(16),u=new n(20);r--;)o=i.times(i),i=i.times(s.plus(o.times(c.times(o).plus(u))))}return n.precision=e,n.rounding=a,H(i,e,a,!0)},S.hyperbolicTangent=S.tanh=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+7,t.rounding=1,he(a.sinh(),a.cosh(),t.precision=r,t.rounding=e)):new t(a.s)},S.inverseCosine=S.acos=function(){var r=this,e=r.constructor,a=r.abs().cmp(1),t=e.precision,i=e.rounding;return a!==-1?a===0?r.isNeg()?sa(e,t,i):new e(0):new e(NaN):r.isZero()?sa(e,t+4,i).times(.5):(e.precision=t+6,e.rounding=1,r=new e(1).minus(r).div(r.plus(1)).sqrt().atan(),e.precision=t,e.rounding=i,r.times(2))},S.inverseHyperbolicCosine=S.acosh=function(){var r,e,a=this,t=a.constructor;return a.lte(1)?new t(a.eq(1)?0:NaN):a.isFinite()?(r=t.precision,e=t.rounding,t.precision=r+Math.max(Math.abs(a.e),a.sd())+4,t.rounding=1,Y=!1,a=a.times(a).minus(1).sqrt().plus(a),Y=!0,t.precision=r,t.rounding=e,a.ln()):new t(a)},S.inverseHyperbolicSine=S.asinh=function(){var r,e,a=this,t=a.constructor;return!a.isFinite()||a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+2*Math.max(Math.abs(a.e),a.sd())+6,t.rounding=1,Y=!1,a=a.times(a).plus(1).sqrt().plus(a),Y=!0,t.precision=r,t.rounding=e,a.ln())},S.inverseHyperbolicTangent=S.atanh=function(){var r,e,a,t,i=this,n=i.constructor;return i.isFinite()?i.e>=0?new n(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=n.precision,e=n.rounding,t=i.sd(),Math.max(t,r)<2*-i.e-1?H(new n(i),r,e,!0):(n.precision=a=t-i.e,i=he(i.plus(1),new n(1).minus(i),a+r,1),n.precision=r+4,n.rounding=1,i=i.ln(),n.precision=r,n.rounding=e,i.times(.5))):new n(NaN)},S.inverseSine=S.asin=function(){var r,e,a,t,i=this,n=i.constructor;return i.isZero()?new n(i):(e=i.abs().cmp(1),a=n.precision,t=n.rounding,e!==-1?e===0?((r=sa(n,a+4,t).times(.5)).s=i.s,r):new n(NaN):(n.precision=a+6,n.rounding=1,i=i.div(new n(1).minus(i.times(i)).sqrt().plus(1)).atan(),n.precision=a,n.rounding=t,i.times(2)))},S.inverseTangent=S.atan=function(){var r,e,a,t,i,n,o,s,c,u=this,A=u.constructor,d=A.precision,b=A.rounding;if(u.isFinite()){if(u.isZero())return new A(u);if(u.abs().eq(1)&&d+4<=hr)return(o=sa(A,d+4,b).times(.25)).s=u.s,o}else{if(!u.s)return new A(NaN);if(d+4<=hr)return(o=sa(A,d+4,b).times(.5)).s=u.s,o}for(A.precision=s=d+10,A.rounding=1,r=a=Math.min(28,s/7+2|0);r;--r)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(Y=!1,e=Math.ceil(s/7),t=1,c=u.times(u),o=new A(u),i=u;r!==-1;)if(i=i.times(c),n=o.minus(i.div(t+=2)),i=i.times(c),(o=n.plus(i.div(t+=2))).d[e]!==void 0)for(r=e;o.d[r]===n.d[r]&&r--;);return a&&(o=o.times(2<<a-1)),Y=!0,H(o,A.precision=d,A.rounding=b,!0)},S.isFinite=function(){return!!this.d},S.isInteger=S.isInt=function(){return!!this.d&&Ne(this.e/7)>this.d.length-2},S.isNaN=function(){return!this.s},S.isNegative=S.isNeg=function(){return this.s<0},S.isPositive=S.isPos=function(){return this.s>0},S.isZero=function(){return!!this.d&&this.d[0]===0},S.lessThan=S.lt=function(r){return this.cmp(r)<0},S.lessThanOrEqualTo=S.lte=function(r){return this.cmp(r)<1},S.logarithm=S.log=function(r){var e,a,t,i,n,o,s,c,u=this,A=u.constructor,d=A.precision,b=A.rounding;if(r==null)r=new A(10),e=!0;else{if(a=(r=new A(r)).d,r.s<0||!a||!a[0]||r.eq(1))return new A(NaN);e=r.eq(10)}if(a=u.d,u.s<0||!a||!a[0]||u.eq(1))return new A(a&&!a[0]?-1/0:u.s!=1?NaN:a?0:1/0);if(e)if(a.length>1)n=!0;else{for(i=a[0];i%10==0;)i/=10;n=i!==1}if(Y=!1,o=ma(u,s=d+5),t=e?Ft(A,s+10):ma(r,s),$a((c=he(o,t,s,1)).d,i=d,b))do if(o=ma(u,s+=10),t=e?Ft(A,s+10):ma(r,s),c=he(o,t,s,1),!n){+Re(c.d).slice(i+1,i+15)+1==1e14&&(c=H(c,d+1,0));break}while($a(c.d,i+=10,b));return Y=!0,H(c,d,b)},S.minus=S.sub=function(r){var e,a,t,i,n,o,s,c,u,A,d,b,h=this,l=h.constructor;if(r=new l(r),!h.d||!r.d)return h.s&&r.s?h.d?r.s=-r.s:r=new l(r.d||h.s!==r.s?h:NaN):r=new l(NaN),r;if(h.s!=r.s)return r.s=-r.s,h.plus(r);if(u=h.d,b=r.d,s=l.precision,c=l.rounding,!u[0]||!b[0]){if(b[0])r.s=-r.s;else{if(!u[0])return new l(c===3?-0:0);r=new l(h)}return Y?H(r,s,c):r}if(a=Ne(r.e/7),A=Ne(h.e/7),u=u.slice(),n=A-a){for((d=n<0)?(e=u,n=-n,o=b.length):(e=b,a=A,o=u.length),n>(t=Math.max(Math.ceil(s/7),o)+2)&&(n=t,e.length=1),e.reverse(),t=n;t--;)e.push(0);e.reverse()}else{for((d=(t=u.length)<(o=b.length))&&(o=t),t=0;t<o;t++)if(u[t]!=b[t]){d=u[t]<b[t];break}n=0}for(d&&(e=u,u=b,b=e,r.s=-r.s),o=u.length,t=b.length-o;t>0;--t)u[o++]=0;for(t=b.length;t>n;){if(u[--t]<b[t]){for(i=t;i&&u[--i]===0;)u[i]=ta-1;--u[i],u[t]+=ta}u[t]-=b[t]}for(;u[--o]===0;)u.pop();for(;u[0]===0;u.shift())--a;return u[0]?(r.d=u,r.e=Ct(u,a),Y?H(r,s,c):r):new l(c===3?-0:0)},S.modulo=S.mod=function(r){var e,a=this,t=a.constructor;return r=new t(r),!a.d||!r.s||r.d&&!r.d[0]?new t(NaN):!r.d||a.d&&!a.d[0]?H(new t(a),t.precision,t.rounding):(Y=!1,t.modulo==9?(e=he(a,r.abs(),0,3,1)).s*=r.s:e=he(a,r,0,t.modulo,1),e=e.times(r),Y=!0,a.minus(e))},S.naturalExponential=S.exp=function(){return Xt(this)},S.naturalLogarithm=S.ln=function(){return ma(this)},S.negated=S.neg=function(){var r=new this.constructor(this);return r.s=-r.s,H(r)},S.plus=S.add=function(r){var e,a,t,i,n,o,s,c,u,A,d=this,b=d.constructor;if(r=new b(r),!d.d||!r.d)return d.s&&r.s?d.d||(r=new b(r.d||d.s===r.s?d:NaN)):r=new b(NaN),r;if(d.s!=r.s)return r.s=-r.s,d.minus(r);if(u=d.d,A=r.d,s=b.precision,c=b.rounding,!u[0]||!A[0])return A[0]||(r=new b(d)),Y?H(r,s,c):r;if(n=Ne(d.e/7),t=Ne(r.e/7),u=u.slice(),i=n-t){for(i<0?(a=u,i=-i,o=A.length):(a=A,t=n,o=u.length),i>(o=(n=Math.ceil(s/7))>o?n+1:o+1)&&(i=o,a.length=1),a.reverse();i--;)a.push(0);a.reverse()}for((o=u.length)-(i=A.length)<0&&(i=o,a=A,A=u,u=a),e=0;i;)e=(u[--i]=u[i]+A[i]+e)/ta|0,u[i]%=ta;for(e&&(u.unshift(e),++t),o=u.length;u[--o]==0;)u.pop();return r.d=u,r.e=Ct(u,t),Y?H(r,s,c):r},S.precision=S.sd=function(r){var e,a=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(ya+r);return a.d?(e=ii(a.d),r&&a.e+1>e&&(e=a.e+1)):e=NaN,e},S.round=function(){var r=this,e=r.constructor;return H(new e(r),r.e+1,e.rounding)},S.sine=S.sin=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+Math.max(a.e,a.sd())+7,t.rounding=1,a=function(i,n){var o,s=n.d.length;if(s<3)return n.isZero()?n:Ta(i,2,n,n);o=(o=1.4*Math.sqrt(s))>16?16:0|o,n=n.times(1/At(5,o)),n=Ta(i,2,n,n);for(var c,u=new i(5),A=new i(16),d=new i(20);o--;)c=n.times(n),n=n.times(u.plus(c.times(A.times(c).minus(d))));return n}(t,oi(t,a)),t.precision=r,t.rounding=e,H(ba>2?a.neg():a,r,e,!0)):new t(NaN)},S.squareRoot=S.sqrt=function(){var r,e,a,t,i,n,o=this,s=o.d,c=o.e,u=o.s,A=o.constructor;if(u!==1||!s||!s[0])return new A(!u||u<0&&(!s||s[0])?NaN:s?o:1/0);for(Y=!1,(u=Math.sqrt(+o))==0||u==1/0?(((e=Re(s)).length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=Ne((c+1)/2)-(c<0||c%2),t=new A(e=u==1/0?"5e"+c:(e=u.toExponential()).slice(0,e.indexOf("e")+1)+c)):t=new A(u.toString()),a=(c=A.precision)+3;;)if(t=(n=t).plus(he(o,n,a+2,1)).times(.5),Re(n.d).slice(0,a)===(e=Re(t.d)).slice(0,a)){if((e=e.slice(a-3,a+1))!="9999"&&(i||e!="4999")){+e&&(+e.slice(1)||e.charAt(0)!="5")||(H(t,c+1,1),r=!t.times(t).eq(o));break}if(!i&&(H(n,c+1,0),n.times(n).eq(o))){t=n;break}a+=4,i=1}return Y=!0,H(t,c,A.rounding,r)},S.tangent=S.tan=function(){var r,e,a=this,t=a.constructor;return a.isFinite()?a.isZero()?new t(a):(r=t.precision,e=t.rounding,t.precision=r+10,t.rounding=1,(a=a.sin()).s=1,a=he(a,new t(1).minus(a.times(a)).sqrt(),r+10,0),t.precision=r,t.rounding=e,H(ba==2||ba==4?a.neg():a,r,e,!0)):new t(NaN)},S.times=S.mul=function(r){var e,a,t,i,n,o,s,c,u,A=this,d=A.constructor,b=A.d,h=(r=new d(r)).d;if(r.s*=A.s,!(b&&b[0]&&h&&h[0]))return new d(!r.s||b&&!b[0]&&!h||h&&!h[0]&&!b?NaN:b&&h?0*r.s:r.s/0);for(a=Ne(A.e/7)+Ne(r.e/7),(c=b.length)<(u=h.length)&&(n=b,b=h,h=n,o=c,c=u,u=o),n=[],t=o=c+u;t--;)n.push(0);for(t=u;--t>=0;){for(e=0,i=c+t;i>t;)s=n[i]+h[t]*b[i-t-1]+e,n[i--]=s%ta|0,e=s/ta|0;n[i]=(n[i]+e)%ta|0}for(;!n[--o];)n.pop();return e?++a:n.shift(),r.d=n,r.e=Ct(n,a),Y?H(r,d.precision,d.rounding):r},S.toBinary=function(r,e){return Yt(this,2,r,e)},S.toDecimalPlaces=S.toDP=function(r,e){var a=this,t=a.constructor;return a=new t(a),r===void 0?a:(ze(r,0,Ia),e===void 0?e=t.rounding:ze(e,0,8),H(a,r+a.e+1,e))},S.toExponential=function(r,e){var a,t=this,i=t.constructor;return r===void 0?a=ia(t,!0):(ze(r,0,Ia),e===void 0?e=i.rounding:ze(e,0,8),a=ia(t=H(new i(t),r+1,e),!0,r+1)),t.isNeg()&&!t.isZero()?"-"+a:a},S.toFixed=function(r,e){var a,t,i=this,n=i.constructor;return r===void 0?a=ia(i):(ze(r,0,Ia),e===void 0?e=n.rounding:ze(e,0,8),a=ia(t=H(new n(i),r+i.e+1,e),!1,r+t.e+1)),i.isNeg()&&!i.isZero()?"-"+a:a},S.toFraction=function(r){var e,a,t,i,n,o,s,c,u,A,d,b,h=this,l=h.d,g=h.constructor;if(!l)return new g(h);if(u=a=new g(1),t=c=new g(0),o=(n=(e=new g(t)).e=ii(l)-h.e-1)%7,e.d[0]=ke(10,o<0?7+o:o),r==null)r=n>0?e:u;else{if(!(s=new g(r)).isInt()||s.lt(u))throw Error(ya+s);r=s.gt(e)?n>0?e:u:s}for(Y=!1,s=new g(Re(l)),A=g.precision,g.precision=n=7*l.length*2;d=he(s,e,0,1,1),(i=a.plus(d.times(t))).cmp(r)!=1;)a=t,t=i,i=u,u=c.plus(d.times(i)),c=i,i=e,e=s.minus(d.times(i)),s=i;return i=he(r.minus(a),t,0,1,1),c=c.plus(i.times(u)),a=a.plus(i.times(t)),c.s=u.s=h.s,b=he(u,t,n,1).minus(h).abs().cmp(he(c,a,n,1).minus(h).abs())<1?[u,t]:[c,a],g.precision=A,Y=!0,b},S.toHexadecimal=S.toHex=function(r,e){return Yt(this,16,r,e)},S.toNearest=function(r,e){var a=this,t=a.constructor;if(a=new t(a),r==null){if(!a.d)return a;r=new t(1),e=t.rounding}else{if(r=new t(r),e===void 0?e=t.rounding:ze(e,0,8),!a.d)return r.s?a:r;if(!r.d)return r.s&&(r.s=a.s),r}return r.d[0]?(Y=!1,a=he(a,r,0,e,1).times(r),Y=!0,H(a)):(r.s=a.s,a=r),a},S.toNumber=function(){return+this},S.toOctal=function(r,e){return Yt(this,8,r,e)},S.toPower=S.pow=function(r){var e,a,t,i,n,o,s=this,c=s.constructor,u=+(r=new c(r));if(!(s.d&&r.d&&s.d[0]&&r.d[0]))return new c(ke(+s,u));if((s=new c(s)).eq(1))return s;if(t=c.precision,n=c.rounding,r.eq(1))return H(s,t,n);if((e=Ne(r.e/7))>=r.d.length-1&&(a=u<0?-u:u)<=9007199254740991)return i=wn(c,s,a,t),r.s<0?new c(1).div(i):H(i,t,n);if((o=s.s)<0){if(e<r.d.length-1)return new c(NaN);if(1&r.d[e]||(o=1),s.e==0&&s.d[0]==1&&s.d.length==1)return s.s=o,s}return(e=(a=ke(+s,u))!=0&&isFinite(a)?new c(a+"").e:Ne(u*(Math.log("0."+Re(s.d))/Math.LN10+s.e+1)))>c.maxE+1||e<c.minE-1?new c(e>0?o/0:0):(Y=!1,c.rounding=s.s=1,a=Math.min(12,(e+"").length),(i=Xt(r.times(ma(s,t+a)),t)).d&&$a((i=H(i,t+5,1)).d,t,n)&&(e=t+10,+Re((i=H(Xt(r.times(ma(s,e+a)),e),e+5,1)).d).slice(t+1,t+15)+1==1e14&&(i=H(i,t+1,0))),i.s=o,Y=!0,c.rounding=n,H(i,t,n))},S.toPrecision=function(r,e){var a,t=this,i=t.constructor;return r===void 0?a=ia(t,t.e<=i.toExpNeg||t.e>=i.toExpPos):(ze(r,1,Ia),e===void 0?e=i.rounding:ze(e,0,8),a=ia(t=H(new i(t),r,e),r<=t.e||t.e<=i.toExpNeg,r)),t.isNeg()&&!t.isZero()?"-"+a:a},S.toSignificantDigits=S.toSD=function(r,e){var a=this.constructor;return r===void 0?(r=a.precision,e=a.rounding):(ze(r,1,Ia),e===void 0?e=a.rounding:ze(e,0,8)),H(new a(this),r,e)},S.toString=function(){var r=this,e=r.constructor,a=ia(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+a:a},S.truncated=S.trunc=function(){return H(new this.constructor(this),this.e+1,1)},S.valueOf=S.toJSON=function(){var r=this,e=r.constructor,a=ia(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+a:a};var he=function(){function r(t,i,n){var o,s=0,c=t.length;for(t=t.slice();c--;)o=t[c]*i+s,t[c]=o%n|0,s=o/n|0;return s&&t.unshift(s),t}function e(t,i,n,o){var s,c;if(n!=o)c=n>o?1:-1;else for(s=c=0;s<n;s++)if(t[s]!=i[s]){c=t[s]>i[s]?1:-1;break}return c}function a(t,i,n,o){for(var s=0;n--;)t[n]-=s,s=t[n]<i[n]?1:0,t[n]=s*o+t[n]-i[n];for(;!t[0]&&t.length>1;)t.shift()}return function(t,i,n,o,s,c){var u,A,d,b,h,l,g,m,E,p,C,I,x,y,w,D,F,M,k,_,q=t.constructor,V=t.s==i.s?1:-1,J=t.d,O=i.d;if(!(J&&J[0]&&O&&O[0]))return new q(t.s&&i.s&&(J?!O||J[0]!=O[0]:O)?J&&J[0]==0||!O?0*V:V/0:NaN);for(c?(h=1,A=t.e-i.e):(c=ta,h=7,A=Ne(t.e/h)-Ne(i.e/h)),k=O.length,F=J.length,p=(E=new q(V)).d=[],d=0;O[d]==(J[d]||0);d++);if(O[d]>(J[d]||0)&&A--,n==null?(y=n=q.precision,o=q.rounding):y=s?n+(t.e-i.e)+1:n,y<0)p.push(1),l=!0;else{if(y=y/h+2|0,d=0,k==1){for(b=0,O=O[0],y++;(d<F||b)&&y--;d++)w=b*c+(J[d]||0),p[d]=w/O|0,b=w%O|0;l=b||d<F}else{for((b=c/(O[0]+1)|0)>1&&(O=r(O,b,c),J=r(J,b,c),k=O.length,F=J.length),D=k,I=(C=J.slice(0,k)).length;I<k;)C[I++]=0;(_=O.slice()).unshift(0),M=O[0],O[1]>=c/2&&++M;do b=0,(u=e(O,C,k,I))<0?(x=C[0],k!=I&&(x=x*c+(C[1]||0)),(b=x/M|0)>1?(b>=c&&(b=c-1),(u=e(g=r(O,b,c),C,m=g.length,I=C.length))==1&&(b--,a(g,k<m?_:O,m,c))):(b==0&&(u=b=1),g=O.slice()),(m=g.length)<I&&g.unshift(0),a(C,g,I,c),u==-1&&(u=e(O,C,k,I=C.length))<1&&(b++,a(C,k<I?_:O,I,c)),I=C.length):u===0&&(b++,C=[0]),p[d++]=b,u&&C[0]?C[I++]=J[D]||0:(C=[J[D]],I=1);while((D++<F||C[0]!==void 0)&&y--);l=C[0]!==void 0}p[0]||p.shift()}if(h==1)E.e=A,Cn=l;else{for(d=1,b=p[0];b>=10;b/=10)d++;E.e=d+A*h-1,H(E,s?n+E.e+1:n,o,l)}return E}}();function H(r,e,a,t){var i,n,o,s,c,u,A,d,b,h=r.constructor;e:if(e!=null){if(!(d=r.d))return r;for(i=1,s=d[0];s>=10;s/=10)i++;if((n=e-i)<0)n+=7,o=e,c=(A=d[b=0])/ke(10,i-o-1)%10|0;else if((b=Math.ceil((n+1)/7))>=(s=d.length)){if(!t)break e;for(;s++<=b;)d.push(0);A=c=0,i=1,o=(n%=7)-7+1}else{for(A=s=d[b],i=1;s>=10;s/=10)i++;c=(o=(n%=7)-7+i)<0?0:A/ke(10,i-o-1)%10|0}if(t=t||e<0||d[b+1]!==void 0||(o<0?A:A%ke(10,i-o-1)),u=a<4?(c||t)&&(a==0||a==(r.s<0?3:2)):c>5||c==5&&(a==4||t||a==6&&(n>0?o>0?A/ke(10,i-o):0:d[b-1])%10&1||a==(r.s<0?8:7)),e<1||!d[0])return d.length=0,u?(e-=r.e+1,d[0]=ke(10,(7-e%7)%7),r.e=-e||0):d[0]=r.e=0,r;if(n==0?(d.length=b,s=1,b--):(d.length=b+1,s=ke(10,7-n),d[b]=o>0?(A/ke(10,i-o)%ke(10,o)|0)*s:0),u)for(;;){if(b==0){for(n=1,o=d[0];o>=10;o/=10)n++;for(o=d[0]+=s,s=1;o>=10;o/=10)s++;n!=s&&(r.e++,d[0]==ta&&(d[0]=1));break}if(d[b]+=s,d[b]!=ta)break;d[b--]=0,s=1}for(n=d.length;d[--n]===0;)d.pop()}return Y&&(r.e>h.maxE?(r.d=null,r.e=NaN):r.e<h.minE&&(r.e=0,r.d=[0])),r}function ia(r,e,a){if(!r.isFinite())return vn(r);var t,i=r.e,n=Re(r.d),o=n.length;return e?(a&&(t=a-o)>0?n=n.charAt(0)+"."+n.slice(1)+Ca(t):o>1&&(n=n.charAt(0)+"."+n.slice(1)),n=n+(r.e<0?"e":"e+")+r.e):i<0?(n="0."+Ca(-i-1)+n,a&&(t=a-o)>0&&(n+=Ca(t))):i>=o?(n+=Ca(i+1-o),a&&(t=a-i-1)>0&&(n=n+"."+Ca(t))):((t=i+1)<o&&(n=n.slice(0,t)+"."+n.slice(t)),a&&(t=a-o)>0&&(i+1===o&&(n+="."),n+=Ca(t))),n}function Ct(r,e){var a=r[0];for(e*=7;a>=10;a/=10)e++;return e}function Ft(r,e,a){if(e>CA)throw Y=!0,a&&(r.precision=a),Error(In);return H(new r(xt),e,1,!0)}function sa(r,e,a){if(e>hr)throw Error(In);return H(new r(vt),e,a,!0)}function ii(r){var e=r.length-1,a=7*e+1;if(e=r[e]){for(;e%10==0;e/=10)a--;for(e=r[0];e>=10;e/=10)a++}return a}function Ca(r){for(var e="";r--;)e+="0";return e}function wn(r,e,a,t){var i,n=new r(1),o=Math.ceil(t/7+4);for(Y=!1;;){if(a%2&&si((n=n.times(e)).d,o)&&(i=!0),(a=Ne(a/2))===0){a=n.d.length-1,i&&n.d[a]===0&&++n.d[a];break}si((e=e.times(e)).d,o)}return Y=!0,n}function ni(r){return 1&r.d[r.d.length-1]}function xn(r,e,a){for(var t,i,n=new r(e[0]),o=0;++o<e.length;){if(!(i=new r(e[o])).s){n=i;break}((t=n.cmp(i))===a||t===0&&n.s===a)&&(n=i)}return n}function Xt(r,e){var a,t,i,n,o,s,c,u=0,A=0,d=0,b=r.constructor,h=b.rounding,l=b.precision;if(!r.d||!r.d[0]||r.e>17)return new b(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(Y=!1,c=l):c=e,s=new b(.03125);r.e>-2;)r=r.times(s),d+=5;for(c+=t=Math.log(ke(2,d))/Math.LN10*2+5|0,a=n=o=new b(1),b.precision=c;;){if(n=H(n.times(r),c,1),a=a.times(++A),Re((s=o.plus(he(n,a,c,1))).d).slice(0,c)===Re(o.d).slice(0,c)){for(i=d;i--;)o=H(o.times(o),c,1);if(e!=null)return b.precision=l,o;if(!(u<3&&$a(o.d,c-t,h,u)))return H(o,b.precision=l,h,Y=!0);b.precision=c+=10,a=n=s=new b(1),A=0,u++}o=s}}function ma(r,e){var a,t,i,n,o,s,c,u,A,d,b,h=1,l=r,g=l.d,m=l.constructor,E=m.rounding,p=m.precision;if(l.s<0||!g||!g[0]||!l.e&&g[0]==1&&g.length==1)return new m(g&&!g[0]?-1/0:l.s!=1?NaN:g?0:l);if(e==null?(Y=!1,A=p):A=e,m.precision=A+=10,t=(a=Re(g)).charAt(0),!(Math.abs(n=l.e)<15e14))return u=Ft(m,A+2,p).times(n+""),l=ma(new m(t+"."+a.slice(1)),A-10).plus(u),m.precision=p,e==null?H(l,p,E,Y=!0):l;for(;t<7&&t!=1||t==1&&a.charAt(1)>3;)t=(a=Re((l=l.times(r)).d)).charAt(0),h++;for(n=l.e,t>1?(l=new m("0."+a),n++):l=new m(t+"."+a.slice(1)),d=l,c=o=l=he(l.minus(1),l.plus(1),A,1),b=H(l.times(l),A,1),i=3;;){if(o=H(o.times(b),A,1),Re((u=c.plus(he(o,new m(i),A,1))).d).slice(0,A)===Re(c.d).slice(0,A)){if(c=c.times(2),n!==0&&(c=c.plus(Ft(m,A+2,p).times(n+""))),c=he(c,new m(h),A,1),e!=null)return m.precision=p,c;if(!$a(c.d,A-10,E,s))return H(c,m.precision=p,E,Y=!0);m.precision=A+=10,u=o=l=he(d.minus(1),d.plus(1),A,1),b=H(l.times(l),A,1),i=s=1}c=u,i+=2}}function vn(r){return String(r.s*r.s/0)}function It(r,e){var a,t,i;for((a=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(a<0&&(a=t),a+=+e.slice(t+1),e=e.substring(0,t)):a<0&&(a=e.length),t=0;e.charCodeAt(t)===48;t++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(t,i)){if(i-=t,r.e=a=a-t-1,r.d=[],t=(a+1)%7,a<0&&(t+=7),t<i){for(t&&r.d.push(+e.slice(0,t)),i-=7;t<i;)r.d.push(+e.slice(t,t+=7));t=7-(e=e.slice(t)).length}else t-=i;for(;t--;)e+="0";r.d.push(+e),Y&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function IA(r,e){var a,t,i,n,o,s,c,u,A;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),yn.test(e))return It(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(mA.test(e))a=16,e=e.toLowerCase();else if(pA.test(e))a=2;else{if(!EA.test(e))throw Error(ya+e);a=8}for((n=e.search(/p/i))>0?(c=+e.slice(n+1),e=e.substring(2,n)):e=e.slice(2),o=(n=e.indexOf("."))>=0,t=r.constructor,o&&(n=(s=(e=e.replace(".","")).length)-n,i=wn(t,new t(a),n,2*n)),n=A=(u=Et(e,a,ta)).length-1;u[n]===0;--n)u.pop();return n<0?new t(0*r.s):(r.e=Ct(u,A),r.d=u,Y=!1,o&&(r=he(r,i,4*s)),c&&(r=r.times(Math.abs(c)<54?ke(2,c):Va.pow(2,c))),Y=!0,r)}function Ta(r,e,a,t,i){var n,o,s,c,u=r.precision,A=Math.ceil(u/7);for(Y=!1,c=a.times(a),s=new r(t);;){if(o=he(s.times(c),new r(e++*e++),u,1),s=i?t.plus(o):t.minus(o),t=he(o.times(c),new r(e++*e++),u,1),(o=s.plus(t)).d[A]!==void 0){for(n=A;o.d[n]===s.d[n]&&n--;);if(n==-1)break}n=s,s=t,t=o,o=n}return Y=!0,o.d.length=A+1,o}function At(r,e){for(var a=r;--e;)a*=r;return a}function oi(r,e){var a,t=e.s<0,i=sa(r,r.precision,1),n=i.times(.5);if((e=e.abs()).lte(n))return ba=t?4:1,e;if((a=e.divToInt(i)).isZero())ba=t?3:2;else{if((e=e.minus(a.times(i))).lte(n))return ba=ni(a)?t?2:3:t?4:1,e;ba=ni(a)?t?1:4:t?3:2}return e.minus(i).abs()}function Yt(r,e,a,t){var i,n,o,s,c,u,A,d,b,h=r.constructor,l=a!==void 0;if(l?(ze(a,1,Ia),t===void 0?t=h.rounding:ze(t,0,8)):(a=h.precision,t=h.rounding),r.isFinite()){for(l?(i=2,e==16?a=4*a-3:e==8&&(a=3*a-2)):i=e,(o=(A=ia(r)).indexOf("."))>=0&&(A=A.replace(".",""),(b=new h(1)).e=A.length-o,b.d=Et(ia(b),10,i),b.e=b.d.length),n=c=(d=Et(A,10,i)).length;d[--c]==0;)d.pop();if(d[0]){if(o<0?n--:((r=new h(r)).d=d,r.e=n,d=(r=he(r,b,a,t,0,i)).d,n=r.e,u=Cn),o=d[a],s=i/2,u=u||d[a+1]!==void 0,u=t<4?(o!==void 0||u)&&(t===0||t===(r.s<0?3:2)):o>s||o===s&&(t===4||u||t===6&&1&d[a-1]||t===(r.s<0?8:7)),d.length=a,u)for(;++d[--a]>i-1;)d[a]=0,a||(++n,d.unshift(1));for(c=d.length;!d[c-1];--c);for(o=0,A="";o<c;o++)A+=ur.charAt(d[o]);if(l){if(c>1)if(e==16||e==8){for(o=e==16?4:3,--c;c%o;c++)A+="0";for(c=(d=Et(A,i,e)).length;!d[c-1];--c);for(o=1,A="1.";o<c;o++)A+=ur.charAt(d[o])}else A=A.charAt(0)+"."+A.slice(1);A=A+(n<0?"p":"p+")+n}else if(n<0){for(;++n;)A="0"+A;A="0."+A}else if(++n>c)for(n-=c;n--;)A+="0";else n<c&&(A=A.slice(0,n)+"."+A.slice(n))}else A=l?"0p+0":"0";A=(e==16?"0x":e==2?"0b":e==8?"0o":"")+A}else A=vn(r);return r.s<0?"-"+A:A}function si(r,e){if(r.length>e)return r.length=e,!0}function BA(r){return new this(r).abs()}function DA(r){return new this(r).acos()}function yA(r){return new this(r).acosh()}function wA(r,e){return new this(r).plus(e)}function xA(r){return new this(r).asin()}function vA(r){return new this(r).asinh()}function FA(r){return new this(r).atan()}function QA(r){return new this(r).atanh()}function kA(r,e){r=new this(r),e=new this(e);var a,t=this.precision,i=this.rounding,n=t+4;return r.s&&e.s?r.d||e.d?!e.d||r.isZero()?(a=e.s<0?sa(this,t,i):new this(0)).s=r.s:!r.d||e.isZero()?(a=sa(this,n,1).times(.5)).s=r.s:e.s<0?(this.precision=n,this.rounding=1,a=this.atan(he(r,e,n,1)),e=sa(this,n,1),this.precision=t,this.rounding=i,a=r.s<0?a.minus(e):a.plus(e)):a=this.atan(he(r,e,n,1)):(a=sa(this,n,1).times(e.s>0?.25:.75)).s=r.s:a=new this(NaN),a}function jA(r){return new this(r).cbrt()}function MA(r){return H(r=new this(r),r.e+1,2)}function RA(r,e,a){return new this(r).clamp(e,a)}function SA(r){if(!r||typeof r!="object")throw Error(Mt+"Object expected");var e,a,t,i=r.defaults===!0,n=["precision",1,Ia,"rounding",0,8,"toExpNeg",-_a,0,"toExpPos",0,_a,"maxE",0,_a,"minE",-_a,0,"modulo",0,9];for(e=0;e<n.length;e+=3)if(a=n[e],i&&(this[a]=dr[a]),(t=r[a])!==void 0){if(!(Ne(t)===t&&t>=n[e+1]&&t<=n[e+2]))throw Error(ya+a+": "+t);this[a]=t}if(a="crypto",i&&(this[a]=dr[a]),(t=r[a])!==void 0){if(t!==!0&&t!==!1&&t!==0&&t!==1)throw Error(ya+a+": "+t);if(t){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(Bn);this[a]=!0}else this[a]=!1}return this}function TA(r){return new this(r).cos()}function NA(r){return new this(r).cosh()}function UA(r,e){return new this(r).div(e)}function LA(r){return new this(r).exp()}function GA(r){return H(r=new this(r),r.e+1,3)}function _A(){var r,e,a=new this(0);for(Y=!1,r=0;r<arguments.length;)if((e=new this(arguments[r++])).d)a.d&&(a=a.plus(e.times(e)));else{if(e.s)return Y=!0,new this(1/0);a=e}return Y=!0,a.sqrt()}function Ai(r){return r instanceof Va||r&&r.toStringTag===Dn||!1}function zA(r){return new this(r).ln()}function PA(r,e){return new this(r).log(e)}function qA(r){return new this(r).log(2)}function KA(r){return new this(r).log(10)}function OA(){return xn(this,arguments,-1)}function JA(){return xn(this,arguments,1)}function VA(r,e){return new this(r).mod(e)}function HA(r,e){return new this(r).mul(e)}function WA(r,e){return new this(r).pow(e)}function XA(r){var e,a,t,i,n=0,o=new this(1),s=[];if(r===void 0?r=this.precision:ze(r,1,Ia),t=Math.ceil(r/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(t));n<t;)(i=e[n])>=429e7?e[n]=crypto.getRandomValues(new Uint32Array(1))[0]:s[n++]=i%1e7;else{if(!crypto.randomBytes)throw Error(Bn);for(e=crypto.randomBytes(t*=4);n<t;)(i=e[n]+(e[n+1]<<8)+(e[n+2]<<16)+((127&e[n+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,n):(s.push(i%1e7),n+=4);n=t/4}else for(;n<t;)s[n++]=1e7*Math.random()|0;for(r%=7,(t=s[--n])&&r&&(i=ke(10,7-r),s[n]=(t/i|0)*i);s[n]===0;n--)s.pop();if(n<0)a=0,s=[0];else{for(a=-1;s[0]===0;a-=7)s.shift();for(t=1,i=s[0];i>=10;i/=10)t++;t<7&&(a-=7-t)}return o.e=a,o.d=s,o}function YA(r){return H(r=new this(r),r.e+1,this.rounding)}function ZA(r){return(r=new this(r)).d?r.d[0]?r.s:0*r.s:r.s||NaN}function $A(r){return new this(r).sin()}function ec(r){return new this(r).sinh()}function ac(r){return new this(r).sqrt()}function tc(r,e){return new this(r).sub(e)}function rc(){var r=0,e=arguments,a=new this(e[r]);for(Y=!1;a.s&&++r<e.length;)a=a.plus(e[r]);return Y=!0,H(a,this.precision,this.rounding)}function ic(r){return new this(r).tan()}function nc(r){return new this(r).tanh()}function oc(r){return H(r=new this(r),r.e+1,1)}S[Symbol.for("nodejs.util.inspect.custom")]=S.toString,S[Symbol.toStringTag]="Decimal";var Va=S.constructor=function r(e){var a,t,i;function n(o){var s,c,u,A=this;if(!(A instanceof n))return new n(o);if(A.constructor=n,Ai(o))return A.s=o.s,void(Y?!o.d||o.e>n.maxE?(A.e=NaN,A.d=null):o.e<n.minE?(A.e=0,A.d=[0]):(A.e=o.e,A.d=o.d.slice()):(A.e=o.e,A.d=o.d?o.d.slice():o.d));if((u=typeof o)=="number"){if(o===0)return A.s=1/o<0?-1:1,A.e=0,void(A.d=[0]);if(o<0?(o=-o,A.s=-1):A.s=1,o===~~o&&o<1e7){for(s=0,c=o;c>=10;c/=10)s++;return void(Y?s>n.maxE?(A.e=NaN,A.d=null):s<n.minE?(A.e=0,A.d=[0]):(A.e=s,A.d=[o]):(A.e=s,A.d=[o]))}return 0*o!=0?(o||(A.s=NaN),A.e=NaN,void(A.d=null)):It(A,o.toString())}if(u==="string")return(c=o.charCodeAt(0))===45?(o=o.slice(1),A.s=-1):(c===43&&(o=o.slice(1)),A.s=1),yn.test(o)?It(A,o):IA(A,o);if(u==="bigint")return o<0?(o=-o,A.s=-1):A.s=1,It(A,o.toString());throw Error(ya+o)}if(n.prototype=S,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=SA,n.clone=r,n.isDecimal=Ai,n.abs=BA,n.acos=DA,n.acosh=yA,n.add=wA,n.asin=xA,n.asinh=vA,n.atan=FA,n.atanh=QA,n.atan2=kA,n.cbrt=jA,n.ceil=MA,n.clamp=RA,n.cos=TA,n.cosh=NA,n.div=UA,n.exp=LA,n.floor=GA,n.hypot=_A,n.ln=zA,n.log=PA,n.log10=KA,n.log2=qA,n.max=OA,n.min=JA,n.mod=VA,n.mul=HA,n.pow=WA,n.random=XA,n.round=YA,n.sign=ZA,n.sin=$A,n.sinh=ec,n.sqrt=ac,n.sub=tc,n.sum=rc,n.tan=ic,n.tanh=nc,n.trunc=oc,e===void 0&&(e={}),e&&e.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],a=0;a<i.length;)e.hasOwnProperty(t=i[a++])||(e[t]=this[t]);return n.config(e),n}(dr);xt=new Va(xt),vt=new Va(vt);var sc=ne("BigNumber",["?on","config"],r=>{var{on:e,config:a}=r,t=Va.clone({precision:a.precision,modulo:Va.EUCLID});return t.prototype=Object.create(t.prototype),t.prototype.type="BigNumber",t.prototype.isBigNumber=!0,t.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},t.fromJSON=function(i){return new t(i.value)},e&&e("config",function(i,n){i.precision!==n.precision&&t.config({precision:i.precision})}),t},{isClass:!0});const Te=Math.cosh||function(r){return Math.abs(r)<1e-9?1-r:.5*(Math.exp(r)+Math.exp(-r))},He=Math.sinh||function(r){return Math.abs(r)<1e-9?r:.5*(Math.exp(r)-Math.exp(-r))},Zt=function(r,e){return(r=Math.abs(r))<(e=Math.abs(e))&&([r,e]=[e,r]),r<1e8?Math.sqrt(r*r+e*e):(e/=r,r*Math.sqrt(1+e*e))},Na=function(){throw SyntaxError("Invalid Param")};function $t(r,e){const a=Math.abs(r),t=Math.abs(e);return r===0?Math.log(t):e===0?Math.log(a):a<3e3&&t<3e3?.5*Math.log(r*r+e*e):(r*=.5,e*=.5,.5*Math.log(r*r+e*e)+Math.LN2)}const Ac={re:0,im:0},va=function(r,e){const a=Ac;if(r==null)a.re=a.im=0;else if(e!==void 0)a.re=r,a.im=e;else switch(typeof r){case"object":if("im"in r&&"re"in r)a.re=r.re,a.im=r.im;else if("abs"in r&&"arg"in r){if(!isFinite(r.abs)&&isFinite(r.arg))return j.INFINITY;a.re=r.abs*Math.cos(r.arg),a.im=r.abs*Math.sin(r.arg)}else if("r"in r&&"phi"in r){if(!isFinite(r.r)&&isFinite(r.phi))return j.INFINITY;a.re=r.r*Math.cos(r.phi),a.im=r.r*Math.sin(r.phi)}else r.length===2?(a.re=r[0],a.im=r[1]):Na();break;case"string":a.im=a.re=0;const t=r.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let i=1,n=0;t===null&&Na();for(let o=0;o<t.length;o++){const s=t[o];s===" "||s===" "||s===`
22
- `||(s==="+"?i++:s==="-"?n++:s==="i"||s==="I"?(i+n===0&&Na(),t[o+1]===" "||isNaN(t[o+1])?a.im+=parseFloat((n%2?"-":"")+"1"):(a.im+=parseFloat((n%2?"-":"")+t[o+1]),o++),i=n=0):((i+n===0||isNaN(s))&&Na(),t[o+1]==="i"||t[o+1]==="I"?(a.im+=parseFloat((n%2?"-":"")+s),o++):a.re+=parseFloat((n%2?"-":"")+s),i=n=0))}i+n>0&&Na();break;case"number":a.im=0,a.re=r;break;default:Na()}return isNaN(a.re)||isNaN(a.im),a};function j(r,e){if(!(this instanceof j))return new j(r,e);const a=va(r,e);this.re=a.re,this.im=a.im}j.prototype={re:0,im:0,sign:function(){const r=Zt(this.re,this.im);return new j(this.re/r,this.im/r)},add:function(r,e){const a=va(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im));return t||i?t&&i?j.NAN:j.INFINITY:new j(this.re+a.re,this.im+a.im)},sub:function(r,e){const a=va(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im));return t||i?t&&i?j.NAN:j.INFINITY:new j(this.re-a.re,this.im-a.im)},mul:function(r,e){const a=va(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im)),n=this.re===0&&this.im===0,o=a.re===0&&a.im===0;return t&&o||i&&n?j.NAN:t||i?j.INFINITY:a.im===0&&this.im===0?new j(this.re*a.re,0):new j(this.re*a.re-this.im*a.im,this.re*a.im+this.im*a.re)},div:function(r,e){const a=va(r,e),t=this.isInfinite(),i=!(isFinite(a.re)&&isFinite(a.im)),n=this.re===0&&this.im===0,o=a.re===0&&a.im===0;if(n&&o||t&&i)return j.NAN;if(o||t)return j.INFINITY;if(n||i)return j.ZERO;if(a.im===0)return new j(this.re/a.re,this.im/a.re);if(Math.abs(a.re)<Math.abs(a.im)){const s=a.re/a.im,c=a.re*s+a.im;return new j((this.re*s+this.im)/c,(this.im*s-this.re)/c)}{const s=a.im/a.re,c=a.im*s+a.re;return new j((this.re+this.im*s)/c,(this.im-this.re*s)/c)}},pow:function(r,e){const a=va(r,e),t=this.re===0&&this.im===0;if(a.re===0&&a.im===0)return j.ONE;if(a.im===0){if(this.im===0&&this.re>0)return new j(Math.pow(this.re,a.re),0);if(this.re===0)switch((a.re%4+4)%4){case 0:return new j(Math.pow(this.im,a.re),0);case 1:return new j(0,Math.pow(this.im,a.re));case 2:return new j(-Math.pow(this.im,a.re),0);case 3:return new j(0,-Math.pow(this.im,a.re))}}if(t&&a.re>0)return j.ZERO;const i=Math.atan2(this.im,this.re),n=$t(this.re,this.im);let o=Math.exp(a.re*n-a.im*i),s=a.im*n+a.re*i;return new j(o*Math.cos(s),o*Math.sin(s))},sqrt:function(){const r=this.re,e=this.im;if(e===0)return r>=0?new j(Math.sqrt(r),0):new j(0,Math.sqrt(-r));const a=Zt(r,e);let t=Math.sqrt(.5*(a+Math.abs(r))),i=Math.abs(e)/(2*t);return r>=0?new j(t,e<0?-i:i):new j(i,e<0?-t:t)},exp:function(){const r=Math.exp(this.re);return this.im===0?new j(r,0):new j(r*Math.cos(this.im),r*Math.sin(this.im))},expm1:function(){const r=this.re,e=this.im;return new j(Math.expm1(r)*Math.cos(e)+function(a){const t=Math.PI/4;if(-t>a||a>t)return Math.cos(a)-1;const i=a*a;return i*(i*(i*(i*(i*(i*(i*(i/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(e),Math.exp(r)*Math.sin(e))},log:function(){const r=this.re,e=this.im;return e===0&&r>0?new j(Math.log(r),0):new j($t(r,e),Math.atan2(e,r))},abs:function(){return Zt(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const r=this.re,e=this.im;return new j(Math.sin(r)*Te(e),Math.cos(r)*He(e))},cos:function(){const r=this.re,e=this.im;return new j(Math.cos(r)*Te(e),-Math.sin(r)*He(e))},tan:function(){const r=2*this.re,e=2*this.im,a=Math.cos(r)+Te(e);return new j(Math.sin(r)/a,He(e)/a)},cot:function(){const r=2*this.re,e=2*this.im,a=Math.cos(r)-Te(e);return new j(-Math.sin(r)/a,He(e)/a)},sec:function(){const r=this.re,e=this.im,a=.5*Te(2*e)+.5*Math.cos(2*r);return new j(Math.cos(r)*Te(e)/a,Math.sin(r)*He(e)/a)},csc:function(){const r=this.re,e=this.im,a=.5*Te(2*e)-.5*Math.cos(2*r);return new j(Math.sin(r)*Te(e)/a,-Math.cos(r)*He(e)/a)},asin:function(){const r=this.re,e=this.im,a=new j(e*e-r*r+1,-2*r*e).sqrt(),t=new j(a.re-e,a.im+r).log();return new j(t.im,-t.re)},acos:function(){const r=this.re,e=this.im,a=new j(e*e-r*r+1,-2*r*e).sqrt(),t=new j(a.re-e,a.im+r).log();return new j(Math.PI/2-t.im,t.re)},atan:function(){const r=this.re,e=this.im;if(r===0){if(e===1)return new j(0,1/0);if(e===-1)return new j(0,-1/0)}const a=r*r+(1-e)*(1-e),t=new j((1-e*e-r*r)/a,-2*r/a).log();return new j(-.5*t.im,.5*t.re)},acot:function(){const r=this.re,e=this.im;if(e===0)return new j(Math.atan2(1,r),0);const a=r*r+e*e;return a!==0?new j(r/a,-e/a).atan():new j(r!==0?r/0:0,e!==0?-e/0:0).atan()},asec:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new j(0,1/0);const a=r*r+e*e;return a!==0?new j(r/a,-e/a).acos():new j(r!==0?r/0:0,e!==0?-e/0:0).acos()},acsc:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new j(Math.PI/2,1/0);const a=r*r+e*e;return a!==0?new j(r/a,-e/a).asin():new j(r!==0?r/0:0,e!==0?-e/0:0).asin()},sinh:function(){const r=this.re,e=this.im;return new j(He(r)*Math.cos(e),Te(r)*Math.sin(e))},cosh:function(){const r=this.re,e=this.im;return new j(Te(r)*Math.cos(e),He(r)*Math.sin(e))},tanh:function(){const r=2*this.re,e=2*this.im,a=Te(r)+Math.cos(e);return new j(He(r)/a,Math.sin(e)/a)},coth:function(){const r=2*this.re,e=2*this.im,a=Te(r)-Math.cos(e);return new j(He(r)/a,-Math.sin(e)/a)},csch:function(){const r=this.re,e=this.im,a=Math.cos(2*e)-Te(2*r);return new j(-2*He(r)*Math.cos(e)/a,2*Te(r)*Math.sin(e)/a)},sech:function(){const r=this.re,e=this.im,a=Math.cos(2*e)+Te(2*r);return new j(2*Te(r)*Math.cos(e)/a,-2*He(r)*Math.sin(e)/a)},asinh:function(){let r=this.im;this.im=-this.re,this.re=r;const e=this.asin();return this.re=-this.im,this.im=r,r=e.re,e.re=-e.im,e.im=r,e},acosh:function(){const r=this.acos();if(r.im<=0){const e=r.re;r.re=-r.im,r.im=e}else{const e=r.im;r.im=-r.re,r.re=e}return r},atanh:function(){const r=this.re,e=this.im,a=r>1&&e===0,t=1-r,i=1+r,n=t*t+e*e,o=n!==0?new j((i*t-e*e)/n,(e*t+i*e)/n):new j(r!==-1?r/0:0,e!==0?e/0:0),s=o.re;return o.re=$t(o.re,o.im)/2,o.im=Math.atan2(o.im,s)/2,a&&(o.im=-o.im),o},acoth:function(){const r=this.re,e=this.im;if(r===0&&e===0)return new j(0,Math.PI/2);const a=r*r+e*e;return a!==0?new j(r/a,-e/a).atanh():new j(r!==0?r/0:0,e!==0?-e/0:0).atanh()},acsch:function(){const r=this.re,e=this.im;if(e===0)return new j(r!==0?Math.log(r+Math.sqrt(r*r+1)):1/0,0);const a=r*r+e*e;return a!==0?new j(r/a,-e/a).asinh():new j(r!==0?r/0:0,e!==0?-e/0:0).asinh()},asech:function(){const r=this.re,e=this.im;if(this.isZero())return j.INFINITY;const a=r*r+e*e;return a!==0?new j(r/a,-e/a).acosh():new j(r!==0?r/0:0,e!==0?-e/0:0).acosh()},inverse:function(){if(this.isZero())return j.INFINITY;if(this.isInfinite())return j.ZERO;const r=this.re,e=this.im,a=r*r+e*e;return new j(r/a,-e/a)},conjugate:function(){return new j(this.re,-this.im)},neg:function(){return new j(-this.re,-this.im)},ceil:function(r){return r=Math.pow(10,r||0),new j(Math.ceil(this.re*r)/r,Math.ceil(this.im*r)/r)},floor:function(r){return r=Math.pow(10,r||0),new j(Math.floor(this.re*r)/r,Math.floor(this.im*r)/r)},round:function(r){return r=Math.pow(10,r||0),new j(Math.round(this.re*r)/r,Math.round(this.im*r)/r)},equals:function(r,e){const a=va(r,e);return Math.abs(a.re-this.re)<=j.EPSILON&&Math.abs(a.im-this.im)<=j.EPSILON},clone:function(){return new j(this.re,this.im)},toString:function(){let r=this.re,e=this.im,a="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(r)<j.EPSILON&&(r=0),Math.abs(e)<j.EPSILON&&(e=0),e===0?a+r:(r!==0?(a+=r,a+=" ",e<0?(e=-e,a+="-"):a+="+",a+=" "):e<0&&(e=-e,a+="-"),e!==1&&(a+=e),a+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},j.ZERO=new j(0,0),j.ONE=new j(1,0),j.I=new j(0,1),j.PI=new j(Math.PI,0),j.E=new j(Math.E,0),j.INFINITY=new j(1/0,1/0),j.NAN=new j(NaN,NaN),j.EPSILON=1e-15;var cc=ne("Complex",[],()=>(Object.defineProperty(j,"name",{value:"Complex"}),j.prototype.constructor=j,j.prototype.type="Complex",j.prototype.isComplex=!0,j.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},j.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},j.prototype.format=function(r){var e=this.im,a=this.re,t=cr(this.re,r),i=cr(this.im,r),n=be(r)?r:r?r.precision:null;if(n!==null){var o=Math.pow(10,-n);Math.abs(a/e)<o&&(a=0),Math.abs(e/a)<o&&(e=0)}return e===0?t:a===0?e===1?"i":e===-1?"-i":i+"i":e<0?e===-1?t+" - i":t+" - "+i.substring(1)+"i":e===1?t+" + i":t+" + "+i+"i"},j.fromPolar=function(r){switch(arguments.length){case 1:var e=arguments[0];if(typeof e=="object")return j(e);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var a=arguments[0],t=arguments[1];if(be(a)){if(pn(t)&&t.hasBase("ANGLE")&&(t=t.toNumber("rad")),be(t))return new j({r:a,phi:t});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},j.prototype.valueOf=j.prototype.toString,j.fromJSON=function(r){return new j(r)},j.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},j),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(r){if(isNaN(r))throw new Error("");return r});const W=BigInt(0),$=BigInt(1),et=BigInt(2),lr=BigInt(5),Pe=BigInt(10),P={s:$,n:W,d:$};function ua(r,e){try{r=BigInt(r)}catch{throw Ea()}return r*e}function ea(r){return typeof r=="bigint"?r:Math.floor(r)}function pe(r,e){if(e===W)throw yr();const a=Object.create(Xe.prototype);a.s=r<W?-$:$;const t=Fa(r=r<W?-r:r,e);return a.n=r/t,a.d=e/t,a}function Ua(r){const e={};let a=r,t=et,i=lr-$;for(;i<=a;){for(;a%t===W;)a/=t,e[t]=(e[t]||W)+$;i+=$+et*t++}return a!==r?a>1&&(e[a]=(e[a]||W)+$):e[r]=(e[r]||W)+$,e}const je=function(r,e){let a=W,t=$,i=$;if(r!=null)if(e!==void 0){if(typeof r=="bigint")a=r;else{if(isNaN(r))throw Ea();if(r%1!=0)throw ci();a=BigInt(r)}if(typeof e=="bigint")t=e;else{if(isNaN(e))throw Ea();if(e%1!=0)throw ci();t=BigInt(e)}i=a*t}else if(typeof r=="object"){if("d"in r&&"n"in r)a=BigInt(r.n),t=BigInt(r.d),"s"in r&&(a*=BigInt(r.s));else if(0 in r)a=BigInt(r[0]),1 in r&&(t=BigInt(r[1]));else{if(typeof r!="bigint")throw Ea();a=r}i=a*t}else if(typeof r=="number"){if(isNaN(r))throw Ea();if(r<0&&(i=-$,r=-r),r%1==0)a=BigInt(r);else{let n=1,o=0,s=1,c=1,u=1,A=1e7;for(r>=1&&(n=10**Math.floor(1+Math.log10(r)),r/=n);s<=A&&u<=A;){let d=(o+c)/(s+u);if(r===d){s+u<=A?(a=o+c,t=s+u):u>s?(a=c,t=u):(a=o,t=s);break}r>d?(o+=c,s+=u):(c+=o,u+=s),s>A?(a=c,t=u):(a=o,t=s)}a=BigInt(a)*BigInt(n),t=BigInt(t)}}else if(typeof r=="string"){let n=0,o=W,s=W,c=W,u=$,A=$,d=r.replace(/_/g,"").match(/\d+|./g);if(d===null||(d[n]==="-"?(i=-$,n++):d[n]==="+"&&n++,d.length===n+1?s=ua(d[n++],i):d[n+1]==="."||d[n]==="."?(d[n]!=="."&&(o=ua(d[n++],i)),n++,(n+1===d.length||d[n+1]==="("&&d[n+3]===")"||d[n+1]==="'"&&d[n+3]==="'")&&(s=ua(d[n],i),u=Pe**BigInt(d[n].length),n++),(d[n]==="("&&d[n+2]===")"||d[n]==="'"&&d[n+2]==="'")&&(c=ua(d[n+1],i),A=Pe**BigInt(d[n+1].length)-$,n+=3)):d[n+1]==="/"||d[n+1]===":"?(s=ua(d[n],i),u=ua(d[n+2],$),n+=3):d[n+3]==="/"&&d[n+1]===" "&&(o=ua(d[n],i),s=ua(d[n+2],i),u=ua(d[n+4],$),n+=5),!(d.length<=n)))throw Ea();t=u*A,i=a=c+t*o+A*s}else{if(typeof r!="bigint")throw Ea();a=r,i=r,t=$}if(t===W)throw yr();P.s=i<W?-$:$,P.n=a<W?-a:a,P.d=t<W?-t:t};function uc(r,e,a){let t=$,i=function(n,o,s){let c=$;for(;o>W;n=n*n%s,o>>=$)o&$&&(c=c*n%s);return c}(Pe,a,e);for(let n=0;n<300;n++){if(t===i)return BigInt(n);t=t*Pe%e,i=i*Pe%e}return 0}function Fa(r,e){if(!r)return e;if(!e)return r;for(;;){if(!(r%=e))return e;if(!(e%=r))return r}}function Xe(r,e){if(je(r,e),!(this instanceof Xe))return pe(P.s*P.n,P.d);r=Fa(P.d,P.n),this.s=P.s,this.n=P.n/r,this.d=P.d/r}var yr=function(){return new Error("Division by Zero")},Ea=function(){return new Error("Invalid argument")},ci=function(){return new Error("Parameters must be integer")};Xe.prototype={s:$,n:W,d:$,abs:function(){return pe(this.n,this.d)},neg:function(){return pe(-this.s*this.n,this.d)},add:function(r,e){return je(r,e),pe(this.s*this.n*P.d+P.s*this.d*P.n,this.d*P.d)},sub:function(r,e){return je(r,e),pe(this.s*this.n*P.d-P.s*this.d*P.n,this.d*P.d)},mul:function(r,e){return je(r,e),pe(this.s*P.s*this.n*P.n,this.d*P.d)},div:function(r,e){return je(r,e),pe(this.s*P.s*this.n*P.d,this.d*P.n)},clone:function(){return pe(this.s*this.n,this.d)},mod:function(r,e){if(r===void 0)return pe(this.s*this.n%this.d,$);if(je(r,e),W===P.n*this.d)throw yr();return pe(this.s*(P.d*this.n)%(P.n*this.d),P.d*this.d)},gcd:function(r,e){return je(r,e),pe(Fa(P.n,this.n)*Fa(P.d,this.d),P.d*this.d)},lcm:function(r,e){return je(r,e),P.n===W&&this.n===W?pe(W,$):pe(P.n*this.n,Fa(P.n,this.n)*Fa(P.d,this.d))},inverse:function(){return pe(this.s*this.d,this.n)},pow:function(r,e){if(je(r,e),P.d===$)return P.s<W?pe((this.s*this.d)**P.n,this.n**P.n):pe((this.s*this.n)**P.n,this.d**P.n);if(this.s<W)return null;let a=Ua(this.n),t=Ua(this.d),i=$,n=$;for(let o in a)if(o!=="1"){if(o==="0"){i=W;break}if(a[o]*=P.n,a[o]%P.d!==W)return null;a[o]/=P.d,i*=BigInt(o)**a[o]}for(let o in t)if(o!=="1"){if(t[o]*=P.n,t[o]%P.d!==W)return null;t[o]/=P.d,n*=BigInt(o)**t[o]}return P.s<W?pe(n,i):pe(i,n)},log:function(r,e){if(je(r,e),this.s<=W||P.s<=W)return null;const a={},t=Ua(P.n),i=Ua(P.d),n=Ua(this.n),o=Ua(this.d);for(const u in i)t[u]=(t[u]||W)-i[u];for(const u in o)n[u]=(n[u]||W)-o[u];for(const u in t)u!=="1"&&(a[u]=!0);for(const u in n)u!=="1"&&(a[u]=!0);let s=null,c=null;for(const u in a){const A=t[u]||W,d=n[u]||W;if(A===W){if(d!==W)return null;continue}let b=d,h=A;const l=Fa(b,h);if(b/=l,h/=l,s===null&&c===null)s=b,c=h;else if(b*c!=s*h)return null}return s!==null&&c!==null?pe(s,c):null},equals:function(r,e){return je(r,e),this.s*this.n*P.d==P.s*P.n*this.d},lt:function(r,e){return je(r,e),this.s*this.n*P.d<P.s*P.n*this.d},lte:function(r,e){return je(r,e),this.s*this.n*P.d<=P.s*P.n*this.d},gt:function(r,e){return je(r,e),this.s*this.n*P.d>P.s*P.n*this.d},gte:function(r,e){return je(r,e),this.s*this.n*P.d>=P.s*P.n*this.d},compare:function(r,e){je(r,e);let a=this.s*this.n*P.d-P.s*P.n*this.d;return(W<a)-(a<W)},ceil:function(r){return r=Pe**BigInt(r||0),pe(ea(this.s*r*this.n/this.d)+(r*this.n%this.d>W&&this.s>=W?$:W),r)},floor:function(r){return r=Pe**BigInt(r||0),pe(ea(this.s*r*this.n/this.d)-(r*this.n%this.d>W&&this.s<W?$:W),r)},round:function(r){return r=Pe**BigInt(r||0),pe(ea(this.s*r*this.n/this.d)+this.s*((this.s>=W?$:W)+et*(r*this.n%this.d)>this.d?$:W),r)},roundTo:function(r,e){je(r,e);const a=this.n*P.d,t=this.d*P.n,i=a%t;let n=ea(a/t);return i+i>=t&&n++,pe(this.s*n*P.n,P.d)},divisible:function(r,e){return je(r,e),!(!(P.n*this.d)||this.n*P.d%(P.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(r){let e=this.n,a=this.d;r=r||15;let t=function(o,s){for(;s%et===W;s/=et);for(;s%lr===W;s/=lr);if(s===$)return W;let c=Pe%s,u=1;for(;c!==$;u++)if(c=c*Pe%s,u>2e3)return W;return BigInt(u)}(0,a),i=uc(0,a,t),n=this.s<W?"-":"";if(n+=ea(e/a),e%=a,e*=Pe,e&&(n+="."),t){for(let o=i;o--;)n+=ea(e/a),e%=a,e*=Pe;n+="(";for(let o=t;o--;)n+=ea(e/a),e%=a,e*=Pe;n+=")"}else for(let o=r;e&&o--;)n+=ea(e/a),e%=a,e*=Pe;return n},toFraction:function(r){let e=this.n,a=this.d,t=this.s<W?"-":"";if(a===$)t+=e;else{let i=ea(e/a);r&&i>W&&(t+=i,t+=" ",e%=a),t+=e,t+="/",t+=a}return t},toLatex:function(r){let e=this.n,a=this.d,t=this.s<W?"-":"";if(a===$)t+=e;else{let i=ea(e/a);r&&i>W&&(t+=i,e%=a),t+="\\frac{",t+=e,t+="}{",t+=a,t+="}"}return t},toContinued:function(){let r=this.n,e=this.d,a=[];do{a.push(ea(r/e));let t=r%e;r=e,e=t}while(r!==$);return a},simplify:function(r){const e=BigInt(1/(r||.001)|0),a=this.abs(),t=a.toContinued();for(let i=1;i<t.length;i++){let n=pe(t[i-1],$);for(let s=i-2;s>=0;s--)n=n.inverse().add(t[s]);let o=n.sub(a);if(o.n*e<o.d)return n.mul(this.s)}return this}};var dc=ne("Fraction",[],()=>(Object.defineProperty(Xe,"name",{value:"Fraction"}),Xe.prototype.constructor=Xe,Xe.prototype.type="Fraction",Xe.prototype.isFraction=!0,Xe.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},Xe.fromJSON=function(r){return new Xe(r)},Xe),{isClass:!0}),hc=ne("Matrix",[],()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,a){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,a,t){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,a,t){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,a){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,a){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,a){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function er(r,e,a){var t=new r.constructor(2),i="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!Ce(a))throw new Error("size must be an integer");if(r.greaterThan(t.pow(a-1).sub(1))||r.lessThan(t.pow(a-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(t.pow(a))),i="i".concat(a)}switch(e){case 2:return"".concat(r.toBinary()).concat(i);case 8:return"".concat(r.toOctal()).concat(i);case 16:return"".concat(r.toHexadecimal()).concat(i);default:throw new Error("Base ".concat(e," not supported "))}}function lc(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:a,precision:t,wordSize:i}=mn(e);switch(a){case"fixed":return function(u,A){return u.toFixed(A)}(r,t);case"exponential":return ui(r,t);case"engineering":return function(u,A){var d=u.e,b=d%3==0?d:d<0?d-3-d%3:d-d%3,h=u.mul(Math.pow(10,-b)),l=h.toPrecision(A);return l.includes("e")&&(l=new u.constructor(l).toFixed()),l+"e"+(d>=0?"+":"")+b.toString()}(r,t);case"bin":return er(r,2,i);case"oct":return er(r,8,i);case"hex":return er(r,16,i);case"auto":var n=di(e?.lowerExp,-3),o=di(e?.upperExp,5);if(r.isZero())return"0";var s=r.toSignificantDigits(t),c=s.e;return(c>=n&&c<o?s.toFixed():ui(r,t)).replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],A=arguments[4];return u!=="."?u+A:A});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function ui(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function di(r,e){return be(r)?r:Fe(r)?r.toNumber():e}function ve(r,e){var a=function(t,i){return typeof t=="number"?cr(t,i):Fe(t)?lc(t,i):function(n){return n&&typeof n=="object"&&typeof n.s=="bigint"&&typeof n.n=="bigint"&&typeof n.d=="bigint"||!1}(t)?i&&i.fraction==="decimal"?t.toString():"".concat(t.s*t.n,"/").concat(t.d):Array.isArray(t)?Fn(t,i):oa(t)?hi(t):typeof t=="function"?t.syntax?String(t.syntax):"function":t&&typeof t=="object"?typeof t.format=="function"?t.format(i):t&&t.toString(i)!=={}.toString()?t.toString(i):"{"+Object.keys(t).map(n=>hi(n)+": "+ve(t[n],i)).join(", ")+"}":String(t)}(r,e);return e&&typeof e=="object"&&"truncate"in e&&a.length>e.truncate?a.substring(0,e.truncate-3)+"...":a}function hi(r){for(var e=String(r),a="",t=0;t<e.length;){var i=e.charAt(t);a+=i in li?li[i]:i,t++}return'"'+a+'"'}var li={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Fn(r,e){if(Array.isArray(r)){for(var a="[",t=r.length,i=0;i<t;i++)i!==0&&(a+=", "),a+=Fn(r[i],e);return a+="]"}return ve(r,e)}function me(r,e,a){if(!(this instanceof me))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=a,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}function za(r,e,a){if(!(this instanceof za))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=a),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function Ge(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function Qn(r,e,a){var t,i=r.length;if(i!==e[a])throw new me(i,e[a]);if(a<e.length-1){var n=a+1;for(t=0;t<i;t++){var o=r[t];if(!Array.isArray(o))throw new me(e.length-1,e.length,"<");Qn(r[t],e,n)}}else for(t=0;t<i;t++)if(Array.isArray(r[t]))throw new me(e.length+1,e.length,">")}function bi(r,e){if(e.length===0){if(Array.isArray(r))throw new me(r.length,0)}else Qn(r,e,0)}function Ie(r,e){if(r!==void 0){if(!be(r)||!Ce(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new za(r,e)}}function br(r,e,a){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");return e.forEach(function(t){if(!be(t)||!Ce(t)||t<0)throw new TypeError("Invalid size, must contain positive integers (size: "+ve(e)+")")}),(be(r)||Fe(r))&&(r=[r]),gr(r,e,0,a!==void 0?a:0),r}function gr(r,e,a,t){var i,n,o=r.length,s=e[a],c=Math.min(o,s);if(r.length=s,a<e.length-1){var u=a+1;for(i=0;i<c;i++)n=r[i],Array.isArray(n)||(n=[n],r[i]=n),gr(n,e,u,t);for(i=c;i<s;i++)n=[],r[i]=n,gr(n,e,u,t)}else{for(i=0;i<c;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=c;i<s;i++)r[i]=t}}function kn(r,e){var a=function(n){var o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(n))return n;if(typeof o!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var s=[];return o?u(n):c(n),s;function c(A){for(var d=0;d<A.length;d++){var b=A[d];Array.isArray(b)?c(b):s.push(b)}}function u(A){if(Array.isArray(A[0]))for(var d=0;d<A.length;d++)u(A[d]);else for(var b=0;b<A.length;b++)s.push(A[b])}}(r,!0),t=a.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new me(0,t,"!=");var i=jn(e=wr(e,t));if(t!==i)throw new me(i,t,"!=");try{return function(n,o){for(var s,c=n,u=o.length-1;u>0;u--){var A=o[u];s=[];for(var d=c.length/A,b=0;b<d;b++)s.push(c.slice(b*A,(b+1)*A));c=s}return c}(a,e)}catch(n){throw n instanceof me?new me(i,t,"!="):n}}function wr(r,e){var a=jn(r),t=r.slice(),i=r.indexOf(-1);if(r.indexOf(-1,i+1)>=0)throw new Error("More than one wildcard in sizes");if(i>=0){if(e%a!=0)throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-a);t[i]=-e/a}return t}function jn(r){return r.reduce((e,a)=>e*a,1)}function Mn(r,e,a,t){var i=t||Ge(r);if(a)for(var n=0;n<a;n++)r=[r],i.unshift(1);for(r=Rn(r,e,0);i.length<e;)i.push(1);return r}function Rn(r,e,a){var t,i;if(Array.isArray(r)){var n=a+1;for(t=0,i=r.length;t<i;t++)r[t]=Rn(r[t],e,n)}else for(var o=a;o<e;o++)r=[r];return r}function xr(r,e){for(var a,t=0,i=0;i<r.length;i++){var n=r[i],o=Array.isArray(n);if(i===0&&o&&(t=n.length),o&&n.length!==t)return;var s=o?xr(n,e):e(n);if(a===void 0)a=s;else if(a!==s)return"mixed"}return a}function Sn(r,e,a,t){if(t<a){if(r.length!==e.length)throw new me(r.length,e.length);for(var i=[],n=0;n<r.length;n++)i[n]=Sn(r[n],e[n],a,t+1);return i}return r.concat(e)}function bc(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(a,t){return Sn(a,t,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function gi(r,e){for(var a=e.length,t=r.length,i=0;i<t;i++){var n=a-t+i;if(r[i]<e[n]&&r[i]>1||r[i]>e[n])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(t," with size ").concat(r[i]," to size ").concat(e[n]))}}function fi(r,e){var a=Ge(r);if(Ja(a,e))return r;gi(a,e);var t,i,n,o=function(){for(var d=arguments.length,b=new Array(d),h=0;h<d;h++)b[h]=arguments[h];for(var l=b.map(w=>w.length),g=Math.max(...l),m=new Array(g).fill(null),E=0;E<b.length;E++)for(var p=b[E],C=l[E],I=0;I<C;I++){var x=g-C+I;p[I]>m[x]&&(m[x]=p[I])}for(var y=0;y<b.length;y++)gi(b[y],m);return m}(a,e),s=o.length,c=[...Array(s-a.length).fill(1),...a],u=function(d){return Bt([],d)}(r);a.length<s&&(a=Ge(u=kn(u,c)));for(var A=0;A<s;A++)a[A]<o[A]&&(t=u,i=o[A],n=A,a=Ge(u=bc(...Array(i).fill(t),n)));return u}function Tn(r,e){if(!Array.isArray(r))throw new Error("Array expected");var a=Ge(r);if(e.length!==a.length)throw new me(e.length,a.length);for(var t=0;t<e.length;t++)Ie(e[t],a[t]);return e.reduce((i,n)=>i[n],r)}function pi(r,e){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(r.length===0)return[];if(a)return function i(n){if(Array.isArray(n)){for(var o=n.length,s=Array(o),c=0;c<o;c++)s[c]=i(n[c]);return s}return e(n)}(r);var t=[];return function i(n,o){if(Array.isArray(n)){for(var s=n.length,c=Array(s),u=0;u<s;u++)t[o]=u,c[u]=i(n[u],o+1);return c}return e(n,t.slice(0,o),r)}(r,0)}function Qt(r,e,a){var t=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(wt.isTypedFunction(r)){var i,n;if(t)i=1;else{var o=(e.isMatrix?e.size():Ge(e)).map(()=>0),s=e.isMatrix?e.get(o):Tn(e,o);i=function(u,A,d,b){for(var h=[A,d,b],l=3;l>0;l--){var g=h.slice(0,l);if(wt.resolve(u,g)!==null)return l}}(r,s,o,e)}if(e.isMatrix&&e.dataType!=="mixed"&&e.dataType!==void 0){var c=function(u,A){var d=[];if(Object.entries(u.signatures).forEach(b=>{var[h,l]=b;h.split(",").length===A&&d.push(l)}),d.length===1)return d[0]}(r,i);n=c!==void 0?c:r}else n=r;return i>=1&&i<=3?{isUnary:i===1,fn:function(){for(var u=arguments.length,A=new Array(u),d=0;d<u;d++)A[d]=arguments[d];return mi(n,A.slice(0,i),a,r.name)}}:{isUnary:!1,fn:function(){for(var u=arguments.length,A=new Array(u),d=0;d<u;d++)A[d]=arguments[d];return mi(n,A,a,r.name)}}}return t===void 0?{isUnary:gc(r),fn:r}:{isUnary:t,fn:r}}function gc(r){if(r.length!==1)return!1;var e=r.toString();if(/arguments/.test(e))return!1;var a=e.match(/\(.*?\)/);return!/\.\.\./.test(a)}function mi(r,e,a,t){try{return r(...e)}catch(i){(function(n,o,s,c){var u;if(n instanceof TypeError&&((u=n.data)===null||u===void 0?void 0:u.category)==="wrongType"){var A=[];throw A.push("value: ".concat(Da(o[0]))),o.length>=2&&A.push("index: ".concat(Da(o[1]))),o.length>=3&&A.push("array: ".concat(Da(o[2]))),new TypeError("Function ".concat(s," cannot apply callback arguments ")+"".concat(c,"(").concat(A.join(", "),") at index ").concat(JSON.stringify(o[1])))}throw new TypeError("Function ".concat(s," cannot apply callback arguments ")+"to function ".concat(c,": ").concat(n.message))})(i,e,a,t)}}me.prototype=new RangeError,me.prototype.constructor=RangeError,me.prototype.name="DimensionError",me.prototype.isDimensionError=!0,za.prototype=new RangeError,za.prototype.constructor=RangeError,za.prototype.name="IndexError",za.prototype.isIndexError=!0;var fc=ne("DenseMatrix",["Matrix"],r=>{var{Matrix:e}=r;function a(o,s){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(s&&!oa(s))throw new Error("Invalid datatype: "+s);if(xe(o))o.type==="DenseMatrix"?(this._data=we(o._data),this._size=we(o._size),this._datatype=s||o._datatype):(this._data=o.toArray(),this._size=o.size(),this._datatype=s||o._datatype);else if(o&&Qe(o.data)&&Qe(o.size))this._data=o.data,this._size=o.size,bi(this._data,this._size),this._datatype=s||o.datatype;else if(Qe(o))this._data=n(o),this._size=Ge(this._data),bi(this._data,this._size),this._datatype=s;else{if(o)throw new TypeError("Unsupported type of data ("+Da(o)+")");this._data=[],this._size=[0],this._datatype=s}}function t(o,s,c){if(s.length===0){for(var u=o._data;Qe(u);)u=u[0];return u}return o._size=s.slice(0),o._data=br(o._data,o._size,c),o}function i(o,s,c){for(var u=o._size.slice(0),A=!1;u.length<s.length;)u.push(0),A=!0;for(var d=0,b=s.length;d<b;d++)s[d]>u[d]&&(u[d]=s[d],A=!0);A&&t(o,u,c)}function n(o){return xe(o)?n(o.valueOf()):Qe(o)?o.map(n):o}return a.prototype=new e,a.prototype.createDenseMatrix=function(o,s){return new a(o,s)},Object.defineProperty(a,"name",{value:"DenseMatrix"}),a.prototype.constructor=a,a.prototype.type="DenseMatrix",a.prototype.isDenseMatrix=!0,a.prototype.getDataType=function(){return xr(this._data,Da)},a.prototype.storage=function(){return"dense"},a.prototype.datatype=function(){return this._datatype},a.prototype.create=function(o,s){return new a(o,s)},a.prototype.subset=function(o,s,c){switch(arguments.length){case 1:return function(u,A){if(!Br(A))throw new TypeError("Invalid index");var d=A.isScalar();if(d)return u.get(A.min());var b=A.size();if(b.length!==u._size.length)throw new me(b.length,u._size.length);for(var h=A.min(),l=A.max(),g=0,m=u._size.length;g<m;g++)Ie(h[g],u._size[g]),Ie(l[g],u._size[g]);var E=new a([]),p=function(C,I){var x=I.size().length-1,y=Array(x);return{data:w(C),size:y};function w(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,M=I.dimension(F);return y[F]=M.size()[0],F<x?M.map(k=>(Ie(k,D.length),w(D[k],F+1))).valueOf():M.map(k=>(Ie(k,D.length),D[k])).valueOf()}}(u._data,A);return E._size=p.size,E._datatype=u._datatype,E._data=p.data,E}(this,o);case 2:case 3:return function(u,A,d,b){if(!A||A.isIndex!==!0)throw new TypeError("Invalid index");var h,l=A.size(),g=A.isScalar();if(xe(d)?(h=d.size(),d=d.valueOf()):h=Ge(d),g){if(h.length!==0)throw new TypeError("Scalar expected");u.set(A.min(),d,b)}else{if(!Ja(h,l))try{h=Ge(d=h.length===0?fi([d],l):fi(d,l))}catch{}if(l.length<u._size.length)throw new me(l.length,u._size.length,"<");if(h.length<l.length){for(var m=0,E=0;l[m]===1&&h[m]===1;)m++;for(;l[m]===1;)E++,m++;d=Mn(d,l.length,E,h)}if(!Ja(l,h))throw new me(l,h,">");var p=A.max().map(function(C){return C+1});i(u,p,b),function(C,I,x){var y=I.size().length-1;function w(D,F){var M=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,k=I.dimension(M);M<y?k.forEach((_,q)=>{Ie(_,D.length),w(D[_],F[q[0]],M+1)}):k.forEach((_,q)=>{Ie(_,D.length),D[_]=F[q[0]]})}w(C,x)}(u._data,A,d)}return u}(this,o,s,c);default:throw new SyntaxError("Wrong number of arguments")}},a.prototype.get=function(o){return Tn(this._data,o)},a.prototype.set=function(o,s,c){if(!Qe(o))throw new TypeError("Array expected");if(o.length<this._size.length)throw new me(o.length,this._size.length,"<");var u,A,d,b=o.map(function(l){return l+1});i(this,b,c);var h=this._data;for(u=0,A=o.length-1;u<A;u++)Ie(d=o[u],h.length),h=h[d];return Ie(d=o[o.length-1],h.length),h[d]=s,this},a.prototype.resize=function(o,s,c){if(!Dt(o))throw new TypeError("Array or Matrix expected");var u=o.valueOf().map(A=>Array.isArray(A)&&A.length===1?A[0]:A);return t(c?this.clone():this,u,s)},a.prototype.reshape=function(o,s){var c=s?this.clone():this;c._data=kn(c._data,o);var u=c._size.reduce((A,d)=>A*d);return c._size=wr(o,u),c},a.prototype.clone=function(){return new a({data:we(this._data),size:we(this._size),datatype:this._datatype})},a.prototype.size=function(){return this._size.slice(0)},a.prototype.map=function(o){var s=arguments.length>2&&arguments[2]!==void 0&&arguments[2],c=this,u=c._size.length-1;if(u<0)return c.clone();var A=Qt(o,c,"map",s),d=A.fn,b=c.create(void 0,c._datatype);if(b._size=c._size,s||A.isUnary)return b._data=function E(p){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=Array(p.length);if(C<u)for(var x=0;x<p.length;x++)I[x]=E(p[x],C+1);else for(var y=0;y<p.length;y++)I[y]=d(p[y]);return I}(c._data),b;if(u===0){for(var h=c.valueOf(),l=Array(h.length),g=0;g<h.length;g++)l[g]=d(h[g],[g],c);return b._data=l,b}var m=[];return b._data=function E(p){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=Array(p.length);if(C<u)for(var x=0;x<p.length;x++)m[C]=x,I[x]=E(p[x],C+1);else for(var y=0;y<p.length;y++)m[C]=y,I[y]=d(p[y],m.slice(),c);return I}(c._data),b},a.prototype.forEach=function(o){var s=arguments.length>2&&arguments[2]!==void 0&&arguments[2],c=this,u=c._size.length-1;if(!(u<0)){var A=Qt(o,c,"map",s),d=A.fn;if(s||A.isUnary)(function l(g){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(m<u)for(var E=0;E<g.length;E++)l(g[E],m+1);else for(var p=0;p<g.length;p++)d(g[p])})(c._data);else if(u!==0){var b=[];(function l(g){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(m<u)for(var E=0;E<g.length;E++)b[m]=E,l(g[E],m+1);else for(var p=0;p<g.length;p++)b[m]=p,d(g[p],b.slice(),c)})(c._data)}else for(var h=0;h<c._data.length;h++)d(c._data[h],[h],c)}},a.prototype[Symbol.iterator]=function*(){var o=this._size.length-1;if(!(o<0))if(o!==0){var s=[],c=function*(A,d){if(d<o)for(var b=0;b<A.length;b++)s[d]=b,yield*c(A[b],d+1);else for(var h=0;h<A.length;h++)s[d]=h,yield{value:A[h],index:s.slice()}};yield*c(this._data,0)}else for(var u=0;u<this._data.length;u++)yield{value:this._data[u],index:[u]}},a.prototype.rows=function(){var o=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var s=this._data;for(var c of s)o.push(new a([c],this._datatype));return o},a.prototype.columns=function(){var o=this,s=[],c=this.size();if(c.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var u=this._data,A=function(b){var h=u.map(l=>[l[b]]);s.push(new a(h,o._datatype))},d=0;d<c[1];d++)A(d);return s},a.prototype.toArray=function(){return we(this._data)},a.prototype.valueOf=function(){return this._data},a.prototype.format=function(o){return ve(this._data,o)},a.prototype.toString=function(){return ve(this._data)},a.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(o){if(o){if(Fe(o)&&(o=o.toNumber()),!be(o)||!Ce(o))throw new TypeError("The parameter k must be an integer number")}else o=0;for(var s=o>0?o:0,c=o<0?-o:0,u=this._size[0],A=this._size[1],d=Math.min(u-c,A-s),b=[],h=0;h<d;h++)b[h]=this._data[h+c][h+s];return new a({data:b,size:[d],datatype:this._datatype})},a.diagonal=function(o,s,c,u){if(!Qe(o))throw new TypeError("Array expected, size parameter");if(o.length!==2)throw new Error("Only two dimensions matrix are supported");if(o=o.map(function(C){if(Fe(C)&&(C=C.toNumber()),!be(C)||!Ce(C)||C<1)throw new Error("Size values must be positive integers");return C}),c){if(Fe(c)&&(c=c.toNumber()),!be(c)||!Ce(c))throw new TypeError("The parameter k must be an integer number")}else c=0;var A,d=c>0?c:0,b=c<0?-c:0,h=o[0],l=o[1],g=Math.min(h-b,l-d);if(Qe(s)){if(s.length!==g)throw new Error("Invalid value array length");A=function(C){return s[C]}}else if(xe(s)){var m=s.size();if(m.length!==1||m[0]!==g)throw new Error("Invalid matrix length");A=function(C){return s.get([C])}}else A=function(){return s};u||(u=Fe(A(0))?A(0).mul(0):0);var E=[];if(o.length>0){E=br(E,o,u);for(var p=0;p<g;p++)E[p+b][p+d]=A(p)}return new a({data:E,size:[h,l]})},a.fromJSON=function(o){return new a(o)},a.prototype.swapRows=function(o,s){if(!(be(o)&&Ce(o)&&be(s)&&Ce(s)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ie(o,this._size[0]),Ie(s,this._size[0]),a._swapRows(o,s,this._data),this},a._swapRows=function(o,s,c){var u=c[o];c[o]=c[s],c[s]=u},a},{isClass:!0});function ja(r,e,a){if(!a)return xe(r)?r.map(i=>e(i),!1,!0):pi(r,e,!0);var t=i=>i===0?i:e(i);return xe(r)?r.map(i=>t(i),!1,!0):pi(r,t,!0)}var Ei="number",ct="number, number";function Nn(r){return Math.abs(r)}function Un(r,e){return r+e}function Ln(r,e){return r-e}function Gn(r,e){return r*e}function _n(r){return-r}function zn(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}function fr(r,e){if(e<r)return 1;if(e===r)return e;var a=e+r>>1;return fr(r,a)*fr(a+1,e)}function kt(r){var e;if(Ce(r))return r<=0?isFinite(r)?1/0:NaN:r>171?1/0:fr(1,r-1);if(r<.5)return Math.PI/(Math.sin(Math.PI*r)*kt(1-r));if(r>=171.35)return 1/0;if(r>85){var a=r*r,t=a*r,i=t*r,n=i*r;return Math.sqrt(2*Math.PI/r)*Math.pow(r/Math.E,r)*(1+1/(12*r)+1/(288*a)-139/(51840*t)-571/(2488320*i)+163879/(209018880*n)+5246819/(75246796800*n*r))}--r,e=qa[0];for(var o=1;o<qa.length;++o)e+=qa[o]/(r+o);var s=r+Pn+.5;return Math.sqrt(2*Math.PI)*Math.pow(s,r+.5)*Math.exp(-s)*e}Nn.signature=Ei,Un.signature=ct,Ln.signature=ct,Gn.signature=ct,_n.signature=Ei,zn.signature=ct,kt.signature="number";var Pn=4.7421875,qa=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],Ci="isZero",pc=ne(Ci,["typed","equalScalar"],r=>{var{typed:e,equalScalar:a}=r;return e(Ci,{"number | BigNumber | Complex | Fraction":t=>a(t,0),bigint:t=>t===0n,Unit:e.referToSelf(t=>i=>e.find(t,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(t=>i=>ja(i,t))})}),mc=ne("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(!t.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(a,[t.valueType(),i.valueType()])(t.value,i.value)})}}),jt="equalScalar",Ec=ne(jt,["typed","config"],r=>{var{typed:e,config:a}=r,t=mc({typed:e});return e(jt,{"boolean, boolean":function(i,n){return i===n},"number, number":function(i,n){return mt(i,n,a.relTol,a.absTol)},"BigNumber, BigNumber":function(i,n){return i.eq(n)||function(o,s){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(c<=0)throw new Error("Relative tolerance must be greater than 0");if(u<0)throw new Error("Absolute tolerance must be at least 0");return!o.isNaN()&&!s.isNaN()&&(o.isFinite()&&s.isFinite()?!!o.eq(s)||o.minus(s).abs().lte(o.constructor.max(o.constructor.max(o.abs(),s.abs()).mul(c),u)):o.eq(s))}(i,n,a.relTol,a.absTol)},"bigint, bigint":function(i,n){return i===n},"Fraction, Fraction":function(i,n){return i.equals(n)},"Complex, Complex":function(i,n){return function(o,s,c,u){return mt(o.re,s.re,c,u)&&mt(o.im,s.im,c,u)}(i,n,a.relTol,a.absTol)}},t)});ne(jt,["typed","config"],r=>{var{typed:e,config:a}=r;return e(jt,{"number, number":function(t,i){return mt(t,i,a.relTol,a.absTol)}})});var Cc=ne("SparseMatrix",["typed","equalScalar","Matrix"],r=>{var{typed:e,equalScalar:a,Matrix:t}=r;function i(A,d){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(d&&!oa(d))throw new Error("Invalid datatype: "+d);if(xe(A))(function(b,h,l){h.type==="SparseMatrix"?(b._values=h._values?we(h._values):void 0,b._index=we(h._index),b._ptr=we(h._ptr),b._size=we(h._size),b._datatype=l||h._datatype):n(b,h.valueOf(),l||h._datatype)})(this,A,d);else if(A&&Qe(A.index)&&Qe(A.ptr)&&Qe(A.size))this._values=A.values,this._index=A.index,this._ptr=A.ptr,this._size=A.size,this._datatype=d||A.datatype;else if(Qe(A))n(this,A,d);else{if(A)throw new TypeError("Unsupported type of data ("+Da(A)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=d}}function n(A,d,b){A._values=[],A._index=[],A._ptr=[],A._datatype=b;var h=d.length,l=0,g=a,m=0;if(oa(b)&&(g=e.find(a,[b,b])||a,m=e.convert(0,b)),h>0){var E=0;do{A._ptr.push(A._index.length);for(var p=0;p<h;p++){var C=d[p];if(Qe(C)){if(E===0&&l<C.length&&(l=C.length),E<C.length){var I=C[E];g(I,m)||(A._values.push(I),A._index.push(p))}}else E===0&&l<1&&(l=1),g(C,m)||(A._values.push(C),A._index.push(p))}E++}while(E<l)}A._ptr.push(A._index.length),A._size=[h,l]}function o(A,d,b,h){if(b-d==0)return b;for(var l=d;l<b;l++)if(h[l]===A)return l;return d}function s(A,d,b,h,l,g,m){l.splice(A,0,h),g.splice(A,0,d);for(var E=b+1;E<m.length;E++)m[E]++}function c(A,d,b,h){var l=h||0,g=a,m=0;oa(A._datatype)&&(g=e.find(a,[A._datatype,A._datatype])||a,m=e.convert(0,A._datatype),l=e.convert(l,A._datatype));var E,p,C,I=!g(l,m),x=A._size[0],y=A._size[1];if(b>y){for(p=y;p<b;p++)if(A._ptr[p]=A._values.length,I)for(E=0;E<x;E++)A._values.push(l),A._index.push(E);A._ptr[b]=A._values.length}else b<y&&(A._ptr.splice(b+1,y-b),A._values.splice(A._ptr[b],A._values.length),A._index.splice(A._ptr[b],A._index.length));if(y=b,d>x){if(I){var w=0;for(p=0;p<y;p++){A._ptr[p]=A._ptr[p]+w,C=A._ptr[p+1]+w;var D=0;for(E=x;E<d;E++,D++)A._values.splice(C+D,0,l),A._index.splice(C+D,0,E),w++}A._ptr[y]=A._values.length}}else if(d<x){var F=0;for(p=0;p<y;p++){A._ptr[p]=A._ptr[p]-F;var M=A._ptr[p],k=A._ptr[p+1]-F;for(C=M;C<k;C++)(E=A._index[C])>d-1&&(A._values.splice(C,1),A._index.splice(C,1),F++)}A._ptr[p]=A._values.length}return A._size[0]=d,A._size[1]=b,A}function u(A,d,b,h,l){var g,m,E=h[0],p=h[1],C=[];for(g=0;g<E;g++)for(C[g]=[],m=0;m<p;m++)C[g][m]=0;for(m=0;m<p;m++)for(var I=b[m],x=b[m+1],y=I;y<x;y++)C[g=d[y]][m]=A?l?we(A[y]):A[y]:1;return C}return i.prototype=new t,i.prototype.createSparseMatrix=function(A,d){return new i(A,d)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return xr(this._values,Da)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(A,d){return new i(A,d)},i.prototype.density=function(){var A=this._size[0],d=this._size[1];return A!==0&&d!==0?this._index.length/(A*d):0},i.prototype.subset=function(A,d,b){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(h,l){if(!Br(l))throw new TypeError("Invalid index");if(l.isScalar())return h.get(l.min());var g,m,E,p,C=l.size();if(C.length!==h._size.length)throw new me(C.length,h._size.length);var I=l.min(),x=l.max();for(g=0,m=h._size.length;g<m;g++)Ie(I[g],h._size[g]),Ie(x[g],h._size[g]);var y=h._values,w=h._index,D=h._ptr,F=l.dimension(0),M=l.dimension(1),k=[],_=[];F.forEach(function(O,se){_[O]=se[0],k[O]=!0});var q=y?[]:void 0,V=[],J=[];return M.forEach(function(O){for(J.push(V.length),E=D[O],p=D[O+1];E<p;E++)g=w[E],k[g]===!0&&(V.push(_[g]),q&&q.push(y[E]))}),J.push(V.length),new i({values:q,index:V,ptr:J,size:C,datatype:h._datatype})}(this,A);case 2:case 3:return function(h,l,g,m){if(!l||l.isIndex!==!0)throw new TypeError("Invalid index");var E,p=l.size(),C=l.isScalar();if(xe(g)?(E=g.size(),g=g.toArray()):E=Ge(g),C){if(E.length!==0)throw new TypeError("Scalar expected");h.set(l.min(),g,m)}else{if(p.length!==1&&p.length!==2)throw new me(p.length,h._size.length,"<");if(E.length<p.length){for(var I=0,x=0;p[I]===1&&E[I]===1;)I++;for(;p[I]===1;)x++,I++;g=Mn(g,p.length,x,E)}if(!Ja(p,E))throw new me(p,E,">");if(p.length===1)l.dimension(0).forEach(function(D,F){Ie(D),h.set([D,0],g[F[0]],m)});else{var y=l.dimension(0),w=l.dimension(1);y.forEach(function(D,F){Ie(D),w.forEach(function(M,k){Ie(M),h.set([D,M],g[F[0]][k[0]],m)})})}}return h}(this,A,d,b);default:throw new SyntaxError("Wrong number of arguments")}},i.prototype.get=function(A){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==this._size.length)throw new me(A.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var d=A[0],b=A[1];Ie(d,this._size[0]),Ie(b,this._size[1]);var h=o(d,this._ptr[b],this._ptr[b+1],this._index);return h<this._ptr[b+1]&&this._index[h]===d?this._values[h]:0},i.prototype.set=function(A,d,b){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==this._size.length)throw new me(A.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var h=A[0],l=A[1],g=this._size[0],m=this._size[1],E=a,p=0;oa(this._datatype)&&(E=e.find(a,[this._datatype,this._datatype])||a,p=e.convert(0,this._datatype)),(h>g-1||l>m-1)&&(c(this,Math.max(h+1,g),Math.max(l+1,m),b),g=this._size[0],m=this._size[1]),Ie(h,g),Ie(l,m);var C=o(h,this._ptr[l],this._ptr[l+1],this._index);return C<this._ptr[l+1]&&this._index[C]===h?E(d,p)?function(I,x,y,w,D){y.splice(I,1),w.splice(I,1);for(var F=x+1;F<D.length;F++)D[F]--}(C,l,this._values,this._index,this._ptr):this._values[C]=d:E(d,p)||s(C,h,l,d,this._values,this._index,this._ptr),this},i.prototype.resize=function(A,d,b){if(!Dt(A))throw new TypeError("Array or Matrix expected");var h=A.valueOf().map(l=>Array.isArray(l)&&l.length===1?l[0]:l);if(h.length!==2)throw new Error("Only two dimensions matrix are supported");return h.forEach(function(l){if(!be(l)||!Ce(l)||l<0)throw new TypeError("Invalid size, must contain positive integers (size: "+ve(h)+")")}),c(b?this.clone():this,h[0],h[1],d)},i.prototype.reshape=function(A,d){if(!Qe(A))throw new TypeError("Array expected");if(A.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");A.forEach(function(_){if(!be(_)||!Ce(_)||_<=-2||_===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+ve(A)+")")});var b=this._size[0]*this._size[1];if(b!==(A=wr(A,b))[0]*A[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var h=d?this.clone():this;if(this._size[0]===A[0]&&this._size[1]===A[1])return h;for(var l=[],g=0;g<h._ptr.length;g++)for(var m=0;m<h._ptr[g+1]-h._ptr[g];m++)l.push(g);for(var E=h._values.slice(),p=h._index.slice(),C=0;C<h._index.length;C++){var I=p[C],x=l[C],y=I*h._size[1]+x;l[C]=y%A[1],p[C]=Math.floor(y/A[1])}h._values.length=0,h._index.length=0,h._ptr.length=A[1]+1,h._size=A.slice();for(var w=0;w<h._ptr.length;w++)h._ptr[w]=0;for(var D=0;D<E.length;D++){var F=p[D],M=l[D],k=E[D];s(o(F,h._ptr[M],h._ptr[M+1],h._index),F,M,k,h._values,h._index,h._ptr)}return h},i.prototype.clone=function(){return new i({values:this._values?we(this._values):void 0,index:we(this._index),ptr:we(this._ptr),size:we(this._size),datatype:this._datatype})},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(A,d){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var b=this,h=this._size[0],l=this._size[1],g=Qt(A,b,"map");return function(m,E,p,C,I,x,y){var w=[],D=[],F=[],M=a,k=0;oa(m._datatype)&&(M=e.find(a,[m._datatype,m._datatype])||a,k=e.convert(0,m._datatype));for(var _=function(ue,Z,ge){var X=x(ue,Z,ge);M(X,k)||(w.push(X),D.push(Z))},q=C;q<=I;q++){F.push(w.length);var V=m._ptr[q],J=m._ptr[q+1];if(y)for(var O=V;O<J;O++){var se=m._index[O];se>=E&&se<=p&&_(m._values[O],se-E,q-C)}else{for(var ce={},re=V;re<J;re++)ce[m._index[re]]=m._values[re];for(var le=E;le<=p;le++)_(le in ce?ce[le]:0,le-E,q-C)}}return F.push(w.length),new i({values:w,index:D,ptr:F,size:[p-E+1,I-C+1]})}(this,0,h-1,0,l-1,function(m,E,p){return g.fn(m,[E,p],b)},d)},i.prototype.forEach=function(A,d){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var b=this,h=this._size[0],l=this._size[1],g=Qt(A,b,"forEach"),m=0;m<l;m++){var E=this._ptr[m],p=this._ptr[m+1];if(d)for(var C=E;C<p;C++){var I=this._index[C];g.fn(this._values[C],[I,m],b)}else{for(var x={},y=E;y<p;y++)x[this._index[y]]=this._values[y];for(var w=0;w<h;w++){var D=w in x?x[w]:0;g.fn(D,[w,m],b)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var A=this._size[1],d=0;d<A;d++)for(var b=this._ptr[d],h=this._ptr[d+1],l=b;l<h;l++){var g=this._index[l];yield{value:this._values[l],index:[g,d]}}},i.prototype.toArray=function(){return u(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return u(this._values,this._index,this._ptr,this._size,!1)},i.prototype.format=function(A){for(var d=this._size[0],b=this._size[1],h=this.density(),l="Sparse Matrix ["+ve(d,A)+" x "+ve(b,A)+"] density: "+ve(h,A)+`
23
- `,g=0;g<b;g++)for(var m=this._ptr[g],E=this._ptr[g+1],p=m;p<E;p++)l+=`
24
- (`+ve(this._index[p],A)+", "+ve(g,A)+") ==> "+(this._values?ve(this._values[p],A):"X");return l},i.prototype.toString=function(){return ve(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(A){if(A){if(Fe(A)&&(A=A.toNumber()),!be(A)||!Ce(A))throw new TypeError("The parameter k must be an integer number")}else A=0;var d=A>0?A:0,b=A<0?-A:0,h=this._size[0],l=this._size[1],g=Math.min(h-b,l-d),m=[],E=[],p=[];p[0]=0;for(var C=d;C<l&&m.length<g;C++)for(var I=this._ptr[C],x=this._ptr[C+1],y=I;y<x;y++){var w=this._index[y];if(w===C-d+b){m.push(this._values[y]),E[m.length-1]=w-b;break}}return p.push(m.length),new i({values:m,index:E,ptr:p,size:[g,1]})},i.fromJSON=function(A){return new i(A)},i.diagonal=function(A,d,b,h,l){if(!Qe(A))throw new TypeError("Array expected, size parameter");if(A.length!==2)throw new Error("Only two dimensions matrix are supported");if(A=A.map(function(V){if(Fe(V)&&(V=V.toNumber()),!be(V)||!Ce(V)||V<1)throw new Error("Size values must be positive integers");return V}),b){if(Fe(b)&&(b=b.toNumber()),!be(b)||!Ce(b))throw new TypeError("The parameter k must be an integer number")}else b=0;var g=a,m=0;oa(l)&&(g=e.find(a,[l,l])||a,m=e.convert(0,l));var E,p=b>0?b:0,C=b<0?-b:0,I=A[0],x=A[1],y=Math.min(I-C,x-p);if(Qe(d)){if(d.length!==y)throw new Error("Invalid value array length");E=function(V){return d[V]}}else if(xe(d)){var w=d.size();if(w.length!==1||w[0]!==y)throw new Error("Invalid matrix length");E=function(V){return d.get([V])}}else E=function(){return d};for(var D=[],F=[],M=[],k=0;k<x;k++){M.push(D.length);var _=k-p;if(_>=0&&_<y){var q=E(_);g(q,m)||(F.push(_+C),D.push(q))}}return M.push(D.length),new i({values:D,index:F,ptr:M,size:[I,x]})},i.prototype.swapRows=function(A,d){if(!(be(A)&&Ce(A)&&be(d)&&Ce(d)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ie(A,this._size[0]),Ie(d,this._size[0]),i._swapRows(A,d,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(A,d,b,h,l){for(var g=h[A],m=h[A+1],E=g;E<m;E++)l(b[E],d[E])},i._swapRows=function(A,d,b,h,l,g){for(var m=0;m<b;m++){var E=g[m],p=g[m+1],C=o(A,E,p,l),I=o(d,E,p,l);if(C<p&&I<p&&l[C]===A&&l[I]===d){if(h){var x=h[C];h[C]=h[I],h[I]=x}}else if(C<p&&l[C]===A&&(I>=p||l[I]!==d)){var y=h?h[C]:void 0;l.splice(I,0,d),h&&h.splice(I,0,y),l.splice(I<=C?C+1:C,1),h&&h.splice(I<=C?C+1:C,1)}else if(I<p&&l[I]===d&&(C>=p||l[C]!==A)){var w=h?h[I]:void 0;l.splice(C,0,A),h&&h.splice(C,0,w),l.splice(C<=I?I+1:I,1),h&&h.splice(C<=I?I+1:I,1)}}},i},{isClass:!0}),Ic=ne("number",["typed"],r=>{var{typed:e}=r,a=e("number",{"":function(){return 0},number:function(t){return t},string:function(t){if(t==="NaN")return NaN;var i,n,o=(n=(i=t).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:i,radix:{"0b":2,"0o":8,"0x":16}[n[1]],integerPart:n[2],fractionalPart:n[3]}:null;if(o)return function(A){for(var d=parseInt(A.integerPart,A.radix),b=0,h=0;h<A.fractionalPart.length;h++)b+=parseInt(A.fractionalPart[h],A.radix)/Math.pow(A.radix,h+1);var l=d+b;if(isNaN(l))throw new SyntaxError('String "'+A.input+'" is not a valid number');return l}(o);var s=0,c=t.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(s=Number(c[2]),t=c[1]);var u=Number(t);if(isNaN(u))throw new SyntaxError('String "'+t+'" is not a valid number');if(c){if(u>2**s-1)throw new SyntaxError('String "'.concat(t,'" is out of range'));u>=2**(s-1)&&(u-=2**s)}return u},BigNumber:function(t){return t.toNumber()},bigint:function(t){return Number(t)},Fraction:function(t){return t.valueOf()},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),null:function(t){return 0},"Unit, string | Unit":function(t,i){return t.toNumber(i)},"Array | Matrix":e.referToSelf(t=>i=>ja(i,t))});return a.fromJSON=function(t){return parseFloat(t.value)},a}),Bc=ne("bignumber",["typed","BigNumber"],r=>{var{typed:e,BigNumber:a}=r;return e("bignumber",{"":function(){return new a(0)},number:function(t){return new a(t+"")},string:function(t){var i=t.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(i){var n=i[2],o=a(i[1]),s=new a(2).pow(Number(n));if(o.gt(s.sub(1)))throw new SyntaxError('String "'.concat(t,'" is out of range'));var c=new a(2).pow(Number(n)-1);return o.gte(c)?o.sub(s):o}return new a(t)},BigNumber:function(t){return t},bigint:function(t){return new a(t.toString())},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),Fraction:function(t){return new a(String(t.n)).div(String(t.d)).times(String(t.s))},null:function(t){return new a(0)},"Array | Matrix":e.referToSelf(t=>i=>ja(i,t))})}),Dc=ne("fraction",["typed","Fraction"],r=>{var{typed:e,Fraction:a}=r;return e("fraction",{number:function(t){if(!isFinite(t)||isNaN(t))throw new Error(t+" cannot be represented as a fraction");return new a(t)},string:function(t){return new a(t)},"number, number":function(t,i){return new a(t,i)},"bigint, bigint":function(t,i){return new a(t,i)},null:function(t){return new a(0)},BigNumber:function(t){return new a(t.toString())},bigint:function(t){return new a(t.toString())},Fraction:function(t){return t},Unit:e.referToSelf(t=>i=>{var n=i.clone();return n.value=t(i.value),n}),Object:function(t){return new a(t)},"Array | Matrix":e.referToSelf(t=>i=>ja(i,t))})}),Ii="matrix",yc=ne(Ii,["typed","Matrix","DenseMatrix","SparseMatrix"],r=>{var{typed:e,Matrix:a,DenseMatrix:t,SparseMatrix:i}=r;return e(Ii,{"":function(){return n([])},string:function(o){return n([],o)},"string, string":function(o,s){return n([],o,s)},Array:function(o){return n(o)},Matrix:function(o){return n(o,o.storage())},"Array | Matrix, string":n,"Array | Matrix, string, string":n});function n(o,s,c){if(s==="dense"||s==="default"||s===void 0)return new t(o,c);if(s==="sparse")return new i(o,c);throw new TypeError("Unknown matrix type "+JSON.stringify(s)+".")}}),Bi="unaryMinus",wc=ne(Bi,["typed"],r=>{var{typed:e}=r;return e(Bi,{number:_n,"Complex | BigNumber | Fraction":a=>a.neg(),bigint:a=>-a,Unit:e.referToSelf(a=>t=>{var i=t.clone();return i.value=e.find(a,i.valueType())(t.value),i}),"Array | Matrix":e.referToSelf(a=>t=>ja(t,a,!0))})}),xc=ne("abs",["typed"],r=>{var{typed:e}=r;return e("abs",{number:Nn,"Complex | BigNumber | Fraction | Unit":a=>a.abs(),bigint:a=>a<0n?-a:a,"Array | Matrix":e.referToSelf(a=>t=>ja(t,a,!0))})}),Di="addScalar",vc=ne(Di,["typed"],r=>{var{typed:e}=r;return e(Di,{"number, number":Un,"Complex, Complex":function(a,t){return a.add(t)},"BigNumber, BigNumber":function(a,t){return a.plus(t)},"bigint, bigint":function(a,t){return a+t},"Fraction, Fraction":function(a,t){return a.add(t)},"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(t.value===null||t.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(i))throw new Error("Units do not match");var n=t.clone();return n.value=e.find(a,[n.valueType(),i.valueType()])(n.value,i.value),n.fixPrefix=!1,n})})}),yi="subtractScalar",Fc=ne(yi,["typed"],r=>{var{typed:e}=r;return e(yi,{"number, number":Ln,"Complex, Complex":function(a,t){return a.sub(t)},"BigNumber, BigNumber":function(a,t){return a.minus(t)},"bigint, bigint":function(a,t){return a-t},"Fraction, Fraction":function(a,t){return a.sub(t)},"Unit, Unit":e.referToSelf(a=>(t,i)=>{if(t.value===null||t.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(i))throw new Error("Units do not match");var n=t.clone();return n.value=e.find(a,[n.valueType(),i.valueType()])(n.value,i.value),n.fixPrefix=!1,n})})}),Qc=ne("matAlgo11xS0s",["typed","equalScalar"],r=>{var{typed:e,equalScalar:a}=r;return function(t,i,n,o){var s=t._values,c=t._index,u=t._ptr,A=t._size,d=t._datatype;if(!s)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var b,h=A[0],l=A[1],g=a,m=0,E=n;typeof d=="string"&&(b=d,g=e.find(a,[b,b]),m=e.convert(0,b),i=e.convert(i,b),E=e.find(n,[b,b]));for(var p=[],C=[],I=[],x=0;x<l;x++){I[x]=C.length;for(var y=u[x],w=u[x+1],D=y;D<w;D++){var F=c[D],M=o?E(i,s[D]):E(s[D],i);g(M,m)||(C.push(F),p.push(M))}}return I[l]=C.length,t.createSparseMatrix({values:p,index:C,ptr:I,size:[h,l],datatype:b})}}),kc=ne("matAlgo14xDs",["typed"],r=>{var{typed:e}=r;return function(t,i,n,o){var s,c=t._data,u=t._size,A=t._datatype,d=n;typeof A=="string"&&(s=A,i=e.convert(i,s),d=e.find(n,[s,s]));var b=u.length>0?a(d,0,u,u[0],c,i,o):[];return t.createDenseMatrix({data:b,size:we(u),datatype:s})};function a(t,i,n,o,s,c,u){var A=[];if(i===n.length-1)for(var d=0;d<o;d++)A[d]=u?t(c,s[d]):t(s[d],c);else for(var b=0;b<o;b++)A[b]=a(t,i+1,n,n[i+1],s[b],c,u);return A}}),jc=ne("multiplyScalar",["typed"],r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":Gn,"Complex, Complex":function(a,t){return a.mul(t)},"BigNumber, BigNumber":function(a,t){return a.times(t)},"bigint, bigint":function(a,t){return a*t},"Fraction, Fraction":function(a,t){return a.mul(t)},"number | Fraction | BigNumber | Complex, Unit":(a,t)=>t.multiply(a),"Unit, number | Fraction | BigNumber | Complex | Unit":(a,t)=>a.multiply(t)})}),wi="multiply",Mc=ne(wi,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],r=>{var{typed:e,matrix:a,addScalar:t,multiplyScalar:i,equalScalar:n,dot:o}=r,s=Qc({typed:e,equalScalar:n}),c=kc({typed:e});function u(h,l){switch(h.length){case 1:switch(l.length){case 1:if(h[0]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(h[0]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+h[0]+") must match Matrix rows ("+l[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+l.length+" dimensions)")}break;case 2:switch(l.length){case 1:if(h[1]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+h[1]+") must match Vector length ("+l[0]+")");break;case 2:if(h[1]!==l[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+h[1]+") must match Matrix B rows ("+l[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+l.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+h.length+" dimensions)")}}function A(h,l){if(l.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(g,m){var E,p=g._data,C=g._size,I=g._datatype||g.getDataType(),x=m._data,y=m._size,w=m._datatype||m.getDataType(),D=C[0],F=y[1],M=t,k=i;I&&w&&I===w&&typeof I=="string"&&I!=="mixed"&&(E=I,M=e.find(t,[E,E]),k=e.find(i,[E,E]));for(var _=[],q=0;q<F;q++){for(var V=k(p[0],x[0][q]),J=1;J<D;J++)V=M(V,k(p[J],x[J][q]));_[q]=V}return g.createDenseMatrix({data:_,size:[F],datatype:I===g._datatype&&w===m._datatype?E:void 0})}(h,l)}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":function(h,l){var g,m=h._data,E=h._size,p=h._datatype||h.getDataType(),C=l._data,I=l._datatype||l.getDataType(),x=E[0],y=E[1],w=t,D=i;p&&I&&p===I&&typeof p=="string"&&p!=="mixed"&&(g=p,w=e.find(t,[g,g]),D=e.find(i,[g,g]));for(var F=[],M=0;M<x;M++){for(var k=m[M],_=D(k[0],C[0]),q=1;q<y;q++)_=w(_,D(k[q],C[q]));F[M]=_}return h.createDenseMatrix({data:F,size:[x],datatype:p===h._datatype&&I===l._datatype?g:void 0})},"SparseMatrix, any":function(h,l){var g=h._values,m=h._index,E=h._ptr,p=h._datatype||h._data===void 0?h._datatype:h.getDataType();if(!g)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var C,I=l._data,x=l._datatype||l.getDataType(),y=h._size[0],w=l._size[0],D=[],F=[],M=[],k=t,_=i,q=n,V=0;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&(C=p,k=e.find(t,[C,C]),_=e.find(i,[C,C]),q=e.find(n,[C,C]),V=e.convert(0,C));var J=[],O=[];M[0]=0;for(var se=0;se<w;se++){var ce=I[se];if(!q(ce,V))for(var re=E[se],le=E[se+1],ue=re;ue<le;ue++){var Z=m[ue];O[Z]?J[Z]=k(J[Z],_(ce,g[ue])):(O[Z]=!0,F.push(Z),J[Z]=_(ce,g[ue]))}}for(var ge=F.length,X=0;X<ge;X++){var ee=F[X];D[X]=J[ee]}return M[1]=F.length,h.createSparseMatrix({values:D,index:F,ptr:M,size:[y,1],datatype:p===h._datatype&&x===l._datatype?C:void 0})}}),b=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(h,l){var g,m=h._data,E=h._size,p=h._datatype||h.getDataType(),C=l._data,I=l._size,x=l._datatype||l.getDataType(),y=E[0],w=E[1],D=I[1],F=t,M=i;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&p!=="mixed"&&(g=p,F=e.find(t,[g,g]),M=e.find(i,[g,g]));for(var k=[],_=0;_<y;_++){var q=m[_];k[_]=[];for(var V=0;V<D;V++){for(var J=M(q[0],C[0][V]),O=1;O<w;O++)J=F(J,M(q[O],C[O][V]));k[_][V]=J}}return h.createDenseMatrix({data:k,size:[y,D],datatype:p===h._datatype&&x===l._datatype?g:void 0})},"DenseMatrix, SparseMatrix":function(h,l){var g=h._data,m=h._size,E=h._datatype||h.getDataType(),p=l._values,C=l._index,I=l._ptr,x=l._size,y=l._datatype||l._data===void 0?l._datatype:l.getDataType();if(!p)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var w,D=m[0],F=x[1],M=t,k=i,_=n,q=0;E&&y&&E===y&&typeof E=="string"&&E!=="mixed"&&(w=E,M=e.find(t,[w,w]),k=e.find(i,[w,w]),_=e.find(n,[w,w]),q=e.convert(0,w));for(var V=[],J=[],O=[],se=l.createSparseMatrix({values:V,index:J,ptr:O,size:[D,F],datatype:E===h._datatype&&y===l._datatype?w:void 0}),ce=0;ce<F;ce++){O[ce]=J.length;var re=I[ce],le=I[ce+1];if(le>re)for(var ue=0,Z=0;Z<D;Z++){for(var ge=Z+1,X=void 0,ee=re;ee<le;ee++){var Ae=C[ee];ue!==ge?(X=k(g[Z][Ae],p[ee]),ue=ge):X=M(X,k(g[Z][Ae],p[ee]))}ue!==ge||_(X,q)||(J.push(Z),V.push(X))}}return O[F]=J.length,se},"SparseMatrix, DenseMatrix":function(h,l){var g=h._values,m=h._index,E=h._ptr,p=h._datatype||h._data===void 0?h._datatype:h.getDataType();if(!g)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var C,I=l._data,x=l._datatype||l.getDataType(),y=h._size[0],w=l._size[0],D=l._size[1],F=t,M=i,k=n,_=0;p&&x&&p===x&&typeof p=="string"&&p!=="mixed"&&(C=p,F=e.find(t,[C,C]),M=e.find(i,[C,C]),k=e.find(n,[C,C]),_=e.convert(0,C));for(var q=[],V=[],J=[],O=h.createSparseMatrix({values:q,index:V,ptr:J,size:[y,D],datatype:p===h._datatype&&x===l._datatype?C:void 0}),se=[],ce=[],re=0;re<D;re++){J[re]=V.length;for(var le=re+1,ue=0;ue<w;ue++){var Z=I[ue][re];if(!k(Z,_))for(var ge=E[ue],X=E[ue+1],ee=ge;ee<X;ee++){var Ae=m[ee];ce[Ae]!==le?(ce[Ae]=le,V.push(Ae),se[Ae]=M(Z,g[ee])):se[Ae]=F(se[Ae],M(Z,g[ee]))}}for(var Ee=J[re],De=V.length,Se=Ee;Se<De;Se++){var qe=V[Se];q[Se]=se[qe]}}return J[D]=V.length,O},"SparseMatrix, SparseMatrix":function(h,l){var g,m=h._values,E=h._index,p=h._ptr,C=h._datatype||h._data===void 0?h._datatype:h.getDataType(),I=l._values,x=l._index,y=l._ptr,w=l._datatype||l._data===void 0?l._datatype:l.getDataType(),D=h._size[0],F=l._size[1],M=m&&I,k=t,_=i;C&&w&&C===w&&typeof C=="string"&&C!=="mixed"&&(g=C,k=e.find(t,[g,g]),_=e.find(i,[g,g]));for(var q,V,J,O,se,ce,re,le,ue=M?[]:void 0,Z=[],ge=[],X=h.createSparseMatrix({values:ue,index:Z,ptr:ge,size:[D,F],datatype:C===h._datatype&&w===l._datatype?g:void 0}),ee=M?[]:void 0,Ae=[],Ee=0;Ee<F;Ee++){ge[Ee]=Z.length;var De=Ee+1;for(se=y[Ee],ce=y[Ee+1],O=se;O<ce;O++)if(le=x[O],M)for(V=p[le],J=p[le+1],q=V;q<J;q++)Ae[re=E[q]]!==De?(Ae[re]=De,Z.push(re),ee[re]=_(I[O],m[q])):ee[re]=k(ee[re],_(I[O],m[q]));else for(V=p[le],J=p[le+1],q=V;q<J;q++)Ae[re=E[q]]!==De&&(Ae[re]=De,Z.push(re));if(M)for(var Se=ge[Ee],qe=Z.length,Ke=Se;Ke<qe;Ke++){var Ha=Z[Ke];ue[Ke]=ee[Ha]}}return ge[F]=Z.length,X}});return e(wi,i,{"Array, Array":e.referTo("Matrix, Matrix",h=>(l,g)=>{u(Ge(l),Ge(g));var m=h(a(l),a(g));return xe(m)?m.valueOf():m}),"Matrix, Matrix":function(h,l){var g=h.size(),m=l.size();return u(g,m),g.length===1?m.length===1?function(E,p,C){if(C===0)throw new Error("Cannot multiply two empty vectors");return o(E,p)}(h,l,g[0]):A(h,l):m.length===1?d(h,l):b(h,l)},"Matrix, Array":e.referTo("Matrix,Matrix",h=>(l,g)=>h(l,a(g))),"Array, Matrix":e.referToSelf(h=>(l,g)=>h(a(l,g.storage()),g)),"SparseMatrix, any":function(h,l){return s(h,l,i,!1)},"DenseMatrix, any":function(h,l){return c(h,l,i,!1)},"any, SparseMatrix":function(h,l){return s(l,h,i,!0)},"any, DenseMatrix":function(h,l){return c(l,h,i,!0)},"Array, any":function(h,l){return c(a(h),l,i,!1).valueOf()},"any, Array":function(h,l){return c(a(l),h,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(h=>(l,g,m)=>{for(var E=h(l,g),p=0;p<m.length;p++)E=h(E,m[p]);return E})})}),xi="conj",Rc=ne(xi,["typed"],r=>{var{typed:e}=r;return e(xi,{"number | BigNumber | Fraction":a=>a,Complex:a=>a.conjugate(),Unit:e.referToSelf(a=>t=>new t.constructor(a(t.toNumeric()),t.formatUnits())),"Array | Matrix":e.referToSelf(a=>t=>ja(t,a))})}),vi="identity",Sc=ne(vi,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],r=>{var{typed:e,config:a,matrix:t,BigNumber:i,DenseMatrix:n,SparseMatrix:o}=r;return e(vi,{"":function(){return a.matrix==="Matrix"?t([]):[]},string:function(u){return t(u)},"number | BigNumber":function(u){return c(u,u,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,A){return c(u,u,A)},"number | BigNumber, number | BigNumber":function(u,A){return c(u,A,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,A,d){return c(u,A,d)},Array:function(u){return s(u)},"Array, string":function(u,A){return s(u,A)},Matrix:function(u){return s(u.valueOf(),u.storage())},"Matrix, string":function(u,A){return s(u.valueOf(),A)}});function s(u,A){switch(u.length){case 0:return A?t(A):[];case 1:return c(u[0],u[0],A);case 2:return c(u[0],u[1],A);default:throw new Error("Vector containing two values expected")}}function c(u,A,d){var b=Fe(u)||Fe(A)?i:null;if(Fe(u)&&(u=u.toNumber()),Fe(A)&&(A=A.toNumber()),!Ce(u)||u<1)throw new Error("Parameters in function identity must be positive integers");if(!Ce(A)||A<1)throw new Error("Parameters in function identity must be positive integers");var h=b?new i(1):1,l=b?new b(0):0,g=[u,A];if(d){if(d==="sparse")return o.diagonal(g,h,0,l);if(d==="dense")return n.diagonal(g,h,0,l);throw new TypeError('Unknown matrix type "'.concat(d,'"'))}for(var m=br([],g,l),E=u<A?u:A,p=0;p<E;p++)m[p][p]=h;return m}});function Tc(){throw new Error('No "bignumber" implementation available')}function Nc(){throw new Error('No "fraction" implementation available')}var Fi,Qi="size",Uc=ne(Qi,["typed","config","?matrix"],r=>{var{typed:e,config:a,matrix:t}=r;return e(Qi,{Matrix:function(i){return i.create(i.size(),"number")},Array:Ge,string:function(i){return a.matrix==="Array"?[i.length]:t([i.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(i){return a.matrix==="Array"?[]:t?t([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),Lc=ne("numeric",["number","?bignumber","?fraction"],r=>{var{number:e,bignumber:a,fraction:t}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},n={number:o=>e(o),BigNumber:a?o=>a(o):Tc,bigint:o=>BigInt(o),Fraction:t?o=>t(o):Nc};return function(o){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var c=Da(o);if(!(c in i))throw new TypeError("Cannot convert "+o+' of type "'+c+'"; valid input types are '+Object.keys(i).join(", "));if(!(s in n))throw new TypeError("Cannot convert "+o+' to type "'+s+'"; valid output types are '+Object.keys(n).join(", "));return s===c?o:n[s](o)}}),ki="divideScalar",Gc=ne(ki,["typed","numeric"],r=>{var{typed:e,numeric:a}=r;return e(ki,{"number, number":function(t,i){return t/i},"Complex, Complex":function(t,i){return t.div(i)},"BigNumber, BigNumber":function(t,i){return t.div(i)},"bigint, bigint":function(t,i){return t/i},"Fraction, Fraction":function(t,i){return t.div(i)},"Unit, number | Complex | Fraction | BigNumber | Unit":(t,i)=>t.divide(i),"number | Fraction | Complex | BigNumber, Unit":(t,i)=>i.divideInto(t)})}),_c=ne("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],r=>{var{typed:e,config:a,identity:t,multiply:i,matrix:n,inv:o,number:s,fraction:c,Complex:u}=r;return e("pow",{"number, number":A,"Complex, Complex":function(h,l){return h.pow(l)},"BigNumber, BigNumber":function(h,l){return l.isInteger()||h>=0||a.predictable?h.pow(l):new u(h.toNumber(),0).pow(l.toNumber(),0)},"bigint, bigint":(h,l)=>h**l,"Fraction, Fraction":function(h,l){var g=h.pow(l);if(g!=null)return g;if(a.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return A(h.valueOf(),l.valueOf())},"Array, number":d,"Array, BigNumber":function(h,l){return d(h,l.toNumber())},"Matrix, number":b,"Matrix, BigNumber":function(h,l){return b(h,l.toNumber())},"Unit, number | BigNumber":function(h,l){return h.pow(l)}});function A(h,l){if(a.predictable&&!Ce(l)&&h<0)try{var g=c(l),m=s(g);if((l===m||Math.abs((l-m)/l)<1e-14)&&g.d%2n===1n)return(g.n%2n===0n?1:-1)*Math.pow(-h,l)}catch{}return a.predictable&&(h<-1&&l===1/0||h>-1&&h<0&&l===-1/0)?NaN:Ce(l)||h>=0||a.predictable?zn(h,l):h*h<1&&l===1/0||h*h>1&&l===-1/0?0:new u(h,0).pow(l,0)}function d(h,l){if(!Ce(l))throw new TypeError("For A^b, b must be an integer (value is "+l+")");var g=Ge(h);if(g.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+g.length+" dimensions)");if(g[0]!==g[1])throw new Error("For A^b, A must be square (size is "+g[0]+"x"+g[1]+")");if(l<0)try{return d(o(h),-l)}catch(p){throw p.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+l+")"):p}for(var m=t(g[0]).valueOf(),E=h;l>=1;)1&~l||(m=i(E,m)),l>>=1,E=i(E,E);return m}function b(h,l){return n(d(h.valueOf(),l))}}),zc=ne("dot",["typed","addScalar","multiplyScalar","conj","size"],r=>{var{typed:e,addScalar:a,multiplyScalar:t,conj:i,size:n}=r;return e("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(c,u){var A=o(c,u),d=xe(c)?c._data:c,b=xe(c)?c._datatype||c.getDataType():void 0,h=xe(u)?u._data:u,l=xe(u)?u._datatype||u.getDataType():void 0,g=s(c).length===2,m=s(u).length===2,E=a,p=t;if(b&&l&&b===l&&typeof b=="string"&&b!=="mixed"){var C=b;E=e.find(a,[C,C]),p=e.find(t,[C,C])}if(!g&&!m){for(var I=p(i(d[0]),h[0]),x=1;x<A;x++)I=E(I,p(i(d[x]),h[x]));return I}if(!g&&m){for(var y=p(i(d[0]),h[0][0]),w=1;w<A;w++)y=E(y,p(i(d[w]),h[w][0]));return y}if(g&&!m){for(var D=p(i(d[0][0]),h[0]),F=1;F<A;F++)D=E(D,p(i(d[F][0]),h[F]));return D}if(g&&m){for(var M=p(i(d[0][0]),h[0][0]),k=1;k<A;k++)M=E(M,p(i(d[k][0]),h[k][0]));return M}},"SparseMatrix, SparseMatrix":function(c,u){o(c,u);for(var A=c._index,d=c._values,b=u._index,h=u._values,l=0,g=a,m=t,E=0,p=0;E<A.length&&p<b.length;){var C=A[E],I=b[p];C<I?E++:C>I?p++:C===I&&(l=g(l,m(d[E],h[p])),E++,p++)}return l}});function o(c,u){var A,d,b=s(c),h=s(u);if(b.length===1)A=b[0];else{if(b.length!==2||b[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+b.join(", ")+")");A=b[0]}if(h.length===1)d=h[0];else{if(h.length!==2||h[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+h.join(", ")+")");d=h[0]}if(A!==d)throw new RangeError("Vectors must have equal length ("+A+" != "+d+")");if(A===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return A}function s(c){return xe(c)?c.size():n(c)}}),Pc=ne("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],r=>{var{typed:e,matrix:a,subtractScalar:t,multiply:i,divideScalar:n,isZero:o,unaryMinus:s}=r;return e("det",{any:function(c){return we(c)},"Array | Matrix":function(c){var u;switch((u=xe(c)?c.size():Array.isArray(c)?(c=a(c)).size():[]).length){case 0:return we(c);case 1:if(u[0]===1)return we(c.valueOf()[0]);if(u[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+ve(u)+")");case 2:var A=u[0],d=u[1];if(A===d)return function(b,h){if(h===1)return we(b[0][0]);if(h===2)return t(i(b[0][0],b[1][1]),i(b[1][0],b[0][1]));for(var l=!1,g=new Array(h).fill(0).map((F,M)=>M),m=0;m<h;m++){var E=g[m];if(o(b[E][m])){var p=void 0;for(p=m+1;p<h;p++)if(!o(b[g[p]][m])){E=g[p],g[p]=g[m],g[m]=E,l=!l;break}if(p===h)return b[E][m]}for(var C=b[E][m],I=m===0?1:b[g[m-1]][m-1],x=m+1;x<h;x++)for(var y=g[x],w=m+1;w<h;w++)b[y][w]=n(t(i(b[y][w],C),i(b[y][m],b[E][w])),I)}var D=b[g[h-1]][h-1];return l?s(D):D}(c.clone().valueOf(),A);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+ve(u)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+ve(u)+")")}}})}),qc=ne("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],r=>{var{typed:e,matrix:a,divideScalar:t,addScalar:i,multiply:n,unaryMinus:o,det:s,identity:c,abs:u}=r;return e("inv",{"Array | Matrix":function(d){var b=xe(d)?d.size():Ge(d);switch(b.length){case 1:if(b[0]===1)return xe(d)?a([t(1,d.valueOf()[0])]):[t(1,d[0])];throw new RangeError("Matrix must be square (size: "+ve(b)+")");case 2:var h=b[0],l=b[1];if(h===l)return xe(d)?a(A(d.valueOf(),h,l),d.storage()):A(d,h,l);throw new RangeError("Matrix must be square (size: "+ve(b)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+ve(b)+")")}},any:function(d){return t(1,d)}});function A(d,b,h){var l,g,m,E,p;if(b===1){if((E=d[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[t(1,E)]]}if(b===2){var C=s(d);if(C===0)throw Error("Cannot calculate inverse, determinant is zero");return[[t(d[1][1],C),t(o(d[0][1]),C)],[t(o(d[1][0]),C),t(d[0][0],C)]]}var I=d.concat();for(l=0;l<b;l++)I[l]=I[l].concat();for(var x=c(b).valueOf(),y=0;y<h;y++){var w=u(I[y][y]),D=y;for(l=y+1;l<b;)u(I[l][y])>w&&(w=u(I[l][y]),D=l),l++;if(w===0)throw Error("Cannot calculate inverse, determinant is zero");(l=D)!==y&&(p=I[y],I[y]=I[l],I[l]=p,p=x[y],x[y]=x[l],x[l]=p);var F=I[y],M=x[y];for(l=0;l<b;l++){var k=I[l],_=x[l];if(l!==y){if(k[y]!==0){for(m=t(o(k[y]),F[y]),g=y;g<h;g++)k[g]=i(k[g],n(m,F[g]));for(g=0;g<h;g++)_[g]=i(_[g],n(m,M[g]))}}else{for(m=F[y],g=y;g<h;g++)k[g]=t(k[g],m);for(g=0;g<h;g++)_[g]=t(_[g],m)}}}return x}}),ji="gamma",Kc=ne(ji,["typed","config","multiplyScalar","pow","BigNumber","Complex"],r=>{var{typed:e,config:a,multiplyScalar:t,pow:i,BigNumber:n,Complex:o}=r;return e(ji,{number:kt,Complex:function c(u){if(u.im===0)return kt(u.re);if(u.re<.5){var A=new o(1-u.re,-u.im),d=new o(Math.PI*u.re,Math.PI*u.im);return new o(Math.PI).div(d.sin()).div(c(A))}u=new o(u.re-1,u.im);for(var b=new o(qa[0],0),h=1;h<qa.length;++h){var l=new o(qa[h],0);b=b.add(l.div(u.add(h)))}var g=new o(u.re+Pn+.5,u.im),m=Math.sqrt(2*Math.PI),E=g.pow(u.add(.5)),p=g.neg().exp();return b.mul(m).mul(E).mul(p)},BigNumber:function(c){if(c.isInteger())return c.isNegative()||c.isZero()?new n(1/0):s(c.minus(1));if(!c.isFinite())return new n(c.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function s(c){if(c<8)return new n([1,1,2,6,24,120,720,5040][c]);var u=a.precision+(0|Math.log(c.toNumber())),A=n.clone({precision:u});if(c%2==1)return c.times(s(new n(c-1)));for(var d=c,b=new A(c),h=c.toNumber();d>2;)h+=d-=2,b=b.times(h);return new n(b.toPrecision(n.precision))}}),Rt=sc({config:ka}),pr=cc({}),qn=dc({}),vr=hc({}),Fr=fc({Matrix:vr}),Be=fA({BigNumber:Rt,Complex:pr,DenseMatrix:Fr,Fraction:qn}),Oc=xc({typed:Be}),mr=vc({typed:Be}),Jc=Rc({typed:Be}),Qr=Ec({config:ka,typed:Be}),Vc=pc({equalScalar:Qr,typed:Be}),Er=jc({typed:Be}),Kn=Ic({typed:Be}),On=Cc({Matrix:vr,equalScalar:Qr,typed:Be}),Hc=Fc({typed:Be}),Wc=Bc({BigNumber:Rt,typed:Be}),Ka=yc({DenseMatrix:Fr,Matrix:vr,SparseMatrix:On,typed:Be}),Jn=Dc({Fraction:qn,typed:Be}),Mi=Sc({BigNumber:Rt,DenseMatrix:Fr,SparseMatrix:On,config:ka,matrix:Ka,typed:Be}),Xc=Lc({bignumber:Wc,fraction:Jn,number:Kn}),Yc=Uc({matrix:Ka,config:ka,typed:Be}),Ri=wc({typed:Be}),Si=Gc({numeric:Xc,typed:Be}),ar=Mc({addScalar:mr,dot:zc({addScalar:mr,conj:Jc,multiplyScalar:Er,size:Yc,typed:Be}),equalScalar:Qr,matrix:Ka,multiplyScalar:Er,typed:Be}),Vn=Kc({BigNumber:Rt,Complex:pr,config:ka,multiplyScalar:Er,pow:_c({Complex:pr,config:ka,fraction:Jn,identity:Mi,inv:qc({abs:Oc,addScalar:mr,det:Pc({divideScalar:Si,isZero:Vc,matrix:Ka,multiply:ar,subtractScalar:Hc,typed:Be,unaryMinus:Ri}),divideScalar:Si,identity:Mi,matrix:Ka,multiply:ar,typed:Be,unaryMinus:Ri}),matrix:Ka,multiply:ar,number:Kn,typed:Be}),typed:Be});class Zc{constructor(e){if(e){const{toElementFn:a}=e;if(typeof a=="function")this._toElementFn=a;else if(a)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...e){yield*this._getIterator(...e)}*values(){for(const e of this)yield e}every(e,a){let t=0;for(const i of this)if(!e.call(a,i,t++,this))return!1;return!0}some(e,a){let t=0;for(const i of this)if(e.call(a,i,t++,this))return!0;return!1}forEach(e,a){let t=0;for(const i of this)e.call(a,i,t++,this)}find(e,a){let t=0;for(const i of this)if(e.call(a,i,t++,this))return i}has(e){for(const a of this)if(a===e)return!0;return!1}reduce(e,a){let t=a??0,i=0;for(const n of this)t=e(t,n,i++,this);return t}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
33
+ */var mI,La,we=9e15,Xa=1e9,ht="0123456789abcdef",wg="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",yg="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",dt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-we,maxE:we,crypto:!1},rA=!0,kg="[DecimalError] ",$a=kg+"Invalid argument: ",MI=kg+"Precision limit exceeded",kI=kg+"crypto unavailable",RI="[object Decimal]",Aa=Math.floor,zA=Math.pow,tr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ir=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ir=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,NI=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ya=1e7,Br=wg.length-1,bt=yg.length-1,Y={toStringTag:RI};function _A(g){var A,a,e,t=g.length-1,i="",I=g[0];if(t>0){for(i+=I,A=1;A<t;A++)(a=7-(e=g[A]+"").length)&&(i+=Va(a)),i+=e;(a=7-(e=(I=g[A])+"").length)&&(i+=Va(a))}else if(I===0)return"0";for(;I%10==0;)I/=10;return i+I}function Ba(g,A,a){if(g!==~~g||g<A||g>a)throw Error($a+g)}function Ye(g,A,a,e){var t,i,I,B;for(i=g[0];i>=10;i/=10)--A;return--A<0?(A+=7,t=0):(t=Math.ceil((A+1)/7),A%=7),i=zA(10,7-A),B=g[t]%i|0,e==null?A<3?(A==0?B=B/100|0:A==1&&(B=B/10|0),I=a<4&&B==99999||a>3&&B==49999||B==5e4||B==0):I=(a<4&&B+1==i||a>3&&B+1==i/2)&&(g[t+1]/i/100|0)==zA(10,A-2)-1||(B==i/2||B==0)&&!(g[t+1]/i/100|0):A<4?(A==0?B=B/1e3|0:A==1?B=B/100|0:A==2&&(B=B/10|0),I=(e||a<4)&&B==9999||!e&&a>3&&B==4999):I=((e||a<4)&&B+1==i||!e&&a>3&&B+1==i/2)&&(g[t+1]/i/1e3|0)==zA(10,A-3)-1,I}function hg(g,A,a){for(var e,t,i=[0],I=0,B=g.length;I<B;){for(t=i.length;t--;)i[t]*=A;for(i[0]+=ht.indexOf(g.charAt(I++)),e=0;e<i.length;e++)i[e]>a-1&&(i[e+1]===void 0&&(i[e+1]=0),i[e+1]+=i[e]/a|0,i[e]%=a)}return i.reverse()}Y.absoluteValue=Y.abs=function(){var g=new this.constructor(this);return g.s<0&&(g.s=1),iA(g)},Y.ceil=function(){return iA(new this.constructor(this),this.e+1,2)},Y.clampedTo=Y.clamp=function(g,A){var a=this,e=a.constructor;if(g=new e(g),A=new e(A),!g.s||!A.s)return new e(NaN);if(g.gt(A))throw Error($a+A);return a.cmp(g)<0?g:a.cmp(A)>0?A:new e(a)},Y.comparedTo=Y.cmp=function(g){var A,a,e,t,i=this,I=i.d,B=(g=new i.constructor(g)).d,r=i.s,o=g.s;if(!I||!B)return r&&o?r!==o?r:I===B?0:!I^r<0?1:-1:NaN;if(!I[0]||!B[0])return I[0]?r:B[0]?-o:0;if(r!==o)return r;if(i.e!==g.e)return i.e>g.e^r<0?1:-1;for(A=0,a=(e=I.length)<(t=B.length)?e:t;A<a;++A)if(I[A]!==B[A])return I[A]>B[A]^r<0?1:-1;return e===t?0:e>t^r<0?1:-1},Y.cosine=Y.cos=function(){var g,A,a=this,e=a.constructor;return a.d?a.d[0]?(g=e.precision,A=e.rounding,e.precision=g+Math.max(a.e,a.sd())+7,e.rounding=1,a=function(t,i){var I,B,r;if(i.isZero())return i;B=i.d.length,B<32?r=(1/Ig(4,I=Math.ceil(B/3))).toString():(I=16,r="2.3283064365386962890625e-10"),t.precision+=I,i=be(t,1,i.times(r),new t(1));for(var o=I;o--;){var n=i.times(i);i=n.times(n).minus(n).times(8).plus(1)}return t.precision-=I,i}(e,si(e,a)),e.precision=g,e.rounding=A,iA(La==2||La==3?a.neg():a,g,A,!0)):new e(1):new e(NaN)},Y.cubeRoot=Y.cbrt=function(){var g,A,a,e,t,i,I,B,r,o,n=this,C=n.constructor;if(!n.isFinite()||n.isZero())return new C(n);for(rA=!1,(i=n.s*zA(n.s*n,1/3))&&Math.abs(i)!=1/0?e=new C(i.toString()):(a=_A(n.d),(i=((g=n.e)-a.length+1)%3)&&(a+=i==1||i==-2?"0":"00"),i=zA(a,1/3),g=Aa((g+1)/3)-(g%3==(g<0?-1:2)),(e=new C(a=i==1/0?"5e"+g:(a=i.toExponential()).slice(0,a.indexOf("e")+1)+g)).s=n.s),I=(g=C.precision)+3;;)if(o=(r=(B=e).times(B).times(B)).plus(n),e=kA(o.plus(n).times(B),o.plus(r),I+2,1),_A(B.d).slice(0,I)===(a=_A(e.d)).slice(0,I)){if((a=a.slice(I-3,I+1))!="9999"&&(t||a!="4999")){+a&&(+a.slice(1)||a.charAt(0)!="5")||(iA(e,g+1,1),A=!e.times(e).times(e).eq(n));break}if(!t&&(iA(B,g+1,0),B.times(B).times(B).eq(n))){e=B;break}I+=4,t=1}return rA=!0,iA(e,g,C.rounding,A)},Y.decimalPlaces=Y.dp=function(){var g,A=this.d,a=NaN;if(A){if(a=7*((g=A.length-1)-Aa(this.e/7)),g=A[g])for(;g%10==0;g/=10)a--;a<0&&(a=0)}return a},Y.dividedBy=Y.div=function(g){return kA(this,new this.constructor(g))},Y.dividedToIntegerBy=Y.divToInt=function(g){var A=this.constructor;return iA(kA(this,new A(g),0,1,1),A.precision,A.rounding)},Y.equals=Y.eq=function(g){return this.cmp(g)===0},Y.floor=function(){return iA(new this.constructor(this),this.e+1,3)},Y.greaterThan=Y.gt=function(g){return this.cmp(g)>0},Y.greaterThanOrEqualTo=Y.gte=function(g){var A=this.cmp(g);return A==1||A===0},Y.hyperbolicCosine=Y.cosh=function(){var g,A,a,e,t,i=this,I=i.constructor,B=new I(1);if(!i.isFinite())return new I(i.s?1/0:NaN);if(i.isZero())return B;a=I.precision,e=I.rounding,I.precision=a+Math.max(i.e,i.sd())+4,I.rounding=1,(t=i.d.length)<32?A=(1/Ig(4,g=Math.ceil(t/3))).toString():(g=16,A="2.3283064365386962890625e-10"),i=be(I,1,i.times(A),new I(1),!0);for(var r,o=g,n=new I(8);o--;)r=i.times(i),i=B.minus(r.times(n.minus(r.times(n))));return iA(i,I.precision=a,I.rounding=e,!0)},Y.hyperbolicSine=Y.sinh=function(){var g,A,a,e,t=this,i=t.constructor;if(!t.isFinite()||t.isZero())return new i(t);if(A=i.precision,a=i.rounding,i.precision=A+Math.max(t.e,t.sd())+4,i.rounding=1,(e=t.d.length)<3)t=be(i,2,t,t,!0);else{g=(g=1.4*Math.sqrt(e))>16?16:0|g,t=be(i,2,t=t.times(1/Ig(5,g)),t,!0);for(var I,B=new i(5),r=new i(16),o=new i(20);g--;)I=t.times(t),t=t.times(B.plus(I.times(r.times(I).plus(o))))}return i.precision=A,i.rounding=a,iA(t,A,a,!0)},Y.hyperbolicTangent=Y.tanh=function(){var g,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(g=e.precision,A=e.rounding,e.precision=g+7,e.rounding=1,kA(a.sinh(),a.cosh(),e.precision=g,e.rounding=A)):new e(a.s)},Y.inverseCosine=Y.acos=function(){var g=this,A=g.constructor,a=g.abs().cmp(1),e=A.precision,t=A.rounding;return a!==-1?a===0?g.isNeg()?ka(A,e,t):new A(0):new A(NaN):g.isZero()?ka(A,e+4,t).times(.5):(A.precision=e+6,A.rounding=1,g=new A(1).minus(g).div(g.plus(1)).sqrt().atan(),A.precision=e,A.rounding=t,g.times(2))},Y.inverseHyperbolicCosine=Y.acosh=function(){var g,A,a=this,e=a.constructor;return a.lte(1)?new e(a.eq(1)?0:NaN):a.isFinite()?(g=e.precision,A=e.rounding,e.precision=g+Math.max(Math.abs(a.e),a.sd())+4,e.rounding=1,rA=!1,a=a.times(a).minus(1).sqrt().plus(a),rA=!0,e.precision=g,e.rounding=A,a.ln()):new e(a)},Y.inverseHyperbolicSine=Y.asinh=function(){var g,A,a=this,e=a.constructor;return!a.isFinite()||a.isZero()?new e(a):(g=e.precision,A=e.rounding,e.precision=g+2*Math.max(Math.abs(a.e),a.sd())+6,e.rounding=1,rA=!1,a=a.times(a).plus(1).sqrt().plus(a),rA=!0,e.precision=g,e.rounding=A,a.ln())},Y.inverseHyperbolicTangent=Y.atanh=function(){var g,A,a,e,t=this,i=t.constructor;return t.isFinite()?t.e>=0?new i(t.abs().eq(1)?t.s/0:t.isZero()?t:NaN):(g=i.precision,A=i.rounding,e=t.sd(),Math.max(e,g)<2*-t.e-1?iA(new i(t),g,A,!0):(i.precision=a=e-t.e,t=kA(t.plus(1),new i(1).minus(t),a+g,1),i.precision=g+4,i.rounding=1,t=t.ln(),i.precision=g,i.rounding=A,t.times(.5))):new i(NaN)},Y.inverseSine=Y.asin=function(){var g,A,a,e,t=this,i=t.constructor;return t.isZero()?new i(t):(A=t.abs().cmp(1),a=i.precision,e=i.rounding,A!==-1?A===0?((g=ka(i,a+4,e).times(.5)).s=t.s,g):new i(NaN):(i.precision=a+6,i.rounding=1,t=t.div(new i(1).minus(t.times(t)).sqrt().plus(1)).atan(),i.precision=a,i.rounding=e,t.times(2)))},Y.inverseTangent=Y.atan=function(){var g,A,a,e,t,i,I,B,r,o=this,n=o.constructor,C=n.precision,Q=n.rounding;if(o.isFinite()){if(o.isZero())return new n(o);if(o.abs().eq(1)&&C+4<=bt)return(I=ka(n,C+4,Q).times(.25)).s=o.s,I}else{if(!o.s)return new n(NaN);if(C+4<=bt)return(I=ka(n,C+4,Q).times(.5)).s=o.s,I}for(n.precision=B=C+10,n.rounding=1,g=a=Math.min(28,B/7+2|0);g;--g)o=o.div(o.times(o).plus(1).sqrt().plus(1));for(rA=!1,A=Math.ceil(B/7),e=1,r=o.times(o),I=new n(o),t=o;g!==-1;)if(t=t.times(r),i=I.minus(t.div(e+=2)),t=t.times(r),(I=i.plus(t.div(e+=2))).d[A]!==void 0)for(g=A;I.d[g]===i.d[g]&&g--;);return a&&(I=I.times(2<<a-1)),rA=!0,iA(I,n.precision=C,n.rounding=Q,!0)},Y.isFinite=function(){return!!this.d},Y.isInteger=Y.isInt=function(){return!!this.d&&Aa(this.e/7)>this.d.length-2},Y.isNaN=function(){return!this.s},Y.isNegative=Y.isNeg=function(){return this.s<0},Y.isPositive=Y.isPos=function(){return this.s>0},Y.isZero=function(){return!!this.d&&this.d[0]===0},Y.lessThan=Y.lt=function(g){return this.cmp(g)<0},Y.lessThanOrEqualTo=Y.lte=function(g){return this.cmp(g)<1},Y.logarithm=Y.log=function(g){var A,a,e,t,i,I,B,r,o=this,n=o.constructor,C=n.precision,Q=n.rounding;if(g==null)g=new n(10),A=!0;else{if(a=(g=new n(g)).d,g.s<0||!a||!a[0]||g.eq(1))return new n(NaN);A=g.eq(10)}if(a=o.d,o.s<0||!a||!a[0]||o.eq(1))return new n(a&&!a[0]?-1/0:o.s!=1?NaN:a?0:1/0);if(A)if(a.length>1)i=!0;else{for(t=a[0];t%10==0;)t/=10;i=t!==1}if(rA=!1,I=za(o,B=C+5),e=A?pg(n,B+10):za(g,B),Ye((r=kA(I,e,B,1)).d,t=C,Q))do if(I=za(o,B+=10),e=A?pg(n,B+10):za(g,B),r=kA(I,e,B,1),!i){+_A(r.d).slice(t+1,t+15)+1==1e14&&(r=iA(r,C+1,0));break}while(Ye(r.d,t+=10,Q));return rA=!0,iA(r,C,Q)},Y.minus=Y.sub=function(g){var A,a,e,t,i,I,B,r,o,n,C,Q,E=this,s=E.constructor;if(g=new s(g),!E.d||!g.d)return E.s&&g.s?E.d?g.s=-g.s:g=new s(g.d||E.s!==g.s?E:NaN):g=new s(NaN),g;if(E.s!=g.s)return g.s=-g.s,E.plus(g);if(o=E.d,Q=g.d,B=s.precision,r=s.rounding,!o[0]||!Q[0]){if(Q[0])g.s=-g.s;else{if(!o[0])return new s(r===3?-0:0);g=new s(E)}return rA?iA(g,B,r):g}if(a=Aa(g.e/7),n=Aa(E.e/7),o=o.slice(),i=n-a){for((C=i<0)?(A=o,i=-i,I=Q.length):(A=Q,a=n,I=o.length),i>(e=Math.max(Math.ceil(B/7),I)+2)&&(i=e,A.length=1),A.reverse(),e=i;e--;)A.push(0);A.reverse()}else{for((C=(e=o.length)<(I=Q.length))&&(I=e),e=0;e<I;e++)if(o[e]!=Q[e]){C=o[e]<Q[e];break}i=0}for(C&&(A=o,o=Q,Q=A,g.s=-g.s),I=o.length,e=Q.length-I;e>0;--e)o[I++]=0;for(e=Q.length;e>i;){if(o[--e]<Q[e]){for(t=e;t&&o[--t]===0;)o[t]=ya-1;--o[t],o[e]+=ya}o[e]-=Q[e]}for(;o[--I]===0;)o.pop();for(;o[0]===0;o.shift())--a;return o[0]?(g.d=o,g.e=dg(o,a),rA?iA(g,B,r):g):new s(r===3?-0:0)},Y.modulo=Y.mod=function(g){var A,a=this,e=a.constructor;return g=new e(g),!a.d||!g.s||g.d&&!g.d[0]?new e(NaN):!g.d||a.d&&!a.d[0]?iA(new e(a),e.precision,e.rounding):(rA=!1,e.modulo==9?(A=kA(a,g.abs(),0,3,1)).s*=g.s:A=kA(a,g,0,e.modulo,1),A=A.times(g),rA=!0,a.minus(A))},Y.naturalExponential=Y.exp=function(){return et(this)},Y.naturalLogarithm=Y.ln=function(){return za(this)},Y.negated=Y.neg=function(){var g=new this.constructor(this);return g.s=-g.s,iA(g)},Y.plus=Y.add=function(g){var A,a,e,t,i,I,B,r,o,n,C=this,Q=C.constructor;if(g=new Q(g),!C.d||!g.d)return C.s&&g.s?C.d||(g=new Q(g.d||C.s===g.s?C:NaN)):g=new Q(NaN),g;if(C.s!=g.s)return g.s=-g.s,C.minus(g);if(o=C.d,n=g.d,B=Q.precision,r=Q.rounding,!o[0]||!n[0])return n[0]||(g=new Q(C)),rA?iA(g,B,r):g;if(i=Aa(C.e/7),e=Aa(g.e/7),o=o.slice(),t=i-e){for(t<0?(a=o,t=-t,I=n.length):(a=n,e=i,I=o.length),t>(I=(i=Math.ceil(B/7))>I?i+1:I+1)&&(t=I,a.length=1),a.reverse();t--;)a.push(0);a.reverse()}for((I=o.length)-(t=n.length)<0&&(t=I,a=n,n=o,o=a),A=0;t;)A=(o[--t]=o[t]+n[t]+A)/ya|0,o[t]%=ya;for(A&&(o.unshift(A),++e),I=o.length;o[--I]==0;)o.pop();return g.d=o,g.e=dg(o,e),rA?iA(g,B,r):g},Y.precision=Y.sd=function(g){var A,a=this;if(g!==void 0&&g!==!!g&&g!==1&&g!==0)throw Error($a+g);return a.d?(A=Ei(a.d),g&&a.e+1>A&&(A=a.e+1)):A=NaN,A},Y.round=function(){var g=this,A=g.constructor;return iA(new A(g),g.e+1,A.rounding)},Y.sine=Y.sin=function(){var g,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(g=e.precision,A=e.rounding,e.precision=g+Math.max(a.e,a.sd())+7,e.rounding=1,a=function(t,i){var I,B=i.d.length;if(B<3)return i.isZero()?i:be(t,2,i,i);I=(I=1.4*Math.sqrt(B))>16?16:0|I,i=i.times(1/Ig(5,I)),i=be(t,2,i,i);for(var r,o=new t(5),n=new t(16),C=new t(20);I--;)r=i.times(i),i=i.times(o.plus(r.times(n.times(r).minus(C))));return i}(e,si(e,a)),e.precision=g,e.rounding=A,iA(La>2?a.neg():a,g,A,!0)):new e(NaN)},Y.squareRoot=Y.sqrt=function(){var g,A,a,e,t,i,I=this,B=I.d,r=I.e,o=I.s,n=I.constructor;if(o!==1||!B||!B[0])return new n(!o||o<0&&(!B||B[0])?NaN:B?I:1/0);for(rA=!1,(o=Math.sqrt(+I))==0||o==1/0?(((A=_A(B)).length+r)%2==0&&(A+="0"),o=Math.sqrt(A),r=Aa((r+1)/2)-(r<0||r%2),e=new n(A=o==1/0?"5e"+r:(A=o.toExponential()).slice(0,A.indexOf("e")+1)+r)):e=new n(o.toString()),a=(r=n.precision)+3;;)if(e=(i=e).plus(kA(I,i,a+2,1)).times(.5),_A(i.d).slice(0,a)===(A=_A(e.d)).slice(0,a)){if((A=A.slice(a-3,a+1))!="9999"&&(t||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(iA(e,r+1,1),g=!e.times(e).eq(I));break}if(!t&&(iA(i,r+1,0),i.times(i).eq(I))){e=i;break}a+=4,t=1}return rA=!0,iA(e,r,n.rounding,g)},Y.tangent=Y.tan=function(){var g,A,a=this,e=a.constructor;return a.isFinite()?a.isZero()?new e(a):(g=e.precision,A=e.rounding,e.precision=g+10,e.rounding=1,(a=a.sin()).s=1,a=kA(a,new e(1).minus(a.times(a)).sqrt(),g+10,0),e.precision=g,e.rounding=A,iA(La==2||La==4?a.neg():a,g,A,!0)):new e(NaN)},Y.times=Y.mul=function(g){var A,a,e,t,i,I,B,r,o,n=this,C=n.constructor,Q=n.d,E=(g=new C(g)).d;if(g.s*=n.s,!(Q&&Q[0]&&E&&E[0]))return new C(!g.s||Q&&!Q[0]&&!E||E&&!E[0]&&!Q?NaN:Q&&E?0*g.s:g.s/0);for(a=Aa(n.e/7)+Aa(g.e/7),(r=Q.length)<(o=E.length)&&(i=Q,Q=E,E=i,I=r,r=o,o=I),i=[],e=I=r+o;e--;)i.push(0);for(e=o;--e>=0;){for(A=0,t=r+e;t>e;)B=i[t]+E[e]*Q[t-e-1]+A,i[t--]=B%ya|0,A=B/ya|0;i[t]=(i[t]+A)%ya|0}for(;!i[--I];)i.pop();return A?++a:i.shift(),g.d=i,g.e=dg(i,a),rA?iA(g,C.precision,C.rounding):g},Y.toBinary=function(g,A){return gt(this,2,g,A)},Y.toDecimalPlaces=Y.toDP=function(g,A){var a=this,e=a.constructor;return a=new e(a),g===void 0?a:(Ba(g,0,Xa),A===void 0?A=e.rounding:Ba(A,0,8),iA(a,g+a.e+1,A))},Y.toExponential=function(g,A){var a,e=this,t=e.constructor;return g===void 0?a=Fa(e,!0):(Ba(g,0,Xa),A===void 0?A=t.rounding:Ba(A,0,8),a=Fa(e=iA(new t(e),g+1,A),!0,g+1)),e.isNeg()&&!e.isZero()?"-"+a:a},Y.toFixed=function(g,A){var a,e,t=this,i=t.constructor;return g===void 0?a=Fa(t):(Ba(g,0,Xa),A===void 0?A=i.rounding:Ba(A,0,8),a=Fa(e=iA(new i(t),g+t.e+1,A),!1,g+e.e+1)),t.isNeg()&&!t.isZero()?"-"+a:a},Y.toFraction=function(g){var A,a,e,t,i,I,B,r,o,n,C,Q,E=this,s=E.d,c=E.constructor;if(!s)return new c(E);if(o=a=new c(1),e=r=new c(0),I=(i=(A=new c(e)).e=Ei(s)-E.e-1)%7,A.d[0]=zA(10,I<0?7+I:I),g==null)g=i>0?A:o;else{if(!(B=new c(g)).isInt()||B.lt(o))throw Error($a+B);g=B.gt(A)?i>0?A:o:B}for(rA=!1,B=new c(_A(s)),n=c.precision,c.precision=i=7*s.length*2;C=kA(B,A,0,1,1),(t=a.plus(C.times(e))).cmp(g)!=1;)a=e,e=t,t=o,o=r.plus(C.times(t)),r=t,t=A,A=B.minus(C.times(t)),B=t;return t=kA(g.minus(a),e,0,1,1),r=r.plus(t.times(o)),a=a.plus(t.times(e)),r.s=o.s=E.s,Q=kA(o,e,i,1).minus(E).abs().cmp(kA(r,a,i,1).minus(E).abs())<1?[o,e]:[r,a],c.precision=n,rA=!0,Q},Y.toHexadecimal=Y.toHex=function(g,A){return gt(this,16,g,A)},Y.toNearest=function(g,A){var a=this,e=a.constructor;if(a=new e(a),g==null){if(!a.d)return a;g=new e(1),A=e.rounding}else{if(g=new e(g),A===void 0?A=e.rounding:Ba(A,0,8),!a.d)return g.s?a:g;if(!g.d)return g.s&&(g.s=a.s),g}return g.d[0]?(rA=!1,a=kA(a,g,0,A,1).times(g),rA=!0,iA(a)):(g.s=a.s,a=g),a},Y.toNumber=function(){return+this},Y.toOctal=function(g,A){return gt(this,8,g,A)},Y.toPower=Y.pow=function(g){var A,a,e,t,i,I,B=this,r=B.constructor,o=+(g=new r(g));if(!(B.d&&g.d&&B.d[0]&&g.d[0]))return new r(zA(+B,o));if((B=new r(B)).eq(1))return B;if(e=r.precision,i=r.rounding,g.eq(1))return iA(B,e,i);if((A=Aa(g.e/7))>=g.d.length-1&&(a=o<0?-o:o)<=9007199254740991)return t=GI(r,B,a,e),g.s<0?new r(1).div(t):iA(t,e,i);if((I=B.s)<0){if(A<g.d.length-1)return new r(NaN);if(1&g.d[A]||(I=1),B.e==0&&B.d[0]==1&&B.d.length==1)return B.s=I,B}return(A=(a=zA(+B,o))!=0&&isFinite(a)?new r(a+"").e:Aa(o*(Math.log("0."+_A(B.d))/Math.LN10+B.e+1)))>r.maxE+1||A<r.minE-1?new r(A>0?I/0:0):(rA=!1,r.rounding=B.s=1,a=Math.min(12,(A+"").length),(t=et(g.times(za(B,e+a)),e)).d&&Ye((t=iA(t,e+5,1)).d,e,i)&&(A=e+10,+_A((t=iA(et(g.times(za(B,A+a)),A),A+5,1)).d).slice(e+1,e+15)+1==1e14&&(t=iA(t,e+1,0))),t.s=I,rA=!0,r.rounding=i,iA(t,e,i))},Y.toPrecision=function(g,A){var a,e=this,t=e.constructor;return g===void 0?a=Fa(e,e.e<=t.toExpNeg||e.e>=t.toExpPos):(Ba(g,1,Xa),A===void 0?A=t.rounding:Ba(A,0,8),a=Fa(e=iA(new t(e),g,A),g<=e.e||e.e<=t.toExpNeg,g)),e.isNeg()&&!e.isZero()?"-"+a:a},Y.toSignificantDigits=Y.toSD=function(g,A){var a=this.constructor;return g===void 0?(g=a.precision,A=a.rounding):(Ba(g,1,Xa),A===void 0?A=a.rounding:Ba(A,0,8)),iA(new a(this),g,A)},Y.toString=function(){var g=this,A=g.constructor,a=Fa(g,g.e<=A.toExpNeg||g.e>=A.toExpPos);return g.isNeg()&&!g.isZero()?"-"+a:a},Y.truncated=Y.trunc=function(){return iA(new this.constructor(this),this.e+1,1)},Y.valueOf=Y.toJSON=function(){var g=this,A=g.constructor,a=Fa(g,g.e<=A.toExpNeg||g.e>=A.toExpPos);return g.isNeg()?"-"+a:a};var kA=function(){function g(e,t,i){var I,B=0,r=e.length;for(e=e.slice();r--;)I=e[r]*t+B,e[r]=I%i|0,B=I/i|0;return B&&e.unshift(B),e}function A(e,t,i,I){var B,r;if(i!=I)r=i>I?1:-1;else for(B=r=0;B<i;B++)if(e[B]!=t[B]){r=e[B]>t[B]?1:-1;break}return r}function a(e,t,i,I){for(var B=0;i--;)e[i]-=B,B=e[i]<t[i]?1:0,e[i]=B*I+e[i]-t[i];for(;!e[0]&&e.length>1;)e.shift()}return function(e,t,i,I,B,r){var o,n,C,Q,E,s,c,d,b,h,l,w,k,M,N,m,G,L,x,W,X=e.constructor,eA=e.s==t.s?1:-1,AA=e.d,Z=t.d;if(!(AA&&AA[0]&&Z&&Z[0]))return new X(e.s&&t.s&&(AA?!Z||AA[0]!=Z[0]:Z)?AA&&AA[0]==0||!Z?0*eA:eA/0:NaN);for(r?(E=1,n=e.e-t.e):(r=ya,E=7,n=Aa(e.e/E)-Aa(t.e/E)),x=Z.length,G=AA.length,h=(b=new X(eA)).d=[],C=0;Z[C]==(AA[C]||0);C++);if(Z[C]>(AA[C]||0)&&n--,i==null?(M=i=X.precision,I=X.rounding):M=B?i+(e.e-t.e)+1:i,M<0)h.push(1),s=!0;else{if(M=M/E+2|0,C=0,x==1){for(Q=0,Z=Z[0],M++;(C<G||Q)&&M--;C++)N=Q*r+(AA[C]||0),h[C]=N/Z|0,Q=N%Z|0;s=Q||C<G}else{for((Q=r/(Z[0]+1)|0)>1&&(Z=g(Z,Q,r),AA=g(AA,Q,r),x=Z.length,G=AA.length),m=x,w=(l=AA.slice(0,x)).length;w<x;)l[w++]=0;(W=Z.slice()).unshift(0),L=Z[0],Z[1]>=r/2&&++L;do Q=0,(o=A(Z,l,x,w))<0?(k=l[0],x!=w&&(k=k*r+(l[1]||0)),(Q=k/L|0)>1?(Q>=r&&(Q=r-1),(o=A(c=g(Z,Q,r),l,d=c.length,w=l.length))==1&&(Q--,a(c,x<d?W:Z,d,r))):(Q==0&&(o=Q=1),c=Z.slice()),(d=c.length)<w&&c.unshift(0),a(l,c,w,r),o==-1&&(o=A(Z,l,x,w=l.length))<1&&(Q++,a(l,x<w?W:Z,w,r)),w=l.length):o===0&&(Q++,l=[0]),h[C++]=Q,o&&l[0]?l[w++]=AA[m]||0:(l=[AA[m]],w=1);while((m++<G||l[0]!==void 0)&&M--);s=l[0]!==void 0}h[0]||h.shift()}if(E==1)b.e=n,mI=s;else{for(C=1,Q=h[0];Q>=10;Q/=10)C++;b.e=C+n*E-1,iA(b,B?i+b.e+1:i,I,s)}return b}}();function iA(g,A,a,e){var t,i,I,B,r,o,n,C,Q,E=g.constructor;A:if(A!=null){if(!(C=g.d))return g;for(t=1,B=C[0];B>=10;B/=10)t++;if((i=A-t)<0)i+=7,I=A,r=(n=C[Q=0])/zA(10,t-I-1)%10|0;else if((Q=Math.ceil((i+1)/7))>=(B=C.length)){if(!e)break A;for(;B++<=Q;)C.push(0);n=r=0,t=1,I=(i%=7)-7+1}else{for(n=B=C[Q],t=1;B>=10;B/=10)t++;r=(I=(i%=7)-7+t)<0?0:n/zA(10,t-I-1)%10|0}if(e=e||A<0||C[Q+1]!==void 0||(I<0?n:n%zA(10,t-I-1)),o=a<4?(r||e)&&(a==0||a==(g.s<0?3:2)):r>5||r==5&&(a==4||e||a==6&&(i>0?I>0?n/zA(10,t-I):0:C[Q-1])%10&1||a==(g.s<0?8:7)),A<1||!C[0])return C.length=0,o?(A-=g.e+1,C[0]=zA(10,(7-A%7)%7),g.e=-A||0):C[0]=g.e=0,g;if(i==0?(C.length=Q,B=1,Q--):(C.length=Q+1,B=zA(10,7-i),C[Q]=I>0?(n/zA(10,t-I)%zA(10,I)|0)*B:0),o)for(;;){if(Q==0){for(i=1,I=C[0];I>=10;I/=10)i++;for(I=C[0]+=B,B=1;I>=10;I/=10)B++;i!=B&&(g.e++,C[0]==ya&&(C[0]=1));break}if(C[Q]+=B,C[Q]!=ya)break;C[Q--]=0,B=1}for(i=C.length;C[--i]===0;)C.pop()}return rA&&(g.e>E.maxE?(g.d=null,g.e=NaN):g.e<E.minE&&(g.e=0,g.d=[0])),g}function Fa(g,A,a){if(!g.isFinite())return UI(g);var e,t=g.e,i=_A(g.d),I=i.length;return A?(a&&(e=a-I)>0?i=i.charAt(0)+"."+i.slice(1)+Va(e):I>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(g.e<0?"e":"e+")+g.e):t<0?(i="0."+Va(-t-1)+i,a&&(e=a-I)>0&&(i+=Va(e))):t>=I?(i+=Va(t+1-I),a&&(e=a-t-1)>0&&(i=i+"."+Va(e))):((e=t+1)<I&&(i=i.slice(0,e)+"."+i.slice(e)),a&&(e=a-I)>0&&(t+1===I&&(i+="."),i+=Va(e))),i}function dg(g,A){var a=g[0];for(A*=7;a>=10;a/=10)A++;return A}function pg(g,A,a){if(A>Br)throw rA=!0,a&&(g.precision=a),Error(MI);return iA(new g(wg),A,1,!0)}function ka(g,A,a){if(A>bt)throw Error(MI);return iA(new g(yg),A,a,!0)}function Ei(g){var A=g.length-1,a=7*A+1;if(A=g[A]){for(;A%10==0;A/=10)a--;for(A=g[0];A>=10;A/=10)a++}return a}function Va(g){for(var A="";g--;)A+="0";return A}function GI(g,A,a,e){var t,i=new g(1),I=Math.ceil(e/7+4);for(rA=!1;;){if(a%2&&ci((i=i.times(A)).d,I)&&(t=!0),(a=Aa(a/2))===0){a=i.d.length-1,t&&i.d[a]===0&&++i.d[a];break}ci((A=A.times(A)).d,I)}return rA=!0,i}function Qi(g){return 1&g.d[g.d.length-1]}function SI(g,A,a){for(var e,t,i=new g(A[0]),I=0;++I<A.length;){if(!(t=new g(A[I])).s){i=t;break}((e=i.cmp(t))===a||e===0&&i.s===a)&&(i=t)}return i}function et(g,A){var a,e,t,i,I,B,r,o=0,n=0,C=0,Q=g.constructor,E=Q.rounding,s=Q.precision;if(!g.d||!g.d[0]||g.e>17)return new Q(g.d?g.d[0]?g.s<0?0:1/0:1:g.s?g.s<0?0:g:NaN);for(A==null?(rA=!1,r=s):r=A,B=new Q(.03125);g.e>-2;)g=g.times(B),C+=5;for(r+=e=Math.log(zA(2,C))/Math.LN10*2+5|0,a=i=I=new Q(1),Q.precision=r;;){if(i=iA(i.times(g),r,1),a=a.times(++n),_A((B=I.plus(kA(i,a,r,1))).d).slice(0,r)===_A(I.d).slice(0,r)){for(t=C;t--;)I=iA(I.times(I),r,1);if(A!=null)return Q.precision=s,I;if(!(o<3&&Ye(I.d,r-e,E,o)))return iA(I,Q.precision=s,E,rA=!0);Q.precision=r+=10,a=i=B=new Q(1),n=0,o++}I=B}}function za(g,A){var a,e,t,i,I,B,r,o,n,C,Q,E=1,s=g,c=s.d,d=s.constructor,b=d.rounding,h=d.precision;if(s.s<0||!c||!c[0]||!s.e&&c[0]==1&&c.length==1)return new d(c&&!c[0]?-1/0:s.s!=1?NaN:c?0:s);if(A==null?(rA=!1,n=h):n=A,d.precision=n+=10,e=(a=_A(c)).charAt(0),!(Math.abs(i=s.e)<15e14))return o=pg(d,n+2,h).times(i+""),s=za(new d(e+"."+a.slice(1)),n-10).plus(o),d.precision=h,A==null?iA(s,h,b,rA=!0):s;for(;e<7&&e!=1||e==1&&a.charAt(1)>3;)e=(a=_A((s=s.times(g)).d)).charAt(0),E++;for(i=s.e,e>1?(s=new d("0."+a),i++):s=new d(e+"."+a.slice(1)),C=s,r=I=s=kA(s.minus(1),s.plus(1),n,1),Q=iA(s.times(s),n,1),t=3;;){if(I=iA(I.times(Q),n,1),_A((o=r.plus(kA(I,new d(t),n,1))).d).slice(0,n)===_A(r.d).slice(0,n)){if(r=r.times(2),i!==0&&(r=r.plus(pg(d,n+2,h).times(i+""))),r=kA(r,new d(E),n,1),A!=null)return d.precision=h,r;if(!Ye(r.d,n-10,b,B))return iA(r,d.precision=h,b,rA=!0);d.precision=n+=10,o=I=s=kA(C.minus(1),C.plus(1),n,1),Q=iA(s.times(s),n,1),t=B=1}r=o,t+=2}}function UI(g){return String(g.s*g.s/0)}function bg(g,A){var a,e,t;for((a=A.indexOf("."))>-1&&(A=A.replace(".","")),(e=A.search(/e/i))>0?(a<0&&(a=e),a+=+A.slice(e+1),A=A.substring(0,e)):a<0&&(a=A.length),e=0;A.charCodeAt(e)===48;e++);for(t=A.length;A.charCodeAt(t-1)===48;--t);if(A=A.slice(e,t)){if(t-=e,g.e=a=a-e-1,g.d=[],e=(a+1)%7,a<0&&(e+=7),e<t){for(e&&g.d.push(+A.slice(0,e)),t-=7;e<t;)g.d.push(+A.slice(e,e+=7));e=7-(A=A.slice(e)).length}else e-=t;for(;e--;)A+="0";g.d.push(+A),rA&&(g.e>g.constructor.maxE?(g.d=null,g.e=NaN):g.e<g.constructor.minE&&(g.e=0,g.d=[0]))}else g.e=0,g.d=[0];return g}function nr(g,A){var a,e,t,i,I,B,r,o,n;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),NI.test(A))return bg(g,A)}else if(A==="Infinity"||A==="NaN")return+A||(g.s=NaN),g.e=NaN,g.d=null,g;if(ir.test(A))a=16,A=A.toLowerCase();else if(tr.test(A))a=2;else{if(!Ir.test(A))throw Error($a+A);a=8}for((i=A.search(/p/i))>0?(r=+A.slice(i+1),A=A.substring(2,i)):A=A.slice(2),I=(i=A.indexOf("."))>=0,e=g.constructor,I&&(i=(B=(A=A.replace(".","")).length)-i,t=GI(e,new e(a),i,2*i)),i=n=(o=hg(A,a,ya)).length-1;o[i]===0;--i)o.pop();return i<0?new e(0*g.s):(g.e=dg(o,n),g.d=o,rA=!1,I&&(g=kA(g,t,4*B)),r&&(g=g.times(Math.abs(r)<54?zA(2,r):ke.pow(2,r))),rA=!0,g)}function be(g,A,a,e,t){var i,I,B,r,o=g.precision,n=Math.ceil(o/7);for(rA=!1,r=a.times(a),B=new g(e);;){if(I=kA(B.times(r),new g(A++*A++),o,1),B=t?e.plus(I):e.minus(I),e=kA(I.times(r),new g(A++*A++),o,1),(I=B.plus(e)).d[n]!==void 0){for(i=n;I.d[i]===B.d[i]&&i--;);if(i==-1)break}i=B,B=e,e=I,I=i}return rA=!0,I.d.length=n+1,I}function Ig(g,A){for(var a=g;--A;)a*=g;return a}function si(g,A){var a,e=A.s<0,t=ka(g,g.precision,1),i=t.times(.5);if((A=A.abs()).lte(i))return La=e?4:1,A;if((a=A.divToInt(t)).isZero())La=e?3:2;else{if((A=A.minus(a.times(t))).lte(i))return La=Qi(a)?e?2:3:e?4:1,A;La=Qi(a)?e?1:4:e?3:2}return A.minus(t).abs()}function gt(g,A,a,e){var t,i,I,B,r,o,n,C,Q,E=g.constructor,s=a!==void 0;if(s?(Ba(a,1,Xa),e===void 0?e=E.rounding:Ba(e,0,8)):(a=E.precision,e=E.rounding),g.isFinite()){for(s?(t=2,A==16?a=4*a-3:A==8&&(a=3*a-2)):t=A,(I=(n=Fa(g)).indexOf("."))>=0&&(n=n.replace(".",""),(Q=new E(1)).e=n.length-I,Q.d=hg(Fa(Q),10,t),Q.e=Q.d.length),i=r=(C=hg(n,10,t)).length;C[--r]==0;)C.pop();if(C[0]){if(I<0?i--:((g=new E(g)).d=C,g.e=i,C=(g=kA(g,Q,a,e,0,t)).d,i=g.e,o=mI),I=C[a],B=t/2,o=o||C[a+1]!==void 0,o=e<4?(I!==void 0||o)&&(e===0||e===(g.s<0?3:2)):I>B||I===B&&(e===4||o||e===6&&1&C[a-1]||e===(g.s<0?8:7)),C.length=a,o)for(;++C[--a]>t-1;)C[a]=0,a||(++i,C.unshift(1));for(r=C.length;!C[r-1];--r);for(I=0,n="";I<r;I++)n+=ht.charAt(C[I]);if(s){if(r>1)if(A==16||A==8){for(I=A==16?4:3,--r;r%I;r++)n+="0";for(r=(C=hg(n,t,A)).length;!C[r-1];--r);for(I=1,n="1.";I<r;I++)n+=ht.charAt(C[I])}else n=n.charAt(0)+"."+n.slice(1);n=n+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)n="0"+n;n="0."+n}else if(++i>r)for(i-=r;i--;)n+="0";else i<r&&(n=n.slice(0,i)+"."+n.slice(i))}else n=s?"0p+0":"0";n=(A==16?"0x":A==2?"0b":A==8?"0o":"")+n}else n=UI(g);return g.s<0?"-"+n:n}function ci(g,A){if(g.length>A)return g.length=A,!0}function rr(g){return new this(g).abs()}function or(g){return new this(g).acos()}function Cr(g){return new this(g).acosh()}function Er(g,A){return new this(g).plus(A)}function Qr(g){return new this(g).asin()}function sr(g){return new this(g).asinh()}function cr(g){return new this(g).atan()}function hr(g){return new this(g).atanh()}function dr(g,A){g=new this(g),A=new this(A);var a,e=this.precision,t=this.rounding,i=e+4;return g.s&&A.s?g.d||A.d?!A.d||g.isZero()?(a=A.s<0?ka(this,e,t):new this(0)).s=g.s:!g.d||A.isZero()?(a=ka(this,i,1).times(.5)).s=g.s:A.s<0?(this.precision=i,this.rounding=1,a=this.atan(kA(g,A,i,1)),A=ka(this,i,1),this.precision=e,this.rounding=t,a=g.s<0?a.minus(A):a.plus(A)):a=this.atan(kA(g,A,i,1)):(a=ka(this,i,1).times(A.s>0?.25:.75)).s=g.s:a=new this(NaN),a}function br(g){return new this(g).cbrt()}function ur(g){return iA(g=new this(g),g.e+1,2)}function lr(g,A,a){return new this(g).clamp(A,a)}function fr(g){if(!g||typeof g!="object")throw Error(kg+"Object expected");var A,a,e,t=g.defaults===!0,i=["precision",1,Xa,"rounding",0,8,"toExpNeg",-we,0,"toExpPos",0,we,"maxE",0,we,"minE",-we,0,"modulo",0,9];for(A=0;A<i.length;A+=3)if(a=i[A],t&&(this[a]=dt[a]),(e=g[a])!==void 0){if(!(Aa(e)===e&&e>=i[A+1]&&e<=i[A+2]))throw Error($a+a+": "+e);this[a]=e}if(a="crypto",t&&(this[a]=dt[a]),(e=g[a])!==void 0){if(e!==!0&&e!==!1&&e!==0&&e!==1)throw Error($a+a+": "+e);if(e){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(kI);this[a]=!0}else this[a]=!1}return this}function Dr(g){return new this(g).cos()}function wr(g){return new this(g).cosh()}function yr(g,A){return new this(g).div(A)}function pr(g){return new this(g).exp()}function Fr(g){return iA(g=new this(g),g.e+1,3)}function mr(){var g,A,a=new this(0);for(rA=!1,g=0;g<arguments.length;)if((A=new this(arguments[g++])).d)a.d&&(a=a.plus(A.times(A)));else{if(A.s)return rA=!0,new this(1/0);a=A}return rA=!0,a.sqrt()}function hi(g){return g instanceof ke||g&&g.toStringTag===RI||!1}function Mr(g){return new this(g).ln()}function kr(g,A){return new this(g).log(A)}function Rr(g){return new this(g).log(2)}function Nr(g){return new this(g).log(10)}function Gr(){return SI(this,arguments,-1)}function Sr(){return SI(this,arguments,1)}function Ur(g,A){return new this(g).mod(A)}function xr(g,A){return new this(g).mul(A)}function Lr(g,A){return new this(g).pow(A)}function Jr(g){var A,a,e,t,i=0,I=new this(1),B=[];if(g===void 0?g=this.precision:Ba(g,1,Xa),e=Math.ceil(g/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(e));i<e;)(t=A[i])>=429e7?A[i]=crypto.getRandomValues(new Uint32Array(1))[0]:B[i++]=t%1e7;else{if(!crypto.randomBytes)throw Error(kI);for(A=crypto.randomBytes(e*=4);i<e;)(t=A[i]+(A[i+1]<<8)+(A[i+2]<<16)+((127&A[i+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,i):(B.push(t%1e7),i+=4);i=e/4}else for(;i<e;)B[i++]=1e7*Math.random()|0;for(g%=7,(e=B[--i])&&g&&(t=zA(10,7-g),B[i]=(e/t|0)*t);B[i]===0;i--)B.pop();if(i<0)a=0,B=[0];else{for(a=-1;B[0]===0;a-=7)B.shift();for(e=1,t=B[0];t>=10;t/=10)e++;e<7&&(a-=7-e)}return I.e=a,I.d=B,I}function jr(g){return iA(g=new this(g),g.e+1,this.rounding)}function vr(g){return(g=new this(g)).d?g.d[0]?g.s:0*g.s:g.s||NaN}function Hr(g){return new this(g).sin()}function Yr(g){return new this(g).sinh()}function Kr(g){return new this(g).sqrt()}function qr(g,A){return new this(g).sub(A)}function Tr(){var g=0,A=arguments,a=new this(A[g]);for(rA=!1;a.s&&++g<A.length;)a=a.plus(A[g]);return rA=!0,iA(a,this.precision,this.rounding)}function Or(g){return new this(g).tan()}function Pr(g){return new this(g).tanh()}function zr(g){return iA(g=new this(g),g.e+1,1)}Y[Symbol.for("nodejs.util.inspect.custom")]=Y.toString,Y[Symbol.toStringTag]="Decimal";var ke=Y.constructor=function g(A){var a,e,t;function i(I){var B,r,o,n=this;if(!(n instanceof i))return new i(I);if(n.constructor=i,hi(I))return n.s=I.s,void(rA?!I.d||I.e>i.maxE?(n.e=NaN,n.d=null):I.e<i.minE?(n.e=0,n.d=[0]):(n.e=I.e,n.d=I.d.slice()):(n.e=I.e,n.d=I.d?I.d.slice():I.d));if((o=typeof I)=="number"){if(I===0)return n.s=1/I<0?-1:1,n.e=0,void(n.d=[0]);if(I<0?(I=-I,n.s=-1):n.s=1,I===~~I&&I<1e7){for(B=0,r=I;r>=10;r/=10)B++;return void(rA?B>i.maxE?(n.e=NaN,n.d=null):B<i.minE?(n.e=0,n.d=[0]):(n.e=B,n.d=[I]):(n.e=B,n.d=[I]))}return 0*I!=0?(I||(n.s=NaN),n.e=NaN,void(n.d=null)):bg(n,I.toString())}if(o==="string")return(r=I.charCodeAt(0))===45?(I=I.slice(1),n.s=-1):(r===43&&(I=I.slice(1)),n.s=1),NI.test(I)?bg(n,I):nr(n,I);if(o==="bigint")return I<0?(I=-I,n.s=-1):n.s=1,bg(n,I.toString());throw Error($a+I)}if(i.prototype=Y,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=fr,i.clone=g,i.isDecimal=hi,i.abs=rr,i.acos=or,i.acosh=Cr,i.add=Er,i.asin=Qr,i.asinh=sr,i.atan=cr,i.atanh=hr,i.atan2=dr,i.cbrt=br,i.ceil=ur,i.clamp=lr,i.cos=Dr,i.cosh=wr,i.div=yr,i.exp=pr,i.floor=Fr,i.hypot=mr,i.ln=Mr,i.log=kr,i.log10=Nr,i.log2=Rr,i.max=Gr,i.min=Sr,i.mod=Ur,i.mul=xr,i.pow=Lr,i.random=Jr,i.round=jr,i.sign=vr,i.sin=Hr,i.sinh=Yr,i.sqrt=Kr,i.sub=qr,i.sum=Tr,i.tan=Or,i.tanh=Pr,i.trunc=zr,A===void 0&&(A={}),A&&A.defaults!==!0)for(t=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],a=0;a<t.length;)A.hasOwnProperty(e=t[a++])||(A[e]=this[e]);return i.config(A),i}(dt);wg=new ke(wg),yg=new ke(yg);var Wr=lA("BigNumber",["?on","config"],g=>{var{on:A,config:a}=g,e=ke.clone({precision:a.precision,modulo:ke.EUCLID});return e.prototype=Object.create(e.prototype),e.prototype.type="BigNumber",e.prototype.isBigNumber=!0,e.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},e.fromJSON=function(t){return new e(t.value)},A&&A("config",function(t,i){t.precision!==i.precision&&e.config({precision:t.precision})}),e},{isClass:!0});const $A=Math.cosh||function(g){return Math.abs(g)<1e-9?1-g:.5*(Math.exp(g)+Math.exp(-g))},da=Math.sinh||function(g){return Math.abs(g)<1e-9?g:.5*(Math.exp(g)-Math.exp(-g))},tt=function(g,A){return(g=Math.abs(g))<(A=Math.abs(A))&&([g,A]=[A,g]),g<1e8?Math.sqrt(g*g+A*A):(A/=g,g*Math.sqrt(1+A*A))},ue=function(){throw SyntaxError("Invalid Param")};function it(g,A){const a=Math.abs(g),e=Math.abs(A);return g===0?Math.log(e):A===0?Math.log(a):a<3e3&&e<3e3?.5*Math.log(g*g+A*A):(g*=.5,A*=.5,.5*Math.log(g*g+A*A)+Math.LN2)}const Vr={re:0,im:0},Ie=function(g,A){const a=Vr;if(g==null)a.re=a.im=0;else if(A!==void 0)a.re=g,a.im=A;else switch(typeof g){case"object":if("im"in g&&"re"in g)a.re=g.re,a.im=g.im;else if("abs"in g&&"arg"in g){if(!isFinite(g.abs)&&isFinite(g.arg))return J.INFINITY;a.re=g.abs*Math.cos(g.arg),a.im=g.abs*Math.sin(g.arg)}else if("r"in g&&"phi"in g){if(!isFinite(g.r)&&isFinite(g.phi))return J.INFINITY;a.re=g.r*Math.cos(g.phi),a.im=g.r*Math.sin(g.phi)}else g.length===2?(a.re=g[0],a.im=g[1]):ue();break;case"string":a.im=a.re=0;const e=g.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let t=1,i=0;e===null&&ue();for(let I=0;I<e.length;I++){const B=e[I];B===" "||B===" "||B===`
34
+ `||(B==="+"?t++:B==="-"?i++:B==="i"||B==="I"?(t+i===0&&ue(),e[I+1]===" "||isNaN(e[I+1])?a.im+=parseFloat((i%2?"-":"")+"1"):(a.im+=parseFloat((i%2?"-":"")+e[I+1]),I++),t=i=0):((t+i===0||isNaN(B))&&ue(),e[I+1]==="i"||e[I+1]==="I"?(a.im+=parseFloat((i%2?"-":"")+B),I++):a.re+=parseFloat((i%2?"-":"")+B),t=i=0))}t+i>0&&ue();break;case"number":a.im=0,a.re=g;break;default:ue()}return isNaN(a.re)||isNaN(a.im),a};function J(g,A){if(!(this instanceof J))return new J(g,A);const a=Ie(g,A);this.re=a.re,this.im=a.im}J.prototype={re:0,im:0,sign:function(){const g=tt(this.re,this.im);return new J(this.re/g,this.im/g)},add:function(g,A){const a=Ie(g,A),e=this.isInfinite(),t=!(isFinite(a.re)&&isFinite(a.im));return e||t?e&&t?J.NAN:J.INFINITY:new J(this.re+a.re,this.im+a.im)},sub:function(g,A){const a=Ie(g,A),e=this.isInfinite(),t=!(isFinite(a.re)&&isFinite(a.im));return e||t?e&&t?J.NAN:J.INFINITY:new J(this.re-a.re,this.im-a.im)},mul:function(g,A){const a=Ie(g,A),e=this.isInfinite(),t=!(isFinite(a.re)&&isFinite(a.im)),i=this.re===0&&this.im===0,I=a.re===0&&a.im===0;return e&&I||t&&i?J.NAN:e||t?J.INFINITY:a.im===0&&this.im===0?new J(this.re*a.re,0):new J(this.re*a.re-this.im*a.im,this.re*a.im+this.im*a.re)},div:function(g,A){const a=Ie(g,A),e=this.isInfinite(),t=!(isFinite(a.re)&&isFinite(a.im)),i=this.re===0&&this.im===0,I=a.re===0&&a.im===0;if(i&&I||e&&t)return J.NAN;if(I||e)return J.INFINITY;if(i||t)return J.ZERO;if(a.im===0)return new J(this.re/a.re,this.im/a.re);if(Math.abs(a.re)<Math.abs(a.im)){const B=a.re/a.im,r=a.re*B+a.im;return new J((this.re*B+this.im)/r,(this.im*B-this.re)/r)}{const B=a.im/a.re,r=a.im*B+a.re;return new J((this.re+this.im*B)/r,(this.im-this.re*B)/r)}},pow:function(g,A){const a=Ie(g,A),e=this.re===0&&this.im===0;if(a.re===0&&a.im===0)return J.ONE;if(a.im===0){if(this.im===0&&this.re>0)return new J(Math.pow(this.re,a.re),0);if(this.re===0)switch((a.re%4+4)%4){case 0:return new J(Math.pow(this.im,a.re),0);case 1:return new J(0,Math.pow(this.im,a.re));case 2:return new J(-Math.pow(this.im,a.re),0);case 3:return new J(0,-Math.pow(this.im,a.re))}}if(e&&a.re>0)return J.ZERO;const t=Math.atan2(this.im,this.re),i=it(this.re,this.im);let I=Math.exp(a.re*i-a.im*t),B=a.im*i+a.re*t;return new J(I*Math.cos(B),I*Math.sin(B))},sqrt:function(){const g=this.re,A=this.im;if(A===0)return g>=0?new J(Math.sqrt(g),0):new J(0,Math.sqrt(-g));const a=tt(g,A);let e=Math.sqrt(.5*(a+Math.abs(g))),t=Math.abs(A)/(2*e);return g>=0?new J(e,A<0?-t:t):new J(t,A<0?-e:e)},exp:function(){const g=Math.exp(this.re);return this.im===0?new J(g,0):new J(g*Math.cos(this.im),g*Math.sin(this.im))},expm1:function(){const g=this.re,A=this.im;return new J(Math.expm1(g)*Math.cos(A)+function(a){const e=Math.PI/4;if(-e>a||a>e)return Math.cos(a)-1;const t=a*a;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(g)*Math.sin(A))},log:function(){const g=this.re,A=this.im;return A===0&&g>0?new J(Math.log(g),0):new J(it(g,A),Math.atan2(A,g))},abs:function(){return tt(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const g=this.re,A=this.im;return new J(Math.sin(g)*$A(A),Math.cos(g)*da(A))},cos:function(){const g=this.re,A=this.im;return new J(Math.cos(g)*$A(A),-Math.sin(g)*da(A))},tan:function(){const g=2*this.re,A=2*this.im,a=Math.cos(g)+$A(A);return new J(Math.sin(g)/a,da(A)/a)},cot:function(){const g=2*this.re,A=2*this.im,a=Math.cos(g)-$A(A);return new J(-Math.sin(g)/a,da(A)/a)},sec:function(){const g=this.re,A=this.im,a=.5*$A(2*A)+.5*Math.cos(2*g);return new J(Math.cos(g)*$A(A)/a,Math.sin(g)*da(A)/a)},csc:function(){const g=this.re,A=this.im,a=.5*$A(2*A)-.5*Math.cos(2*g);return new J(Math.sin(g)*$A(A)/a,-Math.cos(g)*da(A)/a)},asin:function(){const g=this.re,A=this.im,a=new J(A*A-g*g+1,-2*g*A).sqrt(),e=new J(a.re-A,a.im+g).log();return new J(e.im,-e.re)},acos:function(){const g=this.re,A=this.im,a=new J(A*A-g*g+1,-2*g*A).sqrt(),e=new J(a.re-A,a.im+g).log();return new J(Math.PI/2-e.im,e.re)},atan:function(){const g=this.re,A=this.im;if(g===0){if(A===1)return new J(0,1/0);if(A===-1)return new J(0,-1/0)}const a=g*g+(1-A)*(1-A),e=new J((1-A*A-g*g)/a,-2*g/a).log();return new J(-.5*e.im,.5*e.re)},acot:function(){const g=this.re,A=this.im;if(A===0)return new J(Math.atan2(1,g),0);const a=g*g+A*A;return a!==0?new J(g/a,-A/a).atan():new J(g!==0?g/0:0,A!==0?-A/0:0).atan()},asec:function(){const g=this.re,A=this.im;if(g===0&&A===0)return new J(0,1/0);const a=g*g+A*A;return a!==0?new J(g/a,-A/a).acos():new J(g!==0?g/0:0,A!==0?-A/0:0).acos()},acsc:function(){const g=this.re,A=this.im;if(g===0&&A===0)return new J(Math.PI/2,1/0);const a=g*g+A*A;return a!==0?new J(g/a,-A/a).asin():new J(g!==0?g/0:0,A!==0?-A/0:0).asin()},sinh:function(){const g=this.re,A=this.im;return new J(da(g)*Math.cos(A),$A(g)*Math.sin(A))},cosh:function(){const g=this.re,A=this.im;return new J($A(g)*Math.cos(A),da(g)*Math.sin(A))},tanh:function(){const g=2*this.re,A=2*this.im,a=$A(g)+Math.cos(A);return new J(da(g)/a,Math.sin(A)/a)},coth:function(){const g=2*this.re,A=2*this.im,a=$A(g)-Math.cos(A);return new J(da(g)/a,-Math.sin(A)/a)},csch:function(){const g=this.re,A=this.im,a=Math.cos(2*A)-$A(2*g);return new J(-2*da(g)*Math.cos(A)/a,2*$A(g)*Math.sin(A)/a)},sech:function(){const g=this.re,A=this.im,a=Math.cos(2*A)+$A(2*g);return new J(2*$A(g)*Math.cos(A)/a,-2*da(g)*Math.sin(A)/a)},asinh:function(){let g=this.im;this.im=-this.re,this.re=g;const A=this.asin();return this.re=-this.im,this.im=g,g=A.re,A.re=-A.im,A.im=g,A},acosh:function(){const g=this.acos();if(g.im<=0){const A=g.re;g.re=-g.im,g.im=A}else{const A=g.im;g.im=-g.re,g.re=A}return g},atanh:function(){const g=this.re,A=this.im,a=g>1&&A===0,e=1-g,t=1+g,i=e*e+A*A,I=i!==0?new J((t*e-A*A)/i,(A*e+t*A)/i):new J(g!==-1?g/0:0,A!==0?A/0:0),B=I.re;return I.re=it(I.re,I.im)/2,I.im=Math.atan2(I.im,B)/2,a&&(I.im=-I.im),I},acoth:function(){const g=this.re,A=this.im;if(g===0&&A===0)return new J(0,Math.PI/2);const a=g*g+A*A;return a!==0?new J(g/a,-A/a).atanh():new J(g!==0?g/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const g=this.re,A=this.im;if(A===0)return new J(g!==0?Math.log(g+Math.sqrt(g*g+1)):1/0,0);const a=g*g+A*A;return a!==0?new J(g/a,-A/a).asinh():new J(g!==0?g/0:0,A!==0?-A/0:0).asinh()},asech:function(){const g=this.re,A=this.im;if(this.isZero())return J.INFINITY;const a=g*g+A*A;return a!==0?new J(g/a,-A/a).acosh():new J(g!==0?g/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return J.INFINITY;if(this.isInfinite())return J.ZERO;const g=this.re,A=this.im,a=g*g+A*A;return new J(g/a,-A/a)},conjugate:function(){return new J(this.re,-this.im)},neg:function(){return new J(-this.re,-this.im)},ceil:function(g){return g=Math.pow(10,g||0),new J(Math.ceil(this.re*g)/g,Math.ceil(this.im*g)/g)},floor:function(g){return g=Math.pow(10,g||0),new J(Math.floor(this.re*g)/g,Math.floor(this.im*g)/g)},round:function(g){return g=Math.pow(10,g||0),new J(Math.round(this.re*g)/g,Math.round(this.im*g)/g)},equals:function(g,A){const a=Ie(g,A);return Math.abs(a.re-this.re)<=J.EPSILON&&Math.abs(a.im-this.im)<=J.EPSILON},clone:function(){return new J(this.re,this.im)},toString:function(){let g=this.re,A=this.im,a="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(g)<J.EPSILON&&(g=0),Math.abs(A)<J.EPSILON&&(A=0),A===0?a+g:(g!==0?(a+=g,a+=" ",A<0?(A=-A,a+="-"):a+="+",a+=" "):A<0&&(A=-A,a+="-"),A!==1&&(a+=A),a+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!this.isFinite()}},J.ZERO=new J(0,0),J.ONE=new J(1,0),J.I=new J(0,1),J.PI=new J(Math.PI,0),J.E=new J(Math.E,0),J.INFINITY=new J(1/0,1/0),J.NAN=new J(NaN,NaN),J.EPSILON=1e-15;var Xr=lA("Complex",[],()=>(Object.defineProperty(J,"name",{value:"Complex"}),J.prototype.constructor=J,J.prototype.type="Complex",J.prototype.isComplex=!0,J.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},J.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},J.prototype.format=function(g){var A=this.im,a=this.re,e=ct(this.re,g),t=ct(this.im,g),i=RA(g)?g:g?g.precision:null;if(i!==null){var I=Math.pow(10,-i);Math.abs(a/A)<I&&(a=0),Math.abs(A/a)<I&&(A=0)}return A===0?e:a===0?A===1?"i":A===-1?"-i":t+"i":A<0?A===-1?e+" - i":e+" - "+t.substring(1)+"i":A===1?e+" + i":e+" + "+t+"i"},J.fromPolar=function(g){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return J(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var a=arguments[0],e=arguments[1];if(RA(a)){if(yI(e)&&e.hasBase("ANGLE")&&(e=e.toNumber("rad")),RA(e))return new J({r:a,phi:e});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},J.prototype.valueOf=J.prototype.toString,J.fromJSON=function(g){return new J(g)},J.compare=function(g,A){return g.re>A.re?1:g.re<A.re?-1:g.im>A.im?1:g.im<A.im?-1:0},J),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(g){if(isNaN(g))throw new Error("");return g});const IA=BigInt(0),EA=BigInt(1),Ke=BigInt(2),ut=BigInt(5),na=BigInt(10),_={s:EA,n:IA,d:EA};function Ga(g,A){try{g=BigInt(g)}catch{throw Wa()}return g*A}function Da(g){return typeof g=="bigint"?g:Math.floor(g)}function SA(g,A){if(A===IA)throw Rt();const a=Object.create(ua.prototype);a.s=g<IA?-EA:EA;const e=Be(g=g<IA?-g:g,A);return a.n=g/e,a.d=A/e,a}function le(g){const A={};let a=g,e=Ke,t=ut-EA;for(;t<=a;){for(;a%e===IA;)a/=e,A[e]=(A[e]||IA)+EA;t+=EA+Ke*e++}return a!==g?a>1&&(A[a]=(A[a]||IA)+EA):A[g]=(A[g]||IA)+EA,A}const XA=function(g,A){let a=IA,e=EA,t=EA;if(g!=null)if(A!==void 0){if(typeof g=="bigint")a=g;else{if(isNaN(g))throw Wa();if(g%1!=0)throw di();a=BigInt(g)}if(typeof A=="bigint")e=A;else{if(isNaN(A))throw Wa();if(A%1!=0)throw di();e=BigInt(A)}t=a*e}else if(typeof g=="object"){if("d"in g&&"n"in g)a=BigInt(g.n),e=BigInt(g.d),"s"in g&&(a*=BigInt(g.s));else if(0 in g)a=BigInt(g[0]),1 in g&&(e=BigInt(g[1]));else{if(typeof g!="bigint")throw Wa();a=g}t=a*e}else if(typeof g=="number"){if(isNaN(g))throw Wa();if(g<0&&(t=-EA,g=-g),g%1==0)a=BigInt(g);else{let i=1,I=0,B=1,r=1,o=1,n=1e7;for(g>=1&&(i=10**Math.floor(1+Math.log10(g)),g/=i);B<=n&&o<=n;){let C=(I+r)/(B+o);if(g===C){B+o<=n?(a=I+r,e=B+o):o>B?(a=r,e=o):(a=I,e=B);break}g>C?(I+=r,B+=o):(r+=I,o+=B),B>n?(a=r,e=o):(a=I,e=B)}a=BigInt(a)*BigInt(i),e=BigInt(e)}}else if(typeof g=="string"){let i=0,I=IA,B=IA,r=IA,o=EA,n=EA,C=g.replace(/_/g,"").match(/\d+|./g);if(C===null||(C[i]==="-"?(t=-EA,i++):C[i]==="+"&&i++,C.length===i+1?B=Ga(C[i++],t):C[i+1]==="."||C[i]==="."?(C[i]!=="."&&(I=Ga(C[i++],t)),i++,(i+1===C.length||C[i+1]==="("&&C[i+3]===")"||C[i+1]==="'"&&C[i+3]==="'")&&(B=Ga(C[i],t),o=na**BigInt(C[i].length),i++),(C[i]==="("&&C[i+2]===")"||C[i]==="'"&&C[i+2]==="'")&&(r=Ga(C[i+1],t),n=na**BigInt(C[i+1].length)-EA,i+=3)):C[i+1]==="/"||C[i+1]===":"?(B=Ga(C[i],t),o=Ga(C[i+2],EA),i+=3):C[i+3]==="/"&&C[i+1]===" "&&(I=Ga(C[i],t),B=Ga(C[i+2],t),o=Ga(C[i+4],EA),i+=5),!(C.length<=i)))throw Wa();e=o*n,t=a=r+e*I+n*B}else{if(typeof g!="bigint")throw Wa();a=g,t=g,e=EA}if(e===IA)throw Rt();_.s=t<IA?-EA:EA,_.n=a<IA?-a:a,_.d=e<IA?-e:e};function Zr(g,A,a){let e=EA,t=function(i,I,B){let r=EA;for(;I>IA;i=i*i%B,I>>=EA)I&EA&&(r=r*i%B);return r}(na,a,A);for(let i=0;i<300;i++){if(e===t)return BigInt(i);e=e*na%A,t=t*na%A}return 0}function Be(g,A){if(!g)return A;if(!A)return g;for(;;){if(!(g%=A))return A;if(!(A%=g))return g}}function ua(g,A){if(XA(g,A),!(this instanceof ua))return SA(_.s*_.n,_.d);g=Be(_.d,_.n),this.s=_.s,this.n=_.n/g,this.d=_.d/g}var Rt=function(){return new Error("Division by Zero")},Wa=function(){return new Error("Invalid argument")},di=function(){return new Error("Parameters must be integer")};ua.prototype={s:EA,n:IA,d:EA,abs:function(){return SA(this.n,this.d)},neg:function(){return SA(-this.s*this.n,this.d)},add:function(g,A){return XA(g,A),SA(this.s*this.n*_.d+_.s*this.d*_.n,this.d*_.d)},sub:function(g,A){return XA(g,A),SA(this.s*this.n*_.d-_.s*this.d*_.n,this.d*_.d)},mul:function(g,A){return XA(g,A),SA(this.s*_.s*this.n*_.n,this.d*_.d)},div:function(g,A){return XA(g,A),SA(this.s*_.s*this.n*_.d,this.d*_.n)},clone:function(){return SA(this.s*this.n,this.d)},mod:function(g,A){if(g===void 0)return SA(this.s*this.n%this.d,EA);if(XA(g,A),IA===_.n*this.d)throw Rt();return SA(this.s*(_.d*this.n)%(_.n*this.d),_.d*this.d)},gcd:function(g,A){return XA(g,A),SA(Be(_.n,this.n)*Be(_.d,this.d),_.d*this.d)},lcm:function(g,A){return XA(g,A),_.n===IA&&this.n===IA?SA(IA,EA):SA(_.n*this.n,Be(_.n,this.n)*Be(_.d,this.d))},inverse:function(){return SA(this.s*this.d,this.n)},pow:function(g,A){if(XA(g,A),_.d===EA)return _.s<IA?SA((this.s*this.d)**_.n,this.n**_.n):SA((this.s*this.n)**_.n,this.d**_.n);if(this.s<IA)return null;let a=le(this.n),e=le(this.d),t=EA,i=EA;for(let I in a)if(I!=="1"){if(I==="0"){t=IA;break}if(a[I]*=_.n,a[I]%_.d!==IA)return null;a[I]/=_.d,t*=BigInt(I)**a[I]}for(let I in e)if(I!=="1"){if(e[I]*=_.n,e[I]%_.d!==IA)return null;e[I]/=_.d,i*=BigInt(I)**e[I]}return _.s<IA?SA(i,t):SA(t,i)},log:function(g,A){if(XA(g,A),this.s<=IA||_.s<=IA)return null;const a={},e=le(_.n),t=le(_.d),i=le(this.n),I=le(this.d);for(const o in t)e[o]=(e[o]||IA)-t[o];for(const o in I)i[o]=(i[o]||IA)-I[o];for(const o in e)o!=="1"&&(a[o]=!0);for(const o in i)o!=="1"&&(a[o]=!0);let B=null,r=null;for(const o in a){const n=e[o]||IA,C=i[o]||IA;if(n===IA){if(C!==IA)return null;continue}let Q=C,E=n;const s=Be(Q,E);if(Q/=s,E/=s,B===null&&r===null)B=Q,r=E;else if(Q*r!=B*E)return null}return B!==null&&r!==null?SA(B,r):null},equals:function(g,A){return XA(g,A),this.s*this.n*_.d==_.s*_.n*this.d},lt:function(g,A){return XA(g,A),this.s*this.n*_.d<_.s*_.n*this.d},lte:function(g,A){return XA(g,A),this.s*this.n*_.d<=_.s*_.n*this.d},gt:function(g,A){return XA(g,A),this.s*this.n*_.d>_.s*_.n*this.d},gte:function(g,A){return XA(g,A),this.s*this.n*_.d>=_.s*_.n*this.d},compare:function(g,A){XA(g,A);let a=this.s*this.n*_.d-_.s*_.n*this.d;return(IA<a)-(a<IA)},ceil:function(g){return g=na**BigInt(g||0),SA(Da(this.s*g*this.n/this.d)+(g*this.n%this.d>IA&&this.s>=IA?EA:IA),g)},floor:function(g){return g=na**BigInt(g||0),SA(Da(this.s*g*this.n/this.d)-(g*this.n%this.d>IA&&this.s<IA?EA:IA),g)},round:function(g){return g=na**BigInt(g||0),SA(Da(this.s*g*this.n/this.d)+this.s*((this.s>=IA?EA:IA)+Ke*(g*this.n%this.d)>this.d?EA:IA),g)},roundTo:function(g,A){XA(g,A);const a=this.n*_.d,e=this.d*_.n,t=a%e;let i=Da(a/e);return t+t>=e&&i++,SA(this.s*i*_.n,_.d)},divisible:function(g,A){return XA(g,A),!(!(_.n*this.d)||this.n*_.d%(_.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(g){let A=this.n,a=this.d;g=g||15;let e=function(I,B){for(;B%Ke===IA;B/=Ke);for(;B%ut===IA;B/=ut);if(B===EA)return IA;let r=na%B,o=1;for(;r!==EA;o++)if(r=r*na%B,o>2e3)return IA;return BigInt(o)}(0,a),t=Zr(0,a,e),i=this.s<IA?"-":"";if(i+=Da(A/a),A%=a,A*=na,A&&(i+="."),e){for(let I=t;I--;)i+=Da(A/a),A%=a,A*=na;i+="(";for(let I=e;I--;)i+=Da(A/a),A%=a,A*=na;i+=")"}else for(let I=g;A&&I--;)i+=Da(A/a),A%=a,A*=na;return i},toFraction:function(g){let A=this.n,a=this.d,e=this.s<IA?"-":"";if(a===EA)e+=A;else{let t=Da(A/a);g&&t>IA&&(e+=t,e+=" ",A%=a),e+=A,e+="/",e+=a}return e},toLatex:function(g){let A=this.n,a=this.d,e=this.s<IA?"-":"";if(a===EA)e+=A;else{let t=Da(A/a);g&&t>IA&&(e+=t,A%=a),e+="\\frac{",e+=A,e+="}{",e+=a,e+="}"}return e},toContinued:function(){let g=this.n,A=this.d,a=[];do{a.push(Da(g/A));let e=g%A;g=A,A=e}while(g!==EA);return a},simplify:function(g){const A=BigInt(1/(g||.001)|0),a=this.abs(),e=a.toContinued();for(let t=1;t<e.length;t++){let i=SA(e[t-1],EA);for(let B=t-2;B>=0;B--)i=i.inverse().add(e[B]);let I=i.sub(a);if(I.n*A<I.d)return i.mul(this.s)}return this}};var _r=lA("Fraction",[],()=>(Object.defineProperty(ua,"name",{value:"Fraction"}),ua.prototype.constructor=ua,ua.prototype.type="Fraction",ua.prototype.isFraction=!0,ua.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},ua.fromJSON=function(g){return new ua(g)},ua),{isClass:!0}),$r=lA("Matrix",[],()=>{function g(){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator")}return g.prototype.type="Matrix",g.prototype.isMatrix=!0,g.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},g.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},g.prototype.create=function(A,a){throw new Error("Cannot invoke create on a Matrix interface")},g.prototype.subset=function(A,a,e){throw new Error("Cannot invoke subset on a Matrix interface")},g.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},g.prototype.set=function(A,a,e){throw new Error("Cannot invoke set on a Matrix interface")},g.prototype.resize=function(A,a){throw new Error("Cannot invoke resize on a Matrix interface")},g.prototype.reshape=function(A,a){throw new Error("Cannot invoke reshape on a Matrix interface")},g.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},g.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},g.prototype.map=function(A,a){throw new Error("Cannot invoke map on a Matrix interface")},g.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},g.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},g.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},g.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},g.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},g.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},g},{isClass:!0});function It(g,A,a){var e=new g.constructor(2),t="";if(a){if(a<1)throw new Error("size must be in greater than 0");if(!LA(a))throw new Error("size must be an integer");if(g.greaterThan(e.pow(a-1).sub(1))||g.lessThan(e.pow(a-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(a-1,", 2^").concat(a-1,"-1]"));if(!g.isInteger())throw new Error("Value must be an integer");g.lessThan(0)&&(g=g.add(e.pow(a))),t="i".concat(a)}switch(A){case 2:return"".concat(g.toBinary()).concat(t);case 8:return"".concat(g.toOctal()).concat(t);case 16:return"".concat(g.toHexadecimal()).concat(t);default:throw new Error("Base ".concat(A," not supported "))}}function Ao(g,A){if(typeof A=="function")return A(g);if(!g.isFinite())return g.isNaN()?"NaN":g.gt(0)?"Infinity":"-Infinity";var{notation:a,precision:e,wordSize:t}=pI(A);switch(a){case"fixed":return function(o,n){return o.toFixed(n)}(g,e);case"exponential":return bi(g,e);case"engineering":return function(o,n){var C=o.e,Q=C%3==0?C:C<0?C-3-C%3:C-C%3,E=o.mul(Math.pow(10,-Q)),s=E.toPrecision(n);return s.includes("e")&&(s=new o.constructor(s).toFixed()),s+"e"+(C>=0?"+":"")+Q.toString()}(g,e);case"bin":return It(g,2,t);case"oct":return It(g,8,t);case"hex":return It(g,16,t);case"auto":var i=ui(A?.lowerExp,-3),I=ui(A?.upperExp,5);if(g.isZero())return"0";var B=g.toSignificantDigits(e),r=B.e;return(r>=i&&r<I?B.toFixed():bi(g,e)).replace(/((\.\d*?)(0+))($|e)/,function(){var o=arguments[2],n=arguments[4];return o!=="."?o+n:n});default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function bi(g,A){return A!==void 0?g.toExponential(A-1):g.toExponential()}function ui(g,A){return RA(g)?g:TA(g)?g.toNumber():A}function qA(g,A){var a=function(e,t){return typeof e=="number"?ct(e,t):TA(e)?Ao(e,t):function(i){return i&&typeof i=="object"&&typeof i.s=="bigint"&&typeof i.n=="bigint"&&typeof i.d=="bigint"||!1}(e)?t&&t.fraction==="decimal"?e.toString():"".concat(e.s*e.n,"/").concat(e.d):Array.isArray(e)?xI(e,t):Ma(e)?li(e):typeof e=="function"?e.syntax?String(e.syntax):"function":e&&typeof e=="object"?typeof e.format=="function"?e.format(t):e&&e.toString(t)!=={}.toString()?e.toString(t):"{"+Object.keys(e).map(i=>li(i)+": "+qA(e[i],t)).join(", ")+"}":String(e)}(g,A);return A&&typeof A=="object"&&"truncate"in A&&a.length>A.truncate?a.substring(0,A.truncate-3)+"...":a}function li(g){for(var A=String(g),a="",e=0;e<A.length;){var t=A.charAt(e);a+=t in fi?fi[t]:t,e++}return'"'+a+'"'}var fi={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function xI(g,A){if(Array.isArray(g)){for(var a="[",e=g.length,t=0;t<e;t++)t!==0&&(a+=", "),a+=xI(g[t],A);return a+="]"}return qA(g,A)}function UA(g,A,a){if(!(this instanceof UA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=g,this.expected=A,this.relation=a,this.message="Dimension mismatch ("+(Array.isArray(g)?"["+g.join(", ")+"]":g)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function ye(g,A,a){if(!(this instanceof ye))throw new SyntaxError("Constructor must be called with the new operator");this.index=g,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=a),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}function ta(g){for(var A=[];Array.isArray(g);)A.push(g.length),g=g[0];return A}function LI(g,A,a){var e,t=g.length;if(t!==A[a])throw new UA(t,A[a]);if(a<A.length-1){var i=a+1;for(e=0;e<t;e++){var I=g[e];if(!Array.isArray(I))throw new UA(A.length-1,A.length,"<");LI(g[e],A,i)}}else for(e=0;e<t;e++)if(Array.isArray(g[e]))throw new UA(A.length+1,A.length,">")}function Di(g,A){if(A.length===0){if(Array.isArray(g))throw new UA(g.length,0)}else LI(g,A,0)}function JA(g,A){if(g!==void 0){if(!RA(g)||!LA(g))throw new TypeError("Index must be an integer (value: "+g+")");if(g<0||typeof A=="number"&&g>=A)throw new ye(g,A)}}function lt(g,A,a){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(e){if(!RA(e)||!LA(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+qA(A)+")")}),(RA(g)||TA(g))&&(g=[g]),ft(g,A,0,a!==void 0?a:0),g}function ft(g,A,a,e){var t,i,I=g.length,B=A[a],r=Math.min(I,B);if(g.length=B,a<A.length-1){var o=a+1;for(t=0;t<r;t++)i=g[t],Array.isArray(i)||(i=[i],g[t]=i),ft(i,A,o,e);for(t=r;t<B;t++)i=[],g[t]=i,ft(i,A,o,e)}else{for(t=0;t<r;t++)for(;Array.isArray(g[t]);)g[t]=g[t][0];for(t=r;t<B;t++)g[t]=e}}function JI(g,A){var a=function(i){var I=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(i))return i;if(typeof I!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var B=[];return I?o(i):r(i),B;function r(n){for(var C=0;C<n.length;C++){var Q=n[C];Array.isArray(Q)?r(Q):B.push(Q)}}function o(n){if(Array.isArray(n[0]))for(var C=0;C<n.length;C++)o(n[C]);else for(var Q=0;Q<n.length;Q++)B.push(n[Q])}}(g,!0),e=a.length;if(!Array.isArray(g)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new UA(0,e,"!=");var t=jI(A=Nt(A,e));if(e!==t)throw new UA(t,e,"!=");try{return function(i,I){for(var B,r=i,o=I.length-1;o>0;o--){var n=I[o];B=[];for(var C=r.length/n,Q=0;Q<C;Q++)B.push(r.slice(Q*n,(Q+1)*n));r=B}return r}(a,A)}catch(i){throw i instanceof UA?new UA(t,e,"!="):i}}function Nt(g,A){var a=jI(g),e=g.slice(),t=g.indexOf(-1);if(g.indexOf(-1,t+1)>=0)throw new Error("More than one wildcard in sizes");if(t>=0){if(A%a!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-a);e[t]=-A/a}return e}function jI(g){return g.reduce((A,a)=>A*a,1)}function vI(g,A,a,e){var t=e||ta(g);if(a)for(var i=0;i<a;i++)g=[g],t.unshift(1);for(g=HI(g,A,0);t.length<A;)t.push(1);return g}function HI(g,A,a){var e,t;if(Array.isArray(g)){var i=a+1;for(e=0,t=g.length;e<t;e++)g[e]=HI(g[e],A,i)}else for(var I=a;I<A;I++)g=[g];return g}function Gt(g,A){for(var a,e=0,t=0;t<g.length;t++){var i=g[t],I=Array.isArray(i);if(t===0&&I&&(e=i.length),I&&i.length!==e)return;var B=I?Gt(i,A):A(i);if(a===void 0)a=B;else if(a!==B)return"mixed"}return a}function YI(g,A,a,e){if(e<a){if(g.length!==A.length)throw new UA(g.length,A.length);for(var t=[],i=0;i<g.length;i++)t[i]=YI(g[i],A[i],a,e+1);return t}return g.concat(A)}function ao(){var g=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(g.length===1)return g[0];if(g.length>1)return g.slice(1).reduce(function(a,e){return YI(a,e,A,0)},g[0]);throw new Error("Wrong number of arguments in function concat")}function wi(g,A){for(var a=A.length,e=g.length,t=0;t<e;t++){var i=a-e+t;if(g[t]<A[i]&&g[t]>1||g[t]>A[i])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(g,") not possible to broadcast dimension ").concat(e," with size ").concat(g[t]," to size ").concat(A[i]))}}function yi(g,A){var a=ta(g);if(Me(a,A))return g;wi(a,A);var e,t,i,I=function(){for(var C=arguments.length,Q=new Array(C),E=0;E<C;E++)Q[E]=arguments[E];for(var s=Q.map(N=>N.length),c=Math.max(...s),d=new Array(c).fill(null),b=0;b<Q.length;b++)for(var h=Q[b],l=s[b],w=0;w<l;w++){var k=c-l+w;h[w]>d[k]&&(d[k]=h[w])}for(var M=0;M<Q.length;M++)wi(Q[M],d);return d}(a,A),B=I.length,r=[...Array(B-a.length).fill(1),...a],o=function(C){return ug([],C)}(g);a.length<B&&(a=ta(o=JI(o,r)));for(var n=0;n<B;n++)a[n]<I[n]&&(e=o,t=I[n],i=n,a=ta(o=ao(...Array(t).fill(e),i)));return o}function KI(g,A){if(!Array.isArray(g))throw new Error("Array expected");var a=ta(g);if(A.length!==a.length)throw new UA(A.length,a.length);for(var e=0;e<A.length;e++)JA(A[e],a[e]);return A.reduce((t,i)=>t[i],g)}function pi(g,A){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(g.length===0)return[];if(a)return function t(i){if(Array.isArray(i)){for(var I=i.length,B=Array(I),r=0;r<I;r++)B[r]=t(i[r]);return B}return A(i)}(g);var e=[];return function t(i,I){if(Array.isArray(i)){for(var B=i.length,r=Array(B),o=0;o<B;o++)e[I]=o,r[o]=t(i[o],I+1);return r}return A(i,e.slice(0,I),g)}(g,0)}function Fg(g,A,a){var e=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Dg.isTypedFunction(g)){var t,i;if(e)t=1;else{var I=(A.isMatrix?A.size():ta(A)).map(()=>0),B=A.isMatrix?A.get(I):KI(A,I);t=function(o,n,C,Q){for(var E=[n,C,Q],s=3;s>0;s--){var c=E.slice(0,s);if(Dg.resolve(o,c)!==null)return s}}(g,B,I,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var r=function(o,n){var C=[];if(Object.entries(o.signatures).forEach(Q=>{var[E,s]=Q;E.split(",").length===n&&C.push(s)}),C.length===1)return C[0]}(g,t);i=r!==void 0?r:g}else i=g;return t>=1&&t<=3?{isUnary:t===1,fn:function(){for(var o=arguments.length,n=new Array(o),C=0;C<o;C++)n[C]=arguments[C];return Fi(i,n.slice(0,t),a,g.name)}}:{isUnary:!1,fn:function(){for(var o=arguments.length,n=new Array(o),C=0;C<o;C++)n[C]=arguments[C];return Fi(i,n,a,g.name)}}}return e===void 0?{isUnary:eo(g),fn:g}:{isUnary:e,fn:g}}function eo(g){if(g.length!==1)return!1;var A=g.toString();if(/arguments/.test(A))return!1;var a=A.match(/\(.*?\)/);return!/\.\.\./.test(a)}function Fi(g,A,a,e){try{return g(...A)}catch(t){(function(i,I,B,r){var o;if(i instanceof TypeError&&((o=i.data)===null||o===void 0?void 0:o.category)==="wrongType"){var n=[];throw n.push("value: ".concat(_a(I[0]))),I.length>=2&&n.push("index: ".concat(_a(I[1]))),I.length>=3&&n.push("array: ".concat(_a(I[2]))),new TypeError("Function ".concat(B," cannot apply callback arguments ")+"".concat(r,"(").concat(n.join(", "),") at index ").concat(JSON.stringify(I[1])))}throw new TypeError("Function ".concat(B," cannot apply callback arguments ")+"to function ".concat(r,": ").concat(i.message))})(t,A,a,e)}}UA.prototype=new RangeError,UA.prototype.constructor=RangeError,UA.prototype.name="DimensionError",UA.prototype.isDimensionError=!0,ye.prototype=new RangeError,ye.prototype.constructor=RangeError,ye.prototype.name="IndexError",ye.prototype.isIndexError=!0;var go=lA("DenseMatrix",["Matrix"],g=>{var{Matrix:A}=g;function a(I,B){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(B&&!Ma(B))throw new Error("Invalid datatype: "+B);if(HA(I))I.type==="DenseMatrix"?(this._data=vA(I._data),this._size=vA(I._size),this._datatype=B||I._datatype):(this._data=I.toArray(),this._size=I.size(),this._datatype=B||I._datatype);else if(I&&PA(I.data)&&PA(I.size))this._data=I.data,this._size=I.size,Di(this._data,this._size),this._datatype=B||I.datatype;else if(PA(I))this._data=i(I),this._size=ta(this._data),Di(this._data,this._size),this._datatype=B;else{if(I)throw new TypeError("Unsupported type of data ("+_a(I)+")");this._data=[],this._size=[0],this._datatype=B}}function e(I,B,r){if(B.length===0){for(var o=I._data;PA(o);)o=o[0];return o}return I._size=B.slice(0),I._data=lt(I._data,I._size,r),I}function t(I,B,r){for(var o=I._size.slice(0),n=!1;o.length<B.length;)o.push(0),n=!0;for(var C=0,Q=B.length;C<Q;C++)B[C]>o[C]&&(o[C]=B[C],n=!0);n&&e(I,o,r)}function i(I){return HA(I)?i(I.valueOf()):PA(I)?I.map(i):I}return a.prototype=new A,a.prototype.createDenseMatrix=function(I,B){return new a(I,B)},Object.defineProperty(a,"name",{value:"DenseMatrix"}),a.prototype.constructor=a,a.prototype.type="DenseMatrix",a.prototype.isDenseMatrix=!0,a.prototype.getDataType=function(){return Gt(this._data,_a)},a.prototype.storage=function(){return"dense"},a.prototype.datatype=function(){return this._datatype},a.prototype.create=function(I,B){return new a(I,B)},a.prototype.subset=function(I,B,r){switch(arguments.length){case 1:return function(o,n){if(!Mt(n))throw new TypeError("Invalid index");var C=n.isScalar();if(C)return o.get(n.min());var Q=n.size();if(Q.length!==o._size.length)throw new UA(Q.length,o._size.length);for(var E=n.min(),s=n.max(),c=0,d=o._size.length;c<d;c++)JA(E[c],o._size[c]),JA(s[c],o._size[c]);var b=new a([]),h=function(l,w){var k=w.size().length-1,M=Array(k);return{data:N(l),size:M};function N(m){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,L=w.dimension(G);return M[G]=L.size()[0],G<k?L.map(x=>(JA(x,m.length),N(m[x],G+1))).valueOf():L.map(x=>(JA(x,m.length),m[x])).valueOf()}}(o._data,n);return b._size=h.size,b._datatype=o._datatype,b._data=h.data,b}(this,I);case 2:case 3:return function(o,n,C,Q){if(!n||n.isIndex!==!0)throw new TypeError("Invalid index");var E,s=n.size(),c=n.isScalar();if(HA(C)?(E=C.size(),C=C.valueOf()):E=ta(C),c){if(E.length!==0)throw new TypeError("Scalar expected");o.set(n.min(),C,Q)}else{if(!Me(E,s))try{E=ta(C=E.length===0?yi([C],s):yi(C,s))}catch{}if(s.length<o._size.length)throw new UA(s.length,o._size.length,"<");if(E.length<s.length){for(var d=0,b=0;s[d]===1&&E[d]===1;)d++;for(;s[d]===1;)b++,d++;C=vI(C,s.length,b,E)}if(!Me(s,E))throw new UA(s,E,">");var h=n.max().map(function(l){return l+1});t(o,h,Q),function(l,w,k){var M=w.size().length-1;function N(m,G){var L=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,x=w.dimension(L);L<M?x.forEach((W,X)=>{JA(W,m.length),N(m[W],G[X[0]],L+1)}):x.forEach((W,X)=>{JA(W,m.length),m[W]=G[X[0]]})}N(l,k)}(o._data,n,C)}return o}(this,I,B,r);default:throw new SyntaxError("Wrong number of arguments")}},a.prototype.get=function(I){return KI(this._data,I)},a.prototype.set=function(I,B,r){if(!PA(I))throw new TypeError("Array expected");if(I.length<this._size.length)throw new UA(I.length,this._size.length,"<");var o,n,C,Q=I.map(function(s){return s+1});t(this,Q,r);var E=this._data;for(o=0,n=I.length-1;o<n;o++)JA(C=I[o],E.length),E=E[C];return JA(C=I[I.length-1],E.length),E[C]=B,this},a.prototype.resize=function(I,B,r){if(!lg(I))throw new TypeError("Array or Matrix expected");var o=I.valueOf().map(n=>Array.isArray(n)&&n.length===1?n[0]:n);return e(r?this.clone():this,o,B)},a.prototype.reshape=function(I,B){var r=B?this.clone():this;r._data=JI(r._data,I);var o=r._size.reduce((n,C)=>n*C);return r._size=Nt(I,o),r},a.prototype.clone=function(){return new a({data:vA(this._data),size:vA(this._size),datatype:this._datatype})},a.prototype.size=function(){return this._size.slice(0)},a.prototype.map=function(I){var B=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=this,o=r._size.length-1;if(o<0)return r.clone();var n=Fg(I,r,"map",B),C=n.fn,Q=r.create(void 0,r._datatype);if(Q._size=r._size,B||n.isUnary)return Q._data=function b(h){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,w=Array(h.length);if(l<o)for(var k=0;k<h.length;k++)w[k]=b(h[k],l+1);else for(var M=0;M<h.length;M++)w[M]=C(h[M]);return w}(r._data),Q;if(o===0){for(var E=r.valueOf(),s=Array(E.length),c=0;c<E.length;c++)s[c]=C(E[c],[c],r);return Q._data=s,Q}var d=[];return Q._data=function b(h){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,w=Array(h.length);if(l<o)for(var k=0;k<h.length;k++)d[l]=k,w[k]=b(h[k],l+1);else for(var M=0;M<h.length;M++)d[l]=M,w[M]=C(h[M],d.slice(),r);return w}(r._data),Q},a.prototype.forEach=function(I){var B=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=this,o=r._size.length-1;if(!(o<0)){var n=Fg(I,r,"map",B),C=n.fn;if(B||n.isUnary)(function s(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<o)for(var b=0;b<c.length;b++)s(c[b],d+1);else for(var h=0;h<c.length;h++)C(c[h])})(r._data);else if(o!==0){var Q=[];(function s(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<o)for(var b=0;b<c.length;b++)Q[d]=b,s(c[b],d+1);else for(var h=0;h<c.length;h++)Q[d]=h,C(c[h],Q.slice(),r)})(r._data)}else for(var E=0;E<r._data.length;E++)C(r._data[E],[E],r)}},a.prototype[Symbol.iterator]=function*(){var I=this._size.length-1;if(!(I<0))if(I!==0){var B=[],r=function*(n,C){if(C<I)for(var Q=0;Q<n.length;Q++)B[C]=Q,yield*r(n[Q],C+1);else for(var E=0;E<n.length;E++)B[C]=E,yield{value:n[E],index:B.slice()}};yield*r(this._data,0)}else for(var o=0;o<this._data.length;o++)yield{value:this._data[o],index:[o]}},a.prototype.rows=function(){var I=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var B=this._data;for(var r of B)I.push(new a([r],this._datatype));return I},a.prototype.columns=function(){var I=this,B=[],r=this.size();if(r.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var o=this._data,n=function(Q){var E=o.map(s=>[s[Q]]);B.push(new a(E,I._datatype))},C=0;C<r[1];C++)n(C);return B},a.prototype.toArray=function(){return vA(this._data)},a.prototype.valueOf=function(){return this._data},a.prototype.format=function(I){return qA(this._data,I)},a.prototype.toString=function(){return qA(this._data)},a.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(I){if(I){if(TA(I)&&(I=I.toNumber()),!RA(I)||!LA(I))throw new TypeError("The parameter k must be an integer number")}else I=0;for(var B=I>0?I:0,r=I<0?-I:0,o=this._size[0],n=this._size[1],C=Math.min(o-r,n-B),Q=[],E=0;E<C;E++)Q[E]=this._data[E+r][E+B];return new a({data:Q,size:[C],datatype:this._datatype})},a.diagonal=function(I,B,r,o){if(!PA(I))throw new TypeError("Array expected, size parameter");if(I.length!==2)throw new Error("Only two dimensions matrix are supported");if(I=I.map(function(l){if(TA(l)&&(l=l.toNumber()),!RA(l)||!LA(l)||l<1)throw new Error("Size values must be positive integers");return l}),r){if(TA(r)&&(r=r.toNumber()),!RA(r)||!LA(r))throw new TypeError("The parameter k must be an integer number")}else r=0;var n,C=r>0?r:0,Q=r<0?-r:0,E=I[0],s=I[1],c=Math.min(E-Q,s-C);if(PA(B)){if(B.length!==c)throw new Error("Invalid value array length");n=function(l){return B[l]}}else if(HA(B)){var d=B.size();if(d.length!==1||d[0]!==c)throw new Error("Invalid matrix length");n=function(l){return B.get([l])}}else n=function(){return B};o||(o=TA(n(0))?n(0).mul(0):0);var b=[];if(I.length>0){b=lt(b,I,o);for(var h=0;h<c;h++)b[h+Q][h+C]=n(h)}return new a({data:b,size:[E,s]})},a.fromJSON=function(I){return new a(I)},a.prototype.swapRows=function(I,B){if(!(RA(I)&&LA(I)&&RA(B)&&LA(B)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return JA(I,this._size[0]),JA(B,this._size[0]),a._swapRows(I,B,this._data),this},a._swapRows=function(I,B,r){var o=r[I];r[I]=r[B],r[B]=o},a},{isClass:!0});function oe(g,A,a){if(!a)return HA(g)?g.map(t=>A(t),!1,!0):pi(g,A,!0);var e=t=>t===0?t:A(t);return HA(g)?g.map(t=>e(t),!1,!0):pi(g,e,!0)}var mi="number",Bg="number, number";function qI(g){return Math.abs(g)}function TI(g,A){return g+A}function OI(g,A){return g-A}function PI(g,A){return g*A}function zI(g){return-g}function WI(g,A){return g*g<1&&A===1/0||g*g>1&&A===-1/0?0:Math.pow(g,A)}function Dt(g,A){if(A<g)return 1;if(A===g)return A;var a=A+g>>1;return Dt(g,a)*Dt(a+1,A)}function mg(g){var A;if(LA(g))return g<=0?isFinite(g)?1/0:NaN:g>171?1/0:Dt(1,g-1);if(g<.5)return Math.PI/(Math.sin(Math.PI*g)*mg(1-g));if(g>=171.35)return 1/0;if(g>85){var a=g*g,e=a*g,t=e*g,i=t*g;return Math.sqrt(2*Math.PI/g)*Math.pow(g/Math.E,g)*(1+1/(12*g)+1/(288*a)-139/(51840*e)-571/(2488320*t)+163879/(209018880*i)+5246819/(75246796800*i*g))}--g,A=Fe[0];for(var I=1;I<Fe.length;++I)A+=Fe[I]/(g+I);var B=g+VI+.5;return Math.sqrt(2*Math.PI)*Math.pow(B,g+.5)*Math.exp(-B)*A}qI.signature=mi,TI.signature=Bg,OI.signature=Bg,PI.signature=Bg,zI.signature=mi,WI.signature=Bg,mg.signature="number";var VI=4.7421875,Fe=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],Mi="isZero",to=lA(Mi,["typed","equalScalar"],g=>{var{typed:A,equalScalar:a}=g;return A(Mi,{"number | BigNumber | Complex | Fraction":e=>a(e,0),bigint:e=>e===0n,Unit:A.referToSelf(e=>t=>A.find(e,t.valueType())(t.value)),"Array | Matrix":A.referToSelf(e=>t=>oe(t,e))})}),io=lA("compareUnits",["typed"],g=>{var{typed:A}=g;return{"Unit, Unit":A.referToSelf(a=>(e,t)=>{if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return A.find(a,[e.valueType(),t.valueType()])(e.value,t.value)})}}),Mg="equalScalar",Io=lA(Mg,["typed","config"],g=>{var{typed:A,config:a}=g,e=io({typed:A});return A(Mg,{"boolean, boolean":function(t,i){return t===i},"number, number":function(t,i){return cg(t,i,a.relTol,a.absTol)},"BigNumber, BigNumber":function(t,i){return t.eq(i)||function(I,B){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(r<=0)throw new Error("Relative tolerance must be greater than 0");if(o<0)throw new Error("Absolute tolerance must be at least 0");return!I.isNaN()&&!B.isNaN()&&(I.isFinite()&&B.isFinite()?!!I.eq(B)||I.minus(B).abs().lte(I.constructor.max(I.constructor.max(I.abs(),B.abs()).mul(r),o)):I.eq(B))}(t,i,a.relTol,a.absTol)},"bigint, bigint":function(t,i){return t===i},"Fraction, Fraction":function(t,i){return t.equals(i)},"Complex, Complex":function(t,i){return function(I,B,r,o){return cg(I.re,B.re,r,o)&&cg(I.im,B.im,r,o)}(t,i,a.relTol,a.absTol)}},e)});lA(Mg,["typed","config"],g=>{var{typed:A,config:a}=g;return A(Mg,{"number, number":function(e,t){return cg(e,t,a.relTol,a.absTol)}})});var Bo=lA("SparseMatrix",["typed","equalScalar","Matrix"],g=>{var{typed:A,equalScalar:a,Matrix:e}=g;function t(n,C){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(C&&!Ma(C))throw new Error("Invalid datatype: "+C);if(HA(n))(function(Q,E,s){E.type==="SparseMatrix"?(Q._values=E._values?vA(E._values):void 0,Q._index=vA(E._index),Q._ptr=vA(E._ptr),Q._size=vA(E._size),Q._datatype=s||E._datatype):i(Q,E.valueOf(),s||E._datatype)})(this,n,C);else if(n&&PA(n.index)&&PA(n.ptr)&&PA(n.size))this._values=n.values,this._index=n.index,this._ptr=n.ptr,this._size=n.size,this._datatype=C||n.datatype;else if(PA(n))i(this,n,C);else{if(n)throw new TypeError("Unsupported type of data ("+_a(n)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=C}}function i(n,C,Q){n._values=[],n._index=[],n._ptr=[],n._datatype=Q;var E=C.length,s=0,c=a,d=0;if(Ma(Q)&&(c=A.find(a,[Q,Q])||a,d=A.convert(0,Q)),E>0){var b=0;do{n._ptr.push(n._index.length);for(var h=0;h<E;h++){var l=C[h];if(PA(l)){if(b===0&&s<l.length&&(s=l.length),b<l.length){var w=l[b];c(w,d)||(n._values.push(w),n._index.push(h))}}else b===0&&s<1&&(s=1),c(l,d)||(n._values.push(l),n._index.push(h))}b++}while(b<s)}n._ptr.push(n._index.length),n._size=[E,s]}function I(n,C,Q,E){if(Q-C==0)return Q;for(var s=C;s<Q;s++)if(E[s]===n)return s;return C}function B(n,C,Q,E,s,c,d){s.splice(n,0,E),c.splice(n,0,C);for(var b=Q+1;b<d.length;b++)d[b]++}function r(n,C,Q,E){var s=E||0,c=a,d=0;Ma(n._datatype)&&(c=A.find(a,[n._datatype,n._datatype])||a,d=A.convert(0,n._datatype),s=A.convert(s,n._datatype));var b,h,l,w=!c(s,d),k=n._size[0],M=n._size[1];if(Q>M){for(h=M;h<Q;h++)if(n._ptr[h]=n._values.length,w)for(b=0;b<k;b++)n._values.push(s),n._index.push(b);n._ptr[Q]=n._values.length}else Q<M&&(n._ptr.splice(Q+1,M-Q),n._values.splice(n._ptr[Q],n._values.length),n._index.splice(n._ptr[Q],n._index.length));if(M=Q,C>k){if(w){var N=0;for(h=0;h<M;h++){n._ptr[h]=n._ptr[h]+N,l=n._ptr[h+1]+N;var m=0;for(b=k;b<C;b++,m++)n._values.splice(l+m,0,s),n._index.splice(l+m,0,b),N++}n._ptr[M]=n._values.length}}else if(C<k){var G=0;for(h=0;h<M;h++){n._ptr[h]=n._ptr[h]-G;var L=n._ptr[h],x=n._ptr[h+1]-G;for(l=L;l<x;l++)(b=n._index[l])>C-1&&(n._values.splice(l,1),n._index.splice(l,1),G++)}n._ptr[h]=n._values.length}return n._size[0]=C,n._size[1]=Q,n}function o(n,C,Q,E,s){var c,d,b=E[0],h=E[1],l=[];for(c=0;c<b;c++)for(l[c]=[],d=0;d<h;d++)l[c][d]=0;for(d=0;d<h;d++)for(var w=Q[d],k=Q[d+1],M=w;M<k;M++)l[c=C[M]][d]=n?s?vA(n[M]):n[M]:1;return l}return t.prototype=new e,t.prototype.createSparseMatrix=function(n,C){return new t(n,C)},Object.defineProperty(t,"name",{value:"SparseMatrix"}),t.prototype.constructor=t,t.prototype.type="SparseMatrix",t.prototype.isSparseMatrix=!0,t.prototype.getDataType=function(){return Gt(this._values,_a)},t.prototype.storage=function(){return"sparse"},t.prototype.datatype=function(){return this._datatype},t.prototype.create=function(n,C){return new t(n,C)},t.prototype.density=function(){var n=this._size[0],C=this._size[1];return n!==0&&C!==0?this._index.length/(n*C):0},t.prototype.subset=function(n,C,Q){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(E,s){if(!Mt(s))throw new TypeError("Invalid index");if(s.isScalar())return E.get(s.min());var c,d,b,h,l=s.size();if(l.length!==E._size.length)throw new UA(l.length,E._size.length);var w=s.min(),k=s.max();for(c=0,d=E._size.length;c<d;c++)JA(w[c],E._size[c]),JA(k[c],E._size[c]);var M=E._values,N=E._index,m=E._ptr,G=s.dimension(0),L=s.dimension(1),x=[],W=[];G.forEach(function(Z,nA){W[Z]=nA[0],x[Z]=!0});var X=M?[]:void 0,eA=[],AA=[];return L.forEach(function(Z){for(AA.push(eA.length),b=m[Z],h=m[Z+1];b<h;b++)c=N[b],x[c]===!0&&(eA.push(W[c]),X&&X.push(M[b]))}),AA.push(eA.length),new t({values:X,index:eA,ptr:AA,size:l,datatype:E._datatype})}(this,n);case 2:case 3:return function(E,s,c,d){if(!s||s.isIndex!==!0)throw new TypeError("Invalid index");var b,h=s.size(),l=s.isScalar();if(HA(c)?(b=c.size(),c=c.toArray()):b=ta(c),l){if(b.length!==0)throw new TypeError("Scalar expected");E.set(s.min(),c,d)}else{if(h.length!==1&&h.length!==2)throw new UA(h.length,E._size.length,"<");if(b.length<h.length){for(var w=0,k=0;h[w]===1&&b[w]===1;)w++;for(;h[w]===1;)k++,w++;c=vI(c,h.length,k,b)}if(!Me(h,b))throw new UA(h,b,">");if(h.length===1)s.dimension(0).forEach(function(m,G){JA(m),E.set([m,0],c[G[0]],d)});else{var M=s.dimension(0),N=s.dimension(1);M.forEach(function(m,G){JA(m),N.forEach(function(L,x){JA(L),E.set([m,L],c[G[0]][x[0]],d)})})}}return E}(this,n,C,Q);default:throw new SyntaxError("Wrong number of arguments")}},t.prototype.get=function(n){if(!PA(n))throw new TypeError("Array expected");if(n.length!==this._size.length)throw new UA(n.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var C=n[0],Q=n[1];JA(C,this._size[0]),JA(Q,this._size[1]);var E=I(C,this._ptr[Q],this._ptr[Q+1],this._index);return E<this._ptr[Q+1]&&this._index[E]===C?this._values[E]:0},t.prototype.set=function(n,C,Q){if(!PA(n))throw new TypeError("Array expected");if(n.length!==this._size.length)throw new UA(n.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var E=n[0],s=n[1],c=this._size[0],d=this._size[1],b=a,h=0;Ma(this._datatype)&&(b=A.find(a,[this._datatype,this._datatype])||a,h=A.convert(0,this._datatype)),(E>c-1||s>d-1)&&(r(this,Math.max(E+1,c),Math.max(s+1,d),Q),c=this._size[0],d=this._size[1]),JA(E,c),JA(s,d);var l=I(E,this._ptr[s],this._ptr[s+1],this._index);return l<this._ptr[s+1]&&this._index[l]===E?b(C,h)?function(w,k,M,N,m){M.splice(w,1),N.splice(w,1);for(var G=k+1;G<m.length;G++)m[G]--}(l,s,this._values,this._index,this._ptr):this._values[l]=C:b(C,h)||B(l,E,s,C,this._values,this._index,this._ptr),this},t.prototype.resize=function(n,C,Q){if(!lg(n))throw new TypeError("Array or Matrix expected");var E=n.valueOf().map(s=>Array.isArray(s)&&s.length===1?s[0]:s);if(E.length!==2)throw new Error("Only two dimensions matrix are supported");return E.forEach(function(s){if(!RA(s)||!LA(s)||s<0)throw new TypeError("Invalid size, must contain positive integers (size: "+qA(E)+")")}),r(Q?this.clone():this,E[0],E[1],C)},t.prototype.reshape=function(n,C){if(!PA(n))throw new TypeError("Array expected");if(n.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");n.forEach(function(W){if(!RA(W)||!LA(W)||W<=-2||W===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+qA(n)+")")});var Q=this._size[0]*this._size[1];if(Q!==(n=Nt(n,Q))[0]*n[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var E=C?this.clone():this;if(this._size[0]===n[0]&&this._size[1]===n[1])return E;for(var s=[],c=0;c<E._ptr.length;c++)for(var d=0;d<E._ptr[c+1]-E._ptr[c];d++)s.push(c);for(var b=E._values.slice(),h=E._index.slice(),l=0;l<E._index.length;l++){var w=h[l],k=s[l],M=w*E._size[1]+k;s[l]=M%n[1],h[l]=Math.floor(M/n[1])}E._values.length=0,E._index.length=0,E._ptr.length=n[1]+1,E._size=n.slice();for(var N=0;N<E._ptr.length;N++)E._ptr[N]=0;for(var m=0;m<b.length;m++){var G=h[m],L=s[m],x=b[m];B(I(G,E._ptr[L],E._ptr[L+1],E._index),G,L,x,E._values,E._index,E._ptr)}return E},t.prototype.clone=function(){return new t({values:this._values?vA(this._values):void 0,index:vA(this._index),ptr:vA(this._ptr),size:vA(this._size),datatype:this._datatype})},t.prototype.size=function(){return this._size.slice(0)},t.prototype.map=function(n,C){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var Q=this,E=this._size[0],s=this._size[1],c=Fg(n,Q,"map");return function(d,b,h,l,w,k,M){var N=[],m=[],G=[],L=a,x=0;Ma(d._datatype)&&(L=A.find(a,[d._datatype,d._datatype])||a,x=A.convert(0,d._datatype));for(var W=function(fA,oA,MA){var BA=k(fA,oA,MA);L(BA,x)||(N.push(BA),m.push(oA))},X=l;X<=w;X++){G.push(N.length);var eA=d._ptr[X],AA=d._ptr[X+1];if(M)for(var Z=eA;Z<AA;Z++){var nA=d._index[Z];nA>=b&&nA<=h&&W(d._values[Z],nA-b,X-l)}else{for(var bA={},cA=eA;cA<AA;cA++)bA[d._index[cA]]=d._values[cA];for(var pA=b;pA<=h;pA++)W(pA in bA?bA[pA]:0,pA-b,X-l)}}return G.push(N.length),new t({values:N,index:m,ptr:G,size:[h-b+1,w-l+1]})}(this,0,E-1,0,s-1,function(d,b,h){return c.fn(d,[b,h],Q)},C)},t.prototype.forEach=function(n,C){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var Q=this,E=this._size[0],s=this._size[1],c=Fg(n,Q,"forEach"),d=0;d<s;d++){var b=this._ptr[d],h=this._ptr[d+1];if(C)for(var l=b;l<h;l++){var w=this._index[l];c.fn(this._values[l],[w,d],Q)}else{for(var k={},M=b;M<h;M++)k[this._index[M]]=this._values[M];for(var N=0;N<E;N++){var m=N in k?k[N]:0;c.fn(m,[N,d],Q)}}}},t.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var n=this._size[1],C=0;C<n;C++)for(var Q=this._ptr[C],E=this._ptr[C+1],s=Q;s<E;s++){var c=this._index[s];yield{value:this._values[s],index:[c,C]}}},t.prototype.toArray=function(){return o(this._values,this._index,this._ptr,this._size,!0)},t.prototype.valueOf=function(){return o(this._values,this._index,this._ptr,this._size,!1)},t.prototype.format=function(n){for(var C=this._size[0],Q=this._size[1],E=this.density(),s="Sparse Matrix ["+qA(C,n)+" x "+qA(Q,n)+"] density: "+qA(E,n)+`
35
+ `,c=0;c<Q;c++)for(var d=this._ptr[c],b=this._ptr[c+1],h=d;h<b;h++)s+=`
36
+ (`+qA(this._index[h],n)+", "+qA(c,n)+") ==> "+(this._values?qA(this._values[h],n):"X");return s},t.prototype.toString=function(){return qA(this.toArray())},t.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},t.prototype.diagonal=function(n){if(n){if(TA(n)&&(n=n.toNumber()),!RA(n)||!LA(n))throw new TypeError("The parameter k must be an integer number")}else n=0;var C=n>0?n:0,Q=n<0?-n:0,E=this._size[0],s=this._size[1],c=Math.min(E-Q,s-C),d=[],b=[],h=[];h[0]=0;for(var l=C;l<s&&d.length<c;l++)for(var w=this._ptr[l],k=this._ptr[l+1],M=w;M<k;M++){var N=this._index[M];if(N===l-C+Q){d.push(this._values[M]),b[d.length-1]=N-Q;break}}return h.push(d.length),new t({values:d,index:b,ptr:h,size:[c,1]})},t.fromJSON=function(n){return new t(n)},t.diagonal=function(n,C,Q,E,s){if(!PA(n))throw new TypeError("Array expected, size parameter");if(n.length!==2)throw new Error("Only two dimensions matrix are supported");if(n=n.map(function(eA){if(TA(eA)&&(eA=eA.toNumber()),!RA(eA)||!LA(eA)||eA<1)throw new Error("Size values must be positive integers");return eA}),Q){if(TA(Q)&&(Q=Q.toNumber()),!RA(Q)||!LA(Q))throw new TypeError("The parameter k must be an integer number")}else Q=0;var c=a,d=0;Ma(s)&&(c=A.find(a,[s,s])||a,d=A.convert(0,s));var b,h=Q>0?Q:0,l=Q<0?-Q:0,w=n[0],k=n[1],M=Math.min(w-l,k-h);if(PA(C)){if(C.length!==M)throw new Error("Invalid value array length");b=function(eA){return C[eA]}}else if(HA(C)){var N=C.size();if(N.length!==1||N[0]!==M)throw new Error("Invalid matrix length");b=function(eA){return C.get([eA])}}else b=function(){return C};for(var m=[],G=[],L=[],x=0;x<k;x++){L.push(m.length);var W=x-h;if(W>=0&&W<M){var X=b(W);c(X,d)||(G.push(W+l),m.push(X))}}return L.push(m.length),new t({values:m,index:G,ptr:L,size:[w,k]})},t.prototype.swapRows=function(n,C){if(!(RA(n)&&LA(n)&&RA(C)&&LA(C)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return JA(n,this._size[0]),JA(C,this._size[0]),t._swapRows(n,C,this._size[1],this._values,this._index,this._ptr),this},t._forEachRow=function(n,C,Q,E,s){for(var c=E[n],d=E[n+1],b=c;b<d;b++)s(Q[b],C[b])},t._swapRows=function(n,C,Q,E,s,c){for(var d=0;d<Q;d++){var b=c[d],h=c[d+1],l=I(n,b,h,s),w=I(C,b,h,s);if(l<h&&w<h&&s[l]===n&&s[w]===C){if(E){var k=E[l];E[l]=E[w],E[w]=k}}else if(l<h&&s[l]===n&&(w>=h||s[w]!==C)){var M=E?E[l]:void 0;s.splice(w,0,C),E&&E.splice(w,0,M),s.splice(w<=l?l+1:l,1),E&&E.splice(w<=l?l+1:l,1)}else if(w<h&&s[w]===C&&(l>=h||s[l]!==n)){var N=E?E[w]:void 0;s.splice(l,0,n),E&&E.splice(l,0,N),s.splice(l<=w?w+1:w,1),E&&E.splice(l<=w?w+1:w,1)}}},t},{isClass:!0}),no=lA("number",["typed"],g=>{var{typed:A}=g,a=A("number",{"":function(){return 0},number:function(e){return e},string:function(e){if(e==="NaN")return NaN;var t,i,I=(i=(t=e).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:t,radix:{"0b":2,"0o":8,"0x":16}[i[1]],integerPart:i[2],fractionalPart:i[3]}:null;if(I)return function(n){for(var C=parseInt(n.integerPart,n.radix),Q=0,E=0;E<n.fractionalPart.length;E++)Q+=parseInt(n.fractionalPart[E],n.radix)/Math.pow(n.radix,E+1);var s=C+Q;if(isNaN(s))throw new SyntaxError('String "'+n.input+'" is not a valid number');return s}(I);var B=0,r=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);r&&(B=Number(r[2]),e=r[1]);var o=Number(e);if(isNaN(o))throw new SyntaxError('String "'+e+'" is not a valid number');if(r){if(o>2**B-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));o>=2**(B-1)&&(o-=2**B)}return o},BigNumber:function(e){return e.toNumber()},bigint:function(e){return Number(e)},Fraction:function(e){return e.valueOf()},Unit:A.referToSelf(e=>t=>{var i=t.clone();return i.value=e(t.value),i}),null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":A.referToSelf(e=>t=>oe(t,e))});return a.fromJSON=function(e){return parseFloat(e.value)},a}),ro=lA("bignumber",["typed","BigNumber"],g=>{var{typed:A,BigNumber:a}=g;return A("bignumber",{"":function(){return new a(0)},number:function(e){return new a(e+"")},string:function(e){var t=e.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(t){var i=t[2],I=a(t[1]),B=new a(2).pow(Number(i));if(I.gt(B.sub(1)))throw new SyntaxError('String "'.concat(e,'" is out of range'));var r=new a(2).pow(Number(i)-1);return I.gte(r)?I.sub(B):I}return new a(e)},BigNumber:function(e){return e},bigint:function(e){return new a(e.toString())},Unit:A.referToSelf(e=>t=>{var i=t.clone();return i.value=e(t.value),i}),Fraction:function(e){return new a(String(e.n)).div(String(e.d)).times(String(e.s))},null:function(e){return new a(0)},"Array | Matrix":A.referToSelf(e=>t=>oe(t,e))})}),oo=lA("fraction",["typed","Fraction"],g=>{var{typed:A,Fraction:a}=g;return A("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new a(e)},string:function(e){return new a(e)},"number, number":function(e,t){return new a(e,t)},"bigint, bigint":function(e,t){return new a(e,t)},null:function(e){return new a(0)},BigNumber:function(e){return new a(e.toString())},bigint:function(e){return new a(e.toString())},Fraction:function(e){return e},Unit:A.referToSelf(e=>t=>{var i=t.clone();return i.value=e(t.value),i}),Object:function(e){return new a(e)},"Array | Matrix":A.referToSelf(e=>t=>oe(t,e))})}),ki="matrix",Co=lA(ki,["typed","Matrix","DenseMatrix","SparseMatrix"],g=>{var{typed:A,Matrix:a,DenseMatrix:e,SparseMatrix:t}=g;return A(ki,{"":function(){return i([])},string:function(I){return i([],I)},"string, string":function(I,B){return i([],I,B)},Array:function(I){return i(I)},Matrix:function(I){return i(I,I.storage())},"Array | Matrix, string":i,"Array | Matrix, string, string":i});function i(I,B,r){if(B==="dense"||B==="default"||B===void 0)return new e(I,r);if(B==="sparse")return new t(I,r);throw new TypeError("Unknown matrix type "+JSON.stringify(B)+".")}}),Ri="unaryMinus",Eo=lA(Ri,["typed"],g=>{var{typed:A}=g;return A(Ri,{number:zI,"Complex | BigNumber | Fraction":a=>a.neg(),bigint:a=>-a,Unit:A.referToSelf(a=>e=>{var t=e.clone();return t.value=A.find(a,t.valueType())(e.value),t}),"Array | Matrix":A.referToSelf(a=>e=>oe(e,a,!0))})}),Qo=lA("abs",["typed"],g=>{var{typed:A}=g;return A("abs",{number:qI,"Complex | BigNumber | Fraction | Unit":a=>a.abs(),bigint:a=>a<0n?-a:a,"Array | Matrix":A.referToSelf(a=>e=>oe(e,a,!0))})}),Ni="addScalar",so=lA(Ni,["typed"],g=>{var{typed:A}=g;return A(Ni,{"number, number":TI,"Complex, Complex":function(a,e){return a.add(e)},"BigNumber, BigNumber":function(a,e){return a.plus(e)},"bigint, bigint":function(a,e){return a+e},"Fraction, Fraction":function(a,e){return a.add(e)},"Unit, Unit":A.referToSelf(a=>(e,t)=>{if(e.value===null||e.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(t.value===null||t.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var i=e.clone();return i.value=A.find(a,[i.valueType(),t.valueType()])(i.value,t.value),i.fixPrefix=!1,i})})}),Gi="subtractScalar",co=lA(Gi,["typed"],g=>{var{typed:A}=g;return A(Gi,{"number, number":OI,"Complex, Complex":function(a,e){return a.sub(e)},"BigNumber, BigNumber":function(a,e){return a.minus(e)},"bigint, bigint":function(a,e){return a-e},"Fraction, Fraction":function(a,e){return a.sub(e)},"Unit, Unit":A.referToSelf(a=>(e,t)=>{if(e.value===null||e.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(t.value===null||t.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var i=e.clone();return i.value=A.find(a,[i.valueType(),t.valueType()])(i.value,t.value),i.fixPrefix=!1,i})})}),ho=lA("matAlgo11xS0s",["typed","equalScalar"],g=>{var{typed:A,equalScalar:a}=g;return function(e,t,i,I){var B=e._values,r=e._index,o=e._ptr,n=e._size,C=e._datatype;if(!B)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var Q,E=n[0],s=n[1],c=a,d=0,b=i;typeof C=="string"&&(Q=C,c=A.find(a,[Q,Q]),d=A.convert(0,Q),t=A.convert(t,Q),b=A.find(i,[Q,Q]));for(var h=[],l=[],w=[],k=0;k<s;k++){w[k]=l.length;for(var M=o[k],N=o[k+1],m=M;m<N;m++){var G=r[m],L=I?b(t,B[m]):b(B[m],t);c(L,d)||(l.push(G),h.push(L))}}return w[s]=l.length,e.createSparseMatrix({values:h,index:l,ptr:w,size:[E,s],datatype:Q})}}),bo=lA("matAlgo14xDs",["typed"],g=>{var{typed:A}=g;return function(e,t,i,I){var B,r=e._data,o=e._size,n=e._datatype,C=i;typeof n=="string"&&(B=n,t=A.convert(t,B),C=A.find(i,[B,B]));var Q=o.length>0?a(C,0,o,o[0],r,t,I):[];return e.createDenseMatrix({data:Q,size:vA(o),datatype:B})};function a(e,t,i,I,B,r,o){var n=[];if(t===i.length-1)for(var C=0;C<I;C++)n[C]=o?e(r,B[C]):e(B[C],r);else for(var Q=0;Q<I;Q++)n[Q]=a(e,t+1,i,i[t+1],B[Q],r,o);return n}}),uo=lA("multiplyScalar",["typed"],g=>{var{typed:A}=g;return A("multiplyScalar",{"number, number":PI,"Complex, Complex":function(a,e){return a.mul(e)},"BigNumber, BigNumber":function(a,e){return a.times(e)},"bigint, bigint":function(a,e){return a*e},"Fraction, Fraction":function(a,e){return a.mul(e)},"number | Fraction | BigNumber | Complex, Unit":(a,e)=>e.multiply(a),"Unit, number | Fraction | BigNumber | Complex | Unit":(a,e)=>a.multiply(e)})}),Si="multiply",lo=lA(Si,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],g=>{var{typed:A,matrix:a,addScalar:e,multiplyScalar:t,equalScalar:i,dot:I}=g,B=ho({typed:A,equalScalar:i}),r=bo({typed:A});function o(E,s){switch(E.length){case 1:switch(s.length){case 1:if(E[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(E[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+E[0]+") must match Matrix rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;case 2:switch(s.length){case 1:if(E[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+E[1]+") must match Vector length ("+s[0]+")");break;case 2:if(E[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+E[1]+") must match Matrix B rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+E.length+" dimensions)")}}function n(E,s){if(s.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,d){var b,h=c._data,l=c._size,w=c._datatype||c.getDataType(),k=d._data,M=d._size,N=d._datatype||d.getDataType(),m=l[0],G=M[1],L=e,x=t;w&&N&&w===N&&typeof w=="string"&&w!=="mixed"&&(b=w,L=A.find(e,[b,b]),x=A.find(t,[b,b]));for(var W=[],X=0;X<G;X++){for(var eA=x(h[0],k[0][X]),AA=1;AA<m;AA++)eA=L(eA,x(h[AA],k[AA][X]));W[X]=eA}return c.createDenseMatrix({data:W,size:[G],datatype:w===c._datatype&&N===d._datatype?b:void 0})}(E,s)}var C=A("_multiplyMatrixVector",{"DenseMatrix, any":function(E,s){var c,d=E._data,b=E._size,h=E._datatype||E.getDataType(),l=s._data,w=s._datatype||s.getDataType(),k=b[0],M=b[1],N=e,m=t;h&&w&&h===w&&typeof h=="string"&&h!=="mixed"&&(c=h,N=A.find(e,[c,c]),m=A.find(t,[c,c]));for(var G=[],L=0;L<k;L++){for(var x=d[L],W=m(x[0],l[0]),X=1;X<M;X++)W=N(W,m(x[X],l[X]));G[L]=W}return E.createDenseMatrix({data:G,size:[k],datatype:h===E._datatype&&w===s._datatype?c:void 0})},"SparseMatrix, any":function(E,s){var c=E._values,d=E._index,b=E._ptr,h=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var l,w=s._data,k=s._datatype||s.getDataType(),M=E._size[0],N=s._size[0],m=[],G=[],L=[],x=e,W=t,X=i,eA=0;h&&k&&h===k&&typeof h=="string"&&h!=="mixed"&&(l=h,x=A.find(e,[l,l]),W=A.find(t,[l,l]),X=A.find(i,[l,l]),eA=A.convert(0,l));var AA=[],Z=[];L[0]=0;for(var nA=0;nA<N;nA++){var bA=w[nA];if(!X(bA,eA))for(var cA=b[nA],pA=b[nA+1],fA=cA;fA<pA;fA++){var oA=d[fA];Z[oA]?AA[oA]=x(AA[oA],W(bA,c[fA])):(Z[oA]=!0,G.push(oA),AA[oA]=W(bA,c[fA]))}}for(var MA=G.length,BA=0;BA<MA;BA++){var CA=G[BA];m[BA]=AA[CA]}return L[1]=G.length,E.createSparseMatrix({values:m,index:G,ptr:L,size:[M,1],datatype:h===E._datatype&&k===s._datatype?l:void 0})}}),Q=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(E,s){var c,d=E._data,b=E._size,h=E._datatype||E.getDataType(),l=s._data,w=s._size,k=s._datatype||s.getDataType(),M=b[0],N=b[1],m=w[1],G=e,L=t;h&&k&&h===k&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,G=A.find(e,[c,c]),L=A.find(t,[c,c]));for(var x=[],W=0;W<M;W++){var X=d[W];x[W]=[];for(var eA=0;eA<m;eA++){for(var AA=L(X[0],l[0][eA]),Z=1;Z<N;Z++)AA=G(AA,L(X[Z],l[Z][eA]));x[W][eA]=AA}}return E.createDenseMatrix({data:x,size:[M,m],datatype:h===E._datatype&&k===s._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(E,s){var c=E._data,d=E._size,b=E._datatype||E.getDataType(),h=s._values,l=s._index,w=s._ptr,k=s._size,M=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var N,m=d[0],G=k[1],L=e,x=t,W=i,X=0;b&&M&&b===M&&typeof b=="string"&&b!=="mixed"&&(N=b,L=A.find(e,[N,N]),x=A.find(t,[N,N]),W=A.find(i,[N,N]),X=A.convert(0,N));for(var eA=[],AA=[],Z=[],nA=s.createSparseMatrix({values:eA,index:AA,ptr:Z,size:[m,G],datatype:b===E._datatype&&M===s._datatype?N:void 0}),bA=0;bA<G;bA++){Z[bA]=AA.length;var cA=w[bA],pA=w[bA+1];if(pA>cA)for(var fA=0,oA=0;oA<m;oA++){for(var MA=oA+1,BA=void 0,CA=cA;CA<pA;CA++){var uA=l[CA];fA!==MA?(BA=x(c[oA][uA],h[CA]),fA=MA):BA=L(BA,x(c[oA][uA],h[CA]))}fA!==MA||W(BA,X)||(AA.push(oA),eA.push(BA))}}return Z[G]=AA.length,nA},"SparseMatrix, DenseMatrix":function(E,s){var c=E._values,d=E._index,b=E._ptr,h=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var l,w=s._data,k=s._datatype||s.getDataType(),M=E._size[0],N=s._size[0],m=s._size[1],G=e,L=t,x=i,W=0;h&&k&&h===k&&typeof h=="string"&&h!=="mixed"&&(l=h,G=A.find(e,[l,l]),L=A.find(t,[l,l]),x=A.find(i,[l,l]),W=A.convert(0,l));for(var X=[],eA=[],AA=[],Z=E.createSparseMatrix({values:X,index:eA,ptr:AA,size:[M,m],datatype:h===E._datatype&&k===s._datatype?l:void 0}),nA=[],bA=[],cA=0;cA<m;cA++){AA[cA]=eA.length;for(var pA=cA+1,fA=0;fA<N;fA++){var oA=w[fA][cA];if(!x(oA,W))for(var MA=b[fA],BA=b[fA+1],CA=MA;CA<BA;CA++){var uA=d[CA];bA[uA]!==pA?(bA[uA]=pA,eA.push(uA),nA[uA]=L(oA,c[CA])):nA[uA]=G(nA[uA],L(oA,c[CA]))}}for(var yA=AA[cA],FA=eA.length,NA=yA;NA<FA;NA++){var WA=eA[NA];X[NA]=nA[WA]}}return AA[m]=eA.length,Z},"SparseMatrix, SparseMatrix":function(E,s){var c,d=E._values,b=E._index,h=E._ptr,l=E._datatype||E._data===void 0?E._datatype:E.getDataType(),w=s._values,k=s._index,M=s._ptr,N=s._datatype||s._data===void 0?s._datatype:s.getDataType(),m=E._size[0],G=s._size[1],L=d&&w,x=e,W=t;l&&N&&l===N&&typeof l=="string"&&l!=="mixed"&&(c=l,x=A.find(e,[c,c]),W=A.find(t,[c,c]));for(var X,eA,AA,Z,nA,bA,cA,pA,fA=L?[]:void 0,oA=[],MA=[],BA=E.createSparseMatrix({values:fA,index:oA,ptr:MA,size:[m,G],datatype:l===E._datatype&&N===s._datatype?c:void 0}),CA=L?[]:void 0,uA=[],yA=0;yA<G;yA++){MA[yA]=oA.length;var FA=yA+1;for(nA=M[yA],bA=M[yA+1],Z=nA;Z<bA;Z++)if(pA=k[Z],L)for(eA=h[pA],AA=h[pA+1],X=eA;X<AA;X++)uA[cA=b[X]]!==FA?(uA[cA]=FA,oA.push(cA),CA[cA]=W(w[Z],d[X])):CA[cA]=x(CA[cA],W(w[Z],d[X]));else for(eA=h[pA],AA=h[pA+1],X=eA;X<AA;X++)uA[cA=b[X]]!==FA&&(uA[cA]=FA,oA.push(cA));if(L)for(var NA=MA[yA],WA=oA.length,VA=NA;VA<WA;VA++){var ra=oA[VA];fA[VA]=CA[ra]}}return MA[G]=oA.length,BA}});return A(Si,t,{"Array, Array":A.referTo("Matrix, Matrix",E=>(s,c)=>{o(ta(s),ta(c));var d=E(a(s),a(c));return HA(d)?d.valueOf():d}),"Matrix, Matrix":function(E,s){var c=E.size(),d=s.size();return o(c,d),c.length===1?d.length===1?function(b,h,l){if(l===0)throw new Error("Cannot multiply two empty vectors");return I(b,h)}(E,s,c[0]):n(E,s):d.length===1?C(E,s):Q(E,s)},"Matrix, Array":A.referTo("Matrix,Matrix",E=>(s,c)=>E(s,a(c))),"Array, Matrix":A.referToSelf(E=>(s,c)=>E(a(s,c.storage()),c)),"SparseMatrix, any":function(E,s){return B(E,s,t,!1)},"DenseMatrix, any":function(E,s){return r(E,s,t,!1)},"any, SparseMatrix":function(E,s){return B(s,E,t,!0)},"any, DenseMatrix":function(E,s){return r(s,E,t,!0)},"Array, any":function(E,s){return r(a(E),s,t,!1).valueOf()},"any, Array":function(E,s){return r(a(s),E,t,!0).valueOf()},"any, any":t,"any, any, ...any":A.referToSelf(E=>(s,c,d)=>{for(var b=E(s,c),h=0;h<d.length;h++)b=E(b,d[h]);return b})})}),Ui="conj",fo=lA(Ui,["typed"],g=>{var{typed:A}=g;return A(Ui,{"number | BigNumber | Fraction":a=>a,Complex:a=>a.conjugate(),Unit:A.referToSelf(a=>e=>new e.constructor(a(e.toNumeric()),e.formatUnits())),"Array | Matrix":A.referToSelf(a=>e=>oe(e,a))})}),xi="identity",Do=lA(xi,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],g=>{var{typed:A,config:a,matrix:e,BigNumber:t,DenseMatrix:i,SparseMatrix:I}=g;return A(xi,{"":function(){return a.matrix==="Matrix"?e([]):[]},string:function(o){return e(o)},"number | BigNumber":function(o){return r(o,o,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(o,n){return r(o,o,n)},"number | BigNumber, number | BigNumber":function(o,n){return r(o,n,a.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(o,n,C){return r(o,n,C)},Array:function(o){return B(o)},"Array, string":function(o,n){return B(o,n)},Matrix:function(o){return B(o.valueOf(),o.storage())},"Matrix, string":function(o,n){return B(o.valueOf(),n)}});function B(o,n){switch(o.length){case 0:return n?e(n):[];case 1:return r(o[0],o[0],n);case 2:return r(o[0],o[1],n);default:throw new Error("Vector containing two values expected")}}function r(o,n,C){var Q=TA(o)||TA(n)?t:null;if(TA(o)&&(o=o.toNumber()),TA(n)&&(n=n.toNumber()),!LA(o)||o<1)throw new Error("Parameters in function identity must be positive integers");if(!LA(n)||n<1)throw new Error("Parameters in function identity must be positive integers");var E=Q?new t(1):1,s=Q?new Q(0):0,c=[o,n];if(C){if(C==="sparse")return I.diagonal(c,E,0,s);if(C==="dense")return i.diagonal(c,E,0,s);throw new TypeError('Unknown matrix type "'.concat(C,'"'))}for(var d=lt([],c,s),b=o<n?o:n,h=0;h<b;h++)d[h][h]=E;return d}});function wo(){throw new Error('No "bignumber" implementation available')}function yo(){throw new Error('No "fraction" implementation available')}var Li,Ji="size",po=lA(Ji,["typed","config","?matrix"],g=>{var{typed:A,config:a,matrix:e}=g;return A(Ji,{Matrix:function(t){return t.create(t.size(),"number")},Array:ta,string:function(t){return a.matrix==="Array"?[t.length]:e([t.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(t){return a.matrix==="Array"?[]:e?e([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),Fo=lA("numeric",["number","?bignumber","?fraction"],g=>{var{number:A,bignumber:a,fraction:e}=g,t={string:!0,number:!0,BigNumber:!0,Fraction:!0},i={number:I=>A(I),BigNumber:a?I=>a(I):wo,bigint:I=>BigInt(I),Fraction:e?I=>e(I):yo};return function(I){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var r=_a(I);if(!(r in t))throw new TypeError("Cannot convert "+I+' of type "'+r+'"; valid input types are '+Object.keys(t).join(", "));if(!(B in i))throw new TypeError("Cannot convert "+I+' to type "'+B+'"; valid output types are '+Object.keys(i).join(", "));return B===r?I:i[B](I)}}),ji="divideScalar",mo=lA(ji,["typed","numeric"],g=>{var{typed:A,numeric:a}=g;return A(ji,{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"bigint, bigint":function(e,t){return e/t},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Complex | Fraction | BigNumber | Unit":(e,t)=>e.divide(t),"number | Fraction | Complex | BigNumber, Unit":(e,t)=>t.divideInto(e)})}),Mo=lA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],g=>{var{typed:A,config:a,identity:e,multiply:t,matrix:i,inv:I,number:B,fraction:r,Complex:o}=g;return A("pow",{"number, number":n,"Complex, Complex":function(E,s){return E.pow(s)},"BigNumber, BigNumber":function(E,s){return s.isInteger()||E>=0||a.predictable?E.pow(s):new o(E.toNumber(),0).pow(s.toNumber(),0)},"bigint, bigint":(E,s)=>E**s,"Fraction, Fraction":function(E,s){var c=E.pow(s);if(c!=null)return c;if(a.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return n(E.valueOf(),s.valueOf())},"Array, number":C,"Array, BigNumber":function(E,s){return C(E,s.toNumber())},"Matrix, number":Q,"Matrix, BigNumber":function(E,s){return Q(E,s.toNumber())},"Unit, number | BigNumber":function(E,s){return E.pow(s)}});function n(E,s){if(a.predictable&&!LA(s)&&E<0)try{var c=r(s),d=B(c);if((s===d||Math.abs((s-d)/s)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-E,s)}catch{}return a.predictable&&(E<-1&&s===1/0||E>-1&&E<0&&s===-1/0)?NaN:LA(s)||E>=0||a.predictable?WI(E,s):E*E<1&&s===1/0||E*E>1&&s===-1/0?0:new o(E,0).pow(s,0)}function C(E,s){if(!LA(s))throw new TypeError("For A^b, b must be an integer (value is "+s+")");var c=ta(E);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(s<0)try{return C(I(E),-s)}catch(h){throw h.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+s+")"):h}for(var d=e(c[0]).valueOf(),b=E;s>=1;)1&~s||(d=t(b,d)),s>>=1,b=t(b,b);return d}function Q(E,s){return i(C(E.valueOf(),s))}}),ko=lA("dot",["typed","addScalar","multiplyScalar","conj","size"],g=>{var{typed:A,addScalar:a,multiplyScalar:e,conj:t,size:i}=g;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(r,o){var n=I(r,o),C=HA(r)?r._data:r,Q=HA(r)?r._datatype||r.getDataType():void 0,E=HA(o)?o._data:o,s=HA(o)?o._datatype||o.getDataType():void 0,c=B(r).length===2,d=B(o).length===2,b=a,h=e;if(Q&&s&&Q===s&&typeof Q=="string"&&Q!=="mixed"){var l=Q;b=A.find(a,[l,l]),h=A.find(e,[l,l])}if(!c&&!d){for(var w=h(t(C[0]),E[0]),k=1;k<n;k++)w=b(w,h(t(C[k]),E[k]));return w}if(!c&&d){for(var M=h(t(C[0]),E[0][0]),N=1;N<n;N++)M=b(M,h(t(C[N]),E[N][0]));return M}if(c&&!d){for(var m=h(t(C[0][0]),E[0]),G=1;G<n;G++)m=b(m,h(t(C[G][0]),E[G]));return m}if(c&&d){for(var L=h(t(C[0][0]),E[0][0]),x=1;x<n;x++)L=b(L,h(t(C[x][0]),E[x][0]));return L}},"SparseMatrix, SparseMatrix":function(r,o){I(r,o);for(var n=r._index,C=r._values,Q=o._index,E=o._values,s=0,c=a,d=e,b=0,h=0;b<n.length&&h<Q.length;){var l=n[b],w=Q[h];l<w?b++:l>w?h++:l===w&&(s=c(s,d(C[b],E[h])),b++,h++)}return s}});function I(r,o){var n,C,Q=B(r),E=B(o);if(Q.length===1)n=Q[0];else{if(Q.length!==2||Q[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+Q.join(", ")+")");n=Q[0]}if(E.length===1)C=E[0];else{if(E.length!==2||E[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+E.join(", ")+")");C=E[0]}if(n!==C)throw new RangeError("Vectors must have equal length ("+n+" != "+C+")");if(n===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function B(r){return HA(r)?r.size():i(r)}}),Ro=lA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],g=>{var{typed:A,matrix:a,subtractScalar:e,multiply:t,divideScalar:i,isZero:I,unaryMinus:B}=g;return A("det",{any:function(r){return vA(r)},"Array | Matrix":function(r){var o;switch((o=HA(r)?r.size():Array.isArray(r)?(r=a(r)).size():[]).length){case 0:return vA(r);case 1:if(o[0]===1)return vA(r.valueOf()[0]);if(o[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+qA(o)+")");case 2:var n=o[0],C=o[1];if(n===C)return function(Q,E){if(E===1)return vA(Q[0][0]);if(E===2)return e(t(Q[0][0],Q[1][1]),t(Q[1][0],Q[0][1]));for(var s=!1,c=new Array(E).fill(0).map((G,L)=>L),d=0;d<E;d++){var b=c[d];if(I(Q[b][d])){var h=void 0;for(h=d+1;h<E;h++)if(!I(Q[c[h]][d])){b=c[h],c[h]=c[d],c[d]=b,s=!s;break}if(h===E)return Q[b][d]}for(var l=Q[b][d],w=d===0?1:Q[c[d-1]][d-1],k=d+1;k<E;k++)for(var M=c[k],N=d+1;N<E;N++)Q[M][N]=i(e(t(Q[M][N],l),t(Q[M][d],Q[b][N])),w)}var m=Q[c[E-1]][E-1];return s?B(m):m}(r.clone().valueOf(),n);if(C===0)return 1;throw new RangeError("Matrix must be square (size: "+qA(o)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+qA(o)+")")}}})}),No=lA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],g=>{var{typed:A,matrix:a,divideScalar:e,addScalar:t,multiply:i,unaryMinus:I,det:B,identity:r,abs:o}=g;return A("inv",{"Array | Matrix":function(C){var Q=HA(C)?C.size():ta(C);switch(Q.length){case 1:if(Q[0]===1)return HA(C)?a([e(1,C.valueOf()[0])]):[e(1,C[0])];throw new RangeError("Matrix must be square (size: "+qA(Q)+")");case 2:var E=Q[0],s=Q[1];if(E===s)return HA(C)?a(n(C.valueOf(),E,s),C.storage()):n(C,E,s);throw new RangeError("Matrix must be square (size: "+qA(Q)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+qA(Q)+")")}},any:function(C){return e(1,C)}});function n(C,Q,E){var s,c,d,b,h;if(Q===1){if((b=C[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[e(1,b)]]}if(Q===2){var l=B(C);if(l===0)throw Error("Cannot calculate inverse, determinant is zero");return[[e(C[1][1],l),e(I(C[0][1]),l)],[e(I(C[1][0]),l),e(C[0][0],l)]]}var w=C.concat();for(s=0;s<Q;s++)w[s]=w[s].concat();for(var k=r(Q).valueOf(),M=0;M<E;M++){var N=o(w[M][M]),m=M;for(s=M+1;s<Q;)o(w[s][M])>N&&(N=o(w[s][M]),m=s),s++;if(N===0)throw Error("Cannot calculate inverse, determinant is zero");(s=m)!==M&&(h=w[M],w[M]=w[s],w[s]=h,h=k[M],k[M]=k[s],k[s]=h);var G=w[M],L=k[M];for(s=0;s<Q;s++){var x=w[s],W=k[s];if(s!==M){if(x[M]!==0){for(d=e(I(x[M]),G[M]),c=M;c<E;c++)x[c]=t(x[c],i(d,G[c]));for(c=0;c<E;c++)W[c]=t(W[c],i(d,L[c]))}}else{for(d=G[M],c=M;c<E;c++)x[c]=e(x[c],d);for(c=0;c<E;c++)W[c]=e(W[c],d)}}}return k}}),vi="gamma",Go=lA(vi,["typed","config","multiplyScalar","pow","BigNumber","Complex"],g=>{var{typed:A,config:a,multiplyScalar:e,pow:t,BigNumber:i,Complex:I}=g;return A(vi,{number:mg,Complex:function r(o){if(o.im===0)return mg(o.re);if(o.re<.5){var n=new I(1-o.re,-o.im),C=new I(Math.PI*o.re,Math.PI*o.im);return new I(Math.PI).div(C.sin()).div(r(n))}o=new I(o.re-1,o.im);for(var Q=new I(Fe[0],0),E=1;E<Fe.length;++E){var s=new I(Fe[E],0);Q=Q.add(s.div(o.add(E)))}var c=new I(o.re+VI+.5,o.im),d=Math.sqrt(2*Math.PI),b=c.pow(o.add(.5)),h=c.neg().exp();return Q.mul(d).mul(b).mul(h)},BigNumber:function(r){if(r.isInteger())return r.isNegative()||r.isZero()?new i(1/0):B(r.minus(1));if(!r.isFinite())return new i(r.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function B(r){if(r<8)return new i([1,1,2,6,24,120,720,5040][r]);var o=a.precision+(0|Math.log(r.toNumber())),n=i.clone({precision:o});if(r%2==1)return r.times(B(new i(r-1)));for(var C=r,Q=new n(r),E=r.toNumber();C>2;)E+=C-=2,Q=Q.times(E);return new i(Q.toPrecision(i.precision))}}),Rg=Wr({config:re}),wt=Xr({}),XI=_r({}),St=$r({}),Ut=go({Matrix:St}),jA=gr({BigNumber:Rg,Complex:wt,DenseMatrix:Ut,Fraction:XI}),So=Qo({typed:jA}),yt=so({typed:jA}),Uo=fo({typed:jA}),xt=Io({config:re,typed:jA}),xo=to({equalScalar:xt,typed:jA}),pt=uo({typed:jA}),ZI=no({typed:jA}),_I=Bo({Matrix:St,equalScalar:xt,typed:jA}),Lo=co({typed:jA}),Jo=ro({BigNumber:Rg,typed:jA}),me=Co({DenseMatrix:Ut,Matrix:St,SparseMatrix:_I,typed:jA}),$I=oo({Fraction:XI,typed:jA}),Hi=Do({BigNumber:Rg,DenseMatrix:Ut,SparseMatrix:_I,config:re,matrix:me,typed:jA}),jo=Fo({bignumber:Jo,fraction:$I,number:ZI}),vo=po({matrix:me,config:re,typed:jA}),Yi=Eo({typed:jA}),Ki=mo({numeric:jo,typed:jA}),Bt=lo({addScalar:yt,dot:ko({addScalar:yt,conj:Uo,multiplyScalar:pt,size:vo,typed:jA}),equalScalar:xt,matrix:me,multiplyScalar:pt,typed:jA}),Ho=Go({BigNumber:Rg,Complex:wt,config:re,multiplyScalar:pt,pow:Mo({Complex:wt,config:re,fraction:$I,identity:Hi,inv:No({abs:So,addScalar:yt,det:Ro({divideScalar:Ki,isZero:xo,matrix:me,multiply:Bt,subtractScalar:Lo,typed:jA,unaryMinus:Yi}),divideScalar:Ki,identity:Hi,matrix:me,multiply:Bt,typed:jA,unaryMinus:Yi}),matrix:me,multiply:Bt,number:ZI,typed:jA}),typed:jA});class Yo{constructor(A){if(A){const{toElementFn:a}=A;if(typeof a=="function")this._toElementFn=a;else if(a)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,a){let e=0;for(const t of this)if(!A.call(a,t,e++,this))return!1;return!0}some(A,a){let e=0;for(const t of this)if(A.call(a,t,e++,this))return!0;return!1}forEach(A,a){let e=0;for(const t of this)A.call(a,t,e++,this)}find(A,a){let e=0;for(const t of this)if(A.call(a,t,e++,this))return t}has(A){for(const a of this)if(a===A)return!0;return!1}reduce(A,a){let e=a??0,t=0;for(const i of this)e=A(e,i,t++,this);return e}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
25
37
  * data-structure-typed
26
38
  * @author Kirk Qi
27
39
  * @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
28
40
  * @license MIT License
29
- */class Qa extends Zc{constructor(e=[],a){if(super(a),a){const{comparator:t}=a;t&&(this._comparator=t)}this.addMany(e)}_elements=[];get elements(){return this._elements}get size(){return this.elements.length}get leaf(){return this.elements[this.size-1]??void 0}static heapify(e,a){return new Qa(e,a)}add(e){return this._elements.push(e),this._bubbleUp(this.elements.length-1)}addMany(e){const a=[];for(const t of e)this._toElementFn?a.push(this.add(this._toElementFn(t))):a.push(this.add(t));return a}poll(){if(this.elements.length===0)return;const e=this.elements[0],a=this.elements.pop();return this.elements.length&&(this.elements[0]=a,this._sinkDown(0,this.elements.length>>1)),e}peek(){return this.elements[0]}isEmpty(){return this.size===0}clear(){this._elements=[]}refill(e){return this._elements=e,this.fix()}has(e){return this.elements.includes(e)}delete(e){const a=this.elements.indexOf(e);return!(a<0)&&(a===0?this.poll():a===this.elements.length-1?this.elements.pop():(this.elements.splice(a,1,this.elements.pop()),this._bubbleUp(a),this._sinkDown(a,this.elements.length>>1)),!0)}dfs(e="PRE"){const a=[],t=i=>{const n=2*i+1,o=n+1;i<this.size&&(e==="IN"?(t(n),a.push(this.elements[i]),t(o)):e==="PRE"?(a.push(this.elements[i]),t(n),t(o)):e==="POST"&&(t(n),t(o),a.push(this.elements[i])))};return t(0),a}clone(){return new Qa(this,{comparator:this.comparator,toElementFn:this.toElementFn})}sort(){const e=[],a=new Qa(this,{comparator:this.comparator});for(;a.size!==0;){const t=a.poll();t!==void 0&&e.push(t)}return e}fix(){const e=[];for(let a=Math.floor(this.size/2);a>=0;a--)e.push(this._sinkDown(a,this.elements.length>>1));return e}filter(e,a){const t=new Qa([],{toElementFn:this.toElementFn,comparator:this.comparator});let i=0;for(const n of this)e.call(a,n,i,this)&&t.add(n),i++;return t}map(e,a,t,i){const n=new Qa([],{comparator:a,toElementFn:t});let o=0;for(const s of this)n.add(e.call(i,s,o,this)),o++;return n}_DEFAULT_COMPARATOR=(e,a)=>{if(typeof e=="object"||typeof a=="object")throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");return e>a?1:e<a?-1:0};_comparator=this._DEFAULT_COMPARATOR;get comparator(){return this._comparator}*_getIterator(){for(const e of this.elements)yield e}_bubbleUp(e){const a=this.elements[e];for(;e>0;){const t=e-1>>1,i=this.elements[t];if(this.comparator(i,a)<=0)break;this.elements[e]=i,e=t}return this.elements[e]=a,!0}_sinkDown(e,a){const t=this.elements[e];for(;e<a;){let i=e<<1|1;const n=i+1;let o=this.elements[i];if(n<this.elements.length&&this.comparator(o,this.elements[n])>0&&(i=n,o=this.elements[n]),this.comparator(o,t)>=0)break;this.elements[e]=o,e=i}return this.elements[e]=t,!0}}(function(r){r[r.VISIT=0]="VISIT",r[r.PROCESS=1]="PROCESS"})(Fi||(Fi={}));class at extends Qa{constructor(e=[],a){super(e,a)}clone(){return new at(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(e,a){const t=new at([],{toElementFn:this.toElementFn,comparator:this.comparator});let i=0;for(const n of this)e.call(a,n,i,this)&&t.add(n),i++;return t}map(e,a,t,i){const n=new at([],{comparator:a,toElementFn:t});let o=0;for(const s of this)n.add(e.call(i,s,o,this)),o++;return n}}class Oa extends at{constructor(e=[],a){super(e,a)}clone(){return new Oa(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(e,a){const t=new Oa([],{toElementFn:this.toElementFn,comparator:this.comparator});let i=0;for(const n of this)e.call(a,n,i,this)&&t.add(n),i++;return t}map(e,a,t,i){const n=new Oa([],{comparator:a,toElementFn:t});let o=0;for(const s of this)n.add(e.call(i,s,o,this)),o++;return n}}function Hn(r){return new Worker(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/assets/PointsManager.worker-dH1fNyu8.js").href:new URL("assets/PointsManager.worker-dH1fNyu8.js",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),{type:"module",name:r?.name})}new f.Box3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3;const Wn=new f.Matrix3;Wn.set(1,0,0,0,0,1,0,-1,0);const $c=new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);function tr(r,e){return(f.DataUtils.toHalfFloat(r)|f.DataUtils.toHalfFloat(e)<<16)>>>0}class eu extends f.Mesh{constructor(e,a,t){const n=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let o=1*Math.pow(1024,2);o=Math.floor(o/n)*n;const s=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});s.texture.type=f.UnsignedIntType,s.texture.format=f.RGBAIntegerFormat,s.texture.internalFormat="RGBA32UI",e.initRenderTarget(s);const c=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});c.texture.type=f.UnsignedIntType,c.texture.format=f.RGBAIntegerFormat,c.texture.internalFormat="RGBA32UI",e.initRenderTarget(c);const u=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture:{value:c.texture},positionColorTexture:{value:s.texture},zUpToYUpMatrix3x3:{value:Wn},sizeMultiplier:{value:1},cropRadius:{value:Number.MAX_VALUE},viewportPixelSize:{value:new f.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!1},antialiasingFactor:{value:2}},vertexShader:Xn(),fragmentShader:t||Yn(),transparent:!0,side:f.FrontSide,depthTest:!1,depthWrite:!0}),A=new f.InstancedBufferGeometry,d=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]);A.setIndex([0,2,1,2,3,1]),A.setAttribute("position",new f.BufferAttribute(d,3));const b=new Uint32Array(o),h=new f.InstancedBufferAttribute(b,1,!1);h.needsUpdate=!0,h.setUsage(f.DynamicDrawUsage),A.setAttribute("order",h),A.instanceCount=0,super(A,u),this.matrixAutoUpdate=!1,this.numBatches=0,this.numVisibleBatches=0,this.orderAttribute=h,this.textureSize=1024,this.numTextures=1,this.batchSize=n,this.maxSplats=o,this.numSplatsRendered=0,this.positionColorRenderTarget=s,this.covarianceRenderTarget=c,this.renderer=e,this.sortID=0,this.freeAddresses=new Oa;for(let g=0;g<this.maxSplats;g+=n)this.freeAddresses.add(g);this.worker=new Hn({}),this.sortListeners=[],this.worker.onmessage=g=>{const m=new Uint32Array(g.data.order);if(this.numSplatsRendered=m.length,m.length>this.orderAttribute.count){const E=new f.InstancedBufferGeometry,p=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),C=[0,2,1,2,3,1];E.setIndex(C),E.setAttribute("position",new f.BufferAttribute(p,3));const I=new Uint32Array(this.maxSplats),x=new f.InstancedBufferAttribute(I,1,!1);x.needsUpdate=!0,x.setUsage(f.DynamicDrawUsage),E.setAttribute("order",x),E.instanceCount=0,this.geometry.dispose(),this.geometry=E,this.orderAttribute=x}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(m),this.orderAttribute.addUpdateRange(0,m.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=g.data.count,this.geometry.needsUpdate=!0;for(let E=this.sortListeners.length-1;E>=0;E--)this.sortListeners[E](g.data.id)&&this.sortListeners.splice(E,1)},this.cameraPosition=new f.Vector3(0,0,0),this.viewProjModel,this.rotateOnAxis(new f.Vector3(1,0,0),.5*Math.PI),this.frustumCulled=!1,this.copyMaterial2D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{}},vertexShader:Ti(),fragmentShader:`
41
+ */class ne extends Yo{constructor(A=[],a){if(super(a),a){const{comparator:e}=a;e&&(this._comparator=e)}this.addMany(A)}_elements=[];get elements(){return this._elements}get size(){return this.elements.length}get leaf(){return this.elements[this.size-1]??void 0}static heapify(A,a){return new ne(A,a)}add(A){return this._elements.push(A),this._bubbleUp(this.elements.length-1)}addMany(A){const a=[];for(const e of A)this._toElementFn?a.push(this.add(this._toElementFn(e))):a.push(this.add(e));return a}poll(){if(this.elements.length===0)return;const A=this.elements[0],a=this.elements.pop();return this.elements.length&&(this.elements[0]=a,this._sinkDown(0,this.elements.length>>1)),A}peek(){return this.elements[0]}isEmpty(){return this.size===0}clear(){this._elements=[]}refill(A){return this._elements=A,this.fix()}has(A){return this.elements.includes(A)}delete(A){const a=this.elements.indexOf(A);return!(a<0)&&(a===0?this.poll():a===this.elements.length-1?this.elements.pop():(this.elements.splice(a,1,this.elements.pop()),this._bubbleUp(a),this._sinkDown(a,this.elements.length>>1)),!0)}dfs(A="PRE"){const a=[],e=t=>{const i=2*t+1,I=i+1;t<this.size&&(A==="IN"?(e(i),a.push(this.elements[t]),e(I)):A==="PRE"?(a.push(this.elements[t]),e(i),e(I)):A==="POST"&&(e(i),e(I),a.push(this.elements[t])))};return e(0),a}clone(){return new ne(this,{comparator:this.comparator,toElementFn:this.toElementFn})}sort(){const A=[],a=new ne(this,{comparator:this.comparator});for(;a.size!==0;){const e=a.poll();e!==void 0&&A.push(e)}return A}fix(){const A=[];for(let a=Math.floor(this.size/2);a>=0;a--)A.push(this._sinkDown(a,this.elements.length>>1));return A}filter(A,a){const e=new ne([],{toElementFn:this.toElementFn,comparator:this.comparator});let t=0;for(const i of this)A.call(a,i,t,this)&&e.add(i),t++;return e}map(A,a,e,t){const i=new ne([],{comparator:a,toElementFn:e});let I=0;for(const B of this)i.add(A.call(t,B,I,this)),I++;return i}_DEFAULT_COMPARATOR=(A,a)=>{if(typeof A=="object"||typeof a=="object")throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");return A>a?1:A<a?-1:0};_comparator=this._DEFAULT_COMPARATOR;get comparator(){return this._comparator}*_getIterator(){for(const A of this.elements)yield A}_bubbleUp(A){const a=this.elements[A];for(;A>0;){const e=A-1>>1,t=this.elements[e];if(this.comparator(t,a)<=0)break;this.elements[A]=t,A=e}return this.elements[A]=a,!0}_sinkDown(A,a){const e=this.elements[A];for(;A<a;){let t=A<<1|1;const i=t+1;let I=this.elements[t];if(i<this.elements.length&&this.comparator(I,this.elements[i])>0&&(t=i,I=this.elements[i]),this.comparator(I,e)>=0)break;this.elements[A]=I,A=t}return this.elements[A]=e,!0}}(function(g){g[g.VISIT=0]="VISIT",g[g.PROCESS=1]="PROCESS"})(Li||(Li={}));class qe extends ne{constructor(A=[],a){super(A,a)}clone(){return new qe(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,a){const e=new qe([],{toElementFn:this.toElementFn,comparator:this.comparator});let t=0;for(const i of this)A.call(a,i,t,this)&&e.add(i),t++;return e}map(A,a,e,t){const i=new qe([],{comparator:a,toElementFn:e});let I=0;for(const B of this)i.add(A.call(t,B,I,this)),I++;return i}}class Te extends qe{constructor(A=[],a){super(A,a)}clone(){return new Te(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,a){const e=new Te([],{toElementFn:this.toElementFn,comparator:this.comparator});let t=0;for(const i of this)A.call(a,i,t,this)&&e.add(i),t++;return e}map(A,a,e,t){const i=new Te([],{comparator:a,toElementFn:e});let I=0;for(const B of this)i.add(A.call(t,B,I,this)),I++;return i}}new f.Box3,new f.Vector3,new f.Vector3,new f.Vector3,new f.Vector3;const AB=`let n, y = null;
42
+ function S() {
43
+ return (y === null || y.byteLength === 0) && (y = new Uint32Array(n.memory.buffer)), y;
44
+ }
45
+ let e = 0;
46
+ function r(I, A) {
47
+ const g = A(I.length * 4, 4) >>> 0;
48
+ return S().set(I, g / 4), e = I.length, g;
49
+ }
50
+ function f(I, A) {
51
+ return I = I >>> 0, S().subarray(I / 4, I / 4 + A);
52
+ }
53
+ function H(I, A) {
54
+ const g = r(I, n.__wbindgen_malloc), B = e, C = r(A, n.__wbindgen_malloc), E = e, t = n.radix_sort_indices(g, B, C, E);
55
+ var s = f(t[0], t[1]).slice();
56
+ return n.__wbindgen_free(t[0], t[1] * 4, 4), s;
57
+ }
58
+ async function q(I, A) {
59
+ if (typeof Response == "function" && I instanceof Response) {
60
+ if (typeof WebAssembly.instantiateStreaming == "function")
61
+ try {
62
+ return await WebAssembly.instantiateStreaming(I, A);
63
+ } catch (B) {
64
+ if (I.headers.get("Content-Type") != "application/wasm")
65
+ 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", B);
66
+ else
67
+ throw B;
68
+ }
69
+ const g = await I.arrayBuffer();
70
+ return await WebAssembly.instantiate(g, A);
71
+ } else {
72
+ const g = await WebAssembly.instantiate(I, A);
73
+ return g instanceof WebAssembly.Instance ? { instance: g, module: I } : g;
74
+ }
75
+ }
76
+ function l() {
77
+ const I = {};
78
+ return I.wbg = {}, I.wbg.__wbindgen_init_externref_table = function() {
79
+ const A = n.__wbindgen_export_0, g = A.grow(4);
80
+ A.set(0, void 0), A.set(g + 0, void 0), A.set(g + 1, null), A.set(g + 2, !0), A.set(g + 3, !1);
81
+ }, I;
82
+ }
83
+ function x(I, A) {
84
+ return n = I.exports, J.__wbindgen_wasm_module = A, y = null, n.__wbindgen_start(), n;
85
+ }
86
+ async function J(I) {
87
+ if (n !== void 0) return n;
88
+ typeof I < "u" && (Object.getPrototypeOf(I) === Object.prototype ? { module_or_path: I } = I : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), typeof I > "u" && (I = new URL("data:application/wasm;base64,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aiIFIAMgAmsiAkEBcjYCBEGIjMAAIAI2AgBBkIzAACAFNgIAIAgMAQsgCAsMAgsLQQEgAUUNABpBqYjAAC0AABogAUEBECMLIgIEQCAAIAE2AgggACACNgIEIABBADYCAA8LIAAgATYCCCAAQQE2AgQMAQsgAEEANgIECyAAQQE2AgALdgEBfyMAQSBrIgIkAAJ/IAAoAgBBgICAgHhHBEAgASAAKAIEIAAoAggQIQwBCyACQRhqIAAoAgwiAEEQaikCADcDACACQRBqIABBCGopAgA3AwAgAiAAKQIANwMIIAEoAhQgASgCGCACQQhqEAULIAJBIGokAAtsAQF/IwBBMGsiASQAIAEgADYCACABQYABNgIEIAFBAjYCDCABQZiIwAA2AgggAUICNwIUIAEgAUEEaq1CgICAgCCENwMoIAEgAa1CgICAgCCENwMgIAEgAUEgajYCECABQQhqQYiGwAAQFAALZQAjAEEwayIAJABBqIjAAC0AAARAIABBAjYCDCAAQdiCwAA2AgggAEIBNwIUIAAgATYCLCAAIABBLGqtQoCAgIAghDcDICAAIABBIGo2AhAgAEEIakH4gsAAEBQACyAAQTBqJAALtAIBA38jAEEgayICJAAgAkEQaiIDIABBEGopAgA3AwAgAkEIaiIEIABBCGopAgA3AwAgAkEBOwEcIAIgATYCGCACIAApAgA3AwAjAEEgayIAJAAgAigCGCEBIABBEGogAykCADcDACAAQQhqIAQpAgA3AwAgACACNgIcIAAgATYCGCAAIAIpAgA3AwBBACECIwBBEGsiASQAIAAoAgwhAwJAAkACQAJAIAAoAgQOAgABAgsgAw0BQQEhAwwCCyADDQAgACgCACIDKAIEIQIgAygCACEDDAELIAFBgICAgHg2AgAgASAANgIMIAFBxIPAACAAKAIYIAAoAhwiAC0AHCAALQAdEA0ACyABIAI2AgQgASADNgIAIAFBqIPAACAAKAIYIAAoAhwiAC0AHCAALQAdEA0AC0EBAX8gAiAAKAIAIAAoAggiA2tLBEAgACADIAIQDCAAKAIIIQMLIAAoAgQgA2ogASACEAgaIAAgAiADajYCCEEACyYBAX8CQCAAEAEiAUUNACABQQRrLQAAQQNxRQ0AIAEgABAOCyABC00BAn9BqYjAAC0AABogASgCBCECIAEo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", import.meta.url));
89
+ const A = l();
90
+ (typeof I == "string" || typeof Request == "function" && I instanceof Request || typeof URL == "function" && I instanceof URL) && (I = fetch(I));
91
+ const { instance: g, module: B } = await q(await I, A);
92
+ return x(g, B);
93
+ }
94
+ const K = new ArrayBuffer(4), b = new Float32Array(K), p = new Uint32Array(K);
95
+ class Z {
96
+ constructor(A) {
97
+ this.points = new Float32Array(4096 * 3), this.distances = new Uint32Array(4096), this.pointSets = /* @__PURE__ */ new Map(), this.numUsed = 0, this.sortOngoing = !1, this.sortCallback = A, this.sortPromise = Promise.resolve();
98
+ }
99
+ hidePoints(A) {
100
+ const g = this.pointSets.get(A);
101
+ g.used && (g.used = !1);
102
+ }
103
+ removePoints(A) {
104
+ const g = this.pointSets.get(A);
105
+ g.used && (g.used = !1), this.pointSets.delete(A);
106
+ let B = 0;
107
+ for (const [C, E] of this.pointSets.entries())
108
+ C + E.length > B && (B = C + E.length);
109
+ }
110
+ showPoints(A) {
111
+ const g = this.pointSets.get(A);
112
+ g.used || (g.used = !0);
113
+ }
114
+ resizeArrays(A) {
115
+ if (isNaN(A) && console.log("hit max splats"), A > this.points.length) {
116
+ A = Math.max(this.points.length * 2, A);
117
+ const g = new Float32Array(A);
118
+ g.set(this.points, 0), this.points = g;
119
+ const B = Math.floor(A / 3), C = new Uint32Array(B);
120
+ C.set(this.distances, 0), this.distances = C;
121
+ }
122
+ }
123
+ addBatchesOffsetStrideCount(A, g, B, C, E) {
124
+ const t = Math.max(this.points.length, g[g.length - 1] + E * 3);
125
+ this.resizeArrays(t);
126
+ for (let s = 0; s < g.length; s++) {
127
+ const a = g[s], o = s * E * C, D = Math.min((A.length - o) / C, E);
128
+ for (let i = 0; i < D; i++)
129
+ this.points[a + i * 3] = A[i * C + B + o], this.points[a + i * 3 + 1] = A[i * C + B + o + 1], this.points[a + i * 3 + 2] = A[i * C + B + o + 2];
130
+ this.pointSets.set(a, { length: D * 3, used: !1 });
131
+ }
132
+ }
133
+ getFrustumPlanes(A, g = 1.2) {
134
+ const B = new Float32Array(24);
135
+ let C = 0;
136
+ const E = (t, s, a, o, D) => {
137
+ const i = 1 / Math.hypot(t, s, a);
138
+ B[C++] = t * i, B[C++] = s * i, B[C++] = a * i;
139
+ let w = o * i;
140
+ if (D && g !== 1) {
141
+ const h = 1 - g;
142
+ w -= h;
143
+ }
144
+ B[C++] = w;
145
+ };
146
+ return E(A[3] + A[0], A[7] + A[4], A[11] + A[8], A[15] + A[12], !0), E(A[3] - A[0], A[7] - A[4], A[11] - A[8], A[15] - A[12], !0), E(A[3] + A[1], A[7] + A[5], A[11] + A[9], A[15] + A[13], !0), E(A[3] - A[1], A[7] - A[5], A[11] - A[9], A[15] - A[13], !0), E(A[3] + A[2], A[7] + A[6], A[11] + A[10], A[15] + A[14], !1), E(A[3] - A[2], A[7] - A[6], A[11] - A[10], A[15] + A[14], !1), B;
147
+ }
148
+ computeDistances(A, g, B, C) {
149
+ this.distances.fill(0);
150
+ const E = Array.from(this.pointSets.keys()), t = E.length;
151
+ let s;
152
+ C && (s = this.getFrustumPlanes(C)), this.numUsed = 0;
153
+ for (let o = 0; o < t; o++) {
154
+ const D = E[o], i = this.pointSets.get(D);
155
+ if (!i.used) continue;
156
+ const w = Math.floor(i.length / 3);
157
+ this.numUsed += w;
158
+ }
159
+ this.indexes = new Uint32Array(this.numUsed), this.distances = new Uint32Array(this.numUsed);
160
+ let a = 0;
161
+ for (let o = 0; o < t; o++) {
162
+ const D = E[o], i = Math.floor(D / 3), w = this.pointSets.get(D);
163
+ if (!w.used) continue;
164
+ const h = Math.floor(w.length / 3);
165
+ for (let c = 0; c < h; c++) {
166
+ const G = D + c * 3, M = this.points[G], F = this.points[G + 1], Y = this.points[G + 2];
167
+ if (s) {
168
+ let k = !0;
169
+ for (let N = 0; N < 24; N += 4)
170
+ if (M * s[N] + F * s[N + 1] + Y * s[N + 2] + s[N + 3] < 0) {
171
+ k = !1;
172
+ break;
173
+ }
174
+ if (!k) continue;
175
+ }
176
+ const R = A - M, U = g - F, d = B - Y, L = R * R + U * U + d * d;
177
+ b[0] = L, this.distances[a] = p[0], this.indexes[a++] = i + c;
178
+ }
179
+ }
180
+ this.numUsed = a, this.indexes = this.indexes.subarray(0, a), this.distances = this.distances.subarray(0, a);
181
+ }
182
+ sort(A, g, B) {
183
+ this.pendingSort = { xyz: A, vpm: g }, this.pendingID = B, this.sortOngoing || (this.sortOngoing = !0, this.processSortQueue());
184
+ }
185
+ // Asynchronous loop to process sort requests sequentially
186
+ async processSortQueue() {
187
+ for (this.initialized || (await J(), this.initialized = !0); this.pendingSort; ) {
188
+ const { xyz: A, vpm: g } = this.pendingSort, B = this.pendingID;
189
+ this.pendingSort = null, this.pendingID = null, this.computeDistances(A[0], A[1], A[2], g);
190
+ const C = performance.now();
191
+ this.indexes = H(this.indexes, this.distances);
192
+ const E = performance.now() - C;
193
+ this.sortCallback(this.indexes, this.numUsed, B, E), await new Promise((t) => setTimeout(t, 0));
194
+ }
195
+ this.sortOngoing = !1;
196
+ }
197
+ }
198
+ const m = (I, A, g, B) => {
199
+ const C = new Uint32Array(I);
200
+ postMessage({
201
+ order: C.buffer,
202
+ count: A,
203
+ id: g,
204
+ sortPerf: B
205
+ }, [C.buffer]);
206
+ };
207
+ let Q;
208
+ self.onmessage = function(I) {
209
+ try {
210
+ switch (I.data.method) {
211
+ case "addBatches":
212
+ Q || (Q = new Z(m)), Q.addBatchesOffsetStrideCount(new Float32Array(I.data.positions), I.data.insertionIndexes, I.data.offset, I.data.stride, I.data.batchSize);
213
+ break;
214
+ case "hide":
215
+ Q && Q.hidePoints(I.data.insertionIndex);
216
+ break;
217
+ case "hideBatches":
218
+ Q && (I.data.insertionIndexes.forEach((A) => {
219
+ Q.hidePoints(A);
220
+ }), Q.sort(I.data.xyz, I.data.vpm, I.data.id));
221
+ break;
222
+ case "show":
223
+ Q && (Q.showPoints(I.data.insertionIndex), Q.sort(I.data.xyz, I.data.vpm, I.data.id));
224
+ break;
225
+ case "showBatches":
226
+ Q && (I.data.insertionIndexes.forEach((A) => {
227
+ Q.showPoints(A);
228
+ }), Q.sort(I.data.xyz, I.data.vpm, I.data.id));
229
+ break;
230
+ case "remove":
231
+ Q && (Q.removePoints(I.data.insertionIndex), Q.sort(I.data.xyz, I.data.vpm, I.data.id));
232
+ break;
233
+ case "removeBatches":
234
+ Q && (I.data.insertionIndexes.forEach((A) => {
235
+ Q.removePoints(A);
236
+ }), Q.sort(I.data.xyz, I.data.vpm, I.data.id));
237
+ break;
238
+ case "sort":
239
+ Q && Q.sort(I.data.xyz, I.data.vpm, I.data.id);
240
+ break;
241
+ default:
242
+ throw new Error(\`No method with name \${I.data.method}\`);
243
+ }
244
+ } catch (A) {
245
+ postMessage({ error: A.message });
246
+ }
247
+ };
248
+ //# sourceMappingURL=PointsManager.worker-dH1fNyu8.js.map
249
+ `,qi=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",AB],{type:"text/javascript;charset=utf-8"});function Ko(g){let A;try{if(A=qi&&(self.URL||self.webkitURL).createObjectURL(qi),!A)throw"";const a=new Worker(A,{type:"module",name:g?.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),a}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(AB),{type:"module",name:g?.name})}}new f.Vector3,new f.Vector3;const aB=new f.Matrix3;aB.set(1,0,0,0,0,1,0,-1,0);const qo=new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);function nt(g,A){return(f.DataUtils.toHalfFloat(g)|f.DataUtils.toHalfFloat(A)<<16)>>>0}class eB extends f.Mesh{constructor(A,a,e){const i=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let I=1*Math.pow(1024,2);I=Math.floor(I/i)*i;const B=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});B.texture.type=f.UnsignedIntType,B.texture.format=f.RGBAIntegerFormat,B.texture.internalFormat="RGBA32UI",A.initRenderTarget(B);const r=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});r.texture.type=f.UnsignedIntType,r.texture.format=f.RGBAIntegerFormat,r.texture.internalFormat="RGBA32UI",A.initRenderTarget(r);const o=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture:{value:r.texture},positionColorTexture:{value:B.texture},zUpToYUpMatrix3x3:{value:aB},sizeMultiplier:{value:1},cropRadius:{value:Number.MAX_VALUE},viewportPixelSize:{value:new f.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!1},antialiasingFactor:{value:2}},vertexShader:gB(),fragmentShader:e||tB(),transparent:!0,side:f.FrontSide,depthTest:!1,depthWrite:!1,blending:f.NormalBlending}),n=new f.InstancedBufferGeometry,C=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]);n.setIndex([0,2,1,2,3,1]),n.setAttribute("position",new f.BufferAttribute(C,3));const Q=new Uint32Array(I),E=new f.InstancedBufferAttribute(Q,1,!1);E.needsUpdate=!0,E.setUsage(f.DynamicDrawUsage),n.setAttribute("order",E),n.instanceCount=0,super(n,o),this.matrixAutoUpdate=!1,this.numBatches=0,this.numVisibleBatches=0,this.orderAttribute=E,this.textureSize=1024,this.numTextures=1,this.batchSize=i,this.maxSplats=I,this.numSplatsRendered=0,this.positionColorRenderTarget=B,this.covarianceRenderTarget=r,this.renderer=A,this.sortID=0,this.freeAddresses=new Te;for(let c=0;c<this.maxSplats;c+=i)this.freeAddresses.add(c);this.worker=new Ko,this.sortListeners=[],this.worker.onmessage=c=>{const d=new Uint32Array(c.data.order);if(this.numSplatsRendered=d.length,d.length>this.orderAttribute.count){const b=new f.InstancedBufferGeometry,h=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),l=[0,2,1,2,3,1];b.setIndex(l),b.setAttribute("position",new f.BufferAttribute(h,3));const w=new Uint32Array(this.maxSplats),k=new f.InstancedBufferAttribute(w,1,!1);k.needsUpdate=!0,k.setUsage(f.DynamicDrawUsage),b.setAttribute("order",k),b.instanceCount=0,this.geometry.dispose(),this.geometry=b,this.orderAttribute=k}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(d),this.orderAttribute.addUpdateRange(0,d.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=c.data.count,this.geometry.needsUpdate=!0;for(let b=this.sortListeners.length-1;b>=0;b--)this.sortListeners[b](c.data.id)&&this.sortListeners.splice(b,1)},this.cameraPosition=new f.Vector3(0,0,0),this.viewProjModel,this.rotateOnAxis(new f.Vector3(1,0,0),.5*Math.PI),this.frustumCulled=!1,this.copyMaterial2D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{}},vertexShader:Ti(),fragmentShader:`
30
250
  precision highp float;
31
251
  precision highp int;
32
252
  precision highp usampler2D;
@@ -51,7 +271,7 @@ in vec2 vUv;
51
271
 
52
272
  void main() {
53
273
  fragColor = texture( sourceTexture, vec3(vUv, w) );
54
- }`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const l=new f.PlaneGeometry(1,1);this.copyQuad=new f.Mesh(l,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1,this.splatsCPUCuling=!1}setQuality(e){const a=2+2*(e=Math.max(0,Math.min(1,1-e)));this.material.uniforms.k.value=a,this.material.uniforms.beta_k.value=Math.pow(4*Vn(2/a)/a,a/2),this.material.uniforms.minSplatPixelSize.value=5*e,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(e){this.splatsCPUCuling=e,this.material.uniforms.culling.value=e}updateShaderParams(e){e.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const a=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(a),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.covarianceRenderTarget.dispose(),this.positionColorRenderTarget.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(e,a,t,i){this.copyMaterial2D.uniforms.sourceTexture.value=e;const n=this.renderer.autoClear,o=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const s=t[2]-t[0],c=t[3]-t[1];a.viewport.set(t[0],t[1],s,c),this.renderer.setRenderTarget(a,i),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(o),this.renderer.autoClear=n}copyTex3D(e,a,t){this.copyMaterial3D.uniforms.sourceTexture.value=e;const i=this.renderer.autoClear,n=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let o=0;o<t;o++)this.renderer.setRenderTarget(a,o),this.copyMaterial3D.uniforms.w.value=(o+.5)/t,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(n),this.renderer.autoClear=i}setSplatsSizeMultiplier(e){this.material.uniforms.sizeMultiplier.value=e}setSplatsCropRadius(e){this.material.uniforms.cropRadius.value=e}sort(e,a){this.worker&&(e?this.cameraPosition&&e.equals(this.cameraPosition)||(this.cameraPosition.copy(e),a?(this.viewProjModel||(this.viewProjModel=new f.Matrix4),this.viewProjModel.copy(a),this.viewProjModel.multiply($c)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}raycast(e,a){}addSplatsTile(e,a,t,i){if(!this.worker)return;const n=this,o=e.data?e.data.array:e.array,s=e.data&&e.data.isInterleavedBuffer?e.data.stride:3,c=e.data&&e.data.isInterleavedBuffer?e.offset:0,u=Math.ceil(o.length/(this.batchSize*s)),A=[],d=[];let b=()=>{};const h=new Float32Array(o.length/s*3),l=new Uint32Array(h.buffer,h.byteOffset,h.length);for(let m=0;m<o.length/3;m++)h[3*m]=o[m*s+c],h[3*m+1]=o[m*s+c+1],h[3*m+2]=o[m*s+c+2];b=(m,E,p)=>{const C=p*p,I=Math.pow(n.material.uniforms.cropRadius.value,2),x=new f.Matrix3,y=new f.Vector3,w=new f.Vector3,D=new f.Vector3,F=new f.Vector3,M=h.length/3;for(let k=0;k<M;k++){if(y.set(h[3*k],-h[3*k+2],h[3*k+1]),y.lengthSq()>I||m.distanceSqToPoint(y)>C)continue;au(t,i,k,x);const _=w.copy(y).sub(m.origin).dot(m.direction);if(_<0)continue;F.copy(m.direction).multiplyScalar(_).add(m.origin);const q=w.copy(F).sub(y);tu(x,q,D);const V=q.dot(D),J=a.getW(k)*Math.exp(-.5*V);J>.01&&E.push({distance:_,point:F.clone(),opacity:J,type:"splat",object:this})}},u>this.freeAddresses.size&&this.growTextures();for(let m=0;m<u;m++){const E=this.freeAddresses.poll();isNaN(E)&&console.log("insuficient texture size to store splats info"),A.push(E),d.push(3*E);const p=m*this.batchSize;this.addSplatsBatch(p,E,l,a,t,i)}n.worker.postMessage({method:"addBatches",insertionIndexes:d,positions:o.buffer,offset:c,stride:s,batchSize:n.batchSize},[o.buffer]);let g=!1;return{hide:()=>{g==1&&n.worker&&(n.numVisibleBatches--,g=!1,n.worker.postMessage({method:"hideBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}))},show:m=>{if(g==0&&n.worker){n.numVisibleBatches--,g=!0;const E=n.sortID,p=C=>C>=E&&(m(),!0);n.sortListeners.push(p),n.worker.postMessage({method:"showBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++})}},remove:()=>{n.worker&&(b=void 0,n.worker.postMessage({method:"removeBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}),A.forEach(m=>n.freeAddresses.add(m)))},sort:this.sort,raycast:b,isSplatsBatch:!0}}addSplatsBatch(e,a,t,i,n,o){const s=new Uint32Array(4*this.batchSize),c=new Uint32Array(4*this.batchSize);for(let l=a;l<a+this.batchSize;l++){const g=l-a,m=4*g,E=e+g,p=3*(e+g);if(E>=t.count)break;s[m]=t[p],s[m+1]=t[p+1],s[m+2]=t[p+2];const C=0|Math.floor(255*i.getX(E)+.5),I=0|Math.floor(255*i.getY(E)+.5),x=0|Math.floor(255*i.getZ(E)+.5),y=0|Math.floor(255*i.getW(E)+.5);s[m+3]=C|I<<8|x<<16|y<<24,c[m]=tr(n.getX(E),n.getY(E)),c[m+1]=tr(n.getZ(E),o.getX(E)),c[m+2]=tr(o.getY(E),o.getZ(E))}const u=Math.floor(a/Math.pow(this.textureSize,2)),A=Math.ceil(this.batchSize/this.textureSize),d=[0,a/this.textureSize-u*this.textureSize,this.textureSize];d.push(d[1]+A);const b=new f.DataTexture(s,this.textureSize,A,f.RGBAIntegerFormat,f.UnsignedIntType);b.internalFormat="RGBA32UI",b.generateMipmaps=!1,b.magFilter=f.NearestFilter,b.minFilter=f.NearestFilter,b.anisotropy=0,b.needsUpdate=!0,this.renderer.initTexture(b),this.copyTex2D(b,this.positionColorRenderTarget,d,u),b.dispose();const h=new f.DataTexture(c,this.textureSize,A,f.RGBAIntegerFormat,f.UnsignedIntType);h.internalFormat="RGBA32UI",h.generateMipmaps=!1,h.magFilter=f.NearestFilter,h.minFilter=f.NearestFilter,h.anisotropy=0,h.needsUpdate=!0,this.renderer.initTexture(h),this.copyTex2D(h,this.covarianceRenderTarget,d,u),h.dispose()}growTextures(){for(let i=this.maxSplats;i<this.maxSplats+this.textureSize*this.textureSize;i+=this.batchSize)this.freeAddresses.add(i);this.maxSplats+=this.textureSize*this.textureSize;const e=this.numTextures+1,a=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});a.texture.type=f.UnsignedIntType,a.texture.internalFormat="RGBA32UI",a.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(a),this.copyTex3D(this.positionColorRenderTarget.texture,a,this.numTextures),this.positionColorRenderTarget.dispose(),this.positionColorRenderTarget=a,this.material.uniforms.positionColorTexture.value=this.positionColorRenderTarget.texture;const t=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});t.texture.type=f.UnsignedIntType,t.texture.internalFormat="RGBA32UI",t.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(t),this.copyTex3D(this.covarianceRenderTarget.texture,t,this.numTextures),this.covarianceRenderTarget.dispose(),this.covarianceRenderTarget=t,this.material.uniforms.covarianceTexture.value=this.covarianceRenderTarget.texture,this.numTextures=e,this.material.uniforms.numSlices.value=this.numTextures}}function Xn(){return`
274
+ }`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const s=new f.PlaneGeometry(1,1);this.copyQuad=new f.Mesh(s,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1,this.splatsCPUCuling=!1}setQuality(A){const a=2+2*(A=Math.max(0,Math.min(1,1-A)));this.material.uniforms.k.value=a,this.material.uniforms.beta_k.value=Math.pow(4*Ho(2/a)/a,a/2),this.material.uniforms.minSplatPixelSize.value=5*A,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(A){this.splatsCPUCuling=A,this.material.uniforms.culling.value=A}updateShaderParams(A){A.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const a=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(a),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.covarianceRenderTarget.dispose(),this.positionColorRenderTarget.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(A,a,e,t){this.copyMaterial2D.uniforms.sourceTexture.value=A;const i=this.renderer.autoClear,I=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const B=e[2]-e[0],r=e[3]-e[1];a.viewport.set(e[0],e[1],B,r),this.renderer.setRenderTarget(a,t),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(I),this.renderer.autoClear=i}copyTex3D(A,a,e){this.copyMaterial3D.uniforms.sourceTexture.value=A;const t=this.renderer.autoClear,i=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let I=0;I<e;I++)this.renderer.setRenderTarget(a,I),this.copyMaterial3D.uniforms.w.value=(I+.5)/e,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(i),this.renderer.autoClear=t}setSplatsSizeMultiplier(A){this.material.uniforms.sizeMultiplier.value=A}setSplatsCropRadius(A){this.material.uniforms.cropRadius.value=A}sort(A,a){this.worker&&(A?this.cameraPosition&&A.equals(this.cameraPosition)||(this.cameraPosition.copy(A),a?(this.viewProjModel||(this.viewProjModel=new f.Matrix4),this.viewProjModel.copy(a),this.viewProjModel.multiply(qo)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}raycast(A,a){}addSplatsTile(A,a,e,t){if(!this.worker)return;const i=this,I=A.data?A.data.array:A.array,B=A.data&&A.data.isInterleavedBuffer?A.data.stride:3,r=A.data&&A.data.isInterleavedBuffer?A.offset:0,o=Math.ceil(I.length/(this.batchSize*B)),n=[],C=[];let Q=()=>{};const E=new Float32Array(I.length/B*3),s=new Uint32Array(E.buffer,E.byteOffset,E.length);for(let d=0;d<I.length/3;d++)E[3*d]=I[d*B+r],E[3*d+1]=I[d*B+r+1],E[3*d+2]=I[d*B+r+2];Q=(d,b,h)=>{const l=h*h,w=Math.pow(i.material.uniforms.cropRadius.value,2),k=new f.Matrix3,M=new f.Vector3,N=new f.Vector3,m=new f.Vector3,G=new f.Vector3,L=E.length/3;for(let x=0;x<L;x++){if(M.set(E[3*x],-E[3*x+2],E[3*x+1]),M.lengthSq()>w||d.distanceSqToPoint(M)>l)continue;To(e,t,x,k);const W=N.copy(M).sub(d.origin).dot(d.direction);if(W<0)continue;G.copy(d.direction).multiplyScalar(W).add(d.origin);const X=N.copy(G).sub(M);Oo(k,X,m);const eA=X.dot(m),AA=a.getW(x)*Math.exp(-.5*eA);AA>.01&&b.push({distance:W,point:G.clone(),opacity:AA,type:"splat",object:this})}},o>this.freeAddresses.size&&this.growTextures();for(let d=0;d<o;d++){const b=this.freeAddresses.poll();isNaN(b)&&console.log("insuficient texture size to store splats info"),n.push(b),C.push(3*b);const h=d*this.batchSize;this.addSplatsBatch(h,b,s,a,e,t)}i.worker.postMessage({method:"addBatches",insertionIndexes:C,positions:I.buffer,offset:r,stride:B,batchSize:i.batchSize},[I.buffer]);let c=!1;return{hide:()=>{c==1&&i.worker&&(i.numVisibleBatches--,c=!1,i.worker.postMessage({method:"hideBatches",insertionIndexes:C,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++}))},show:d=>{if(c==0&&i.worker){i.numVisibleBatches--,c=!0;const b=i.sortID,h=l=>l>=b&&(d(),!0);i.sortListeners.push(h),i.worker.postMessage({method:"showBatches",insertionIndexes:C,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++})}},remove:()=>{i.worker&&(Q=void 0,i.worker.postMessage({method:"removeBatches",insertionIndexes:C,xyz:[i.cameraPosition.x,i.cameraPosition.z,-i.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:i.sortID++}),n.forEach(d=>i.freeAddresses.add(d)))},sort:this.sort,raycast:Q,isSplatsBatch:!0}}addSplatsBatch(A,a,e,t,i,I){const B=new Uint32Array(4*this.batchSize),r=new Uint32Array(4*this.batchSize);for(let s=a;s<a+this.batchSize;s++){const c=s-a,d=4*c,b=A+c,h=3*(A+c);if(b>=e.count)break;B[d]=e[h],B[d+1]=e[h+1],B[d+2]=e[h+2];const l=0|Math.floor(255*t.getX(b)+.5),w=0|Math.floor(255*t.getY(b)+.5),k=0|Math.floor(255*t.getZ(b)+.5),M=0|Math.floor(255*t.getW(b)+.5);B[d+3]=l|w<<8|k<<16|M<<24,r[d]=nt(i.getX(b),i.getY(b)),r[d+1]=nt(i.getZ(b),I.getX(b)),r[d+2]=nt(I.getY(b),I.getZ(b))}const o=Math.floor(a/Math.pow(this.textureSize,2)),n=Math.ceil(this.batchSize/this.textureSize),C=[0,a/this.textureSize-o*this.textureSize,this.textureSize];C.push(C[1]+n);const Q=new f.DataTexture(B,this.textureSize,n,f.RGBAIntegerFormat,f.UnsignedIntType);Q.internalFormat="RGBA32UI",Q.generateMipmaps=!1,Q.magFilter=f.NearestFilter,Q.minFilter=f.NearestFilter,Q.anisotropy=0,Q.needsUpdate=!0,this.renderer.initTexture(Q),this.copyTex2D(Q,this.positionColorRenderTarget,C,o),Q.dispose();const E=new f.DataTexture(r,this.textureSize,n,f.RGBAIntegerFormat,f.UnsignedIntType);E.internalFormat="RGBA32UI",E.generateMipmaps=!1,E.magFilter=f.NearestFilter,E.minFilter=f.NearestFilter,E.anisotropy=0,E.needsUpdate=!0,this.renderer.initTexture(E),this.copyTex2D(E,this.covarianceRenderTarget,C,o),E.dispose()}growTextures(){for(let t=this.maxSplats;t<this.maxSplats+this.textureSize*this.textureSize;t+=this.batchSize)this.freeAddresses.add(t);this.maxSplats+=this.textureSize*this.textureSize;const A=this.numTextures+1,a=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});a.texture.type=f.UnsignedIntType,a.texture.internalFormat="RGBA32UI",a.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(a),this.copyTex3D(this.positionColorRenderTarget.texture,a,this.numTextures),this.positionColorRenderTarget.dispose(),this.positionColorRenderTarget=a,this.material.uniforms.positionColorTexture.value=this.positionColorRenderTarget.texture;const e=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.UnsignedIntType,format:f.RGBAIntegerFormat,depthBuffer:!1,resolveDepthBuffer:!1});e.texture.type=f.UnsignedIntType,e.texture.internalFormat="RGBA32UI",e.texture.format=f.RGBAIntegerFormat,this.renderer.initRenderTarget(e),this.copyTex3D(this.covarianceRenderTarget.texture,e,this.numTextures),this.covarianceRenderTarget.dispose(),this.covarianceRenderTarget=e,this.material.uniforms.covarianceTexture.value=this.covarianceRenderTarget.texture,this.numTextures=A,this.material.uniforms.numSlices.value=this.numTextures}}function gB(){return`
55
275
  precision highp float;
56
276
  precision highp int;
57
277
  precision highp usampler3D;
@@ -68,15 +288,12 @@ out vec2 vUv;
68
288
  out vec3 splatPositionWorld;
69
289
  out vec3 splatPositionModel;
70
290
  out float splatDepth;
71
- //out float orthographicDepth;
72
291
  out float stds;
292
+ out vec2 viewZW;
73
293
  uniform highp usampler3D positionColorTexture;
74
294
  uniform highp usampler3D covarianceTexture;
75
295
  uniform mat3 zUpToYUpMatrix3x3;
76
296
  uniform float logDepthBufFC;
77
- //uniform float cameraNear;
78
- //uniform float cameraFar;
79
- //uniform bool computeLinearDepth;
80
297
  uniform vec2 viewportPixelSize; // vec2(width , height)
81
298
  uniform float k;
82
299
  uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
@@ -88,18 +305,6 @@ uniform float cropRadius;
88
305
 
89
306
 
90
307
  void getVertexData(out vec3 position, out mat3 covariance) {
91
- /* float index = float(order)+0.1; // add small offset to avoid floating point errors with modulo
92
- float pixelsPerSlice = textureSize * textureSize;
93
- float sliceIndex = floor(index / pixelsPerSlice);
94
- float slicePixelIndex = mod(index,pixelsPerSlice);
95
-
96
- float x = mod(slicePixelIndex,textureSize);
97
- float y = floor(slicePixelIndex / textureSize);
98
-
99
- ivec3 coord = ivec3(
100
- int( (x + 0.5) ), // x pixel
101
- int( (y + 0.5) ), // y pixel
102
- int( sliceIndex + 0.5 ) ); // z slice */
103
308
 
104
309
 
105
310
  highp uint uOrder = order; // Use a local uint copy
@@ -156,8 +361,9 @@ bool modelTransform(in vec3 splatWorld, in mat3 covariance, inout vec3 vertexPos
156
361
  vec3 j1 = vec3(0.0, fy * invZ, -fy * posCam.y * invZ2);
157
362
 
158
363
  mat3 viewRotT = transpose(mat3(viewMatrix));
159
- vec3 j0W = viewRotT * j0;
160
- vec3 j1W = viewRotT * j1;
364
+ //viewRotT *= 2.0;
365
+ vec3 j0W = viewRotT * j0*4.0;
366
+ vec3 j1W = viewRotT * j1*4.0;
161
367
 
162
368
  vec3 tmp0 = covariance * j0W;
163
369
  vec3 tmp1 = covariance * j1W;
@@ -219,6 +425,8 @@ void main() {
219
425
  mat3 covariance = mat3(0.0);
220
426
  getVertexData(splatPositionModel, covariance);
221
427
 
428
+ covariance *=sizeMultiplier*sizeMultiplier;
429
+
222
430
  if(length(splatPositionModel) > cropRadius) return;
223
431
 
224
432
  /* opacity ‑> stds */
@@ -241,7 +449,7 @@ void main() {
241
449
  }
242
450
 
243
451
 
244
- vec3 offsetWorld = vec3(position)*sizeMultiplier*0.5*stds;
452
+ vec3 offsetWorld = vec3(position)*0.5*stds;
245
453
 
246
454
  bool valid = modelTransform(splatPositionWorld, covariance, offsetWorld);
247
455
  if(!valid) return;
@@ -251,6 +459,7 @@ void main() {
251
459
 
252
460
 
253
461
  gl_Position = outPosition;
462
+ viewZW = outPosition.zw;
254
463
  /* if(computeLinearDepth){
255
464
  orthographicDepth = viewZToOrthographicDepth( -gl_Position.w, cameraNear, cameraFar );
256
465
  } */
@@ -264,7 +473,7 @@ void main() {
264
473
 
265
474
 
266
475
  }
267
- `}function Yn(){return`
476
+ `}function tB(){return`
268
477
  precision highp float;
269
478
  precision highp int;
270
479
 
@@ -304,260 +513,5 @@ out vec2 vUv;
304
513
  void main() {
305
514
  vUv = uv;
306
515
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
307
- }`}function au(r,e,a,t){const i=r.getX(a),n=r.getY(a),o=r.getZ(a),s=e.getX(a),c=e.getY(a),u=e.getZ(a);t.set(i,n,o,n,s,c,o,c,u)}function tu(r,e,a){const t=r.determinant();if(Math.abs(t)<1e-12)return void a.set(0,0,0);const i=1/t,n=new f.Matrix3().copy(r);n.elements[0]=e.x,n.elements[3]=e.y,n.elements[6]=e.z;const o=new f.Matrix3().copy(r);o.elements[1]=e.x,o.elements[4]=e.y,o.elements[7]=e.z;const s=new f.Matrix3().copy(r);s.elements[2]=e.x,s.elements[5]=e.y,s.elements[8]=e.z,a.set(n.determinant()*i,o.determinant()*i,s.determinant()*i)}const ut=new f.Vector3,ru=new f.Vector3,Zn=new f.Matrix3;Zn.set(1,0,0,0,0,1,0,-1,0);const iu=new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);class nu extends f.Mesh{constructor(e,a,t){const n=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let o=1*Math.pow(1024,2);o=Math.floor(o/n)*n;const s=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.HalfFloatType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});s.texture.type=f.HalfFloatType,s.texture.format=f.RGBAFormat,s.texture.internalFormat="RGBA16F",e.initRenderTarget(s);const c=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedByteType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});c.texture.type=f.UnsignedByteType,c.texture.format=f.RGBAFormat,c.texture.internalFormat="RGBA8",e.initRenderTarget(c);const u=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});u.texture.type=f.HalfFloatType,u.texture.format=f.RGBAFormat,u.texture.internalFormat="RGBA16F",e.initRenderTarget(u);const A=new f.WebGL3DRenderTarget(1024,1024,1,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});A.texture.type=f.HalfFloatType,A.texture.format=f.RGBAFormat,A.texture.internalFormat="RGBA16F",e.initRenderTarget(A);const d=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture1:{value:u.texture},covarianceTexture2:{value:A.texture},positionTexture:{value:s.texture},colorTexture:{value:c.texture},zUpToYUpMatrix3x3:{value:Zn},sizeMultiplier:{value:1},cropRadius:{value:Number.MAX_VALUE},cameraNear:{value:.01},cameraFar:{value:10},computeLinearDepth:{value:!0},viewportPixelSize:{value:new f.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!0},antialiasingFactor:{value:2}},vertexShader:`
308
- precision highp float;
309
- precision highp int;
310
- precision highp sampler3D;
311
-
312
- #include <common>
313
-
314
- uniform float textureSize;
315
- uniform float numSlices;
316
- uniform float sizeMultiplier;
317
- in highp uint order;
318
- out vec4 color;
319
- out vec2 vUv;
320
- out vec3 splatPositionWorld;
321
- out vec3 splatPositionModel;
322
- out float splatDepth;
323
- //out float orthographicDepth;
324
- out float stds;
325
- uniform highp sampler3D positionTexture; //changed
326
- uniform highp sampler3D colorTexture; //changed
327
- uniform highp sampler3D covarianceTexture1; //changed
328
- uniform highp sampler3D covarianceTexture2; //changed
329
- uniform mat3 zUpToYUpMatrix3x3;
330
- uniform float logDepthBufFC;
331
- //uniform float cameraNear;
332
- //uniform float cameraFar;
333
- //uniform bool computeLinearDepth;
334
- uniform vec2 viewportPixelSize; // vec2(width , height)
335
- uniform float k;
336
- uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
337
- uniform float minSplatPixelSize;
338
- uniform float minOpacity;
339
- uniform bool culling;
340
- uniform float antialiasingFactor;
341
-
342
-
343
- void getVertexData(out vec3 position, out mat3 covariance) {
344
-
345
-
346
- highp uint uOrder = order; // Use a local uint copy
347
-
348
- // It's good practice to ensure textureSize is treated as uint for these calcs
349
- uint uTextureSize = uint(textureSize); // textureSize uniform is float
350
- uint uPixelsPerSlice = uTextureSize * uTextureSize;
351
-
352
- uint sliceIndexVal = uOrder / uPixelsPerSlice;
353
- uint slicePixelIndex = uOrder % uPixelsPerSlice; // umod(uOrder, uPixelsPerSlice) also works
354
-
355
- uint xVal = slicePixelIndex % uTextureSize; // umod(slicePixelIndex, uTextureSize)
356
- uint yVal = slicePixelIndex / uTextureSize;
357
-
358
- // texelFetch takes ivec3 for coordinates, no +0.5 needed as these are direct integer indices
359
- ivec3 coord = ivec3(xVal, yVal, sliceIndexVal);
360
-
361
- // Position
362
- position = texelFetch(positionTexture, coord, 0).rgb; //changed
363
-
364
- // Color
365
- color = texelFetch(colorTexture, coord, 0); //changed
366
-
367
- // Covariance
368
- vec3 cov_comp_012 = texelFetch(covarianceTexture1, coord, 0).rgb; //changed
369
- vec3 cov_comp_345 = texelFetch(covarianceTexture2, coord, 0).rgb; //changed
370
-
371
- covariance = mat3(cov_comp_012.x, cov_comp_012.y, cov_comp_012.z, // c00, c01, c02 //changed
372
- cov_comp_012.y, cov_comp_345.x, cov_comp_345.y, // c01, c11, c12 //changed
373
- cov_comp_012.z, cov_comp_345.y, cov_comp_345.z); // c02, c12, c22 //changed
374
-
375
- mat3 modelRotation = zUpToYUpMatrix3x3*transpose(mat3(modelMatrix));
376
- covariance = transpose(zUpToYUpMatrix3x3) * covariance * zUpToYUpMatrix3x3;
377
- covariance = transpose(modelRotation) * covariance * (modelRotation);
378
- }
379
-
380
- bool modelTransform(in vec3 splatWorld, in mat3 covariance, inout vec3 vertexPosition) {
381
-
382
- /* camera‑space Jacobian rows ----------------------------------------- */
383
- vec3 posCam = (viewMatrix * vec4(splatWorld, 1.0)).xyz;
384
- float invZ = 1.0 / posCam.z;
385
- float invZ2 = invZ * invZ;
386
- float fx = projectionMatrix[0][0];
387
- float fy = projectionMatrix[1][1];
388
-
389
- vec3 j0 = vec3(fx * invZ, 0.0, -fx * posCam.x * invZ2);
390
- vec3 j1 = vec3(0.0, fy * invZ, -fy * posCam.y * invZ2);
391
-
392
- mat3 viewRotT = transpose(mat3(viewMatrix));
393
- vec3 j0W = viewRotT * j0;
394
- vec3 j1W = viewRotT * j1;
395
-
396
- vec3 tmp0 = covariance * j0W;
397
- vec3 tmp1 = covariance * j1W;
398
- float a = dot(j0W, tmp0);
399
- float b = dot(j0W, tmp1);
400
- float c = dot(j1W, tmp1);
401
- float sigmaNDC = (antialiasingFactor / viewportPixelSize.x) * 2.0;
402
- float k2 = sigmaNDC * sigmaNDC;
403
- float detOrig = a * c - b * b;
404
- a += k2;
405
- c += k2;
406
- float detBlur = a * c - b * b;
407
- color.a *= sqrt(clamp(detOrig / detBlur, 0.0, 1.0-1.0e-6));
408
- if(color.a < 0.01) return false;
409
- //color.a = 1.0;
410
- float halfTrace = 0.5 * (a + c);
411
- float rootTerm = sqrt(max(halfTrace * halfTrace - (a * c - b * b), 0.0));
412
- float lambda1 = halfTrace + rootTerm;
413
- float lambda2 = halfTrace - rootTerm;
414
-
415
- if(min(lambda2,lambda1)<=0.0) {
416
- return false;
417
- }
418
-
419
-
420
-
421
- vec2 eig1 = (abs(b) < 1e-7)
422
- ? ((a >= c) ? vec2(1.0, 0.0) : vec2(0.0, 1.0))
423
- : normalize(vec2(b, lambda1 - a));
424
- vec2 eig2 = vec2(-eig1.y, eig1.x);
425
-
426
- eig1 *= sqrt(lambda1) * 2.0;
427
- eig2 *= sqrt(lambda2) * 2.0;
428
-
429
- float alpha = dot(j0, j0);
430
- float beta = dot(j0, j1);
431
- float gamma = dot(j1, j1);
432
- float invDet = 1.0 / (alpha * gamma - beta * beta);
433
-
434
- vec3 deltaCam1 = ( gamma * eig1.x - beta * eig1.y) * j0 +
435
- (-beta * eig1.x + alpha * eig1.y) * j1;
436
- vec3 deltaCam2 = ( gamma * eig2.x - beta * eig2.y) * j0 +
437
- (-beta * eig2.x + alpha * eig2.y) * j1;
438
- deltaCam1 *= invDet*0.5;
439
- deltaCam2 *= invDet*0.5;
440
-
441
- vec3 axisW1 = viewRotT * deltaCam1;
442
- vec3 axisW2 = viewRotT * deltaCam2;
443
-
444
- vertexPosition = vertexPosition.x * axisW1 + vertexPosition.y * axisW2;
445
- return true;
446
- }
447
-
448
-
449
- void main() {
450
- vUv = vec2(position);
451
-
452
- splatPositionModel = vec3(0.0);
453
- mat3 covariance = mat3(0.0);
454
- getVertexData(splatPositionModel, covariance);
455
-
456
- /* opacity ‑> stds */
457
- float maxV = min(1.0,max(color.a, 0.0001));
458
- float thresh = min(minOpacity, maxV);
459
- if(thresh >= maxV) return;
460
- float lnRatio = log(thresh/maxV);
461
- stds = pow(-8.0 * lnRatio/beta_k, 1.0/k);//sqrt(2.0 * log(maxV / thresh));
462
-
463
-
464
- splatPositionWorld = (modelMatrix * vec4(splatPositionModel, 1.0)).xyz;
465
- vec4 splatPositionProjected = projectionMatrix * viewMatrix * vec4(splatPositionWorld, 1.0);
466
-
467
- if(culling){
468
- float clip = 1.2 * splatPositionProjected.w;
469
- if (splatPositionProjected.z < -splatPositionProjected.w || splatPositionProjected.x < -clip || splatPositionProjected.x > clip || splatPositionProjected.y < -clip || splatPositionProjected.y > clip) {
470
- gl_Position = vec4(0.0, 0.0, 2.0, 1.0);
471
- return;
472
- }
473
- }
474
-
475
-
476
- vec3 offsetWorld = vec3(position)*sizeMultiplier*0.5*stds;
477
-
478
- bool valid = modelTransform(splatPositionWorld, covariance, offsetWorld);
479
- if(!valid) return;
480
-
481
- vec4 outPosition = projectionMatrix * viewMatrix * vec4(offsetWorld+splatPositionWorld,1.0);
482
-
483
-
484
-
485
- gl_Position = outPosition;
486
- /* if(computeLinearDepth){
487
- orthographicDepth = viewZToOrthographicDepth( -gl_Position.w, cameraNear, cameraFar );
488
- } */
489
-
490
- #if defined( USE_LOGDEPTHBUF )
491
- float isPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
492
- splatDepth = isPerspective == 0.0 ? splatPositionProjected.z : log2( 1.0 + splatPositionProjected.w ) * logDepthBufFC * 0.5;
493
- #else
494
- splatDepth = (splatPositionProjected.z / splatPositionProjected.w)* 0.5 + 0.5;
495
- #endif
496
-
497
-
498
- }
499
- `,fragmentShader:t||`
500
- precision highp float;
501
- precision highp int;
502
-
503
- in float stds;
504
- in vec4 color;
505
- in vec2 vUv;
506
- in vec3 splatPositionModel;
507
- in vec3 splatPositionWorld;
508
- in float splatDepth;
509
-
510
- layout(location = 0) out vec4 fragColor;
511
-
512
- uniform float textureSize;
513
-
514
- uniform float k;
515
- uniform float beta_k; // pow((4.0 * gamma(2.0/k)) /k, k/2)
516
-
517
- void main() {
518
- float l = dot(vUv, vUv);
519
- if (l > 0.25) discard; // early out unchanged
520
- vec2 p = vUv * stds;
521
- float r2 = dot(p, p); // r²
522
- float rk = pow(r2, 0.5 * k); // r^{k}
523
- float alpha = color.w * exp(-beta_k * rk);
524
-
525
- fragColor = vec4(pow(color.xyz,vec3(1.0/2.2)), alpha);
526
-
527
- //gl_FragDepth = splatDepth;
528
-
529
- }`,transparent:!0,side:f.FrontSide,depthTest:!1,depthWrite:!1}),b=new f.InstancedBufferGeometry,h=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]);b.setIndex([0,2,1,2,3,1]),b.setAttribute("position",new f.BufferAttribute(h,3));const l=new Uint32Array(o),g=new f.InstancedBufferAttribute(l,1,!1);g.needsUpdate=!0,g.setUsage(f.DynamicDrawUsage),b.setAttribute("order",g),b.instanceCount=0,super(b,d),this.matrixAutoUpdate=!1,this.numBatches=0,this.numVisibleBatches=0,this.orderAttribute=g,this.textureSize=1024,this.numTextures=1,this.batchSize=n,this.maxSplats=o,this.numSplatsRendered=0,this.positionRenderTarget=s,this.colorRenderTarget=c,this.covarianceRenderTarget1=u,this.covarianceRenderTarget2=A,this.renderer=e,this.sortID=0,this.freeAddresses=new Oa;for(let E=0;E<this.maxSplats;E+=n)this.freeAddresses.add(E);this.worker=new Hn({}),this.sortListeners=[],this.worker.onmessage=E=>{const p=new Uint32Array(E.data.order);if(this.numSplatsRendered=p.length,p.length>this.orderAttribute.count){const C=new f.InstancedBufferGeometry,I=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),x=[0,2,1,2,3,1];C.setIndex(x),C.setAttribute("position",new f.BufferAttribute(I,3));const y=new Uint32Array(this.maxSplats),w=new f.InstancedBufferAttribute(y,1,!1);w.needsUpdate=!0,w.setUsage(f.DynamicDrawUsage),C.setAttribute("order",w),C.instanceCount=0,this.geometry.dispose(),this.geometry=C,this.orderAttribute=w}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(p),this.orderAttribute.addUpdateRange(0,p.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=E.data.count,this.geometry.needsUpdate=!0;for(let C=this.sortListeners.length-1;C>=0;C--)this.sortListeners[C](E.data.id)&&this.sortListeners.splice(C,1)},this.cameraPosition=new f.Vector3(0,0,0),this.viewProjModel,this.rotateOnAxis(new f.Vector3(1,0,0),.5*Math.PI),this.frustumCulled=!1,this.copyMaterial2D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{}},vertexShader:Ni(),fragmentShader:`
530
- precision highp float;
531
- precision highp int;
532
-
533
- layout(location = 0) out highp vec4 fragColor;
534
- uniform highp sampler2D sourceTexture;
535
-
536
- in vec2 vUv;
537
-
538
- void main() {
539
- fragColor = texture( sourceTexture, vUv );
540
- }`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyMaterial3D=new f.ShaderMaterial({glslVersion:f.GLSL3,uniforms:{sourceTexture:{},w:{value:0}},vertexShader:Ni(),fragmentShader:`
541
- precision highp float;
542
- precision highp int;
543
-
544
- layout(location = 0) out highp vec4 fragColor;
545
- uniform highp sampler3D sourceTexture;
546
- uniform float w;
547
-
548
- in vec2 vUv;
549
-
550
- void main() {
551
- fragColor = texture( sourceTexture, vec3(vUv, w) );
552
- }`,transparent:!1,side:f.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new f.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new f.Scene;const m=new f.PlaneGeometry(1,1);this.copyQuad=new f.Mesh(m,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1}setQuality(e){const a=2+2*(e=Math.max(0,Math.min(1,1-e)));this.material.uniforms.k.value=a,this.material.uniforms.beta_k.value=Math.pow(4*Vn(2/a)/a,a/2),this.material.uniforms.minSplatPixelSize.value=5*e,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(e){this.splatsCPUCuling=e,this.material.uniforms.culling.value=!e}updateShaderParams(e){e.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const a=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(a),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.positionRenderTarget.dispose(),this.colorRenderTarget.dispose(),this.covarianceRenderTarget1.dispose(),this.covarianceRenderTarget2.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(e,a,t,i){this.copyMaterial2D.uniforms.sourceTexture.value=e;const n=this.renderer.autoClear,o=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const s=t[2]-t[0],c=t[3]-t[1];a.viewport.set(t[0],t[1],s,c),this.renderer.setRenderTarget(a,i),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(o),this.renderer.autoClear=n}copyTex3D(e,a,t){this.copyMaterial3D.uniforms.sourceTexture.value=e;const i=this.renderer.autoClear,n=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let o=0;o<t;o++)this.renderer.setRenderTarget(a,o),this.copyMaterial3D.uniforms.w.value=(o+.5)/t,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(n),this.renderer.autoClear=i}setSplatsSizeMultiplier(e){this.material.uniforms.sizeMultiplier.value=e}setSplatsCropRadius(e){this.material.uniforms.cropRadius.value=e}sort(e,a){this.worker&&(e?this.cameraPosition&&e.equals(this.cameraPosition)||(this.cameraPosition.copy(e),a?(this.viewProjModel||(this.viewProjModel=new f.Matrix4),this.viewProjModel.copy(a),this.viewProjModel.multiply(iu)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}raycast(e,a){}addSplatsTile(e,a,t,i){if(!this.worker)return;const n=this,o=e.data?e.data.array:e.array,s=e.data&&e.data.isInterleavedBuffer?e.data.stride:3,c=e.data&&e.data.isInterleavedBuffer?e.offset:0,u=Math.ceil(o.length/(this.batchSize*s)),A=[],d=[];let b=()=>{};const h=new Float32Array(o.length/s*3);for(let g=0;g<o.length/3;g++)h[3*g]=o[g*s+c],h[3*g+1]=o[g*s+c+1],h[3*g+2]=o[g*s+c+2];b=(g,m,E)=>{const p=E*E;for(let C=0;C<h.length;C+=3){ut.set(h[C],-h[C+2],h[C+1]);const I=ru.copy(ut).sub(g.origin).dot(g.direction);I>0&&g.distanceSqToPoint(ut)<p&&m.push({distance:I,point:ut.clone(),type:"splat"})}},u>this.freeAddresses.size&&this.growTextures();for(let g=0;g<u;g++){const m=this.freeAddresses.poll();isNaN(m)&&console.log("insuficient texture size to store splats info"),A.push(m),d.push(3*m);const E=g*this.batchSize;this.addSplatsBatch(E,m,h,a,t,i)}n.worker.postMessage({method:"addBatches",insertionIndexes:d,positions:o.buffer,offset:c,stride:s,batchSize:n.batchSize},[o.buffer]);let l=!1;return{hide:()=>{l==1&&n.worker&&(n.numVisibleBatches--,l=!1,n.worker.postMessage({method:"hideBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}))},show:g=>{if(l==0&&n.worker){n.numVisibleBatches--,l=!0;const m=n.sortID,E=p=>p>=m&&(g(),!0);n.sortListeners.push(E),n.worker.postMessage({method:"showBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++})}},remove:()=>{n.worker&&(b=void 0,n.worker.postMessage({method:"removeBatches",insertionIndexes:d,xyz:[n.cameraPosition.x,n.cameraPosition.z,-n.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:n.sortID++}),A.forEach(g=>n.freeAddresses.add(g)))},sort:this.sort,raycast:b,isSplatsBatch:!0}}addSplatsBatch(e,a,t,i,n,o){const s=new Uint16Array(3*this.batchSize),c=new Uint8Array(4*this.batchSize),u=new Uint16Array(3*this.batchSize),A=new Uint16Array(3*this.batchSize);for(let p=a;p<a+this.batchSize;p++){const C=p-a,I=3*C,x=4*C,y=e+C,w=3*(e+C);if(y>=t.length/3)break;s[I]=f.DataUtils.toHalfFloat(t[w]),s[I+1]=f.DataUtils.toHalfFloat(t[w+1]),s[I+2]=f.DataUtils.toHalfFloat(t[w+2]);const D=0|Math.floor(255*i.getX(y)+.5),F=0|Math.floor(255*i.getY(y)+.5),M=0|Math.floor(255*i.getZ(y)+.5),k=0|Math.floor(255*i.getW(y)+.5);c[x]=D,c[x+1]=F,c[x+2]=M,c[x+3]=k,u[I]=f.DataUtils.toHalfFloat(n.getX(y)),u[I+1]=f.DataUtils.toHalfFloat(n.getY(y)),u[I+2]=f.DataUtils.toHalfFloat(n.getZ(y)),A[I]=f.DataUtils.toHalfFloat(o.getX(y)),A[I+1]=f.DataUtils.toHalfFloat(o.getY(y)),A[I+2]=f.DataUtils.toHalfFloat(o.getZ(y))}const d=Math.floor(a/Math.pow(this.textureSize,2)),b=Math.ceil(this.batchSize/this.textureSize),h=[0,a/this.textureSize-d*this.textureSize,this.textureSize];h.push(h[1]+b);const l=new f.DataTexture(s,this.textureSize,b,f.RGBFormat,f.HalfFloatType);l.internalFormat="RGB16F",l.generateMipmaps=!1,l.magFilter=f.NearestFilter,l.minFilter=f.NearestFilter,l.anisotropy=0,l.needsUpdate=!0,this.renderer.initTexture(l),this.copyTex2D(l,this.positionRenderTarget,h,d),l.dispose();const g=new f.DataTexture(c,this.textureSize,b,f.RGBAFormat,f.UnsignedByteType);g.internalFormat="RGBA8",g.generateMipmaps=!1,g.magFilter=f.NearestFilter,g.minFilter=f.NearestFilter,g.anisotropy=0,g.needsUpdate=!0,this.renderer.initTexture(g),this.copyTex2D(g,this.colorRenderTarget,h,d),g.dispose();const m=new f.DataTexture(u,this.textureSize,b,f.RGBFormat,f.HalfFloatType);m.internalFormat="RGB16F",m.generateMipmaps=!1,m.magFilter=f.NearestFilter,m.minFilter=f.NearestFilter,m.anisotropy=0,m.needsUpdate=!0,this.renderer.initTexture(m),this.copyTex2D(m,this.covarianceRenderTarget1,h,d),m.dispose();const E=new f.DataTexture(A,this.textureSize,b,f.RGBFormat,f.HalfFloatType);E.internalFormat="RGB16F",E.generateMipmaps=!1,E.magFilter=f.NearestFilter,E.minFilter=f.NearestFilter,E.anisotropy=0,E.needsUpdate=!0,this.renderer.initTexture(E),this.copyTex2D(E,this.covarianceRenderTarget2,h,d),E.dispose()}growTextures(){for(let o=this.maxSplats;o<this.maxSplats+this.textureSize*this.textureSize;o+=this.batchSize)this.freeAddresses.add(o);this.maxSplats+=this.textureSize*this.textureSize;const e=this.numTextures+1,a=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.HalfFloatType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});a.texture.type=f.HalfFloatType,a.texture.format=f.RGBAFormat,a.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(a),this.copyTex3D(this.positionRenderTarget.texture,a,this.numTextures),this.positionRenderTarget.dispose(),this.positionRenderTarget=a,this.material.uniforms.positionTexture.value=this.positionRenderTarget.texture;const t=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,type:f.UnsignedByteType,format:f.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});t.texture.type=f.UnsignedByteType,t.texture.format=f.RGBAFormat,t.texture.internalFormat="RGBA8",this.renderer.initRenderTarget(t),this.copyTex3D(this.colorRenderTarget.texture,t,this.numTextures),this.colorRenderTarget.dispose(),this.colorRenderTarget=t,this.material.uniforms.colorTexture.value=this.colorRenderTarget.texture;const i=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});i.texture.type=f.HalfFloatType,i.texture.format=f.RGBAFormat,i.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(i),this.copyTex3D(this.covarianceRenderTarget1.texture,i,this.numTextures),this.covarianceRenderTarget1.dispose(),this.covarianceRenderTarget1=i,this.material.uniforms.covarianceTexture1.value=this.covarianceRenderTarget1.texture;const n=new f.WebGL3DRenderTarget(this.textureSize,this.textureSize,e,{magFilter:f.NearestFilter,minFilter:f.NearestFilter,anisotropy:0,type:f.HalfFloatType,format:f.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});n.texture.type=f.HalfFloatType,n.texture.format=f.RGBAFormat,n.texture.internalFormat="RGBA16F",this.renderer.initRenderTarget(n),this.copyTex3D(this.covarianceRenderTarget2.texture,n,this.numTextures),this.covarianceRenderTarget2.dispose(),this.covarianceRenderTarget2=n,this.material.uniforms.covarianceTexture2.value=this.covarianceRenderTarget2.texture,this.numTextures=e,this.material.uniforms.numSlices.value=this.numTextures}}function Ni(){return`
553
-
554
- precision highp float;
555
- precision highp int;
556
-
557
- out vec2 vUv;
558
-
559
- void main() {
560
- vUv = uv;
561
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
562
- }`}var oe;const aa=new G.Sphere(new G.Vector3(0,0,0),1),da=new Oe([0,0,0,1,0,0,0,1,0,0,0,1]);new G.Box3;const fa=new G.Vector3(0,0,0),La=new G.Vector3(0,0,0),ou=new G.Vector3(0,1,0),dt=new G.Ray,ht=new G.Matrix4;new G.Matrix4,new G.Frustum;const lt=new G.Vector3,bt=[],Ui=new G.Quaternion,na={};function $n(){var r=[];for(let e in na)na.hasOwnProperty(e)&&na[e]>0&&r.push(e);return r}class kr extends G.Object3D{constructor(e){super();const a=this;if(a.splatsMesh=e.splatsMesh,a.iosCompatibility=e.iosCompatibility,a.splatsQuality=e.splatsQuality!=null?e.splatsQuality:.75,a.splatsCPUCulling=e.splatsCPUCulling!=null&&e.splatsCPUCulling,this.contentURL=[],e.domWidth&&e.domHeight?this.rendererSize=new G.Vector2(e.domWidth,e.domHeight):this.rendererSize=new G.Vector2(1e3,1e3),this.setClipShape(e.clipShape),this.loadingStrategy=e.loadingStrategy?e.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.proxy=e.proxy,this.drawBoundingVolume=!!e.drawBoundingVolume&&e.drawBoundingVolume,this.displayErrors=e.displayErrors,this.displayCopyright=e.displayCopyright,e.queryParams&&(this.queryParams={...e.queryParams}),this.uuid=Ki(),e.tileLoader)this.tileLoader=e.tileLoader;else{const n={};n.meshCallback=e.meshCallback?e.meshCallback:(s,c)=>{s.material.wireframe=!1,s.material.side=G.DoubleSide},n.pointsCallback=e.pointsCallback?e.pointsCallback:(s,c)=>{s.material.size=Math.pow(c,.33),s.material.sizeAttenuation=!0},n.proxy=this.proxy,n.renderer=e.renderer,n.dracoLoader=e.dracoLoader,n.ktx2Loader=e.ktx2Loader,a.tileLoader=new ln(n);const o=this.update;this.update=s=>{o.call(a,s),a.tileLoader.update()}}if(this.displayCopyright=!!e.displayCopyright,this.geometricErrorMultiplier=e.geometricErrorMultiplier?e.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=e.renderer,this.meshCallback=e.meshCallback,this.loadOutsideView=e.loadOutsideView,this.cameraOnLoad=e.cameraOnLoad,this.parentTile=e.parentTile,this.occlusionCullingService=e.occlusionCullingService,this.static=e.static,this.occlusionCullingService&&(this.color=new G.Color,this.color.setHex(16777215*Math.random()),this.colorID=G.MathUtils.clamp(255*a.color.r,0,255)<<16^G.MathUtils.clamp(255*a.color.g,0,255)<<8^G.MathUtils.clamp(255*a.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=e.level?e.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=e.centerModel,this.abortController=new AbortController,this.onLoadCallback=e.onLoadCallback,e.json)a._setup(e);else if(e.url){var t=e.url;if(a.queryParams){var i="";for(let n in a.queryParams)a.queryParams.hasOwnProperty(n)&&(i+="&"+n+"="+a.queryParams[n]);t.includes("?")?t+=i:t+="?"+i.substring(1)}(a.proxy?()=>fetch(a.proxy,{method:"POST",body:t,signal:a.abortController.signal}):()=>fetch(t,{signal:a.abortController.signal}))().then(n=>{if(!n.ok)throw new Error(`couldn't load "${e.url}". Request failed with status ${n.status} : ${n.statusText}`);n.json().then(o=>Ir(o,t)).then(o=>{a._setup({rootPath:Ba.dirname(e.url),json:o})})}).catch(n=>{a.displayErrors&&Li(n)})}}setClipShape(e){if(e instanceof Oe||e instanceof G.Sphere)this.clipShape=e;else if(e instanceof G.Box3){const a=new G.Vector3,t=new G.Vector3;e.getCenter(a),e.getSize(t).multiplyScalar(.5),this.clipShape=new Oe([a.x,a.y,a.z,t.x,0,0,0,t.y,0,0,0,t.z])}else e=void 0;this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}_setClipShape(e){this.clipShape=e,this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(e){this.splatsSizeMultiplier=e,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(e){this.splatsCropRadius=e,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsCPUCulling(e){this.splatsCPUCulling=e,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(e)}setSplatsQuality(e){this.splatsQuality=e,this.splatsMesh&&this.splatsMesh.setQuality(e)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(e=>{e.isObject3D&&(e.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(e=>{e.isObject3D&&(e.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(e,a){this.rendererSize.set(e,a)}async _setup(e){const a=this;if(e.json.extensionsRequired&&(e.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(a.splatsMesh=a.iosCompatibility?new nu(a.tileLoader.renderer):new eu(a.tileLoader.renderer),a.splatsMesh.setQuality(a.splatsQuality),a.splatsMesh.setSplatsCPUCulling(a.splatsCPUCulling),a.splatsMesh.setSplatsCropRadius(a.splatsCropRadius),a.splatsMesh.setSplatsSizeMultiplier(a.splatsSizeMultiplier),a.static&&(a.splatsMesh.matrixWorldAutoUpdate=!1),a.add(a.splatsMesh),a.updateMatrices()),e.json.root?(a.json=e.json.root,a.json.refine||(a.json.refine=e.json.refine),a.json.geometricError||(a.json.geometricError=e.json.geometricError),a.json.transform||(a.json.transform=e.json.transform),a.json.boundingVolume||(a.json.boundingVolume=e.json.boundingVolume)):a.json=e.json,a.json.children||(a.json.getChildren?a.json.children=await a.json.getChildren():a.json.children=[]),a.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,a.json.refine?a.refine=a.json.refine:a.refine=e.parentRefine,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=e.parentGeometricError,a.json.transform){let i=new G.Matrix4;i.elements=a.json.transform,a.applyMatrix4(i)}if(a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Oe(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const i=a.json.boundingVolume.region;a._transformWGS84ToCartesian(i[0],i[1],i[4],fa),a._transformWGS84ToCartesian(i[2],i[3],i[5],La),fa.lerp(La,.5),a.boundingVolume=new G.Sphere(new G.Vector3(fa.x,fa.y,fa.z),fa.distanceTo(La))}else if(a.json.boundingVolume.sphere){const i=a.json.boundingVolume.sphere;a.boundingVolume=new G.Sphere(new G.Vector3(i[0],i[1],i[2]),i[3])}else a.boundingVolume=e.parentBoundingVolume;else a.boundingVolume=e.parentBoundingVolume;function t(i){i.uri&&i.uri.includes("json")||i.url&&i.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(t(a.json.content),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0)),a._load()):a.json.contents&&(a.json.contents.forEach(i=>t(i)),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0))),a.centerModel&&(La.copy(a.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),fa),Ui.setFromUnitVectors(fa.normalize(),ou.normalize()),a.applyQuaternion(Ui)),La.applyMatrix4(a.matrix),a.position.sub(La),a.updateMatrices()),a.onLoadCallback&&a.onLoadCallback(a),a.isSetup=!0,a.level>0&&a.drawBoundingVolume)if(a.bbox&&console.log("double setup"),this.boundingVolume.aabb){let i=this.boundingVolume.aabb.clone();i.applyMatrix4(this.matrixWorld),a.bbox=new G.Box3Helper(i,new G.Color(Math.random(),Math.random(),Math.random())),a.add(a.bbox),a.bbox.material.visible=!1}else a.boundingVolume instanceof Oe&&(a.bbox=a.boundingVolume.helper(),a.add(a.bbox),a.bbox.material.visible=!1)}_assembleURL(e,a){e.endsWith("/")||(e+="/");const t=new URL(e);let i=t.pathname.split("/").filter(o=>o!==""),n=a.split("/").filter(o=>o!=="");for(let o=1;o<=i.length&&!(o>=n.length);o++)if(i.slice(i.length-o,i.length).join("/")===n.slice(0,o).join("/")){for(let s=0;s<o;s++)i.pop();break}for(;n.length>0&&n[0]==="..";)i.pop(),n.shift();return`${t.protocol}//${t.host}/${[...i,...n].join("/")}`}_extractQueryParams(e,a){const t=new URL(e);for(let[i,n]of t.searchParams)a[i]=n;return t.search="",t.toString()}async _load(e=!0,a=!0){var t=this;if(!t.deleted){if(t.json.content)await i(t.json.content,null,e,a);else if(t.json.contents){let n=t.json.contents.map((o,s)=>i(o,s,e,a));Promise.all(n)}}async function i(n,o,s,c){let u;n.uri?u=n.uri:n.url&&(u=n.url);const A=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(A.test(t.rootPath)?A.test(u)||(u=t._assembleURL(t.rootPath,u)):Ba.isAbsolute(t.rootPath)&&(u=t.rootPath+Ba.sep+u),u=t._extractQueryParams(u,t.queryParams),t.queryParams){var d="";for(let b in t.queryParams)t.queryParams.hasOwnProperty(b)&&(d+="&"+b+"="+t.queryParams[b]);u.includes("?")?u+=d:u+="?"+d.substring(1)}if(u)if(t.contentURL.push(u),c&&(u.includes(".b3dm")||u.includes(".glb")||u.includes(".gltf")))try{t.tileLoader.get(t.abortController,t.uuid,u,b=>{t.deleted||(b.asset&&b.asset.copyright&&(b.asset.copyright.split(";").forEach(h=>{na[h]?na[h]++:na[h]=1}),t.displayCopyright&&rr()),t.meshContent.push(b),t.splatsMesh||(b.traverse(h=>{if((h.isMesh||h.isPoints)&&h.layers.disable(0),h.isMesh&&t.occlusionCullingService){const l=h.geometry.attributes.position,g=[];for(let m=0;m<l.count;m++)g.push(t.color.r,t.color.g,t.color.b);h.geometry.setAttribute("color",new G.Float32BufferAttribute(g,3))}}),t.add(b),t.updateMatrices()))},t.cameraOnLoad?()=>t.loadingStrategy=="IMMEDIATE"?t._calculateDistanceToCamera(t.cameraOnLoad):t.loadingStrategy=="INCREMENTAL"?t.parentTile?t.parentTile._calculateDistanceToCamera(t.cameraOnLoad)/Math.max(1,t.parentTile.level):t._calculateDistanceToCamera(t.cameraOnLoad)/Math.max(1,t.level):t.loadingStrategy=="PERLEVEL"?t.parentTile?t.level+t.parentTile._calculateDistanceToCamera(t.cameraOnLoad):t.level+t._calculateDistanceToCamera(t.cameraOnLoad):0:()=>0,()=>t._getSiblings(),t.level,t.loadingStrategy,!t.json.boundingVolume.region,!!t.json.boundingVolume.region,t.geometricError,t.splatsMesh)}catch(b){t.displayErrors&&Li(b)}else s&&u.includes(".json")&&(t.jsonRequested=u,t.tileLoader.get(t.abortController,t.uuid,u,async b=>{t.jsonReceived=!0,t.deleted||(b.rootPath=Ba.dirname(u),t.json.children.push(b),o==null?delete t.json.content:t.json.contents.splice(o,1),t.hasUnloadedJSONContent--)}))}}dispose(){const e=this;e.meshContent.forEach(a=>{a&&a.asset&&a.asset.copyright&&(a.asset.copyright.split(";").forEach(t=>{na[t]&&na[t]--}),e.displayCopyright&&rr())}),e.childrenTiles.forEach(a=>a.dispose()),e.deleted=!0,e.splatsMesh&&(e.meshContent.forEach(a=>a.hide()),e.parentTile||(e.splatsMesh.dispose(),e.splatsMesh=void 0)),e.contentURL&&(e.contentURL.forEach(a=>{e.tileLoader.invalidate(a,e.uuid)}),e.contentURL=[]),e.abortController&&!e.jsonRequested&&e.abortController.abort("tile not needed"),this.parent=null,e.meshContent=[],e.bbox&&e.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const e=this;if(!e.deleted){e.deleted=!0,e.abortController&&(e.abortController.abort("tile not needed"),e.abortController=new AbortController);for(let a=e.meshContent.length-1;a>=0;a--){const t=e.meshContent[a];t&&t.asset&&t.asset.copyright&&(t.asset.copyright.split(";").forEach(i=>{na[i]&&na[i]--}),e.displayCopyright&&rr()),e.remove(t)}e.splatsMesh&&e.meshContent.forEach(a=>a.hide()),e.meshContent=[],e.contentURL.forEach(a=>{e.tileLoader.invalidate(a,e.uuid)}),e.contentURL=[]}}_disposeChildren(){var e=this;e.childrenTiles.forEach(a=>{a.dispose(),e.remove(a)}),e.childrenTiles=[]}raycast(e,a){if(this.splatsMesh){dt.copy(e.ray),ht.copy(this.matrixWorld).invert(),dt.applyMatrix4(ht);let t=!1;if(this.boundingVolume instanceof Oe)t=this.boundingVolume.intersectsRay(dt);else{if(!(this.boundingVolume instanceof G.Sphere))return!1;t=ray.intersectsSphere(this.boundingVolume)}return t&&this.materialVisibility&&this.splatsReady&&(bt.length=0,this.meshContent.forEach(i=>{i.isSplatsBatch&&(i.raycast(dt,bt,e.params.Points.threshold),bt.forEach(n=>{n.point.applyMatrix4(this.matrixWorld)}),a.push(...bt))})),t}return super.raycast(e,a)}update(e){this.splatsMesh&&this.splatsMesh.updateShaderParams(e,this.renderer);const a=new G.Frustum;a.setFromProjectionMatrix(new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse));let t=[0],i=[0],n=[0],o=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(e,a),this._statsImmediate(n,t,o,i)):(this._update(e,a),this._stats(n,t,o,i)):(this._update(e,a),this._stats(n,t,o,i)),t>0&&(o[0]/=t[0]),this.splatsMesh)if(lt.copy(e.position),ht.copy(this.matrixWorld).invert(),lt.applyMatrix4(ht),this.splatsCPUCulling){const s=new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(lt,s)}else this.splatsMesh.sort(lt);return{numTilesLoaded:t[0],numTilesRendered:i[0],maxLOD:n[0],percentageLoaded:o[0]}}_updateImmediate(e,a){this._computeMetricRecursive(e,a),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(e),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(e,a,t,i){e[0]=Math.max(e[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(a[0]++,this.materialVisibility&&t[0]++),this.materialVisibility&&i[0]++,this.childrenTiles.forEach(n=>{n._statsImmediate(e,a,t,i)})}_stats(e,a,t,i){e[0]=Math.max(e[0],this.level),this.hasMeshContent&&(a[0]++,this.meshContent.length==this.hasMeshContent&&t[0]++,this.materialVisibility&&i[0]++),this.childrenTiles.forEach(n=>{n._stats(e,a,t,i)})}_trimTreeImmediate(){if(this.metric!=null)if(this.hasMeshContent&&this.shouldBeVisible&&this.materialVisibility){if(self.splatsMesh&&!self.splatsReady)return;this._disposeChildren()}else this.childrenTiles.forEach(e=>{e._trimTreeImmediate()})}_updateNodeVisibilityImmediate(e=!1){const a=this;if(a.hasMeshContent)if(a.shouldBeVisible)a.meshContent.length==a.hasMeshContent?a.materialVisibility?a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(!0)}):(a._changeContentVisibility(!0),a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)})):a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else{if(!a.loadOutsideView&&a.metric<0)return a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),void a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(!0)});if(!a.materialVisibility||a.splatsMesh&&!a.splatsReady)a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else if(e)a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)});else{let t=!0;a.childrenTiles.every(i=>!!i._isReadyImmediate()||(t=!1,!1)),t&&a.childrenTiles.length>0?(a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(i=>{i._updateNodeVisibilityImmediate(e)})):a.childrenTiles.forEach(i=>{i._updateNodeVisibilityImmediate(!a.splatsMesh||!!a.splatsReady)})}}else a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(e)})}_shouldBeVisibleUpdateImmediate(){const e=this;e.hasMeshContent?e.metric==null?e.shouldBeVisible=!1:e.metric<0?(e.shouldBeVisible=!!e.loadOutsideView,e.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()})):e.metric<e.geometricErrorMultiplier*e.geometricError?e.hasUnloadedJSONContent||(e.json&&e.json.children&&e.json.children.length>0?(e.shouldBeVisible=!1,e.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()})):e.shouldBeVisible=!0):e.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()}):(e.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()}),e.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(e=>{e._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const e=this;e.hasMeshContent&&e.shouldBeVisible?e.meshContent.length<e.hasMeshContent&&e.contentURL.length==0&&(e.deleted=!1,e._load(!1,!0)):e.childrenTiles.forEach(a=>{a._loadMeshImmediate()})}_computeMetricRecursive(e,a){const t=this;t.metric=-1,t.isSetup&&(t.boundingVolume&&t.geometricError&&(t.metric=t._calculateUpdateMetric(e,a)),t.childrenTiles.forEach(i=>i._computeMetricRecursive(e,a)))}_expandTreeImmediate(e){const a=this;a.hasUnloadedJSONContent||(a.hasMeshContent?a.occlusionCullingService&&a.hasMeshContent&&!a.occlusionCullingService.hasID(a.colorID)||a.metric>=0&&a.metric<a.geometricErrorMultiplier*a.geometricError&&a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(e):a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(e)),a.childrenTiles.forEach(t=>t._expandTreeImmediate(e))}_update(e,a){const t=this;if(!t.isSetup)return;const i=t.materialVisibility;t.boundingVolume&&t.geometricError&&(t.metric=t._calculateUpdateMetric(e,a)),t.childrenTiles.forEach(n=>n._update(e,a)),function(n){if(n<0)return t.inFrustum=!1,void t._changeContentVisibility(!!t.loadOutsideView);if(t.inFrustum=!0,!!t.hasMeshContent&&!(t.meshContent.length<t.hasMeshContent)){if(t.childrenTiles.length==0)return void t._changeContentVisibility(!0);if(n>=t.geometricErrorMultiplier*t.geometricError)t._changeContentVisibility(!0);else if(n<t.geometricErrorMultiplier*t.geometricError&&t.refine=="REPLACE"){let o=!0;t.childrenTiles.every(s=>!!s._isReady()||(o=!1,!1)),o?t._changeContentVisibility(!1):t._changeContentVisibility(!0)}}}(t.metric),function(n){n<0&&t.hasMeshContent||t.occlusionCullingService&&t.hasMeshContent&&!t.occlusionCullingService.hasID(t.colorID)||(!t.hasMeshContent||n<=t.geometricErrorMultiplier*t.geometricError&&(t.meshContent.length>0||t.splatsMesh))&&t.json&&t.json.children&&t.childrenTiles.length!=t.json.children.length&&t._loadJsonChildren(e)}(t.metric),function(n,o){if(t.hasMeshContent){if(!t.inFrustum)return void t._disposeChildren();if(t.occlusionCullingService&&!o&&t.hasMeshContent&&t.meshContent.length>0&&t.materialVisibility&&t._areAllChildrenLoadedAndHidden())return t.splatsMesh&&this.materialVisibility&&!t.splatsReady?void 0:void t._disposeChildren();if(n>=t.geometricErrorMultiplier*t.geometricError){if(t.splatsMesh&&t.materialVisibility&&!t.splatsReady)return;t._disposeChildren()}}}(t.metric,i)}_loadJsonChildren(e){const a=this;for(let t=a.json.children.length-1;t>=0;t--)a.json.children[t].root||a.json.children[t].children||a.json.children[t].getChildren||a.json.children[t].content||a.json.children[t].contents||a.json.children.splice(t,1);a.json.children.forEach(t=>{let i=new kr({parentTile:a,queryParams:a.queryParams,parentGeometricError:a.geometricError,parentBoundingVolume:a.boundingVolume,parentRefine:a.refine,json:t,rootPath:a.rootPath,geometricErrorMultiplier:a.geometricErrorMultiplier,loadOutsideView:a.loadOutsideView,level:Math.floor(a.level)+1,tileLoader:a.tileLoader,cameraOnLoad:e,occlusionCullingService:a.occlusionCullingService,renderer:a.renderer,static:a.static,centerModel:!1,displayErrors:a.displayErrors,displayCopyright:a.displayCopyright,distanceBias:a.distanceBias,loadingStrategy:a.loadingStrategy,drawBoundingVolume:a.drawBoundingVolume,splatsMesh:a.splatsMesh,clipShape:a.clipShape});a.childrenTiles.push(i),a.add(i)}),a.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let e=!0;const a=this;return this.childrenTiles.every(t=>{if(t.hasMeshContent){if(t.childrenTiles.length>0)return e=!1,!1;if(!t.metric<0)return!0;if(t.materialVisibility&&(!a.splatsMesh||a.splatsReady)||a.occlusionCullingService.hasID(t.colorID))return e=!1,!1}else if(!t._areAllChildrenLoadedAndHidden())return e=!1,!1;return!0}),e}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var e=!0;return this.childrenTiles.every(a=>!!a._isReady()||(e=!1,!1)),e}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var e=!0;return this.childrenTiles.every(a=>!!a._isReadyImmediate()||(e=!1,!1)),e}return!1}_changeContentVisibility(e){const a=this;if(a.bbox&&(a.bbox.material.visible=e),a.splatsMesh)e!=a.materialVisibility&&(a.meshContent.forEach(t=>{e&&t.isSplatsBatch?t.show(()=>{a.materialVisibility&&(a.splatsReady=!0)}):(t.hide(),a.splatsReady=!1)}),a.materialVisibility=e);else{if(a.hasMeshContent&&a.meshContent.length>0&&(e?a.meshContent.forEach(t=>{t.traverse(i=>{(i.isMesh||i.isPoints)&&i.layers.enable(0)})}):a.meshContent.forEach(t=>{t.traverse(i=>{(i.isMesh||i.isPoints)&&i.layers.disable(0)})})),a.materialVisibility==e)return;a.materialVisibility=e}}_calculateUpdateMetric(e,a){let t=0;if(this.boundingVolume instanceof Oe){if(da.copy(this.boundingVolume),da.applyMatrix4(this.matrixWorld),!da.inFrustum(a))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!da.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!da.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;t=Math.max(0,da.distanceToPoint(e.position)-e.near)}else{if(!(this.boundingVolume instanceof G.Sphere))return console.error("unsupported shape"),-1;if(aa.copy(this.boundingVolume),aa.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(aa)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(aa)))return Number.MAX_VALUE;if(!a.intersectsSphere(aa))return-1;t=Math.max(0,e.position.distanceTo(aa.center)-aa.radius-e.near)}if(t=Math.pow(t,this.distanceBias),t==0)return 0;const i=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let n=this.rendererSize.y,o=e.fov;return e.aspect<1&&(o*=e.aspect,n=this.rendererSize.x),16*(2*Math.tan(.5*o*.017453292519943295)*t)/(n*i)}_getSiblings(){const e=this,a=[];if(!e.parentTile)return a;let t=e.parentTile;for(;!t.hasMeshContent&&t.parentTile;)t=t.parentTile;return t.childrenTiles.forEach(i=>{if(i&&i!=e){for(;!i.hasMeshContent&&i.childrenTiles[0];)i=i.childrenTiles[0];a.push(i)}}),a}_calculateDistanceToCamera(e){return this.boundingVolume instanceof Oe?(da.copy(this.boundingVolume),da.applyMatrix4(this.matrixWorld),Math.max(0,da.distanceToPoint(e.position))):this.boundingVolume instanceof G.Sphere?(aa.copy(this.boundingVolume),aa.applyMatrix4(this.matrixWorld),Math.max(0,e.position.distanceTo(aa.center)-aa.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(e){this.geometricErrorMultiplier=e,this.childrenTiles.forEach(a=>a.setGeometricErrorMultiplier(e))}setDistanceBias(e){this.distanceBias=e,this.childrenTiles.forEach(a=>a.setDistanceBias(e))}_transformWGS84ToCartesian(e,a,t,i){const n=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),o=Math.cos(a),s=Math.cos(e),c=Math.sin(a),u=n+t,A=u*o*s,d=u*o*Math.sin(e),b=(.993305615557957*n+t)*c;i.set(A,d,b)}hideCopyright(){(function(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe)),oe.style.opacity=0})()}showCopyright(){(function(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe)),oe.style.opacity=1})()}}function Li(r){var e=document.createElement("div");e.textContent=r,e.style.position="fixed",e.style.top="10px",e.style.left="50%",e.style.transform="translateX(-50%)",e.style.padding="10px",e.style.backgroundColor="#ff8800",e.style.color="#ffffff",e.style.zIndex="9999",document.body.appendChild(e),setTimeout(function(){e.remove()},8e3)}function rr(){oe||((oe=document.createElement("div")).style.position="fixed",oe.style.bottom="20px",oe.style.left="20px",oe.style.color="white",oe.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",oe.style.padding="10px",oe.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(oe));const r=$n();let e="";r.forEach(a=>{e+=a+", "}),e=e.slice(0,-2),oe.textContent=e}const _e=new G.Sphere(new G.Vector3(0,0,0),1),pa=new G.Vector3(0,0,0),ir=new G.Vector3(0,0,0),su=new G.Vector3(0,1,0),nr=new G.Vector2,Gi=new G.Quaternion,_i=new G.Matrix4;class jr extends G.Object3D{constructor(e){super();const a=this;if(e.queryParams&&(this.queryParams={...e.queryParams}),this.uuid=Ki(),e.tileLoader?this.tileLoader=e.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=e.master,this.loadOutsideView=e.loadOutsideView,this.cameraOnLoad=e.cameraOnLoad,this.parentTile=e.parentTile,this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=e.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=e.level?e.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=e.centerModel,this.deleted=!1,this.abortController=new AbortController,e.json)this.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,e.json.children&&(this.jsonChildren=e.json.children),a.setup(e);else if(e.url){this.loadJson=(n,o)=>{const s=Ba.dirname(o);a.setup({rootPath:s,json:n,onLoadCallback:e.onLoadCallback})};var t=e.url;if(a.queryParams){var i="";for(let n in a.queryParams)a.queryParams.hasOwnProperty(n)&&(i+="&"+n+"="+a.queryParams[n]);t.includes("?")?t+=i:t+="?"+i.substring(1)}a.tileLoader.get(a.abortController,t,a.uuid,a)}}async setup(e){const a=this;e.json.root?(a.json=e.json.root,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren()),a.jsonChildren=a.json.children,a.json.refinement||(a.json.refinement=e.json.refinement),a.json.geometricError||(a.json.geometricError=e.json.geometricError),a.json.transform||(a.json.transform=e.json.transform),a.json.boundingVolume||(a.json.boundingVolume=e.json.boundingVolume)):(a.json=e.json,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren(),a.jsonChildren=a.json.children)),a.rootPath=e.json.rootPath?e.json.rootPath:e.rootPath,a.json.refinement?a.refinement=a.json.refinement:a.refinement=e.parentRefinement,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=e.parentGeometricError;let t=new G.Matrix4;if(a.json.transform&&!a.centerModel&&(t.elements=a.json.transform),a.applyMatrix4(t),a.parentTile&&a.parentTile.matrix&&(a.matrix.premultiply(a.parentTile.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale)),a.matrixWorldNeedsUpdate=!0,a.updateWorldMatrix(!0,!0),a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new Oe(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const n=a.json.boundingVolume.region;a.transformWGS84ToCartesian(n[0],n[1],n[4],pa),a.transformWGS84ToCartesian(n[2],n[3],n[5],ir),pa.lerp(ir,.5),a.boundingVolume=new G.Sphere(new G.Vector3(pa.x,pa.y,pa.z),pa.distanceTo(ir))}else if(a.json.boundingVolume.sphere){const n=a.json.boundingVolume.sphere;a.boundingVolume=new G.Sphere(new G.Vector3(n[0],n[1],n[2]),n[3])}else a.boundingVolume=e.parentBoundingVolume;else a.boundingVolume=e.parentBoundingVolume;function i(n){n.uri&&n.uri.includes("json")||n.url&&n.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(i(a.json.content),a.load()):a.json.contents&&(a.json.contents.forEach(n=>i(n)),a.load()),a.centerModel){const n=new G.Sphere;a.boundingVolume instanceof Oe?n.copy(a.boundingVolume.sphere):a.boundingVolume instanceof G.Sphere&&n.copy(a.boundingVolume),this.json.boundingVolume.region&&(a.transformWGS84ToCartesian(.5*(a.json.boundingVolume.region[0]+a.json.boundingVolume.region[2]),.5*(a.json.boundingVolume.region[1]+a.json.boundingVolume.region[3]),.5*(a.json.boundingVolume.region[4]+a.json.boundingVolume.region[5]),pa),Gi.setFromUnitVectors(pa.normalize(),su.normalize()),a.master.applyQuaternion(Gi),a.master.updateWorldMatrix(!1,!1)),_i.makeTranslation(-n.center.x*a.scale.x,-n.center.y*a.scale.y,-n.center.z*a.scale.z),a.master.matrix.multiply(_i),a.master.matrix.decompose(a.master.position,a.master.quaternion,a.master.scale)}a.isSetup=!0,e.onLoadCallback&&e.onLoadCallback(a)}isAbsolutePathOrURL(e){const a=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(e),t=e.startsWith("/")&&!e.startsWith("//");return a||t}assembleURL(e,a){e.endsWith("/")||(e+="/");const t=new URL(e);let i=t.pathname.split("/").filter(o=>o!==""),n=a.split("/").filter(o=>o!=="");for(let o=1;o<=i.length&&!(o>=n.length);o++)if(i.slice(i.length-o,i.length).join("/")===n.slice(0,o).join("/")){for(let s=0;s<o;s++)i.pop();break}for(;n.length>0&&n[0]==="..";)i.pop(),n.shift();return`${t.protocol}//${t.host}/${[...i,...n].join("/")}`}extractQueryParams(e,a){const t=new URL(e);for(let[i,n]of t.searchParams)a[i]=n;return t.search="",t.toString()}load(){var e=this;function a(t){let i;t.uri?i=t.uri:t.url&&(i=t.url);const n=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(n.test(e.rootPath)?n.test(i)||(i=e.assembleURL(e.rootPath,i)):Ba.isAbsolute(e.rootPath)&&(i=e.rootPath+Ba.sep+i),i=e.extractQueryParams(i,e.queryParams),e.queryParams){var o="";for(let s in e.queryParams)e.queryParams.hasOwnProperty(s)&&(o+="&"+s+"="+e.queryParams[s]);i.includes("?")?i+=o:i+="?"+o.substring(1)}i&&(i.includes(".b3dm")||i.includes(".glb")||i.includes(".gltf")?(e.contentURL=i,e.tileLoader.get(e.abortController,i,e.uuid,e,e.cameraOnLoad?()=>e.calculateDistanceToCamera(e.cameraOnLoad):()=>0,()=>e.getSiblings(),e.level,!e.json.boundingVolume.region,!!e.json.boundingVolume.region,e.geometricError)):i.includes(".json")&&e.tileLoader.get(e.abortController,i,e.uuid,e))}e.deleted||(e.json.content?a(e.json.content):e.json.contents&&e.json.contents.forEach(t=>a(t)))}loadMesh(e){this.deleted||this.meshContent.add(e)}loadJson(e,a){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),e.rootPath=Ba.dirname(a),this.jsonChildren.push(e),this.hasUnloadedJSONContent--)}dispose(){const e=this;e.childrenTiles.forEach(a=>a.dispose()),e.deleted=!0,e.abortController&&e.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(e=>e.dispose()),this.childrenTiles=[]}_update(e,a){const t=this;function i(n){if(t.hasMeshContent&&!(t.meshContent.size<t.hasMeshContent)){if(n<0)return t.inFrustum=!1,void t.changeContentVisibility(!!t.loadOutsideView);if(t.inFrustum=!0,t.childrenTiles.length!=0){if(n>=t.master.geometricErrorMultiplier*t.geometricError)t.changeContentVisibility(!0);else if(n<t.master.geometricErrorMultiplier*t.geometricError){let o=!0;t.childrenTiles.every(s=>!!s.isReady()||(o=!1,!1)),o&&t.changeContentVisibility(!1)}}else t.changeContentVisibility(!0)}}t.isSetup&&(t.materialVisibility,t.boundingVolume&&t.geometricError&&(t.metric=t.calculateUpdateMetric(e,a)),t.childrenTiles.forEach(n=>n._update(e,a)),i(t.metric),function(n){n<0&&t.hasMeshContent||(!t.hasMeshContent&&t.rootPath||n<t.master.geometricErrorMultiplier*t.geometricError&&t.meshContent.size>0)&&t.json&&t.jsonChildren&&t.childrenTiles.length!=t.jsonChildren.length&&t.jsonChildren.forEach(o=>{if(!(o.root||o.children||o.getChildren||o.content||o.contents))return;let s=new jr({parentTile:t,queryParams:t.queryParams,parentGeometricError:t.geometricError,parentBoundingVolume:t.boundingVolume,parentRefinement:t.refinement,json:o,rootPath:t.rootPath,loadOutsideView:t.loadOutsideView,level:t.level+1,tileLoader:t.tileLoader,cameraOnLoad:e,master:t.master,centerModel:!1});t.childrenTiles.push(s)})}(t.metric),function(n){if(t.hasMeshContent){if(!t.inFrustum)return t.disposeChildren(),void i(n);n>=t.master.geometricErrorMultiplier*t.geometricError&&(t.disposeChildren(),i(n))}}(t.metric))}areAllChildrenLoadedAndHidden(){let e=!0;return this.childrenTiles.every(a=>{if(a.hasMeshContent){if(a.childrenTiles.length>0)return e=!1,!1;if(!a.inFrustum)return!0;if(!a.materialVisibility||a.meshesToDisplay!=a.meshesDisplayed)return e=!1,!1}else if(!a.areAllChildrenLoadedAndHidden())return e=!1,!1;return!0}),e}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var e=!0;return this.childrenTiles.every(a=>!!a.isReady()||(e=!1,!1)),e}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(e){this.materialVisibility=e}calculateUpdateMetric(e,a){if(this.boundingVolume instanceof Oe){if(_e.copy(this.boundingVolume.sphere),_e.applyMatrix4(this.matrixWorld),!a.intersectsSphere(_e))return-1}else{if(!(this.boundingVolume instanceof G.Sphere))return console.error("unsupported shape"),-1;if(_e.copy(this.boundingVolume),_e.applyMatrix4(this.matrixWorld),!a.intersectsSphere(_e))return-1}let t=Math.max(0,e.position.distanceTo(_e.center)-_e.radius);if(t=Math.pow(t,this.distanceBias),t==0)return 0;const i=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(nr);let n=nr.y,o=e.fov;e.aspect<1&&(o*=e.aspect,n=nr.x);let s=2*Math.tan(.5*o*.017453292519943295)*t;return 16*window.devicePixelRatio*s/(n*i)}getSiblings(){const e=this,a=[];if(!e.parentTile)return a;let t=e.parentTile;for(;!t.hasMeshContent&&t.parentTile;)t=t.parentTile;return t.childrenTiles.forEach(i=>{if(i&&i!=e){for(;!i.hasMeshContent&&i.childrenTiles[0];)i=i.childrenTiles[0];a.push(i)}}),a}calculateDistanceToCamera(e){return this.boundingVolume instanceof Oe?(_e.copy(this.boundingVolume.sphere),_e.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof G.Sphere?(_e.copy(this.boundingVolume),_e.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,e.position.distanceTo(_e.center)-_e.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(e,a,t,i){const n=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),o=Math.cos(a),s=Math.cos(e),c=Math.sin(a),u=n+t,A=u*o*s,d=u*o*Math.sin(e),b=(.993305615557957*n+t)*c;i.set(A,d,b)}}class Au extends G.Object3D{constructor(e){super(),e.master=this,e.domWidth&&e.domHeight?this.rendererSize=new G.Vector2(e.domWidth,e.domHeight):this.rendererSize=new G.Vector2(1e3,1e3),this.renderer=e.renderer,this.distanceBias=Math.max(1e-4,e.distanceBias?e.distanceBias:1),this.geometricErrorMultiplier=e.geometricErrorMultiplier?e.geometricErrorMultiplier:1,this.tileset=new jr(e),e.static&&(this.matrixAutoUpdate=!1),this.tileLoader=e.tileLoader}_renderSize(e){this.renderer?this.renderer.getDrawingBufferSize(e):e.copy(this.rendererSize)}setCanvasSize(e,a){this.rendererSize.set(e,a)}update(e,a){if(a)this.tileset._update(e,a);else{const t=new G.Frustum;t.setFromProjectionMatrix(new G.Matrix4().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse)),this.tileset._update(e,t)}}setGeometricErrorMultiplier(e){this.geometricErrorMultiplier=e||1}}class cu{constructor(e){const a=this;a.scene=e,a.instancedTiles=[],a.instancedMesh,a.reuseableMatrix=new G.Matrix4}addInstance(e){const a=this;e.added=!0,e.listOMesh=a.instancedTiles,a.instancedTiles.push(e),a.instancedMesh&&e.loadMesh(a.instancedMesh)}addToScene(){const e=this;e.instancedMesh.setMatrixAt(0,new G.Matrix4),e.instancedMesh.instanceMatrix.needsUpdate=!0,e.instancedMesh.count=1,e.scene.add(e.instancedMesh),e.instancedMesh.onAfterRender=()=>{delete e.instancedMesh.onAfterRender,e.instancedMesh.displayedOnce=!0}}setObject(e){const a=this;a.instancedMesh=e,a.instancedMesh.matrixAutoUpdate=!1,a.instancedMesh.matrixWorldAutoUpdate=!1,a.scene.children.includes(e)||this.addToScene();for(let t=0;t<a.instancedTiles.length;t++)a.instancedTiles[t].loadMesh(a.instancedMesh)}update(){const e=this;for(let a=e.instancedTiles.length-1;a>=0;a--)e.instancedTiles[a].deleted&&e.instancedTiles.splice(a,1);if(e.instancedMesh){e.instancedMesh.count=0,e.instancedMesh.instancedTiles=[];for(let a=0;a<e.instancedTiles.length;a++)e.instancedTiles[a].meshContent.add(e.instancedMesh),e.instancedTiles[a].materialVisibility&&(e.instancedMesh.count++,e.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),e.reuseableMatrix.multiply(e.instancedTiles[a].matrixWorld),e.reuseableMatrix.multiply(e.instancedMesh.baseMatrix),e.instancedMesh.setMatrixAt(e.instancedMesh.count-1,e.reuseableMatrix),e.instancedMesh.instancedTiles.push(e.instancedTiles[a]));e.instancedMesh.instanceMatrix.needsUpdate=!0,e.instancedMesh.needsUpdate=!0,e.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const e=this;return!(e.instancedTiles.length>0)&&!!e.instancedMesh&&(e.scene.remove(e.instancedMesh),e.instancedMesh.traverse(a=>{if(a.dispose&&a.dispose(),a.material)if(a.material.length)for(let t=0;t<a.material.length;++t)a.material[t].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}),e.instancedMesh.dispose(),!0)}}class uu{constructor(){const e=this;e.count=0,e.json,e.instancedTiles=[]}addInstance(e){this.instancedTiles.push(e),this.json&&e.loadJson(this.json,this.url)}setObject(e,a){const t=this;t.json=e,t.url=a;for(let i=0;i<t.instancedTiles.length;i++)t.instancedTiles[i].loadJson(t.json,t.url)}getCount(){return this.instancedTiles.length}update(){const e=this;for(let a=e.instancedTiles.length-1;a>=0;a--)e.instancedTiles[a].deleted&&e.instancedTiles.splice(a,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let xa=0;async function du(r){return new Promise(e=>{const a=setInterval(()=>{r.hasDracoLoader&&!r.dracoLoader||r.hasKTX2Loader&&!r.ktx2Loader||(clearInterval(a),e())},10)})}exports.InstancedOGC3DTile=Au,exports.InstancedTileLoader=class{constructor(r,e){if(this.zUpToYUpMatrix=new G.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=e.proxy,e&&(this.meshCallback=e.meshCallback,this.pointsCallback=e.pointsCallback,e.maxCachedItems&&(this.maxCachedItems=e.maxCachedItems),e.maxInstances&&(this.maxInstances=e.maxInstances)),this.gltfLoader=new Oi,e&&e.dracoLoader)this.gltfLoader.setDRACOLoader(e.dracoLoader),this.hasDracoLoader=!0;else{const a=new Hi;a.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(e&&e.ktx2Loader)this.gltfLoader.setKTX2Loader(e.ktx2Loader),this.hasKTX2Loader=!0;else if(e&&e.renderer){const a=new Je;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(e.renderer),this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(hn),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new qi(this.gltfLoader),this.cache=new zi,this.scene=r,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const r=this;r._checkSize(),r.cache._data.forEach(e=>{e.update()}),xa<8&&r._download(),r._loadBatch()}_download(){const r=this;if(r.nextDownloads.length!=0||(r._getNextDownloads(),r.nextDownloads.length!=0))for(;r.nextDownloads.length>0;){const a=r.nextDownloads.shift();if(a){if(a.path.includes(".b3dm")&&(e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),xa++,e().then(t=>{if(!t.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${t.status} : ${t.statusText}`);return t.arrayBuffer()}).then(t=>this.b3dmDecoder.parseB3DMInstanced(t,i=>{r.meshCallback(i,a.geometricError)},r.maxInstances,a.sceneZupToYup,a.meshZupToYup)).then(t=>{t.frustumCulled=!1,a.tile.setObject(t),r.ready.unshift(a)}).catch(t=>console.error(t)).finally(()=>{xa--})),a.path.includes(".glb")||a.path.includes(".gltf"))e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),xa++,e().then(t=>{if(!t.ok)throw new Error("missing content");return t.arrayBuffer()}).then(async t=>{await du(this.gltfLoader),this.gltfLoader.parse(t,null,i=>{let n;i.scene.asset=i.asset,a.sceneZupToYup&&i.scene.applyMatrix4(this.zUpToYUpMatrix),i.scene.traverse(o=>{o.geometricError=a.geometricError,o.isMesh&&(a.meshZupToYup&&o.applyMatrix4(this.zUpToYUpMatrix),r.meshCallback&&r.meshCallback(o,o.geometricError)),o.isPoints&&console.error("instanced point cloud is not supported")}),i.scene.updateWorldMatrix(!1,!0),i.scene.traverse(o=>{o.isMesh&&(n=new G.InstancedMesh(o.geometry,o.material,r.maxInstances),n.baseMatrix=o.matrixWorld)}),r.ready.unshift(a),n?(n.frustumCulled=!1,a.tile.setObject(n)):i.scene.traverse(o=>{o.dispose&&o.dispose(),o.material&&o.material.dispose()})})},t=>{console.error("could not load tile : "+a.path)}).finally(()=>{xa--});else if(a.path.includes(".json")){var e;e=r.proxy?()=>fetch(r.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),xa++,e().then(t=>{if(!t.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${t.status} : ${t.statusText}`);return t.json()}).then(t=>Ir(t,a.path)).then(t=>{a.tile.setObject(t,a.path),r.ready.unshift(a)}).catch(t=>console.error(t)).finally(()=>{xa--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let r=Number.MAX_VALUE,e=-1;for(let a=this.ready.length-1;a>=0;a--)this.ready[a].distanceFunction||this.nextReady.push(this.ready.splice(a,1)[0]);if(!(this.nextReady.length>0)){for(let a=this.ready.length-1;a>=0;a--){const t=this.ready[a].distanceFunction()*this.ready[a].level;t<r&&(r=t,e=a)}if(e>=0){const a=this.ready.splice(e,1).pop();this.nextReady.push(a);const t=a.getSiblings();for(let i=this.ready.length-1;i>=0;i--)t.includes(this.ready[i].uuid)&&this.nextready.push(this.ready.splice(i,1).pop())}}}get(r,e,a,t,i,n,o,s,c,u){const A=this,d=function(h){for(var l=h.split("/"),g=[],m=0,E=0;E<l.length;E++){var p=l[E];p!=="."&&p!==""&&p!==".."?g[m++]=p:p===".."&&m>0&&m--}if(m===0)return"/";var C="";for(E=0;E<m;E++)C+="/"+g[E];return C}(e);if(!(e.includes(".b3dm")||e.includes(".json")||e.includes(".glb")||e.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const b=A.cache.get(d);if(b)b.addInstance(t);else if(e.includes(".b3dm")||e.includes(".glb")||e.includes(".gltf")){const h=new cu(A.scene);h.addInstance(t),A.cache.put(d,h);const l=new AbortController;r.signal.addEventListener("abort",()=>{h.getCount()==0&&l.abort()}),this.downloads.push({abortController:l,tile:h,key:d,path:e,distanceFunction:i,getSiblings:n,level:o,uuid:a,sceneZupToYup:s,meshZupToYup:c,geometricError:u,shouldDoDownload:()=>!0})}else if(e.includes(".json")){const h=new uu;h.addInstance(t),A.cache.put(d,h);const l=new AbortController;r.signal.addEventListener("abort",()=>{h.getCount()==0&&l.abort()}),this.downloads.push({abortController:l,tile:h,key:d,path:e,distanceFunction:i,getSiblings:n,level:o,shouldDoDownload:()=>!0})}}_getNextDownloads(){let r=Number.MAX_VALUE,e=-1;for(let a=this.downloads.length-1;a>=0;a--){const t=this.downloads[a];t.shouldDoDownload()?t.distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1)}if(!(this.nextDownloads.length>0)){for(let a=this.downloads.length-1;a>=0;a--){const t=this.downloads[a],i=t.distanceFunction()*t.level;i<r&&(r=i,e=a)}if(e>=0){const a=this.downloads.splice(e,1).pop();this.nextDownloads.push(a);const t=a.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)t.includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}}_checkSize(){const r=this;let e=0;for(;r.cache.size()>r.maxCachedItems&&e<r.cache.size();){e++;const a=r.cache.head();r.cache.remove(a.key),a.value.dispose()||r.cache.put(a.key,a.value)}}},exports.OBB=Oe,exports.OGC3DTile=kr,exports.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new G.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=G.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(r){this.cullMaterial.side=r}_createCullTarget(){const r=new G.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return r.texture.format=G.RGBAFormat,r.texture.colorSpace=G.LinearSRGBColorSpace,r.texture.minFilter=G.NearestFilter,r.texture.magFilter=G.NearestFilter,r.texture.generateMipmaps=!1,r.stencilBuffer=!1,r.depthBuffer=!0,r.depthTexture=new G.DepthTexture,r.depthTexture.format=G.DepthFormat,r.depthTexture.type=G.UnsignedShortType,r}update(r,e,a){let t=e.getRenderTarget(),i=r.overrideMaterial;r.overrideMaterial=this.cullMaterial,e.setRenderTarget(this.cullTarget),e.render(r,a),r.overrideMaterial=i,e.setRenderTarget(t),e.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let n=0;n<this.cullPixels.length;n+=4){const o=G.MathUtils.clamp(this.cullPixels[n],0,255)<<16^G.MathUtils.clamp(this.cullPixels[n+1],0,255)<<8^G.MathUtils.clamp(this.cullPixels[n+2],0,255);this.cullMap[o]=!0}}hasID(r){return this.cullMap[r]}},exports.TileLoader=ln,exports.getOGC3DTilesCopyrightInfo=$n,exports.splatsFragmentShader=Yn,exports.splatsVertexShader=Xn;
516
+ }`}function To(g,A,a,e){const t=g.getX(a),i=g.getY(a),I=g.getZ(a),B=A.getX(a),r=A.getY(a),o=A.getZ(a);e.set(t,i,I,i,B,r,I,r,o)}function Oo(g,A,a){const e=g.determinant();if(Math.abs(e)<1e-12)return void a.set(0,0,0);const t=1/e,i=new f.Matrix3().copy(g);i.elements[0]=A.x,i.elements[3]=A.y,i.elements[6]=A.z;const I=new f.Matrix3().copy(g);I.elements[1]=A.x,I.elements[4]=A.y,I.elements[7]=A.z;const B=new f.Matrix3().copy(g);B.elements[2]=A.x,B.elements[5]=A.y,B.elements[8]=A.z,a.set(i.determinant()*t,I.determinant()*t,B.determinant()*t)}new f.Vector3,new f.Vector3;var wA;new f.Matrix3().set(1,0,0,0,0,1,0,-1,0),new f.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);const wa=new z.Sphere(new z.Vector3(0,0,0),1),Sa=new sa([0,0,0,1,0,0,0,1,0,0,0,1]);new z.Box3;const Oa=new z.Vector3(0,0,0),fe=new z.Vector3(0,0,0),Po=new z.Vector3(0,1,0),ng=new z.Ray,rg=new z.Matrix4;new z.Matrix4,new z.Frustum;const og=new z.Vector3,Cg=[],Oi=new z.Quaternion,ma={};function iB(){var g=[];for(let A in ma)ma.hasOwnProperty(A)&&ma[A]>0&&g.push(A);return g}class Lt extends z.Object3D{constructor(A){super();const a=this;if(a.splatsMesh=A.splatsMesh,a.oldUltraMeshSplats=A.oldUltraMeshSplats,a.iosCompatibility=A.iosCompatibility,a.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,a.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new z.Vector2(A.domWidth,A.domHeight):this.rendererSize=new z.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=lI(),A.tileLoader)this.tileLoader=A.tileLoader;else{const i={};i.meshCallback=A.meshCallback?A.meshCallback:(B,r)=>{B.material.wireframe=!1,B.material.side=z.DoubleSide},i.pointsCallback=A.pointsCallback?A.pointsCallback:(B,r)=>{B.material.size=Math.pow(r,.33),B.material.sizeAttenuation=!0},i.proxy=this.proxy,i.renderer=A.renderer,i.dracoLoader=A.dracoLoader,i.ktx2Loader=A.ktx2Loader,a.tileLoader=new uI(i);const I=this.update;this.update=B=>{I.call(a,B),a.tileLoader.update()}}if(this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new z.Color,this.color.setHex(16777215*Math.random()),this.colorID=z.MathUtils.clamp(255*a.color.r,0,255)<<16^z.MathUtils.clamp(255*a.color.g,0,255)<<8^z.MathUtils.clamp(255*a.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)a._setup(A);else if(A.url){var e=A.url;if(a.queryParams){var t="";for(let i in a.queryParams)a.queryParams.hasOwnProperty(i)&&(t+="&"+i+"="+a.queryParams[i]);e.includes("?")?e+=t:e+="?"+t.substring(1)}(a.proxy?()=>fetch(a.proxy,{method:"POST",body:e,signal:a.abortController.signal}):()=>fetch(e,{signal:a.abortController.signal}))().then(i=>{if(!i.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${i.status} : ${i.statusText}`);i.json().then(I=>mt(I,e)).then(I=>{a._setup({rootPath:Za.dirname(A.url),json:I})})}).catch(i=>{a.displayErrors&&Pi(i)})}}setClipShape(A){if(A instanceof sa||A instanceof z.Sphere)this.clipShape=A;else if(A instanceof z.Box3){const a=new z.Vector3,e=new z.Vector3;A.getCenter(a),A.getSize(e).multiplyScalar(.5),this.clipShape=new sa([a.x,a.y,a.z,e.x,0,0,0,e.y,0,0,0,e.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(a=>{a._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,a){this.rendererSize.set(A,a)}async _setup(A){const a=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(a.oldUltraMeshSplats=!0),A.json.root?(a.json=A.json.root,a.json.refine||(a.json.refine=A.json.refine),a.json.geometricError||(a.json.geometricError=A.json.geometricError),a.json.transform||(a.json.transform=A.json.transform),a.json.boundingVolume||(a.json.boundingVolume=A.json.boundingVolume)):a.json=A.json,a.json.children||(a.json.getChildren?a.json.children=await a.json.getChildren():a.json.children=[]),a.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,a.json.refine?a.refine=a.json.refine:a.refine=A.parentRefine,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=A.parentGeometricError,a.json.transform){let t=new z.Matrix4;t.elements=a.json.transform,a.applyMatrix4(t)}if(a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new sa(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const t=a.json.boundingVolume.region;a._transformWGS84ToCartesian(t[0],t[1],t[4],Oa),a._transformWGS84ToCartesian(t[2],t[3],t[5],fe),Oa.lerp(fe,.5),a.boundingVolume=new z.Sphere(new z.Vector3(Oa.x,Oa.y,Oa.z),Oa.distanceTo(fe))}else if(a.json.boundingVolume.sphere){const t=a.json.boundingVolume.sphere;a.boundingVolume=new z.Sphere(new z.Vector3(t[0],t[1],t[2]),t[3])}else a.boundingVolume=A.parentBoundingVolume;else a.boundingVolume=A.parentBoundingVolume;function e(t){t.uri&&t.uri.includes("json")||t.url&&t.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(e(a.json.content),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0)),a._load()):a.json.contents&&(a.json.contents.forEach(t=>e(t)),a.hasMeshContent==0&&(a.level=Math.max(0,a.parentTile?a.parentTile.level+.01:0))),a.centerModel&&(fe.copy(a.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Oa),Oi.setFromUnitVectors(Oa.normalize(),Po.normalize()),a.applyQuaternion(Oi)),fe.applyMatrix4(a.matrix),a.position.sub(fe),a.updateMatrices()),a.onLoadCallback&&a.onLoadCallback(a),a.isSetup=!0,a.level>0&&a.drawBoundingVolume)if(a.bbox&&console.log("double setup"),this.boundingVolume.aabb){let t=this.boundingVolume.aabb.clone();t.applyMatrix4(this.matrixWorld),a.bbox=new z.Box3Helper(t,new z.Color(Math.random(),Math.random(),Math.random())),a.add(a.bbox),a.bbox.material.visible=!1}else a.boundingVolume instanceof sa&&(a.bbox=a.boundingVolume.helper(),a.add(a.bbox),a.bbox.material.visible=!1)}_assembleURL(A,a){A.endsWith("/")||(A+="/");const e=new URL(A);let t=e.pathname.split("/").filter(I=>I!==""),i=a.split("/").filter(I=>I!=="");for(let I=1;I<=t.length&&!(I>=i.length);I++)if(t.slice(t.length-I,t.length).join("/")===i.slice(0,I).join("/")){for(let B=0;B<I;B++)t.pop();break}for(;i.length>0&&i[0]==="..";)t.pop(),i.shift();return`${e.protocol}//${e.host}/${[...t,...i].join("/")}`}_extractQueryParams(A,a){const e=new URL(A);for(let[t,i]of e.searchParams)a[t]=i;return e.search="",e.toString()}async _load(A=!0,a=!0){var e=this;if(!e.deleted){if(e.json.content)await t(e.json.content,null,A,a);else if(e.json.contents){let i=e.json.contents.map((I,B)=>t(I,B,A,a));Promise.all(i)}}async function t(i,I,B,r){let o;i.uri?o=i.uri:i.url&&(o=i.url);const n=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(n.test(e.rootPath)?n.test(o)||(o=e._assembleURL(e.rootPath,o)):Za.isAbsolute(e.rootPath)&&(o=e.rootPath+Za.sep+o),o=e._extractQueryParams(o,e.queryParams),e.queryParams){var C="";for(let Q in e.queryParams)e.queryParams.hasOwnProperty(Q)&&(C+="&"+Q+"="+e.queryParams[Q]);o.includes("?")?o+=C:o+="?"+C.substring(1)}if(o)if(e.contentURL.push(o),r&&(o.includes(".b3dm")||o.includes(".glb")||o.includes(".gltf")))try{e.tileLoader.get(e.abortController,e.uuid,o,Q=>{if(!e.deleted)return Q.asset&&Q.asset.copyright&&(Q.asset.copyright.split(";").forEach(E=>{ma[E]?ma[E]++:ma[E]=1}),e.displayCopyright&&rt()),Q.isSplatsData&&(e.splatsMesh||(e.splatsMesh=new eB(e.tileLoader.renderer),e.splatsMesh.setQuality(e.splatsQuality),e.splatsMesh.setSplatsCPUCulling(e.splatsCPUCulling),e.splatsMesh.setSplatsCropRadius(e.splatsCropRadius),e.splatsMesh.setSplatsSizeMultiplier(e.splatsSizeMultiplier),e.static&&(e.splatsMesh.matrixWorldAutoUpdate=!1),e.add(e.splatsMesh),e.updateMatrices()),Q=e.splatsMesh.addSplatsTile(Q.positions,Q.colors,Q.cov0,Q.cov1)),Q.isSplatsBatch||(Q.traverse(E=>{if((E.isMesh||E.isPoints)&&E.layers.disable(0),E.isMesh&&e.occlusionCullingService){const s=E.geometry.attributes.position,c=[];for(let d=0;d<s.count;d++)c.push(e.color.r,e.color.g,e.color.b);E.geometry.setAttribute("color",new z.Float32BufferAttribute(c,3))}}),e.add(Q),e.updateMatrices()),e.meshContent.push(Q),Q},e.cameraOnLoad?()=>e.loadingStrategy=="IMMEDIATE"?e._calculateDistanceToCamera(e.cameraOnLoad):e.loadingStrategy=="INCREMENTAL"?e.parentTile?e.parentTile._calculateDistanceToCamera(e.cameraOnLoad)/Math.max(1,e.parentTile.level):e._calculateDistanceToCamera(e.cameraOnLoad)/Math.max(1,e.level):e.loadingStrategy=="PERLEVEL"?e.parentTile?e.level+e.parentTile._calculateDistanceToCamera(e.cameraOnLoad):e.level+e._calculateDistanceToCamera(e.cameraOnLoad):0:()=>0,()=>e._getSiblings(),e.level,e.loadingStrategy,!e.json.boundingVolume.region,!!e.json.boundingVolume.region,e.geometricError,e.oldUltraMeshSplats)}catch(Q){e.displayErrors&&Pi(Q)}else B&&o.includes(".json")&&(e.jsonRequested=o,e.tileLoader.get(e.abortController,e.uuid,o,async Q=>{e.jsonReceived=!0,e.deleted||(Q.rootPath=Za.dirname(o),e.json.children.push(Q),I==null?delete e.json.content:e.json.contents.splice(I,1),e.hasUnloadedJSONContent--)}))}}dispose(){const A=this;A.meshContent.forEach(a=>{a&&a.asset&&a.asset.copyright&&(a.asset.copyright.split(";").forEach(e=>{ma[e]&&ma[e]--}),A.displayCopyright&&rt())}),A.childrenTiles.forEach(a=>a.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(a=>a.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(a=>{A.tileLoader.invalidate(a,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let a=A.meshContent.length-1;a>=0;a--){const e=A.meshContent[a];e&&e.asset&&e.asset.copyright&&(e.asset.copyright.split(";").forEach(t=>{ma[t]&&ma[t]--}),A.displayCopyright&&rt()),A.remove(e)}A.splatsMesh&&A.meshContent.forEach(a=>a.hide()),A.meshContent=[],A.contentURL.forEach(a=>{A.tileLoader.invalidate(a,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(a=>{a.dispose(),A.remove(a)}),A.childrenTiles=[]}raycast(A,a){if(this.splatsMesh){ng.copy(A.ray),rg.copy(this.matrixWorld).invert(),ng.applyMatrix4(rg);let e=!1;if(this.boundingVolume instanceof sa)e=this.boundingVolume.intersectsRay(ng);else{if(!(this.boundingVolume instanceof z.Sphere))return!1;e=ray.intersectsSphere(this.boundingVolume)}return e&&this.materialVisibility&&this.splatsReady&&(Cg.length=0,this.meshContent.forEach(t=>{t.isSplatsBatch&&(t.raycast(ng,Cg,A.params.Points.threshold),Cg.forEach(i=>{i.point.applyMatrix4(this.matrixWorld)}),a.push(...Cg))})),e}return super.raycast(A,a)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const a=new z.Frustum;a.setFromProjectionMatrix(new z.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let e=[0],t=[0],i=[0],I=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,a),this._statsImmediate(i,e,I,t)):(this._update(A,a),this._stats(i,e,I,t)):(this._update(A,a),this._stats(i,e,I,t)),e>0&&(I[0]/=e[0]),this.splatsMesh)if(og.copy(A.position),rg.copy(this.matrixWorld).invert(),og.applyMatrix4(rg),this.splatsCPUCulling){const B=new z.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(og,B)}else this.splatsMesh.sort(og);return{numTilesLoaded:e[0],numTilesRendered:t[0],maxLOD:i[0],percentageLoaded:I[0]}}_updateImmediate(A,a){this._computeMetricRecursive(A,a),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,a,e,t){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(a[0]++,this.materialVisibility&&e[0]++),this.materialVisibility&&t[0]++,this.childrenTiles.forEach(i=>{i._statsImmediate(A,a,e,t)})}_stats(A,a,e,t){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(a[0]++,this.meshContent.length==this.hasMeshContent&&e[0]++,this.materialVisibility&&t[0]++),this.childrenTiles.forEach(i=>{i._stats(A,a,e,t)})}_trimTreeImmediate(){if(this.metric!=null)if(this.hasMeshContent&&this.shouldBeVisible&&this.materialVisibility){if(self.splatsMesh&&!self.splatsReady)return;this._disposeChildren()}else this.childrenTiles.forEach(A=>{A._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const a=this;if(a.hasMeshContent)if(a.shouldBeVisible)a.meshContent.length==a.hasMeshContent?a.materialVisibility?a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(!0)}):(a._changeContentVisibility(!0),a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)})):a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else{if(!a.loadOutsideView&&a.metric<0)return a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),void a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(!0)});if(!a.materialVisibility||a.splatsMesh&&!a.splatsReady)a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else if(A)a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)});else{let e=!0;a.childrenTiles.every(t=>!!t._isReadyImmediate()||(e=!1,!1)),e&&a.childrenTiles.length>0?(a._changeContentVisibility(!1),a.meshContent.length>0&&a._disposeMeshContent(),a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(A)})):a.childrenTiles.forEach(t=>{t._updateNodeVisibilityImmediate(!a.splatsMesh||!!a.splatsReady)})}}else a.childrenTiles.forEach(e=>{e._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(a=>{a._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(a=>{a.shouldBeVisible=!0,a._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(a=>{a._loadMeshImmediate()})}_computeMetricRecursive(A,a){const e=this;e.metric=-1,e.isSetup&&(e.boundingVolume&&e.geometricError&&(e.metric=e._calculateUpdateMetric(A,a)),e.childrenTiles.forEach(t=>t._computeMetricRecursive(A,a)))}_expandTreeImmediate(A){const a=this;a.hasUnloadedJSONContent||(a.hasMeshContent?a.occlusionCullingService&&a.hasMeshContent&&!a.occlusionCullingService.hasID(a.colorID)||a.metric>=0&&a.metric<a.geometricErrorMultiplier*a.geometricError&&a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(A):a.json&&a.json.children&&a.childrenTiles.length<a.json.children.length&&a._loadJsonChildren(A)),a.childrenTiles.forEach(e=>e._expandTreeImmediate(A))}_update(A,a){const e=this;if(!e.isSetup)return;const t=e.materialVisibility;e.boundingVolume&&e.geometricError&&(e.metric=e._calculateUpdateMetric(A,a)),e.childrenTiles.forEach(i=>i._update(A,a)),function(i){if(i<0)return e.inFrustum=!1,void e._changeContentVisibility(!!e.loadOutsideView);if(e.inFrustum=!0,!!e.hasMeshContent&&!(e.meshContent.length<e.hasMeshContent)){if(e.childrenTiles.length==0)return void e._changeContentVisibility(!0);if(i>=e.geometricErrorMultiplier*e.geometricError)e._changeContentVisibility(!0);else if(i<e.geometricErrorMultiplier*e.geometricError&&e.refine=="REPLACE"){let I=!0;e.childrenTiles.every(B=>!!B._isReady()||(I=!1,!1)),I?e._changeContentVisibility(!1):e._changeContentVisibility(!0)}}}(e.metric),function(i){i<0&&e.hasMeshContent||e.occlusionCullingService&&e.hasMeshContent&&!e.occlusionCullingService.hasID(e.colorID)||(!e.hasMeshContent||i<=e.geometricErrorMultiplier*e.geometricError&&(e.meshContent.length>0||e.splatsMesh))&&e.json&&e.json.children&&e.childrenTiles.length!=e.json.children.length&&e._loadJsonChildren(A)}(e.metric),function(i,I){if(e.hasMeshContent){if(!e.inFrustum)return void e._disposeChildren();if(e.occlusionCullingService&&!I&&e.hasMeshContent&&e.meshContent.length>0&&e.materialVisibility&&e._areAllChildrenLoadedAndHidden())return e.splatsMesh&&this.materialVisibility&&!e.splatsReady?void 0:void e._disposeChildren();if(i>=e.geometricErrorMultiplier*e.geometricError){if(e.splatsMesh&&e.materialVisibility&&!e.splatsReady)return;e._disposeChildren()}}}(e.metric,t)}_loadJsonChildren(A){const a=this;for(let e=a.json.children.length-1;e>=0;e--)a.json.children[e].root||a.json.children[e].children||a.json.children[e].getChildren||a.json.children[e].content||a.json.children[e].contents||a.json.children.splice(e,1);a.json.children.forEach(e=>{let t=new Lt({parentTile:a,queryParams:a.queryParams,parentGeometricError:a.geometricError,parentBoundingVolume:a.boundingVolume,parentRefine:a.refine,json:e,rootPath:a.rootPath,geometricErrorMultiplier:a.geometricErrorMultiplier,loadOutsideView:a.loadOutsideView,level:Math.floor(a.level)+1,tileLoader:a.tileLoader,cameraOnLoad:A,occlusionCullingService:a.occlusionCullingService,renderer:a.renderer,static:a.static,centerModel:!1,displayErrors:a.displayErrors,displayCopyright:a.displayCopyright,distanceBias:a.distanceBias,loadingStrategy:a.loadingStrategy,drawBoundingVolume:a.drawBoundingVolume,splatsMesh:a.splatsMesh,clipShape:a.clipShape,oldUltraMeshSplats:a.oldUltraMeshSplats});a.childrenTiles.push(t),a.add(t)}),a.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const a=this;return this.childrenTiles.every(e=>{if(e.hasMeshContent){if(e.childrenTiles.length>0)return A=!1,!1;if(!e.metric<0)return!0;if(e.materialVisibility&&(!a.splatsMesh||a.splatsReady)||a.occlusionCullingService.hasID(e.colorID))return A=!1,!1}else if(!e._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(a=>!!a._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(a=>!!a._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const a=this;if(a.bbox&&(a.bbox.material.visible=A),a.splatsMesh)A!=a.materialVisibility&&(a.meshContent.forEach(e=>{A&&e.isSplatsBatch?e.show(()=>{a.materialVisibility&&(a.splatsReady=!0)}):(e.hide(),a.splatsReady=!1)}),a.materialVisibility=A);else{if(a.hasMeshContent&&a.meshContent.length>0&&(A?a.meshContent.forEach(e=>{e.traverse(t=>{(t.isMesh||t.isPoints)&&t.layers.enable(0)})}):a.meshContent.forEach(e=>{e.traverse(t=>{(t.isMesh||t.isPoints)&&t.layers.disable(0)})})),a.materialVisibility==A)return;a.materialVisibility=A}}_calculateUpdateMetric(A,a){let e=0;if(this.boundingVolume instanceof sa){if(Sa.copy(this.boundingVolume),Sa.applyMatrix4(this.matrixWorld),!Sa.inFrustum(a))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!Sa.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!Sa.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;e=Math.max(0,Sa.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof z.Sphere))return console.error("unsupported shape"),-1;if(wa.copy(this.boundingVolume),wa.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(wa)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(wa)))return Number.MAX_VALUE;if(!a.intersectsSphere(wa))return-1;e=Math.max(0,A.position.distanceTo(wa.center)-wa.radius-A.near)}if(e=Math.pow(e,this.distanceBias),e==0)return 0;const t=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let i=this.rendererSize.y,I=A.fov;return A.aspect<1&&(I*=A.aspect,i=this.rendererSize.x),16*(2*Math.tan(.5*I*.017453292519943295)*e)/(i*t)}_getSiblings(){const A=this,a=[];if(!A.parentTile)return a;let e=A.parentTile;for(;!e.hasMeshContent&&e.parentTile;)e=e.parentTile;return e.childrenTiles.forEach(t=>{if(t&&t!=A){for(;!t.hasMeshContent&&t.childrenTiles[0];)t=t.childrenTiles[0];a.push(t)}}),a}_calculateDistanceToCamera(A){return this.boundingVolume instanceof sa?(Sa.copy(this.boundingVolume),Sa.applyMatrix4(this.matrixWorld),Math.max(0,Sa.distanceToPoint(A.position))):this.boundingVolume instanceof z.Sphere?(wa.copy(this.boundingVolume),wa.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(wa.center)-wa.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(a=>a.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(a=>a.setDistanceBias(A))}_transformWGS84ToCartesian(A,a,e,t){const i=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),I=Math.cos(a),B=Math.cos(A),r=Math.sin(a),o=i+e,n=o*I*B,C=o*I*Math.sin(A),Q=(.993305615557957*i+e)*r;t.set(n,C,Q)}hideCopyright(){(function(){wA||((wA=document.createElement("div")).style.position="fixed",wA.style.bottom="20px",wA.style.left="20px",wA.style.color="white",wA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",wA.style.padding="10px",wA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(wA)),wA.style.opacity=0})()}showCopyright(){(function(){wA||((wA=document.createElement("div")).style.position="fixed",wA.style.bottom="20px",wA.style.left="20px",wA.style.color="white",wA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",wA.style.padding="10px",wA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(wA)),wA.style.opacity=1})()}}function Pi(g){var A=document.createElement("div");A.textContent=g,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function rt(){wA||((wA=document.createElement("div")).style.position="fixed",wA.style.bottom="20px",wA.style.left="20px",wA.style.color="white",wA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",wA.style.padding="10px",wA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(wA));const g=iB();let A="";g.forEach(a=>{A+=a+", "}),A=A.slice(0,-2),wA.textContent=A}const Ia=new z.Sphere(new z.Vector3(0,0,0),1),Pa=new z.Vector3(0,0,0),ot=new z.Vector3(0,0,0),zo=new z.Vector3(0,1,0),Ct=new z.Vector2,zi=new z.Quaternion,Wi=new z.Matrix4;class Jt extends z.Object3D{constructor(A){super();const a=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=lI(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),a.setup(A);else if(A.url){this.loadJson=(i,I)=>{const B=Za.dirname(I);a.setup({rootPath:B,json:i,onLoadCallback:A.onLoadCallback})};var e=A.url;if(a.queryParams){var t="";for(let i in a.queryParams)a.queryParams.hasOwnProperty(i)&&(t+="&"+i+"="+a.queryParams[i]);e.includes("?")?e+=t:e+="?"+t.substring(1)}a.tileLoader.get(a.abortController,e,a.uuid,a)}}async setup(A){const a=this;A.json.root?(a.json=A.json.root,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren()),a.jsonChildren=a.json.children,a.json.refinement||(a.json.refinement=A.json.refinement),a.json.geometricError||(a.json.geometricError=A.json.geometricError),a.json.transform||(a.json.transform=A.json.transform),a.json.boundingVolume||(a.json.boundingVolume=A.json.boundingVolume)):(a.json=A.json,!a.json.children&&a.json.getChildren&&(a.json.children=await a.json.getChildren(),a.jsonChildren=a.json.children)),a.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,a.json.refinement?a.refinement=a.json.refinement:a.refinement=A.parentRefinement,a.json.geometricError?a.geometricError=a.json.geometricError:a.geometricError=A.parentGeometricError;let e=new z.Matrix4;if(a.json.transform&&!a.centerModel&&(e.elements=a.json.transform),a.applyMatrix4(e),a.parentTile&&a.parentTile.matrix&&(a.matrix.premultiply(a.parentTile.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale)),a.matrixWorldNeedsUpdate=!0,a.updateWorldMatrix(!0,!0),a.json.boundingVolume)if(a.json.boundingVolume.box)a.boundingVolume=new sa(a.json.boundingVolume.box);else if(a.json.boundingVolume.region){const i=a.json.boundingVolume.region;a.transformWGS84ToCartesian(i[0],i[1],i[4],Pa),a.transformWGS84ToCartesian(i[2],i[3],i[5],ot),Pa.lerp(ot,.5),a.boundingVolume=new z.Sphere(new z.Vector3(Pa.x,Pa.y,Pa.z),Pa.distanceTo(ot))}else if(a.json.boundingVolume.sphere){const i=a.json.boundingVolume.sphere;a.boundingVolume=new z.Sphere(new z.Vector3(i[0],i[1],i[2]),i[3])}else a.boundingVolume=A.parentBoundingVolume;else a.boundingVolume=A.parentBoundingVolume;function t(i){i.uri&&i.uri.includes("json")||i.url&&i.url.includes("json")?a.hasUnloadedJSONContent++:a.hasMeshContent++}if(a.json.content?(t(a.json.content),a.load()):a.json.contents&&(a.json.contents.forEach(i=>t(i)),a.load()),a.centerModel){const i=new z.Sphere;a.boundingVolume instanceof sa?i.copy(a.boundingVolume.sphere):a.boundingVolume instanceof z.Sphere&&i.copy(a.boundingVolume),this.json.boundingVolume.region&&(a.transformWGS84ToCartesian(.5*(a.json.boundingVolume.region[0]+a.json.boundingVolume.region[2]),.5*(a.json.boundingVolume.region[1]+a.json.boundingVolume.region[3]),.5*(a.json.boundingVolume.region[4]+a.json.boundingVolume.region[5]),Pa),zi.setFromUnitVectors(Pa.normalize(),zo.normalize()),a.master.applyQuaternion(zi),a.master.updateWorldMatrix(!1,!1)),Wi.makeTranslation(-i.center.x*a.scale.x,-i.center.y*a.scale.y,-i.center.z*a.scale.z),a.master.matrix.multiply(Wi),a.master.matrix.decompose(a.master.position,a.master.quaternion,a.master.scale)}a.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(a)}isAbsolutePathOrURL(A){const a=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),e=A.startsWith("/")&&!A.startsWith("//");return a||e}assembleURL(A,a){A.endsWith("/")||(A+="/");const e=new URL(A);let t=e.pathname.split("/").filter(I=>I!==""),i=a.split("/").filter(I=>I!=="");for(let I=1;I<=t.length&&!(I>=i.length);I++)if(t.slice(t.length-I,t.length).join("/")===i.slice(0,I).join("/")){for(let B=0;B<I;B++)t.pop();break}for(;i.length>0&&i[0]==="..";)t.pop(),i.shift();return`${e.protocol}//${e.host}/${[...t,...i].join("/")}`}extractQueryParams(A,a){const e=new URL(A);for(let[t,i]of e.searchParams)a[t]=i;return e.search="",e.toString()}load(){var A=this;function a(e){let t;e.uri?t=e.uri:e.url&&(t=e.url);const i=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(i.test(A.rootPath)?i.test(t)||(t=A.assembleURL(A.rootPath,t)):Za.isAbsolute(A.rootPath)&&(t=A.rootPath+Za.sep+t),t=A.extractQueryParams(t,A.queryParams),A.queryParams){var I="";for(let B in A.queryParams)A.queryParams.hasOwnProperty(B)&&(I+="&"+B+"="+A.queryParams[B]);t.includes("?")?t+=I:t+="?"+I.substring(1)}t&&(t.includes(".b3dm")||t.includes(".glb")||t.includes(".gltf")?(A.contentURL=t,A.tileLoader.get(A.abortController,t,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):t.includes(".json")&&A.tileLoader.get(A.abortController,t,A.uuid,A))}A.deleted||(A.json.content?a(A.json.content):A.json.contents&&A.json.contents.forEach(e=>a(e)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,a){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=Za.dirname(a),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(a=>a.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,a){const e=this;function t(i){if(e.hasMeshContent&&!(e.meshContent.size<e.hasMeshContent)){if(i<0)return e.inFrustum=!1,void e.changeContentVisibility(!!e.loadOutsideView);if(e.inFrustum=!0,e.childrenTiles.length!=0){if(i>=e.master.geometricErrorMultiplier*e.geometricError)e.changeContentVisibility(!0);else if(i<e.master.geometricErrorMultiplier*e.geometricError){let I=!0;e.childrenTiles.every(B=>!!B.isReady()||(I=!1,!1)),I&&e.changeContentVisibility(!1)}}else e.changeContentVisibility(!0)}}e.isSetup&&(e.materialVisibility,e.boundingVolume&&e.geometricError&&(e.metric=e.calculateUpdateMetric(A,a)),e.childrenTiles.forEach(i=>i._update(A,a)),t(e.metric),function(i){i<0&&e.hasMeshContent||(!e.hasMeshContent&&e.rootPath||i<e.master.geometricErrorMultiplier*e.geometricError&&e.meshContent.size>0)&&e.json&&e.jsonChildren&&e.childrenTiles.length!=e.jsonChildren.length&&e.jsonChildren.forEach(I=>{if(!(I.root||I.children||I.getChildren||I.content||I.contents))return;let B=new Jt({parentTile:e,queryParams:e.queryParams,parentGeometricError:e.geometricError,parentBoundingVolume:e.boundingVolume,parentRefinement:e.refinement,json:I,rootPath:e.rootPath,loadOutsideView:e.loadOutsideView,level:e.level+1,tileLoader:e.tileLoader,cameraOnLoad:A,master:e.master,centerModel:!1});e.childrenTiles.push(B)})}(e.metric),function(i){if(e.hasMeshContent){if(!e.inFrustum)return e.disposeChildren(),void t(i);i>=e.master.geometricErrorMultiplier*e.geometricError&&(e.disposeChildren(),t(i))}}(e.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(a=>{if(a.hasMeshContent){if(a.childrenTiles.length>0)return A=!1,!1;if(!a.inFrustum)return!0;if(!a.materialVisibility||a.meshesToDisplay!=a.meshesDisplayed)return A=!1,!1}else if(!a.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(a=>!!a.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,a){if(this.boundingVolume instanceof sa){if(Ia.copy(this.boundingVolume.sphere),Ia.applyMatrix4(this.matrixWorld),!a.intersectsSphere(Ia))return-1}else{if(!(this.boundingVolume instanceof z.Sphere))return console.error("unsupported shape"),-1;if(Ia.copy(this.boundingVolume),Ia.applyMatrix4(this.matrixWorld),!a.intersectsSphere(Ia))return-1}let e=Math.max(0,A.position.distanceTo(Ia.center)-Ia.radius);if(e=Math.pow(e,this.distanceBias),e==0)return 0;const t=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(Ct);let i=Ct.y,I=A.fov;A.aspect<1&&(I*=A.aspect,i=Ct.x);let B=2*Math.tan(.5*I*.017453292519943295)*e;return 16*window.devicePixelRatio*B/(i*t)}getSiblings(){const A=this,a=[];if(!A.parentTile)return a;let e=A.parentTile;for(;!e.hasMeshContent&&e.parentTile;)e=e.parentTile;return e.childrenTiles.forEach(t=>{if(t&&t!=A){for(;!t.hasMeshContent&&t.childrenTiles[0];)t=t.childrenTiles[0];a.push(t)}}),a}calculateDistanceToCamera(A){return this.boundingVolume instanceof sa?(Ia.copy(this.boundingVolume.sphere),Ia.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof z.Sphere?(Ia.copy(this.boundingVolume),Ia.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(Ia.center)-Ia.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,a,e,t){const i=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(a),2)),I=Math.cos(a),B=Math.cos(A),r=Math.sin(a),o=i+e,n=o*I*B,C=o*I*Math.sin(A),Q=(.993305615557957*i+e)*r;t.set(n,C,Q)}}class Wo extends z.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new z.Vector2(A.domWidth,A.domHeight):this.rendererSize=new z.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new Jt(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,a){this.rendererSize.set(A,a)}update(A,a){if(a)this.tileset._update(A,a);else{const e=new z.Frustum;e.setFromProjectionMatrix(new z.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,e)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class Vo{constructor(A){const a=this;a.scene=A,a.instancedTiles=[],a.instancedMesh,a.reuseableMatrix=new z.Matrix4}addInstance(A){const a=this;A.added=!0,A.listOMesh=a.instancedTiles,a.instancedTiles.push(A),a.instancedMesh&&A.loadMesh(a.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new z.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const a=this;a.instancedMesh=A,a.instancedMesh.matrixAutoUpdate=!1,a.instancedMesh.matrixWorldAutoUpdate=!1,a.scene.children.includes(A)||this.addToScene();for(let e=0;e<a.instancedTiles.length;e++)a.instancedTiles[e].loadMesh(a.instancedMesh)}update(){const A=this;for(let a=A.instancedTiles.length-1;a>=0;a--)A.instancedTiles[a].deleted&&A.instancedTiles.splice(a,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let a=0;a<A.instancedTiles.length;a++)A.instancedTiles[a].meshContent.add(A.instancedMesh),A.instancedTiles[a].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[a].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[a]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(a=>{if(a.dispose&&a.dispose(),a.material)if(a.material.length)for(let e=0;e<a.material.length;++e)a.material[e].dispose();else a.material.dispose();a.geometry&&a.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class Xo{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,a){const e=this;e.json=A,e.url=a;for(let t=0;t<e.instancedTiles.length;t++)e.instancedTiles[t].loadJson(e.json,e.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let a=A.instancedTiles.length-1;a>=0;a--)A.instancedTiles[a].deleted&&A.instancedTiles.splice(a,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let ie=0;async function Zo(g){return new Promise(A=>{const a=setInterval(()=>{g.hasDracoLoader&&!g.dracoLoader||g.hasKTX2Loader&&!g.ktx2Loader||(clearInterval(a),A())},10)})}exports.InstancedOGC3DTile=Wo,exports.InstancedTileLoader=class{constructor(g,A){if(this.zUpToYUpMatrix=new z.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new _i,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const a=new aI;a.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(a),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const a=new ca;a.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(a),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(bI),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new Zi(this.gltfLoader),this.cache=new Vi,this.scene=g,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const g=this;g._checkSize(),g.cache._data.forEach(A=>{A.update()}),ie<8&&g._download(),g._loadBatch()}_download(){const g=this;if(g.nextDownloads.length!=0||(g._getNextDownloads(),g.nextDownloads.length!=0))for(;g.nextDownloads.length>0;){const a=g.nextDownloads.shift();if(a){if(a.path.includes(".b3dm")&&(A=g.proxy?()=>fetch(g.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ie++,A().then(e=>{if(!e.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${e.status} : ${e.statusText}`);return e.arrayBuffer()}).then(e=>this.b3dmDecoder.parseB3DMInstanced(e,t=>{g.meshCallback(t,a.geometricError)},g.maxInstances,a.sceneZupToYup,a.meshZupToYup)).then(e=>{e.frustumCulled=!1,a.tile.setObject(e),g.ready.unshift(a)}).catch(e=>console.error(e)).finally(()=>{ie--})),a.path.includes(".glb")||a.path.includes(".gltf"))A=g.proxy?()=>fetch(g.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ie++,A().then(e=>{if(!e.ok)throw new Error("missing content");return e.arrayBuffer()}).then(async e=>{await Zo(this.gltfLoader),this.gltfLoader.parse(e,null,t=>{let i;t.scene.asset=t.asset,a.sceneZupToYup&&t.scene.applyMatrix4(this.zUpToYUpMatrix),t.scene.traverse(I=>{I.geometricError=a.geometricError,I.isMesh&&(a.meshZupToYup&&I.applyMatrix4(this.zUpToYUpMatrix),g.meshCallback&&g.meshCallback(I,I.geometricError)),I.isPoints&&console.error("instanced point cloud is not supported")}),t.scene.updateWorldMatrix(!1,!0),t.scene.traverse(I=>{I.isMesh&&(i=new z.InstancedMesh(I.geometry,I.material,g.maxInstances),i.baseMatrix=I.matrixWorld)}),g.ready.unshift(a),i?(i.frustumCulled=!1,a.tile.setObject(i)):t.scene.traverse(I=>{I.dispose&&I.dispose(),I.material&&I.material.dispose()})})},e=>{console.error("could not load tile : "+a.path)}).finally(()=>{ie--});else if(a.path.includes(".json")){var A;A=g.proxy?()=>fetch(g.proxy,{method:"POST",body:a.path}):()=>fetch(a.path),ie++,A().then(e=>{if(!e.ok)throw console.error("could not load tile with path : "+a.path),new Error(`couldn't load "${a.path}". Request failed with status ${e.status} : ${e.statusText}`);return e.json()}).then(e=>mt(e,a.path)).then(e=>{a.tile.setObject(e,a.path),g.ready.unshift(a)}).catch(e=>console.error(e)).finally(()=>{ie--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let g=Number.MAX_VALUE,A=-1;for(let a=this.ready.length-1;a>=0;a--)this.ready[a].distanceFunction||this.nextReady.push(this.ready.splice(a,1)[0]);if(!(this.nextReady.length>0)){for(let a=this.ready.length-1;a>=0;a--){const e=this.ready[a].distanceFunction()*this.ready[a].level;e<g&&(g=e,A=a)}if(A>=0){const a=this.ready.splice(A,1).pop();this.nextReady.push(a);const e=a.getSiblings();for(let t=this.ready.length-1;t>=0;t--)e.includes(this.ready[t].uuid)&&this.nextready.push(this.ready.splice(t,1).pop())}}}get(g,A,a,e,t,i,I,B,r,o){const n=this,C=function(E){for(var s=E.split("/"),c=[],d=0,b=0;b<s.length;b++){var h=s[b];h!=="."&&h!==""&&h!==".."?c[d++]=h:h===".."&&d>0&&d--}if(d===0)return"/";var l="";for(b=0;b<d;b++)l+="/"+c[b];return l}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const Q=n.cache.get(C);if(Q)Q.addInstance(e);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const E=new Vo(n.scene);E.addInstance(e),n.cache.put(C,E);const s=new AbortController;g.signal.addEventListener("abort",()=>{E.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:E,key:C,path:A,distanceFunction:t,getSiblings:i,level:I,uuid:a,sceneZupToYup:B,meshZupToYup:r,geometricError:o,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const E=new Xo;E.addInstance(e),n.cache.put(C,E);const s=new AbortController;g.signal.addEventListener("abort",()=>{E.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:E,key:C,path:A,distanceFunction:t,getSiblings:i,level:I,shouldDoDownload:()=>!0})}}_getNextDownloads(){let g=Number.MAX_VALUE,A=-1;for(let a=this.downloads.length-1;a>=0;a--){const e=this.downloads[a];e.shouldDoDownload()?e.distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1)}if(!(this.nextDownloads.length>0)){for(let a=this.downloads.length-1;a>=0;a--){const e=this.downloads[a],t=e.distanceFunction()*e.level;t<g&&(g=t,A=a)}if(A>=0){const a=this.downloads.splice(A,1).pop();this.nextDownloads.push(a);const e=a.getSiblings();for(let t=this.downloads.length-1;t>=0;t--)e.includes(this.downloads[t].uuid)&&this.nextDownloads.push(this.downloads.splice(t,1).pop())}}}_checkSize(){const g=this;let A=0;for(;g.cache.size()>g.maxCachedItems&&A<g.cache.size();){A++;const a=g.cache.head();g.cache.remove(a.key),a.value.dispose()||g.cache.put(a.key,a.value)}}},exports.OBB=sa,exports.OGC3DTile=Lt,exports.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new z.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=z.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(g){this.cullMaterial.side=g}_createCullTarget(){const g=new z.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return g.texture.format=z.RGBAFormat,g.texture.colorSpace=z.LinearSRGBColorSpace,g.texture.minFilter=z.NearestFilter,g.texture.magFilter=z.NearestFilter,g.texture.generateMipmaps=!1,g.stencilBuffer=!1,g.depthBuffer=!0,g.depthTexture=new z.DepthTexture,g.depthTexture.format=z.DepthFormat,g.depthTexture.type=z.UnsignedShortType,g}update(g,A,a){let e=A.getRenderTarget(),t=g.overrideMaterial;g.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(g,a),g.overrideMaterial=t,A.setRenderTarget(e),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let i=0;i<this.cullPixels.length;i+=4){const I=z.MathUtils.clamp(this.cullPixels[i],0,255)<<16^z.MathUtils.clamp(this.cullPixels[i+1],0,255)<<8^z.MathUtils.clamp(this.cullPixels[i+2],0,255);this.cullMap[I]=!0}}hasID(g){return this.cullMap[g]}},exports.SplatsMesh=eB,exports.TileLoader=uI,exports.getOGC3DTilesCopyrightInfo=iB,exports.splatsFragmentShader=tB,exports.splatsVertexShader=gB;
563
517
  //# sourceMappingURL=threedtiles.cjs.js.map