13 lines
1.9 MiB
13 lines
1.9 MiB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VgoMap=e()}(this,function(){"use strict";var __defProp=Object.defineProperty,__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__publicField=(t,e,n)=>__defNormalProp(t,"symbol"!=typeof e?e+"":e,n),_a2,_b2,_c,_d,_e2,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q2,_r,_s,_t2,_u,_v,_w,_x2,_y2,_z2,_A,_B,_C,_D,_E,_F,_G,_H,_I,_J,_K,_L,_M,_N,_O,_P,_Q,_R,_S,_T,_U,_V,_W,_X,_Y,_Z,__,_$,_aa,_ba,_ca,_da,_ea,_fa,_ga,_ha,_ia,_ja,_ka,_la,_ma,_na,_oa,_pa,_qa,_ra,_sa,_ta,_ua,_va,_wa,_xa,_ya,_za,_Aa,_Ba,_Ca,_Da,_Ea,_Fa,_Ga,_Ha,_Ia,_Ja,_Ka,_La,_Ma,_Na,_Oa,_Pa,_Qa,_Ra,_Sa,_Ta,_Ua,_Va,_Wa,_Xa,_Ya,_Za,__a,_$a,_ab,_bb,_cb,_db,_eb,_fb,_gb,_hb,_ib,_jb,_kb,_lb,_mb,_nb,_ob,_pb,_qb,_rb,_sb,_tb,_ub,_vb,_wb,_xb,_yb,_zb,_Ab,_Bb,_Cb,_Db,_Eb,_Fb,_Gb,_Hb,_Ib,_Jb,_Kb,_Lb,_Mb,_Nb,_Ob,_Pb,_Qb,_Rb,_Sb,_Tb,_Ub,_Vb,_Wb,_Xb,_Yb,_Zb,__b,_$b,_ac,_bc,_cc,_dc,_ec,_fc,_gc,_hc,_ic,_jc,_kc,_lc,_mc,_nc,_oc,_pc,_qc,_rc,_sc,_tc,_uc,_vc,_wc,_xc,_yc,_zc,_Ac,_Bc,_Cc,_Dc,_Ec,_Fc,_Gc,_Hc,_Ic,_Jc,_Kc,_Lc,_Mc,_Nc,_Oc,_Pc,_Qc,_Rc,_Sc,_Tc,_Uc,_Vc,_Wc,_Xc,_Yc,_Zc,__c,_$c,_ad,_bd,_cd,_dd,_ed,_fd,_gd,_hd,_id2,_jd,_kd,_ld,_md,_nd,_od,_pd,_qd,_rd,_sd,_td,_ud,_vd,_wd,_xd,_yd,_zd,_Ad,_Bd,_Cd,_Dd,_Ed,_Fd,_Gd,_Hd,_Id,_Jd,_Kd,_Ld,_Md,_Nd,_Od,_Pd,_Qd,_Rd,_Sd,_Td,_Ud,_Vd,_Wd,_Xd,_Yd,_Zd,__d,_$d,_ae,_be,_ce,_de,_ee,_fe,_ge,_he,_ie,_je,_ke,_le,_me,_ne,_oe,_pe,_qe,_re,_se,_te,_ue,_ve,_we,_xe,_ye,_ze,_Ae,_Be,_Ce,_De,_Ee,_Fe,_Ge,_He,_Ie,_Je,_Ke,_Le,_Me,_Ne,_Oe,_Pe,_Qe,_Re,_Se,_Te,_Ue,_Ve,_We,_Xe,_Ye,_Ze,__e,_$e,_af,_bf,_cf,_df,_ef,_ff,_gf,_hf,_if,_jf,_kf,_lf,_mf,_nf,_of,_pf,_qf,_rf,_sf,_tf,_uf,_vf,_wf,_xf,_yf,_zf,_Af,_Bf,_Cf,_Df,_Ef,_Ff,_Gf,_Hf,_If,_Jf,_Kf,_Lf,_Mf,_Nf,_Of,_Pf,_Qf,_Rf,_Sf,_Tf,_Uf,_Vf,_Wf,_Xf,_Yf,_Zf,__f,_$f,_ag,_bg,_cg,_dg,_eg,_fg,_gg,_hg,_ig,_jg,_kg,_lg,_mg,_ng,_og,_pg,_qg,_rg,_sg,_tg,_ug,_vg,_wg,_xg,_yg,_zg,_Ag,_Bg,_Cg,_Dg,_Eg,_Fg,_Gg,_Hg,_Ig,_Jg,_Kg,_Lg,_Mg,_Ng,_Og,_Pg,_Qg,_Rg,_Sg,_Tg,_Ug,_Vg,_Wg,_Xg,_Yg,_Zg,__g,_$g,_ah,_bh,_ch,_dh,_eh,_fh,_gh,_hh,_ih,_jh,_nh,_oh,_ph,_qh,_rh,_sh,_th,_uh,_vh,_wh,_xh,_yh,_zh,_Ah,_Bh,_Ch,_Dh,_Eh,_Fh,_Gh,_Hh,_Ih,_Jh,_Kh,_Lh,_Mh,_Nh,_Oh,_Ph,_Qh,_Rh,_Sh,_Th,_Uh,_Vh,_Wh,_Xh,_Yh,_Zh,__h,_$h,_ai,_bi,_ci,_di,_ei,_fi,_gi,_hi,_ii,_ji,_ki,_li,_mi;const REVISION="166",MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,ConstantColorFactor=211,OneMinusConstantColorFactor=212,ConstantAlphaFactor=213,OneMinusConstantAlphaFactor=214,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,AgXToneMapping=6,NeutralToneMapping=7,AttachedBindMode="attached",DetachedBindMode="detached",UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,UnsignedInt5999Type=35902,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBIntegerFormat=1032,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,RGB_BPTC_SIGNED_Format=36494,RGB_BPTC_UNSIGNED_Format=36495,RED_RGTC1_Format=36283,SIGNED_RED_RGTC1_Format=36284,RED_GREEN_RGTC2_Format=36285,SIGNED_RED_GREEN_RGTC2_Format=36286,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace="srgb",LinearSRGBColorSpace="srgb-linear",DisplayP3ColorSpace="display-p3",LinearDisplayP3ColorSpace="display-p3-linear",LinearTransfer="linear",SRGBTransfer="srgb",Rec709Primaries="rec709",P3Primaries="p3",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,NeverCompare=512,LessCompare=513,EqualCompare=514,LessEqualCompare=515,GreaterCompare=516,NotEqualCompare=517,GreaterEqualCompare=518,AlwaysCompare=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1="100",GLSL3="300 es",WebGLCoordinateSystem=2e3,WebGPUCoordinateSystem=2001;class EventDispatcher{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}const _lut=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let _seed=1234567;const DEG2RAD$1=Math.PI/180,RAD2DEG$1=180/Math.PI;function generateUUID(){const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(_lut[255&t]+_lut[t>>8&255]+_lut[t>>16&255]+_lut[t>>24&255]+"-"+_lut[255&e]+_lut[e>>8&255]+"-"+_lut[e>>16&15|64]+_lut[e>>24&255]+"-"+_lut[63&n|128]+_lut[n>>8&255]+"-"+_lut[n>>16&255]+_lut[n>>24&255]+_lut[255&i]+_lut[i>>8&255]+_lut[i>>16&255]+_lut[i>>24&255]).toLowerCase()}function clamp$1(t,e,n){return Math.max(e,Math.min(n,t))}function euclideanModulo(t,e){return(t%e+e)%e}function mapLinear(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)}function inverseLerp(t,e,n){return t!==e?(n-t)/(e-t):0}function lerp(t,e,n){return(1-n)*t+n*e}function damp(t,e,n,i){return lerp(t,e,1-Math.exp(-n*i))}function pingpong(t,e=1){return e-Math.abs(euclideanModulo(t,2*e)-e)}function smoothstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)}function smootherstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)}function randInt(t,e){return t+Math.floor(Math.random()*(e-t+1))}function randFloat(t,e){return t+Math.random()*(e-t)}function randFloatSpread(t){return t*(.5-Math.random())}function seededRandom(t){void 0!==t&&(_seed=t);let e=_seed+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296}function degToRad(t){return t*DEG2RAD$1}function radToDeg(t){return t*RAD2DEG$1}function isPowerOfTwo(t){return!(t&t-1)&&0!==t}function ceilPowerOfTwo(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function floorPowerOfTwo(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function setQuaternionFromProperEuler(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),c=a(n/2),l=s((e+i)/2),u=a((e+i)/2),h=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),f=a((i-e)/2);switch(r){case"XYX":t.set(o*u,c*h,c*d,o*l);break;case"YZY":t.set(c*d,o*u,c*h,o*l);break;case"ZXZ":t.set(c*h,c*d,o*u,o*l);break;case"XZX":t.set(o*u,c*f,c*p,o*l);break;case"YXY":t.set(c*p,o*u,c*f,o*l);break;case"ZYZ":t.set(c*f,c*p,o*u,o*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function denormalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function normalize(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(4294967295*t);case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int32Array:return Math.round(2147483647*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD$1,RAD2DEG:RAD2DEG$1,generateUUID,clamp:clamp$1,euclideanModulo,mapLinear,inverseLerp,lerp,damp,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize,denormalize};class Vector2{constructor(t=0,e=0){Vector2.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp$1(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(t,e,n,i,r,s,a,o,c){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,c)}set(t,e,n,i,r,s,a,o,c){const l=this.elements;return l[0]=t,l[1]=i,l[2]=a,l[3]=e,l[4]=r,l[5]=o,l[6]=n,l[7]=s,l[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],c=n[1],l=n[4],u=n[7],h=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],A=i[1],v=i[4],y=i[7],S=i[2],b=i[5],x=i[8];return r[0]=s*f+a*A+o*S,r[3]=s*m+a*v+o*b,r[6]=s*g+a*y+o*x,r[1]=c*f+l*A+u*S,r[4]=c*m+l*v+u*b,r[7]=c*g+l*y+u*x,r[2]=h*f+d*A+p*S,r[5]=h*m+d*v+p*b,r[8]=h*g+d*y+p*x,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8];return e*s*l-e*a*c-n*r*l+n*a*o+i*r*c-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8],u=l*s-a*c,h=a*o-l*r,d=c*r-s*o,p=e*u+n*h+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=u*f,t[1]=(i*c-l*n)*f,t[2]=(a*n-i*s)*f,t[3]=h*f,t[4]=(l*e-i*o)*f,t[5]=(i*r-a*e)*f,t[6]=d*f,t[7]=(n*o-c*e)*f,t[8]=(s*e-n*r)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),c=Math.sin(r);return this.set(n*o,n*c,-n*(o*s+c*a)+s+t,-i*c,i*o,-i*(-c*s+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(_m3.makeScale(t,e)),this}rotate(t){return this.premultiply(_m3.makeRotation(-t)),this}translate(t,e){return this.premultiply(_m3.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const _m3=new Matrix3;function arrayNeedsUint32(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(t,e){return new TYPED_ARRAYS[t](e)}function createElementNS(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function createCanvasElement(){const t=createElementNS("canvas");return t.style.display="block",t}const _cache={};function warnOnce(t){t in _cache||(_cache[t]=!0,console.warn(t))}function probeAsync(t,e,n){return new Promise(function(i,r){setTimeout(function s(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(s,n);break;default:i()}},n)})}const LINEAR_SRGB_TO_LINEAR_DISPLAY_P3=(new Matrix3).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),LINEAR_DISPLAY_P3_TO_LINEAR_SRGB=(new Matrix3).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),COLOR_SPACES={[LinearSRGBColorSpace]:{transfer:LinearTransfer,primaries:Rec709Primaries,toReference:t=>t,fromReference:t=>t},[SRGBColorSpace]:{transfer:SRGBTransfer,primaries:Rec709Primaries,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[LinearDisplayP3ColorSpace]:{transfer:LinearTransfer,primaries:P3Primaries,toReference:t=>t.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:t=>t.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)},[DisplayP3ColorSpace]:{transfer:SRGBTransfer,primaries:P3Primaries,toReference:t=>t.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),fromReference:t=>t.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()}},SUPPORTED_WORKING_COLOR_SPACES=new Set([LinearSRGBColorSpace,LinearDisplayP3ColorSpace]),ColorManagement={enabled:!0,_workingColorSpace:LinearSRGBColorSpace,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!SUPPORTED_WORKING_COLOR_SPACES.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(!1===this.enabled||e===n||!e||!n)return t;const i=COLOR_SPACES[e].toReference;return(0,COLOR_SPACES[n].fromReference)(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return COLOR_SPACES[t].primaries},getTransfer:function(t){return t===NoColorSpace?LinearTransfer:COLOR_SPACES[t].transfer}};function SRGBToLinear(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function LinearToSRGB(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===_canvas&&(_canvas=createElementNS("canvas")),_canvas.width=t.width,_canvas.height=t.height;const n=_canvas.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=_canvas}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const e=createElementNS("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t<r.length;t++)r[t]=255*SRGBToLinear(r[t]/255);return n.putImageData(i,0,0),e}if(t.data){const e=t.data.slice(0);for(let t=0;t<e.length;t++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[t]=Math.floor(255*SRGBToLinear(e[t]/255)):e[t]=SRGBToLinear(e[t]);return{data:e,width:t.width,height:t.height}}return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),t}}let _sourceId=0;class Source{constructor(t=null){this.isSource=!0,Object.defineProperty(this,"id",{value:_sourceId++}),this.uuid=generateUUID(),this.data=t,this.dataReady=!0,this.version=0}set needsUpdate(t){!0===t&&this.version++}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.images[this.uuid])return t.images[this.uuid];const n={uuid:this.uuid,url:""},i=this.data;if(null!==i){let t;if(Array.isArray(i)){t=[];for(let e=0,n=i.length;e<n;e++)i[e].isDataTexture?t.push(serializeImage(i[e].image)):t.push(serializeImage(i[e]))}else t=serializeImage(i);n.url=t}return e||(t.images[this.uuid]=n),n}}function serializeImage(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?ImageUtils.getDataURL(t):t.data?{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let _textureId=0;class Texture extends EventDispatcher{constructor(t=Texture.DEFAULT_IMAGE,e=Texture.DEFAULT_MAPPING,n=ClampToEdgeWrapping,i=ClampToEdgeWrapping,r=LinearFilter,s=LinearMipmapLinearFilter,a=RGBAFormat,o=UnsignedByteType,c=Texture.DEFAULT_ANISOTROPY,l=NoColorSpace){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:_textureId++}),this.uuid=generateUUID(),this.name="",this.source=new Source(t),this.mipmaps=[],this.mapping=e,this.channel=0,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=o,this.offset=new Vector2(0,0),this.repeat=new Vector2(1,1),this.center=new Vector2(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Matrix3,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=l,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.pmremVersion=0}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==UVMapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case RepeatWrapping:t.x=t.x-Math.floor(t.x);break;case ClampToEdgeWrapping:t.x=t.x<0?0:1;break;case MirroredRepeatWrapping:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case RepeatWrapping:t.y=t.y-Math.floor(t.y);break;case ClampToEdgeWrapping:t.y=t.y<0?0:1;break;case MirroredRepeatWrapping:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){!0===t&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null,Texture.DEFAULT_MAPPING=UVMapping,Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(t=0,e=0,n=0,i=1){Vector4.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,c=o[0],l=o[4],u=o[8],h=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(l-h)<s&&Math.abs(u-f)<s&&Math.abs(p-m)<s){if(Math.abs(l+h)<a&&Math.abs(u+f)<a&&Math.abs(p+m)<a&&Math.abs(c+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(c+1)/2,o=(d+1)/2,A=(g+1)/2,v=(l+h)/4,y=(u+f)/4,S=(p+m)/4;return t>o&&t>A?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=v/n,r=y/n):o>A?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=v/i,r=S/i):A<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(A),n=y/r,i=S/r),this.set(n,i,r,e),this}let A=Math.sqrt((m-p)*(m-p)+(u-f)*(u-f)+(h-l)*(h-l));return Math.abs(A)<.001&&(A=1),this.x=(m-p)/A,this.y=(u-f)/A,this.z=(h-l)/A,this.w=Math.acos((c+d+g-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Vector4(0,0,t,e),this.scissorTest=!1,this.viewport=new Vector4(0,0,t,e);const i={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:LinearFilter,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Texture(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=!1,r.generateMipmaps=n.generateMipmaps,r.internalFormat=n.internalFormat,this.textures=[];const s=n.count;for(let a=0;a<s;a++)this.textures[a]=r.clone(),this.textures[a].isRenderTargetTexture=!0;this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.resolveDepthBuffer=n.resolveDepthBuffer,this.resolveStencilBuffer=n.resolveStencilBuffer,this.depthTexture=n.depthTexture,this.samples=n.samples}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.textures.length;i<r;i++)this.textures[i].image.width=t,this.textures[i].image.height=e,this.textures[i].image.depth=n;this.dispose()}this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.textures.length=0;for(let n=0,i=t.textures.length;n<i;n++)this.textures[n]=t.textures[n].clone(),this.textures[n].isRenderTargetTexture=!0;const e=Object.assign({},t.texture.image);return this.texture.source=new Source(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.resolveDepthBuffer=t.resolveDepthBuffer,this.resolveStencilBuffer=t.resolveStencilBuffer,null!==t.depthTexture&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class WebGLRenderTarget extends RenderTarget{constructor(t=1,e=1,n={}){super(t,e,n),this.isWebGLRenderTarget=!0}}class DataArrayTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new DataArrayTexture(null,t,e,n),this.texture.isRenderTargetTexture=!0}}class Data3DTexture extends Texture{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){super(t,e,i),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new Data3DTexture(null,t,e,n),this.texture.isRenderTargetTexture=!0}}class Quaternion{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],c=n[i+1],l=n[i+2],u=n[i+3];const h=r[s+0],d=r[s+1],p=r[s+2],f=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=c,t[e+2]=l,void(t[e+3]=u);if(1===a)return t[e+0]=h,t[e+1]=d,t[e+2]=p,void(t[e+3]=f);if(u!==f||o!==h||c!==d||l!==p){let t=1-a;const e=o*h+c*d+l*p+u*f,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+h*r,c=c*t+d*r,l=l*t+p*r,u=u*t+f*r,t===1-a){const t=1/Math.sqrt(o*o+c*c+l*l+u*u);o*=t,c*=t,l*=t,u*=t}}t[e]=o,t[e+1]=c,t[e+2]=l,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],c=n[i+2],l=n[i+3],u=r[s],h=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+l*u+o*d-c*h,t[e+1]=o*p+l*h+c*u-a*d,t[e+2]=c*p+l*d+a*h-o*u,t[e+3]=l*p-a*u-o*h-c*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,c=a(n/2),l=a(i/2),u=a(r/2),h=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=h*l*u+c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u-h*d*p;break;case"YXZ":this._x=h*l*u+c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u+h*d*p;break;case"ZXY":this._x=h*l*u-c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u-h*d*p;break;case"ZYX":this._x=h*l*u-c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u+h*d*p;break;case"YZX":this._x=h*l*u+c*d*p,this._y=c*d*u+h*l*p,this._z=c*l*p-h*d*u,this._w=c*l*u-h*d*p;break;case"XZY":this._x=h*l*u-c*d*p,this._y=c*d*u-h*l*p,this._z=c*l*p+h*d*u,this._w=c*l*u+h*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!0===e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],c=e[2],l=e[6],u=e[10],h=n+a+u;if(h>0){const t=.5/Math.sqrt(h+1);this._w=.25/t,this._x=(l-o)*t,this._y=(r-c)*t,this._z=(s-i)*t}else if(n>a&&n>u){const t=2*Math.sqrt(1+n-a-u);this._w=(l-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+c)/t}else if(a>u){const t=2*Math.sqrt(1+a-n-u);this._w=(r-c)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+l)/t}else{const t=2*Math.sqrt(1+u-n-a);this._w=(s-i)/t,this._x=(r+c)/t,this._y=(o+l)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(clamp$1(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,c=e._z,l=e._w;return this._x=n*l+s*a+i*c-r*o,this._y=i*l+s*o+r*a-n*c,this._z=r*l+s*c+n*o-i*a,this._w=s*l-n*a-i*o-r*c,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this}const c=Math.sqrt(o),l=Math.atan2(c,a),u=Math.sin((1-e)*l)/c,h=Math.sin(e*l)/c;return this._w=s*u+this._w*h,this._x=n*u+this._x*h,this._y=i*u+this._y*h,this._z=r*u+this._z*h,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(i*Math.sin(t),i*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(t=0,e=0,n=0){Vector3.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(_quaternion$4.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,c=2*(s*i-a*n),l=2*(a*e-r*i),u=2*(r*n-s*e);return this.x=e+o*c+s*u-a*l,this.y=n+o*l+a*c-r*u,this.z=i+o*u+r*l-s*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return _vector$c.copy(this).projectOnVector(t),this.sub(_vector$c)}reflect(t){return this.sub(_vector$c.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(clamp$1(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=2*Math.random()-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(t=new Vector3(1/0,1/0,1/0),e=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e+=3)this.expandByPoint(_vector$b.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,n=t.count;e<n;e++)this.expandByPoint(_vector$b.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=_vector$b.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t,e=!1){return this.makeEmpty(),this.expandByObject(t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t,e=!1){t.updateWorldMatrix(!1,!1);const n=t.geometry;if(void 0!==n){const i=n.getAttribute("position");if(!0===e&&void 0!==i&&!0!==t.isInstancedMesh)for(let e=0,n=i.count;e<n;e++)!0===t.isMesh?t.getVertexPosition(e,_vector$b):_vector$b.fromBufferAttribute(i,e),_vector$b.applyMatrix4(t.matrixWorld),this.expandByPoint(_vector$b);else void 0!==t.boundingBox?(null===t.boundingBox&&t.computeBoundingBox(),_box$4.copy(t.boundingBox)):(null===n.boundingBox&&n.computeBoundingBox(),_box$4.copy(n.boundingBox)),_box$4.applyMatrix4(t.matrixWorld),this.union(_box$4)}const i=t.children;for(let r=0,s=i.length;r<s;r++)this.expandByObject(i[r],e);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,_vector$b),_vector$b.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(t.a,_center),_v1$7.subVectors(t.b,_center),_v2$4.subVectors(t.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let e=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!!satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)&&(e=[1,0,0,0,1,0,0,0,1],!!satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)&&(_triangleNormal.crossVectors(_f0,_f1),e=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(e,_v0$2,_v1$7,_v2$4,_extents)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,_vector$b).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(_vector$b).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_points)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){_testAxis.fromArray(t,s);const a=r.x*Math.abs(_testAxis.x)+r.y*Math.abs(_testAxis.y)+r.z*Math.abs(_testAxis.z),o=e.dot(_testAxis),c=n.dot(_testAxis),l=i.dot(_testAxis);if(Math.max(-Math.max(o,c,l),Math.min(o,c,l))>a)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;class Sphere{constructor(t=new Vector3,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):_box$3.setFromPoints(t).getCenter(n);let i=0;for(let r=0,s=t.length;r<s;r++)i=Math.max(i,n.distanceToSquared(t[r]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;_v1$6.subVectors(t,this.center);const e=_v1$6.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.addScaledVector(_v1$6,n/t),this.radius+=n}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(_v2$3.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(_v1$6.copy(t.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(t.center).sub(_v2$3))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;class Ray{constructor(t=new Vector3,e=new Vector3(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,_vector$a)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=_vector$a.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(_vector$a.copy(this.origin).addScaledVector(this.direction,e),_vector$a.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){_segCenter.copy(t).add(e).multiplyScalar(.5),_segDir.copy(e).sub(t).normalize(),_diff.copy(this.origin).sub(_segCenter);const r=.5*t.distanceTo(e),s=-this.direction.dot(_segDir),a=_diff.dot(this.direction),o=-_diff.dot(_segDir),c=_diff.lengthSq(),l=Math.abs(1-s*s);let u,h,d,p;if(l>0)if(u=s*o-a,h=s*a-o,p=r*l,u>=0)if(h>=-p)if(h<=p){const t=1/l;u*=t,h*=t,d=u*(u+s*h+2*a)+h*(s*u+h+2*o)+c}else h=r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;else h=-r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;else h<=-p?(u=Math.max(0,-(-s*r+a)),h=u>0?-r:Math.min(Math.max(-r,-o),r),d=-u*u+h*(h+2*o)+c):h<=p?(u=0,h=Math.min(Math.max(-r,-o),r),d=h*(h+2*o)+c):(u=Math.max(0,-(s*r+a)),h=u>0?r:Math.min(Math.max(-r,-o),r),d=-u*u+h*(h+2*o)+c);else h=s>0?-r:r,u=Math.max(0,-(s*h+a)),d=-u*u+h*(h+2*o)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),i&&i.copy(_segCenter).addScaledVector(_segDir,h),d}intersectSphere(t,e){_vector$a.subVectors(t.center,this.origin);const n=_vector$a.dot(this.direction),i=_vector$a.dot(_vector$a)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const c=1/this.direction.x,l=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(n=(t.min.x-h.x)*c,i=(t.max.x-h.x)*c):(n=(t.max.x-h.x)*c,i=(t.min.x-h.x)*c),l>=0?(r=(t.min.y-h.y)*l,s=(t.max.y-h.y)*l):(r=(t.max.y-h.y)*l,s=(t.min.y-h.y)*l),n>s||r>i?null:((r>n||isNaN(n))&&(n=r),(s<i||isNaN(i))&&(i=s),u>=0?(a=(t.min.z-h.z)*u,o=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,o=(t.min.z-h.z)*u),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,_vector$a)}intersectTriangle(t,e,n,i,r){_edge1.subVectors(e,t),_edge2.subVectors(n,t),_normal$1.crossVectors(_edge1,_edge2);let s,a=this.direction.dot(_normal$1);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}_diff.subVectors(this.origin,t);const o=s*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(o<0)return null;const c=s*this.direction.dot(_edge1.cross(_diff));if(c<0)return null;if(o+c>a)return null;const l=-s*_diff.dot(_normal$1);return l<0?null:this.at(l/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m)}set(t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=c,g[6]=l,g[10]=u,g[14]=h,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Matrix4).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/_v1$5.setFromMatrixColumn(t,0).length(),r=1/_v1$5.setFromMatrixColumn(t,1).length(),s=1/_v1$5.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),c=Math.sin(i),l=Math.cos(r),u=Math.sin(r);if("XYZ"===t.order){const t=s*l,n=s*u,i=a*l,r=a*u;e[0]=o*l,e[4]=-o*u,e[8]=c,e[1]=n+i*c,e[5]=t-r*c,e[9]=-a*o,e[2]=r-t*c,e[6]=i+n*c,e[10]=s*o}else if("YXZ"===t.order){const t=o*l,n=o*u,i=c*l,r=c*u;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*c,e[1]=s*u,e[5]=s*l,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*l,n=o*u,i=c*l,r=c*u;e[0]=t-r*a,e[4]=-s*u,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*l,e[9]=r-t*a,e[2]=-s*c,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*l,n=s*u,i=a*l,r=a*u;e[0]=o*l,e[4]=i*c-n,e[8]=t*c+r,e[1]=o*u,e[5]=r*c+t,e[9]=n*c-i,e[2]=-c,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*c,i=a*o,r=a*c;e[0]=o*l,e[4]=r-t*u,e[8]=i*u+n,e[1]=u,e[5]=s*l,e[9]=-a*l,e[2]=-c*l,e[6]=n*u+i,e[10]=t-r*u}else if("XZY"===t.order){const t=s*o,n=s*c,i=a*o,r=a*c;e[0]=o*l,e[4]=-u,e[8]=c*l,e[1]=t*u+r,e[5]=s*l,e[9]=n*u-i,e[2]=i*u-n,e[6]=a*l,e[10]=r*u+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(_zero,t,_one)}lookAt(t,e,n){const i=this.elements;return _z.subVectors(t,e),0===_z.lengthSq()&&(_z.z=1),_z.normalize(),_x.crossVectors(n,_z),0===_x.lengthSq()&&(1===Math.abs(n.z)?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(n,_z)),_x.normalize(),_y.crossVectors(_z,_x),i[0]=_x.x,i[4]=_y.x,i[8]=_z.x,i[1]=_x.y,i[5]=_y.y,i[9]=_z.y,i[2]=_x.z,i[6]=_y.z,i[10]=_z.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],c=n[12],l=n[1],u=n[5],h=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],A=n[3],v=n[7],y=n[11],S=n[15],b=i[0],x=i[4],M=i[8],T=i[12],I=i[1],R=i[5],E=i[9],w=i[13],C=i[2],_=i[6],k=i[10],L=i[14],U=i[3],F=i[7],N=i[11],V=i[15];return r[0]=s*b+a*I+o*C+c*U,r[4]=s*x+a*R+o*_+c*F,r[8]=s*M+a*E+o*k+c*N,r[12]=s*T+a*w+o*L+c*V,r[1]=l*b+u*I+h*C+d*U,r[5]=l*x+u*R+h*_+d*F,r[9]=l*M+u*E+h*k+d*N,r[13]=l*T+u*w+h*L+d*V,r[2]=p*b+f*I+m*C+g*U,r[6]=p*x+f*R+m*_+g*F,r[10]=p*M+f*E+m*k+g*N,r[14]=p*T+f*w+m*L+g*V,r[3]=A*b+v*I+y*C+S*U,r[7]=A*x+v*R+y*_+S*F,r[11]=A*M+v*E+y*k+S*N,r[15]=A*T+v*w+y*L+S*V,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],c=t[13],l=t[2],u=t[6],h=t[10],d=t[14];return t[3]*(+r*o*u-i*c*u-r*a*h+n*c*h+i*a*d-n*o*d)+t[7]*(+e*o*d-e*c*h+r*s*h-i*s*d+i*c*l-r*o*l)+t[11]*(+e*c*u-e*a*d-r*s*u+n*s*d+r*a*l-n*c*l)+t[15]*(-i*a*l-e*o*u+e*a*h+i*s*u-n*s*h+n*o*l)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8],u=t[9],h=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],A=u*m*c-f*h*c+f*o*d-a*m*d-u*o*g+a*h*g,v=p*h*c-l*m*c-p*o*d+s*m*d+l*o*g-s*h*g,y=l*f*c-p*u*c+p*a*d-s*f*d-l*a*g+s*u*g,S=p*u*o-l*f*o-p*a*h+s*f*h+l*a*m-s*u*m,b=e*A+n*v+i*y+r*S;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const x=1/b;return t[0]=A*x,t[1]=(f*h*r-u*m*r-f*i*d+n*m*d+u*i*g-n*h*g)*x,t[2]=(a*m*r-f*o*r+f*i*c-n*m*c-a*i*g+n*o*g)*x,t[3]=(u*o*r-a*h*r-u*i*c+n*h*c+a*i*d-n*o*d)*x,t[4]=v*x,t[5]=(l*m*r-p*h*r+p*i*d-e*m*d-l*i*g+e*h*g)*x,t[6]=(p*o*r-s*m*r-p*i*c+e*m*c+s*i*g-e*o*g)*x,t[7]=(s*h*r-l*o*r+l*i*c-e*h*c-s*i*d+e*o*d)*x,t[8]=y*x,t[9]=(p*u*r-l*f*r-p*n*d+e*f*d+l*n*g-e*u*g)*x,t[10]=(s*f*r-p*a*r+p*n*c-e*f*c-s*n*g+e*a*g)*x,t[11]=(l*a*r-s*u*r-l*n*c+e*u*c+s*n*d-e*a*d)*x,t[12]=S*x,t[13]=(l*f*i-p*u*i+p*n*h-e*f*h-l*n*m+e*u*m)*x,t[14]=(p*a*i-s*f*i-p*n*o+e*f*o+s*n*m-e*a*m)*x,t[15]=(s*u*i-l*a*i+l*n*o-e*u*o-s*n*h+e*a*h)*x,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,c=r*s,l=r*a;return this.set(c*s+n,c*a-i*o,c*o+i*a,0,c*a+i*o,l*a+n,l*o-i*s,0,c*o-i*a,l*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,c=r+r,l=s+s,u=a+a,h=r*c,d=r*l,p=r*u,f=s*l,m=s*u,g=a*u,A=o*c,v=o*l,y=o*u,S=n.x,b=n.y,x=n.z;return i[0]=(1-(f+g))*S,i[1]=(d+y)*S,i[2]=(p-v)*S,i[3]=0,i[4]=(d-y)*b,i[5]=(1-(h+g))*b,i[6]=(m+A)*b,i[7]=0,i[8]=(p+v)*x,i[9]=(m-A)*x,i[10]=(1-(h+f))*x,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=_v1$5.set(i[0],i[1],i[2]).length();const s=_v1$5.set(i[4],i[5],i[6]).length(),a=_v1$5.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],_m1$4.copy(this);const o=1/r,c=1/s,l=1/a;return _m1$4.elements[0]*=o,_m1$4.elements[1]*=o,_m1$4.elements[2]*=o,_m1$4.elements[4]*=c,_m1$4.elements[5]*=c,_m1$4.elements[6]*=c,_m1$4.elements[8]*=l,_m1$4.elements[9]*=l,_m1$4.elements[10]*=l,e.setFromRotationMatrix(_m1$4),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s,a=WebGLCoordinateSystem){const o=this.elements,c=2*r/(e-t),l=2*r/(n-i),u=(e+t)/(e-t),h=(n+i)/(n-i);let d,p;if(a===WebGLCoordinateSystem)d=-(s+r)/(s-r),p=-2*s*r/(s-r);else{if(a!==WebGPUCoordinateSystem)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);d=-s/(s-r),p=-s*r/(s-r)}return o[0]=c,o[4]=0,o[8]=u,o[12]=0,o[1]=0,o[5]=l,o[9]=h,o[13]=0,o[2]=0,o[6]=0,o[10]=d,o[14]=p,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,r,s,a=WebGLCoordinateSystem){const o=this.elements,c=1/(e-t),l=1/(n-i),u=1/(s-r),h=(e+t)*c,d=(n+i)*l;let p,f;if(a===WebGLCoordinateSystem)p=(s+r)*u,f=-2*u;else{if(a!==WebGPUCoordinateSystem)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);p=r*u,f=-1*u}return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-h,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-d,o[2]=0,o[6]=0,o[10]=f,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const _v1$5=new Vector3,_m1$4=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(t=0,e=0,n=0,i=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],c=i[5],l=i[9],u=i[2],h=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(clamp$1(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(h,c),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$1(l,-1,1)),Math.abs(l)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,c)):(this._y=Math.atan2(-u,r),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$1(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-s,c)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-clamp$1(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(h,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,c));break;case"YZX":this._z=Math.asin(clamp$1(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-l,c),this._y=Math.atan2(-u,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-clamp$1(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(h,c),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-l,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return _matrix$2.makeRotationFromQuaternion(t),this.setFromRotationMatrix(_matrix$2,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(t){this.mask=1<<t>>>0}enable(t){this.mask|=1<<t}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t}disable(t){this.mask&=~(1<<t)}disableAll(){this.mask=0}test(t){return 0!==(this.mask&t.mask)}isEnabled(t){return!!(this.mask&1<<t)}}let _object3DId=0;const _v1$4=new Vector3,_q1=new Quaternion,_m1$3=new Matrix4,_target=new Vector3,_position$3=new Vector3,_scale$2=new Vector3,_quaternion$2=new Quaternion,_xAxis=new Vector3(1,0,0),_yAxis=new Vector3(0,1,0),_zAxis=new Vector3(0,0,1),_addedEvent={type:"added"},_removedEvent={type:"removed"},_childaddedEvent={type:"childadded",child:null},_childremovedEvent={type:"childremoved",child:null};class Object3D extends EventDispatcher{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:_object3DId++}),this.uuid=generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Object3D.DEFAULT_UP.clone();const t=new Vector3,e=new Euler,n=new Quaternion,i=new Vector3(1,1,1);e._onChange(function(){n.setFromEuler(e,!1)}),n._onChange(function(){e.setFromQuaternion(n,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}}),this.matrix=new Matrix4,this.matrixWorld=new Matrix4,this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Layers,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return _q1.setFromAxisAngle(t,e),this.quaternion.multiply(_q1),this}rotateOnWorldAxis(t,e){return _q1.setFromAxisAngle(t,e),this.quaternion.premultiply(_q1),this}rotateX(t){return this.rotateOnAxis(_xAxis,t)}rotateY(t){return this.rotateOnAxis(_yAxis,t)}rotateZ(t){return this.rotateOnAxis(_zAxis,t)}translateOnAxis(t,e){return _v1$4.copy(t).applyQuaternion(this.quaternion),this.position.add(_v1$4.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(_xAxis,t)}translateY(t){return this.translateOnAxis(_yAxis,t)}translateZ(t){return this.translateOnAxis(_zAxis,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(_m1$3.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?_target.copy(t):_target.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),_position$3.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?_m1$3.lookAt(_position$3,_target,this.up):_m1$3.lookAt(_target,_position$3,this.up),this.quaternion.setFromRotationMatrix(_m1$3),i&&(_m1$3.extractRotation(i.matrixWorld),_q1.setFromRotationMatrix(_m1$3),this.quaternion.premultiply(_q1.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(_addedEvent),_childaddedEvent.child=t,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(_removedEvent),_childremovedEvent.child=t,this.dispatchEvent(_childremovedEvent),_childremovedEvent.child=null),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),_m1$3.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),_m1$3.multiply(t.parent.matrixWorld)),t.applyMatrix4(_m1$3),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(_addedEvent),_childaddedEvent.child=t,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null,this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getObjectsByProperty(t,e,n=[]){this[t]===e&&n.push(this);const i=this.children;for(let r=0,s=i.length;r<s;r++)i[r].getObjectsByProperty(t,e,n);return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,t,_scale$2),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,_quaternion$2,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++){e[n].updateMatrixWorld(t)}}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++){t[e].updateWorldMatrix(!1,!0)}}}toJSON(t){const e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},n.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(t=>({boxInitialized:t.boxInitialized,boxMin:t.box.min.toArray(),boxMax:t.box.max.toArray(),sphereInitialized:t.sphereInitialized,sphereRadius:t.sphere.radius,sphereCenter:t.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(t),null!==this._colorsTexture&&(i.colorsTexture=this._colorsTexture.toJSON(t)),null!==this.boundingSphere&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),null!==this.boundingBox&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),c=s(t.skeletons),l=s(t.animations),u=s(t.nodes);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),c.length>0&&(n.skeletons=c),l.length>0&&(n.animations=l),u.length>0&&(n.nodes=u)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let n=0;n<t.children.length;n++){const e=t.children[n];this.add(e.clone())}return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0),Object3D.DEFAULT_MATRIX_AUTO_UPDATE=!0,Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const _v0$1=new Vector3,_v1$3=new Vector3,_v2$2=new Vector3,_v3$2=new Vector3,_vab=new Vector3,_vac=new Vector3,_vbc=new Vector3,_vap=new Vector3,_vbp=new Vector3,_vcp=new Vector3;class Triangle{constructor(t=new Vector3,e=new Vector3,n=new Vector3){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),_v0$1.subVectors(t,e),i.cross(_v0$1);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){_v0$1.subVectors(i,e),_v1$3.subVectors(n,e),_v2$2.subVectors(t,e);const s=_v0$1.dot(_v0$1),a=_v0$1.dot(_v1$3),o=_v0$1.dot(_v2$2),c=_v1$3.dot(_v1$3),l=_v1$3.dot(_v2$2),u=s*c-a*a;if(0===u)return r.set(0,0,0),null;const h=1/u,d=(c*o-a*l)*h,p=(s*l-a*o)*h;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return null!==this.getBarycoord(t,e,n,i,_v3$2)&&(_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1)}static getInterpolation(t,e,n,i,r,s,a,o){return null===this.getBarycoord(t,e,n,i,_v3$2)?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(r,_v3$2.x),o.addScaledVector(s,_v3$2.y),o.addScaledVector(a,_v3$2.z),o)}static isFrontFacing(t,e,n,i){return _v0$1.subVectors(n,e),_v1$3.subVectors(t,e),_v0$1.cross(_v1$3).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),.5*_v0$1.cross(_v1$3).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Triangle.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Triangle.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,i,r){return Triangle.getInterpolation(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Triangle.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Triangle.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;_vab.subVectors(i,n),_vac.subVectors(r,n),_vap.subVectors(t,n);const o=_vab.dot(_vap),c=_vac.dot(_vap);if(o<=0&&c<=0)return e.copy(n);_vbp.subVectors(t,i);const l=_vab.dot(_vbp),u=_vac.dot(_vbp);if(l>=0&&u<=l)return e.copy(i);const h=o*u-l*c;if(h<=0&&o>=0&&l<=0)return s=o/(o-l),e.copy(n).addScaledVector(_vab,s);_vcp.subVectors(t,r);const d=_vab.dot(_vcp),p=_vac.dot(_vcp);if(p>=0&&d<=p)return e.copy(r);const f=d*c-o*p;if(f<=0&&c>=0&&p<=0)return a=c/(c-p),e.copy(n).addScaledVector(_vac,a);const m=l*p-d*u;if(m<=0&&u-l>=0&&d-p>=0)return _vbc.subVectors(r,i),a=(u-l)/(u-l+(d-p)),e.copy(i).addScaledVector(_vbc,a);const g=1/(m+f+h);return s=f*g,a=h*g,e.copy(n).addScaledVector(_vab,s).addScaledVector(_vac,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}class Color{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(void 0===e&&void 0===n){const e=t;e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=SRGBColorSpace){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ColorManagement.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=ColorManagement.workingColorSpace){return this.r=t,this.g=e,this.b=n,ColorManagement.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=ColorManagement.workingColorSpace){if(t=euclideanModulo(t,1),e=clamp$1(e,0,1),n=clamp$1(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=hue2rgb(r,i,t+1/3),this.g=hue2rgb(r,i,t),this.b=hue2rgb(r,i,t-1/3)}return ColorManagement.toWorkingColorSpace(this,i),this}setStyle(t,e=SRGBColorSpace){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const s=i[1],a=i[2];switch(s){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=i[1],r=n.length;if(3===r)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(6===r)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=SRGBColorSpace){const n=_colorKeywords[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=SRGBToLinear(t.r),this.g=SRGBToLinear(t.g),this.b=SRGBToLinear(t.b),this}copyLinearToSRGB(t){return this.r=LinearToSRGB(t.r),this.g=LinearToSRGB(t.g),this.b=LinearToSRGB(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=SRGBColorSpace){return ColorManagement.fromWorkingColorSpace(_color.copy(this),t),65536*Math.round(clamp$1(255*_color.r,0,255))+256*Math.round(clamp$1(255*_color.g,0,255))+Math.round(clamp$1(255*_color.b,0,255))}getHexString(t=SRGBColorSpace){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=ColorManagement.workingColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),e);const n=_color.r,i=_color.g,r=_color.b,s=Math.max(n,i,r),a=Math.min(n,i,r);let o,c;const l=(a+s)/2;if(a===s)o=0,c=0;else{const t=s-a;switch(c=l<=.5?t/(s+a):t/(2-s-a),s){case n:o=(i-r)/t+(i<r?6:0);break;case i:o=(r-n)/t+2;break;case r:o=(n-i)/t+4}o/=6}return t.h=o,t.s=c,t.l=l,t}getRGB(t,e=ColorManagement.workingColorSpace){return ColorManagement.fromWorkingColorSpace(_color.copy(this),e),t.r=_color.r,t.g=_color.g,t.b=_color.b,t}getStyle(t=SRGBColorSpace){ColorManagement.fromWorkingColorSpace(_color.copy(this),t);const e=_color.r,n=_color.g,i=_color.b;return t!==SRGBColorSpace?`color(${t} ${e.toFixed(3)} ${n.toFixed(3)} ${i.toFixed(3)})`:`rgb(${Math.round(255*e)},${Math.round(255*n)},${Math.round(255*i)})`}offsetHSL(t,e,n){return this.getHSL(_hslA),this.setHSL(_hslA.h+t,_hslA.s+e,_hslA.l+n)}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(_hslA),t.getHSL(_hslB);const n=lerp(_hslA.h,_hslB.h,e),i=lerp(_hslA.s,_hslB.s,e),r=lerp(_hslA.l,_hslB.l,e);return this.setHSL(n,i,r),this}setFromVector3(t){return this.r=t.x,this.g=t.y,this.b=t.z,this}applyMatrix3(t){const e=this.r,n=this.g,i=this.b,r=t.elements;return this.r=r[0]*e+r[3]*n+r[6]*i,this.g=r[1]*e+r[4]*n+r[7]*i,this.b=r[2]*e+r[5]*n+r[8]*i,this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const _color=new Color;Color.NAMES=_colorKeywords;let _materialId=0;class Material extends EventDispatcher{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:_materialId++}),this.uuid=generateUUID(),this.name="",this.type="Material",this.blending=NormalBlending,this.side=FrontSide,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=SrcAlphaFactor,this.blendDst=OneMinusSrcAlphaFactor,this.blendEquation=AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Color(0,0,0),this.blendAlpha=0,this.depthFunc=LessEqualDepth,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=AlwaysStencilFunc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=KeepStencilOp,this.stencilZFail=KeepStencilOp,this.stencilZPass=KeepStencilOp,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.dispersion&&(n.dispersion=this.dispersion),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(n.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapRotation&&(n.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(n.blending=this.blending),this.side!==FrontSide&&(n.side=this.side),!0===this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=!0),this.blendSrc!==SrcAlphaFactor&&(n.blendSrc=this.blendSrc),this.blendDst!==OneMinusSrcAlphaFactor&&(n.blendDst=this.blendDst),this.blendEquation!==AddEquation&&(n.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(n.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(n.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==LessEqualDepth&&(n.depthFunc=this.depthFunc),!1===this.depthTest&&(n.depthTest=this.depthTest),!1===this.depthWrite&&(n.depthWrite=this.depthWrite),!1===this.colorWrite&&(n.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==AlwaysStencilFunc&&(n.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(n.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==KeepStencilOp&&(n.stencilFail=this.stencilFail),this.stencilZFail!==KeepStencilOp&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==KeepStencilOp&&(n.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(n.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaHash&&(n.alphaHash=!0),!0===this.alphaToCoverage&&(n.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=!0),!0===this.forceSinglePass&&(n.forceSinglePass=!0),!0===this.wireframe&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=!0),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}onBeforeRender(){console.warn("Material: onBeforeRender() has been removed.")}}class MeshBasicMaterial extends Material{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const _tables=_generateTables();function _generateTables(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){const t=c-127;t<-27?(i[c]=0,i[256|c]=32768,r[c]=24,r[256|c]=24):t<-14?(i[c]=1024>>-t-14,i[256|c]=1024>>-t-14|32768,r[c]=-t-1,r[256|c]=-t-1):t<=15?(i[c]=t+15<<10,i[256|c]=t+15<<10|32768,r[c]=13,r[256|c]=13):t<128?(i[c]=31744,i[256|c]=64512,r[c]=24,r[256|c]=24):(i[c]=31744,i[256|c]=64512,r[c]=13,r[256|c]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let c=1;c<1024;++c){let t=c<<13,e=0;for(;!(8388608&t);)t<<=1,e-=8388608;t&=-8388609,e+=947912704,s[c]=t|e}for(let c=1024;c<2048;++c)s[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)a[c]=c<<23;a[31]=1199570944,a[32]=2147483648;for(let c=33;c<63;++c)a[c]=2147483648+(c-32<<23);a[63]=3347054592;for(let c=1;c<64;++c)32!==c&&(o[c]=1024);return{floatView:e,uint32View:n,baseTable:i,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function toHalfFloat(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=clamp$1(t,-65504,65504),_tables.floatView[0]=t;const e=_tables.uint32View[0],n=e>>23&511;return _tables.baseTable[n]+((8388607&e)>>_tables.shiftTable[n])}function fromHalfFloat(t){const e=t>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[e]+(1023&t)]+_tables.exponentTable[e],_tables.floatView[0]}const DataUtils={toHalfFloat,fromHalfFloat},_vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=n,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=FloatType,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return warnOnce("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)_vector2$1.fromBufferAttribute(this,e),_vector2$1.applyMatrix3(t),this.setXY(e,_vector2$1.x,_vector2$1.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyMatrix3(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyMatrix4(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.applyNormalMatrix(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)_vector$9.fromBufferAttribute(this,e),_vector$9.transformDirection(t),this.setXYZ(e,_vector$9.x,_vector$9.y,_vector$9.z);return this}set(t,e=0){return this.array.set(t,e),this}getComponent(t,e){let n=this.array[t*this.itemSize+e];return this.normalized&&(n=denormalize(n,this.array)),n}setComponent(t,e,n){return this.normalized&&(n=normalize(n,this.array)),this.array[t*this.itemSize+e]=n,this}getX(t){let e=this.array[t*this.itemSize];return this.normalized&&(e=denormalize(e,this.array)),e}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize]=e,this}getY(t){let e=this.array[t*this.itemSize+1];return this.normalized&&(e=denormalize(e,this.array)),e}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+1]=e,this}getZ(t){let e=this.array[t*this.itemSize+2];return this.normalized&&(e=denormalize(e,this.array)),e}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+2]=e,this}getW(t){let e=this.array[t*this.itemSize+3];return this.normalized&&(e=denormalize(e,this.array)),e}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return""!==this.name&&(t.name=this.name),this.usage!==StaticDrawUsage&&(t.usage=this.usage),t}}class Int8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int8Array(t),e,n)}}class Uint8BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class Int16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int16Array(t),e,n)}}class Uint16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class Int32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Int32Array(t),e,n)}}class Uint32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class Float16BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Uint16Array(t),e,n),this.isFloat16BufferAttribute=!0}getX(t){let e=fromHalfFloat(this.array[t*this.itemSize]);return this.normalized&&(e=denormalize(e,this.array)),e}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize]=toHalfFloat(e),this}getY(t){let e=fromHalfFloat(this.array[t*this.itemSize+1]);return this.normalized&&(e=denormalize(e,this.array)),e}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+1]=toHalfFloat(e),this}getZ(t){let e=fromHalfFloat(this.array[t*this.itemSize+2]);return this.normalized&&(e=denormalize(e,this.array)),e}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+2]=toHalfFloat(e),this}getW(t){let e=fromHalfFloat(this.array[t*this.itemSize+3]);return this.normalized&&(e=denormalize(e,this.array)),e}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.array[t*this.itemSize+3]=toHalfFloat(e),this}setXY(t,e,n){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this}setXYZ(t,e,n,i){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this.array[t+2]=toHalfFloat(i),this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.array[t+0]=toHalfFloat(e),this.array[t+1]=toHalfFloat(n),this.array[t+2]=toHalfFloat(i),this.array[t+3]=toHalfFloat(r),this}}class Float32BufferAttribute extends BufferAttribute{constructor(t,e,n){super(new Float32Array(t),e,n)}}let _id$2=0;const _m1$2=new Matrix4,_obj=new Object3D,_offset=new Vector3,_box$2=new Box3,_boxMorphTargets=new Box3,_vector$8=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:_id$2++}),this.uuid=generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(arrayNeedsUint32(t)?Uint32BufferAttribute:Uint16BufferAttribute)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new Matrix3).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return _m1$2.makeRotationFromQuaternion(t),this.applyMatrix4(_m1$2),this}rotateX(t){return _m1$2.makeRotationX(t),this.applyMatrix4(_m1$2),this}rotateY(t){return _m1$2.makeRotationY(t),this.applyMatrix4(_m1$2),this}rotateZ(t){return _m1$2.makeRotationZ(t),this.applyMatrix4(_m1$2),this}translate(t,e,n){return _m1$2.makeTranslation(t,e,n),this.applyMatrix4(_m1$2),this}scale(t,e,n){return _m1$2.makeScale(t,e,n),this.applyMatrix4(_m1$2),this}lookAt(t){return _obj.lookAt(t),_obj.updateMatrix(),this.applyMatrix4(_obj.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(_offset).negate(),this.translate(_offset.x,_offset.y,_offset.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new Float32BufferAttribute(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),void this.boundingBox.set(new Vector3(-1/0,-1/0,-1/0),new Vector3(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,i=e.length;n<i;n++){const t=e[n];_box$2.setFromBufferAttribute(t),this.morphTargetsRelative?(_vector$8.addVectors(this.boundingBox.min,_box$2.min),this.boundingBox.expandByPoint(_vector$8),_vector$8.addVectors(this.boundingBox.max,_box$2.max),this.boundingBox.expandByPoint(_vector$8)):(this.boundingBox.expandByPoint(_box$2.min),this.boundingBox.expandByPoint(_box$2.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),void this.boundingSphere.set(new Vector3,1/0);if(t){const n=this.boundingSphere.center;if(_box$2.setFromBufferAttribute(t),e)for(let t=0,r=e.length;t<r;t++){const n=e[t];_boxMorphTargets.setFromBufferAttribute(n),this.morphTargetsRelative?(_vector$8.addVectors(_box$2.min,_boxMorphTargets.min),_box$2.expandByPoint(_vector$8),_vector$8.addVectors(_box$2.max,_boxMorphTargets.max),_box$2.expandByPoint(_vector$8)):(_box$2.expandByPoint(_boxMorphTargets.min),_box$2.expandByPoint(_boxMorphTargets.max))}_box$2.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)_vector$8.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(_vector$8));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)_vector$8.fromBufferAttribute(s,e),a&&(_offset.fromBufferAttribute(t,e),_vector$8.add(_offset)),i=Math.max(i,n.distanceToSquared(_vector$8))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const n=e.position,i=e.normal,r=e.uv;!1===this.hasAttribute("tangent")&&this.setAttribute("tangent",new BufferAttribute(new Float32Array(4*n.count),4));const s=this.getAttribute("tangent"),a=[],o=[];for(let M=0;M<n.count;M++)a[M]=new Vector3,o[M]=new Vector3;const c=new Vector3,l=new Vector3,u=new Vector3,h=new Vector2,d=new Vector2,p=new Vector2,f=new Vector3,m=new Vector3;function g(t,e,i){c.fromBufferAttribute(n,t),l.fromBufferAttribute(n,e),u.fromBufferAttribute(n,i),h.fromBufferAttribute(r,t),d.fromBufferAttribute(r,e),p.fromBufferAttribute(r,i),l.sub(c),u.sub(c),d.sub(h),p.sub(h);const s=1/(d.x*p.y-p.x*d.y);isFinite(s)&&(f.copy(l).multiplyScalar(p.y).addScaledVector(u,-d.y).multiplyScalar(s),m.copy(u).multiplyScalar(d.x).addScaledVector(l,-p.x).multiplyScalar(s),a[t].add(f),a[e].add(f),a[i].add(f),o[t].add(m),o[e].add(m),o[i].add(m))}let A=this.groups;0===A.length&&(A=[{start:0,count:t.count}]);for(let M=0,T=A.length;M<T;++M){const e=A[M],n=e.start;for(let i=n,r=n+e.count;i<r;i+=3)g(t.getX(i+0),t.getX(i+1),t.getX(i+2))}const v=new Vector3,y=new Vector3,S=new Vector3,b=new Vector3;function x(t){S.fromBufferAttribute(i,t),b.copy(S);const e=a[t];v.copy(e),v.sub(S.multiplyScalar(S.dot(e))).normalize(),y.crossVectors(b,e);const n=y.dot(o[t])<0?-1:1;s.setXYZW(t,v.x,v.y,v.z,n)}for(let M=0,T=A.length;M<T;++M){const e=A[M],n=e.start;for(let i=n,r=n+e.count;i<r;i+=3)x(t.getX(i+0)),x(t.getX(i+1)),x(t.getX(i+2))}}computeVertexNormals(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new BufferAttribute(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Vector3,r=new Vector3,s=new Vector3,a=new Vector3,o=new Vector3,c=new Vector3,l=new Vector3,u=new Vector3;if(t)for(let h=0,d=t.count;h<d;h+=3){const d=t.getX(h+0),p=t.getX(h+1),f=t.getX(h+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,f),l.subVectors(s,r),u.subVectors(i,r),l.cross(u),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),c.fromBufferAttribute(n,f),a.add(l),o.add(l),c.add(l),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(f,c.x,c.y,c.z)}else for(let t=0,h=e.count;t<h;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),l.subVectors(s,r),u.subVectors(i,r),l.cross(u),n.setXYZ(t+0,l.x,l.y,l.z),n.setXYZ(t+1,l.x,l.y,l.z),n.setXYZ(t+2,l.x,l.y,l.z);this.normalizeNormals(),n.needsUpdate=!0}}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)_vector$8.fromBufferAttribute(t,e),_vector$8.normalize(),t.setXYZ(e,_vector$8.x,_vector$8.y,_vector$8.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let c=0,l=e.length;c<l;c++){a=t.isInterleavedBufferAttribute?e[c]*t.data.stride+t.offset:e[c]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new BufferAttribute(s,i,r)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new BufferGeometry,n=this.index.array,i=this.attributes;for(const a in i){const r=t(i[a],n);e.setAttribute(a,r)}const r=this.morphAttributes;for(const a in r){const i=[],s=r[a];for(let e=0,r=s.length;e<r;e++){const r=t(s[e],n);i.push(r)}e.morphAttributes[a]=i}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let a=0,o=s.length;a<o;a++){const t=s[a];e.addGroup(t.start,t.count,t.materialIndex)}return e}toJSON(){const t={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const o in n){const e=n[o];t.data.attributes[o]=e.toJSON(t.data)}const i={};let r=!1;for(const o in this.morphAttributes){const e=this.morphAttributes[o],n=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];n.push(r.toJSON(t.data))}n.length>0&&(i[o]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const c in i){const t=i[c];this.setAttribute(c,t.clone(e))}const r=t.morphAttributes;for(const c in r){const t=[],n=r[c];for(let i=0,r=n.length;i<r;i++)t.push(n[i].clone(e));this.morphAttributes[c]=t}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let c=0,l=s.length;c<l;c++){const t=s[c];this.addGroup(t.start,t.count,t.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const _inverseMatrix$3=new Matrix4,_ray$3=new Ray,_sphere$6=new Sphere,_sphereHitAt=new Vector3,_vA$1=new Vector3,_vB$1=new Vector3,_vC$1=new Vector3,_tempA=new Vector3,_morphA=new Vector3,_uvA$1=new Vector2,_uvB$1=new Vector2,_uvC$1=new Vector2,_normalA=new Vector3,_normalB=new Vector3,_normalC=new Vector3,_intersectionPoint=new Vector3,_intersectionPointWorld=new Vector3;class Mesh extends Object3D{constructor(t=new BufferGeometry,e=new MeshBasicMaterial){super(),this.isMesh=!0,this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}getVertexPosition(t,e){const n=this.geometry,i=n.attributes.position,r=n.morphAttributes.position,s=n.morphTargetsRelative;e.fromBufferAttribute(i,t);const a=this.morphTargetInfluences;if(r&&a){_morphA.set(0,0,0);for(let n=0,i=r.length;n<i;n++){const i=a[n],o=r[n];0!==i&&(_tempA.fromBufferAttribute(o,t),s?_morphA.addScaledVector(_tempA,i):_morphA.addScaledVector(_tempA.sub(e),i))}e.add(_morphA)}return e}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0!==i){if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$6.copy(n.boundingSphere),_sphere$6.applyMatrix4(r),_ray$3.copy(t.ray).recast(t.near),!1===_sphere$6.containsPoint(_ray$3.origin)){if(null===_ray$3.intersectSphere(_sphere$6,_sphereHitAt))return;if(_ray$3.origin.distanceToSquared(_sphereHitAt)>(t.far-t.near)**2)return}_inverseMatrix$3.copy(r).invert(),_ray$3.copy(t.ray).applyMatrix4(_inverseMatrix$3),null!==n.boundingBox&&!1===_ray$3.intersectsBox(n.boundingBox)||this._computeIntersections(t,e,_ray$3)}}_computeIntersections(t,e,n){let i;const r=this.geometry,s=this.material,a=r.index,o=r.attributes.position,c=r.attributes.uv,l=r.attributes.uv1,u=r.attributes.normal,h=r.groups,d=r.drawRange;if(null!==a)if(Array.isArray(s))for(let p=0,f=h.length;p<f;p++){const r=h[p],o=s[r.materialIndex];for(let s=Math.max(r.start,d.start),h=Math.min(a.count,Math.min(r.start+r.count,d.start+d.count));s<h;s+=3){i=checkGeometryIntersection(this,o,t,n,c,l,u,a.getX(s),a.getX(s+1),a.getX(s+2)),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{for(let r=Math.max(0,d.start),o=Math.min(a.count,d.start+d.count);r<o;r+=3){i=checkGeometryIntersection(this,s,t,n,c,l,u,a.getX(r),a.getX(r+1),a.getX(r+2)),i&&(i.faceIndex=Math.floor(r/3),e.push(i))}}else if(void 0!==o)if(Array.isArray(s))for(let p=0,f=h.length;p<f;p++){const r=h[p],a=s[r.materialIndex];for(let s=Math.max(r.start,d.start),h=Math.min(o.count,Math.min(r.start+r.count,d.start+d.count));s<h;s+=3){i=checkGeometryIntersection(this,a,t,n,c,l,u,s,s+1,s+2),i&&(i.faceIndex=Math.floor(s/3),i.face.materialIndex=r.materialIndex,e.push(i))}}else{for(let r=Math.max(0,d.start),a=Math.min(o.count,d.start+d.count);r<a;r+=3){i=checkGeometryIntersection(this,s,t,n,c,l,u,r,r+1,r+2),i&&(i.faceIndex=Math.floor(r/3),e.push(i))}}}}function checkIntersection$1(t,e,n,i,r,s,a,o){let c;if(c=e.side===BackSide?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,e.side===FrontSide,o),null===c)return null;_intersectionPointWorld.copy(o),_intersectionPointWorld.applyMatrix4(t.matrixWorld);const l=n.ray.origin.distanceTo(_intersectionPointWorld);return l<n.near||l>n.far?null:{distance:l,point:_intersectionPointWorld.clone(),object:t}}function checkGeometryIntersection(t,e,n,i,r,s,a,o,c,l){t.getVertexPosition(o,_vA$1),t.getVertexPosition(c,_vB$1),t.getVertexPosition(l,_vC$1);const u=checkIntersection$1(t,e,n,i,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(u){r&&(_uvA$1.fromBufferAttribute(r,o),_uvB$1.fromBufferAttribute(r,c),_uvC$1.fromBufferAttribute(r,l),u.uv=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),s&&(_uvA$1.fromBufferAttribute(s,o),_uvB$1.fromBufferAttribute(s,c),_uvC$1.fromBufferAttribute(s,l),u.uv1=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_uvA$1,_uvB$1,_uvC$1,new Vector2)),a&&(_normalA.fromBufferAttribute(a,o),_normalB.fromBufferAttribute(a,c),_normalC.fromBufferAttribute(a,l),u.normal=Triangle.getInterpolation(_intersectionPoint,_vA$1,_vB$1,_vC$1,_normalA,_normalB,_normalC,new Vector3),u.normal.dot(i.direction)>0&&u.normal.multiplyScalar(-1));const t={a:o,b:c,c:l,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,t.normal),u.face=t}return u}class BoxGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],c=[],l=[],u=[];let h=0,d=0;function p(t,e,n,i,r,s,p,f,m,g,A){const v=s/m,y=p/g,S=s/2,b=p/2,x=f/2,M=m+1,T=g+1;let I=0,R=0;const E=new Vector3;for(let a=0;a<T;a++){const s=a*y-b;for(let o=0;o<M;o++){const h=o*v-S;E[t]=h*i,E[e]=s*r,E[n]=x,c.push(E.x,E.y,E.z),E[t]=0,E[e]=0,E[n]=f>0?1:-1,l.push(E.x,E.y,E.z),u.push(o/m),u.push(1-a/g),I+=1}}for(let a=0;a<g;a++)for(let t=0;t<m;t++){const e=h+t+M*a,n=h+t+M*(a+1),i=h+(t+1)+M*(a+1),r=h+(t+1)+M*a;o.push(e,n,r),o.push(n,i,r),R+=6}a.addGroup(d,R,A),d+=R,h+=I}p("z","y","x",-1,-1,n,e,t,s,r,0),p("z","y","x",1,-1,n,e,-t,s,r,1),p("x","z","y",1,1,t,n,e,i,s,2),p("x","z","y",1,-1,t,n,-e,i,s,3),p("x","y","z",1,-1,t,e,n,i,r,4),p("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute("position",new Float32BufferAttribute(c,3)),this.setAttribute("normal",new Float32BufferAttribute(l,3)),this.setAttribute("uv",new Float32BufferAttribute(u,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new BoxGeometry(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function cloneUniforms(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?r.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[n][i]=null):e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function mergeUniforms(t){const e={};for(let n=0;n<t.length;n++){const i=cloneUniforms(t[n]);for(const t in i)e[t]=i[t]}return e}function cloneUniformsGroups(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function getUnlitUniformColorSpace(t){const e=t.getRenderTarget();return null===e?t.outputColorSpace:!0===e.isXRRenderTarget?e.texture.colorSpace:ColorManagement.workingColorSpace}const UniformsUtils={clone:cloneUniforms,merge:mergeUniforms};var default_vertex="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",default_fragment="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";class ShaderMaterial extends Material{constructor(t){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=default_vertex,this.fragmentShader=default_fragment,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&this.setValues(t)}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=cloneUniforms(t.uniforms),this.uniformsGroups=cloneUniformsGroups(t.uniformsGroups),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.fog=t.fog,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const i in this.uniforms){const n=this.uniforms[i].value;n&&n.isTexture?e.uniforms[i]={type:"t",value:n.toJSON(t).uuid}:n&&n.isColor?e.uniforms[i]={type:"c",value:n.getHex()}:n&&n.isVector2?e.uniforms[i]={type:"v2",value:n.toArray()}:n&&n.isVector3?e.uniforms[i]={type:"v3",value:n.toArray()}:n&&n.isVector4?e.uniforms[i]={type:"v4",value:n.toArray()}:n&&n.isMatrix3?e.uniforms[i]={type:"m3",value:n.toArray()}:n&&n.isMatrix4?e.uniforms[i]={type:"m4",value:n.toArray()}:e.uniforms[i]={value:n}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Camera extends Object3D{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Matrix4,this.projectionMatrix=new Matrix4,this.projectionMatrixInverse=new Matrix4,this.coordinateSystem=WebGLCoordinateSystem}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const _v3$1=new Vector3,_minTarget=new Vector2,_maxTarget=new Vector2;class PerspectiveCamera extends Camera{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*RAD2DEG$1*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*DEG2RAD$1*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*RAD2DEG$1*Math.atan(Math.tan(.5*DEG2RAD$1*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){_v3$1.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(_v3$1.x,_v3$1.y).multiplyScalar(-t/_v3$1.z),_v3$1.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(_v3$1.x,_v3$1.y).multiplyScalar(-t/_v3$1.z)}getViewSize(t,e){return this.getViewBounds(t,_minTarget,_maxTarget),e.subVectors(_maxTarget,_minTarget)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*DEG2RAD$1*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const fov=-90,aspect=1;class CubeCamera extends Object3D{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new PerspectiveCamera(fov,aspect,t,e);i.layers=this.layers,this.add(i);const r=new PerspectiveCamera(fov,aspect,t,e);r.layers=this.layers,this.add(r);const s=new PerspectiveCamera(fov,aspect,t,e);s.layers=this.layers,this.add(s);const a=new PerspectiveCamera(fov,aspect,t,e);a.layers=this.layers,this.add(a);const o=new PerspectiveCamera(fov,aspect,t,e);o.layers=this.layers,this.add(o);const c=new PerspectiveCamera(fov,aspect,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,i,r,s,a,o]=e;for(const c of e)this.remove(c);if(t===WebGLCoordinateSystem)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else{if(t!==WebGPUCoordinateSystem)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1)}for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,s,a,o,c,l]=this.children,u=t.getRenderTarget(),h=t.getActiveCubeFace(),d=t.getActiveMipmapLevel(),p=t.xr.enabled;t.xr.enabled=!1;const f=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,i),t.render(e,r),t.setRenderTarget(n,1,i),t.render(e,s),t.setRenderTarget(n,2,i),t.render(e,a),t.setRenderTarget(n,3,i),t.render(e,o),t.setRenderTarget(n,4,i),t.render(e,c),n.texture.generateMipmaps=f,t.setRenderTarget(n,5,i),t.render(e,l),t.setRenderTarget(u,h,d),t.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class CubeTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l){super(t=void 0!==t?t:[],e=void 0!==e?e:CubeReflectionMapping,n,i,r,s,a,o,c,l),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new CubeTexture(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:LinearFilter}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new BoxGeometry(5,5,5),r=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:BackSide,blending:NoBlending});r.uniforms.tEquirect.value=e;const s=new Mesh(i,r),a=e.minFilter;e.minFilter===LinearMipmapLinearFilter&&(e.minFilter=LinearFilter);return new CubeCamera(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,n,i);t.setRenderTarget(r)}}const _vector1=new Vector3,_vector2=new Vector3,_normalMatrix=new Matrix3;class Plane{constructor(t=new Vector3(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=_vector1.subVectors(n,e).cross(_vector2.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const n=t.delta(_vector1),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||_normalMatrix.getNormalMatrix(t),i=this.coplanarPoint(_vector1).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const _sphere$5=new Sphere,_vector$7=new Vector3;class Frustum{constructor(t=new Plane,e=new Plane,n=new Plane,i=new Plane,r=new Plane,s=new Plane){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=WebGLCoordinateSystem){const n=this.planes,i=t.elements,r=i[0],s=i[1],a=i[2],o=i[3],c=i[4],l=i[5],u=i[6],h=i[7],d=i[8],p=i[9],f=i[10],m=i[11],g=i[12],A=i[13],v=i[14],y=i[15];if(n[0].setComponents(o-r,h-c,m-d,y-g).normalize(),n[1].setComponents(o+r,h+c,m+d,y+g).normalize(),n[2].setComponents(o+s,h+l,m+p,y+A).normalize(),n[3].setComponents(o-s,h-l,m-p,y-A).normalize(),n[4].setComponents(o-a,h-u,m-f,y-v).normalize(),e===WebGLCoordinateSystem)n[5].setComponents(o+a,h+u,m+f,y+v).normalize();else{if(e!==WebGPUCoordinateSystem)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);n[5].setComponents(a,u,f,v).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),_sphere$5.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),_sphere$5.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(_sphere$5)}intersectsSprite(t){return _sphere$5.center.set(0,0,0),_sphere$5.radius=.7071067811865476,_sphere$5.applyMatrix4(t.matrixWorld),this.intersectsSphere(_sphere$5)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let r=0;r<6;r++){if(e[r].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(_vector$7.x=i.normal.x>0?t.max.x:t.min.x,_vector$7.y=i.normal.y>0?t.max.y:t.min.y,_vector$7.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(_vector$7)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function WebGLAttributes(t){const e=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),e.get(t)},remove:function(n){n.isInterleavedBufferAttribute&&(n=n.data);const i=e.get(n);i&&(t.deleteBuffer(i.buffer),e.delete(n))},update:function(n,i){if(n.isGLBufferAttribute){const t=e.get(n);return void((!t||t.version<n.version)&&e.set(n,{buffer:n.buffer,type:n.type,bytesPerElement:n.elementSize,version:n.version}))}n.isInterleavedBufferAttribute&&(n=n.data);const r=e.get(n);if(void 0===r)e.set(n,function(e,n){const i=e.array,r=e.usage,s=i.byteLength,a=t.createBuffer();let o;if(t.bindBuffer(n,a),t.bufferData(n,i,r),e.onUploadCallback(),i instanceof Float32Array)o=t.FLOAT;else if(i instanceof Uint16Array)o=e.isFloat16BufferAttribute?t.HALF_FLOAT:t.UNSIGNED_SHORT;else if(i instanceof Int16Array)o=t.SHORT;else if(i instanceof Uint32Array)o=t.UNSIGNED_INT;else if(i instanceof Int32Array)o=t.INT;else if(i instanceof Int8Array)o=t.BYTE;else if(i instanceof Uint8Array)o=t.UNSIGNED_BYTE;else{if(!(i instanceof Uint8ClampedArray))throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+i);o=t.UNSIGNED_BYTE}return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:e.version,size:s}}(n,i));else if(r.version<n.version){if(r.size!==n.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");!function(e,n,i){const r=n.array,s=n._updateRange,a=n.updateRanges;if(t.bindBuffer(i,e),-1===s.count&&0===a.length&&t.bufferSubData(i,0,r),0!==a.length){for(let e=0,n=a.length;e<n;e++){const n=a[e];t.bufferSubData(i,n.start*r.BYTES_PER_ELEMENT,r,n.start,n.count)}n.clearUpdateRanges()}-1!==s.count&&(t.bufferSubData(i,s.offset*r.BYTES_PER_ELEMENT,r,s.offset,s.count),s.count=-1),n.onUploadCallback()}(r.buffer,n,i),r.version=n.version}}}}class PlaneGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),c=a+1,l=o+1,u=t/a,h=e/o,d=[],p=[],f=[],m=[];for(let g=0;g<l;g++){const t=g*h-s;for(let e=0;e<c;e++){const n=e*u-r;p.push(n,-t,0),f.push(0,0,1),m.push(e/a),m.push(1-g/o)}}for(let g=0;g<o;g++)for(let t=0;t<a;t++){const e=t+c*g,n=t+c*(g+1),i=t+1+c*(g+1),r=t+1+c*g;d.push(e,n,r),d.push(n,i,r)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(f,3)),this.setAttribute("uv",new Float32BufferAttribute(m,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new PlaneGeometry(t.width,t.height,t.widthSegments,t.heightSegments)}}var alphahash_fragment="#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment="#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif",alphamap_fragment="#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment="#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment="#ifdef USE_ALPHATEST\n\t#ifdef ALPHA_TO_COVERAGE\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\tif ( diffuseColor.a < alphaTest ) discard;\n\t#endif\n#endif",alphatest_pars_fragment="#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment="#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment="#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",batching_pars_vertex="#ifdef USE_BATCHING\n\t#if ! defined( GL_ANGLE_multi_draw )\n\t#define gl_DrawID _gl_DrawID\n\tuniform int _gl_DrawID;\n\t#endif\n\tuniform highp sampler2D batchingTexture;\n\tuniform highp usampler2D batchingIdTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n\tfloat getIndirectIndex( const in int i ) {\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\n\t\tint x = i % size;\n\t\tint y = i / size;\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n\t}\n#endif\n#ifdef USE_BATCHING_COLOR\n\tuniform sampler2D batchingColorTexture;\n\tvec3 getBatchingColor( const in float i ) {\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\n\t\tint j = int( i );\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n\t}\n#endif",batching_vertex="#ifdef USE_BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif",begin_vertex="vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif",beginnormal_vertex="vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs="float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated",iridescence_fragment="#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",bumpmap_pars_fragment="#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment="#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex="#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n\tvColor.xyz *= batchingColor.xyz;\n#endif",common="#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment="#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex="vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex="#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex="#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment="#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment="#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment="gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment="\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex="#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_vertex="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex="#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex="#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment="#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment="#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment="#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_pars_fragment="#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment="LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment="varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin="uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif ( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",envmap_physical_pars_fragment="#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",lights_toon_fragment="ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment="varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment="BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment="varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment="PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n\tmaterial.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment="struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\tfloat dispersion;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin="\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps="#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end="#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment="#if defined( USE_LOGDEPTHBUF )\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment="#if defined( USE_LOGDEPTHBUF )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex="#ifdef USE_LOGDEPTHBUF\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_vertex="#ifdef USE_LOGDEPTHBUF\n\tvFragDepth = 1.0 + gl_Position.w;\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif",map_fragment="#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment="#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment="#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment="#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment="float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment="#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex="#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex="#if defined( USE_MORPHCOLORS )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex="#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",morphtarget_pars_vertex="#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t#endif\n\tuniform sampler2DArray morphTargetsTexture;\n\tuniform ivec2 morphTargetsTextureSize;\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t}\n#endif",morphtarget_vertex="#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t}\n#endif",normal_fragment_begin="float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps="#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex="#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex="#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment="#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin="#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps="#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment="#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment="#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment="#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing="vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment="#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex="vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment="#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment="#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment="float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment="#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment="#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tfloat shadow = 1.0;\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\t\n\t\tfloat lightToPositionLength = length( lightToPosition );\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\n\t\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\t\tshadow = (\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t\t) * ( 1.0 / 9.0 );\n\t\t\t#else\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t\t#endif\n\t\t}\n\t\treturn mix( 1.0, shadow, shadowIntensity );\n\t}\n#endif",shadowmap_pars_vertex="#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowIntensity;\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex="#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment="float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex="#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex="#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex="#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex="#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment="float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment="#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment="#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment="#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment="#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment="#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec4 transmittedLight;\n\t\tvec3 transmittance;\n\t\t#ifdef USE_DISPERSION\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\t\trefractionCoords += 1.0;\n\t\t\t\trefractionCoords /= 2.0;\n\t\t\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n\t\t\t}\n\t\t\ttransmittedLight.a /= 3.0;\n\t\t\n\t\t#else\n\t\t\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\t\trefractionCoords += 1.0;\n\t\t\trefractionCoords /= 2.0;\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\t\n\t\t#endif\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex="#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex="#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif";const vertex$h="varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",fragment$h="uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$g="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",fragment$g="#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$f="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",fragment$f="uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$e="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",fragment$e="#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",vertex$d="#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <skinbase_vertex>\n\t#include <morphinstance_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",fragment$d="#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <clipping_planes_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",vertex$c="varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",fragment$c="uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n}",vertex$b="uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",fragment$b="uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",vertex$a="#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",fragment$a="uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$9="#define LAMBERT\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$9="#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_lambert_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$8="#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",fragment$8="#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$7="#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",fragment$7="#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",vertex$6="#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$6="#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$5="#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",fragment$5="#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n\tuniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$4="#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <batching_pars_vertex>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$4="#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",vertex$3="uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include <color_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",fragment$3="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",vertex$2="#include <common>\n#include <batching_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <batching_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphinstance_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",fragment$2="uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <logdepthbuf_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",vertex$1="uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",fragment$1="uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <alphahash_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <alphahash_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <opaque_fragment>\n\t#include <tonemapping_fragment>\n\t#include <colorspace_fragment>\n\t#include <fog_fragment>\n}",ShaderChunk={alphahash_fragment,alphahash_pars_fragment,alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,batching_pars_vertex,batching_vertex,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,colorspace_fragment,colorspace_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_pars_fragment,lights_lambert_fragment,lights_lambert_pars_fragment,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphinstance_vertex,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,opaque_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Matrix3}},envmap:{envMap:{value:null},envMapRotation:{value:new Matrix3},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Matrix3}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Matrix3}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Matrix3},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Matrix3},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Matrix3},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Matrix3}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Matrix3}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Matrix3}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Matrix3},alphaMap:{value:null},alphaMapTransform:{value:new Matrix3},alphaTest:{value:0}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Matrix3}},vertexShader:ShaderChunk.backgroundCube_vert,fragmentShader:ShaderChunk.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Matrix3},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Matrix3},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Matrix3},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Matrix3},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Matrix3},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Matrix3},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Matrix3},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Matrix3},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Matrix3},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Matrix3},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Matrix3},anisotropyVector:{value:new Vector2},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Matrix3}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};const _rgb={r:0,b:0,g:0},_e1$1=new Euler,_m1$1=new Matrix4;function WebGLBackground(t,e,n,i,r,s,a){const o=new Color(0);let c,l,u=!0===s?0:1,h=null,d=0,p=null;function f(t){let i=!0===t.isScene?t.background:null;if(i&&i.isTexture){i=(t.backgroundBlurriness>0?n:e).get(i)}return i}function m(e,n){e.getRGB(_rgb,getUnlitUniformColorSpace(t)),i.buffers.color.setClear(_rgb.r,_rgb.g,_rgb.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),u=e,m(o,u)},getClearAlpha:function(){return u},setClearAlpha:function(t){u=t,m(o,u)},render:function(e){let n=!1;const r=f(e);null===r?m(o,u):r&&r.isColor&&(m(r,1),n=!0);const s=t.xr.getEnvironmentBlendMode();"additive"===s?i.buffers.color.setClear(0,0,0,1,a):"alpha-blend"===s&&i.buffers.color.setClear(0,0,0,0,a),(t.autoClear||n)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))},addToRenderList:function(e,n){const i=f(n);i&&(i.isCubeTexture||i.mapping===CubeUVReflectionMapping)?(void 0===l&&(l=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.backgroundCube.uniforms),vertexShader:ShaderLib.backgroundCube.vertexShader,fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),_e1$1.copy(n.backgroundRotation),_e1$1.x*=-1,_e1$1.y*=-1,_e1$1.z*=-1,i.isCubeTexture&&!1===i.isRenderTargetTexture&&(_e1$1.y*=-1,_e1$1.z*=-1),l.material.uniforms.envMap.value=i,l.material.uniforms.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,l.material.uniforms.backgroundBlurriness.value=n.backgroundBlurriness,l.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,l.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)),l.material.toneMapped=ColorManagement.getTransfer(i.colorSpace)!==SRGBTransfer,h===i&&d===i.version&&p===t.toneMapping||(l.material.needsUpdate=!0,h=i,d=i.version,p=t.toneMapping),l.layers.enableAll(),e.unshift(l,l.geometry,l.material,0,0,null)):i&&i.isTexture&&(void 0===c&&(c=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=i,c.material.uniforms.backgroundIntensity.value=n.backgroundIntensity,c.material.toneMapped=ColorManagement.getTransfer(i.colorSpace)!==SRGBTransfer,!0===i.matrixAutoUpdate&&i.updateMatrix(),c.material.uniforms.uvTransform.value.copy(i.matrix),h===i&&d===i.version&&p===t.toneMapping||(c.material.needsUpdate=!0,h=i,d=i.version,p=t.toneMapping),c.layers.enableAll(),e.unshift(c,c.geometry,c.material,0,0,null))}}}function WebGLBindingStates(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),i={},r=l(null);let s=r,a=!1;function o(e){return t.bindVertexArray(e)}function c(e){return t.deleteVertexArray(e)}function l(t){const e=[],i=[],r=[];for(let s=0;s<n;s++)e[s]=0,i[s]=0,r[s]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:i,attributeDivisors:r,object:t,attributes:{},index:null}}function u(){const t=s.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function h(t){d(t,0)}function d(e,n){const i=s.newAttributes,r=s.enabledAttributes,a=s.attributeDivisors;i[e]=1,0===r[e]&&(t.enableVertexAttribArray(e),r[e]=1),a[e]!==n&&(t.vertexAttribDivisor(e,n),a[e]=n)}function p(){const e=s.newAttributes,n=s.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function f(e,n,i,r,s,a,o){!0===o?t.vertexAttribIPointer(e,n,i,s,a):t.vertexAttribPointer(e,n,i,r,s,a)}function m(){g(),a=!0,s!==r&&(s=r,o(s.object))}function g(){r.geometry=null,r.program=null,r.wireframe=!1}return{setup:function(n,r,c,m,g){let A=!1;const v=function(e,n,r){const s=!0===r.wireframe;let a=i[e.id];void 0===a&&(a={},i[e.id]=a);let o=a[n.id];void 0===o&&(o={},a[n.id]=o);let c=o[s];void 0===c&&(c=l(t.createVertexArray()),o[s]=c);return c}(m,c,r);s!==v&&(s=v,o(s.object)),A=function(t,e,n,i){const r=s.attributes,a=e.attributes;let o=0;const c=n.getAttributes();for(const s in c){if(c[s].location>=0){const e=r[s];let n=a[s];if(void 0===n&&("instanceMatrix"===s&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(n=t.instanceColor)),void 0===e)return!0;if(e.attribute!==n)return!0;if(n&&e.data!==n.data)return!0;o++}}return s.attributesNum!==o||s.index!==i}(n,m,c,g),A&&function(t,e,n,i){const r={},a=e.attributes;let o=0;const c=n.getAttributes();for(const s in c){if(c[s].location>=0){let e=a[s];void 0===e&&("instanceMatrix"===s&&t.instanceMatrix&&(e=t.instanceMatrix),"instanceColor"===s&&t.instanceColor&&(e=t.instanceColor));const n={};n.attribute=e,e&&e.data&&(n.data=e.data),r[s]=n,o++}}s.attributes=r,s.attributesNum=o,s.index=i}(n,m,c,g),null!==g&&e.update(g,t.ELEMENT_ARRAY_BUFFER),(A||a)&&(a=!1,function(n,i,r,s){u();const a=s.attributes,o=r.getAttributes(),c=i.defaultAttributeValues;for(const l in o){const i=o[l];if(i.location>=0){let r=a[l];if(void 0===r&&("instanceMatrix"===l&&n.instanceMatrix&&(r=n.instanceMatrix),"instanceColor"===l&&n.instanceColor&&(r=n.instanceColor)),void 0!==r){const a=r.normalized,o=r.itemSize,c=e.get(r);if(void 0===c)continue;const l=c.buffer,u=c.type,p=c.bytesPerElement,m=u===t.INT||u===t.UNSIGNED_INT||r.gpuType===IntType;if(r.isInterleavedBufferAttribute){const e=r.data,c=e.stride,g=r.offset;if(e.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)d(i.location+t,e.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=e.meshPerAttribute*e.count)}else for(let t=0;t<i.locationSize;t++)h(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,l);for(let t=0;t<i.locationSize;t++)f(i.location+t,o/i.locationSize,u,a,c*p,(g+o/i.locationSize*t)*p,m)}else{if(r.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)d(i.location+t,r.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===s._maxInstanceCount&&(s._maxInstanceCount=r.meshPerAttribute*r.count)}else for(let t=0;t<i.locationSize;t++)h(i.location+t);t.bindBuffer(t.ARRAY_BUFFER,l);for(let t=0;t<i.locationSize;t++)f(i.location+t,o/i.locationSize,u,a,o*p,o/i.locationSize*t*p,m)}}else if(void 0!==c){const e=c[l];if(void 0!==e)switch(e.length){case 2:t.vertexAttrib2fv(i.location,e);break;case 3:t.vertexAttrib3fv(i.location,e);break;case 4:t.vertexAttrib4fv(i.location,e);break;default:t.vertexAttrib1fv(i.location,e)}}}}p()}(n,r,c,m),null!==g&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(g).buffer))},reset:m,resetDefaultState:g,dispose:function(){m();for(const t in i){const e=i[t];for(const t in e){const n=e[t];for(const t in n)c(n[t].object),delete n[t];delete e[t]}delete i[t]}},releaseStatesOfGeometry:function(t){if(void 0===i[t.id])return;const e=i[t.id];for(const n in e){const t=e[n];for(const e in t)c(t[e].object),delete t[e];delete e[n]}delete i[t.id]},releaseStatesOfProgram:function(t){for(const e in i){const n=i[e];if(void 0===n[t.id])continue;const r=n[t.id];for(const t in r)c(r[t].object),delete r[t];delete n[t.id]}},initAttributes:u,enableAttribute:h,disableUnusedAttributes:p}}function WebGLBufferRenderer(t,e,n){let i;function r(e,r,s){0!==s&&(t.drawArraysInstanced(i,e,r,s),n.update(r,i,s))}this.setMode=function(t){i=t},this.render=function(e,r){t.drawArrays(i,e,r),n.update(r,i,1)},this.renderInstances=r,this.renderMultiDraw=function(t,r,s){if(0===s)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(i,t,0,r,0,s);let a=0;for(let e=0;e<s;e++)a+=r[e];n.update(a,i,1)},this.renderMultiDrawInstances=function(t,s,a,o){if(0===a)return;const c=e.get("WEBGL_multi_draw");if(null===c)for(let e=0;e<t.length;e++)r(t[e],s[e],o[e]);else{c.multiDrawArraysInstancedWEBGL(i,t,0,s,0,o,0,a);let e=0;for(let t=0;t<a;t++)e+=s[t];for(let t=0;t<o.length;t++)n.update(e,i,o[t])}}}function WebGLCapabilities(t,e,n,i){let r;function s(e){if("highp"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let a=void 0!==n.precision?n.precision:"highp";const o=s(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const c=!0===n.logarithmicDepthBuffer,l=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");r=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:s,textureFormatReadable:function(e){return e===RGBAFormat||i.convert(e)===t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT)},textureTypeReadable:function(n){const r=n===HalfFloatType&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(n!==UnsignedByteType&&i.convert(n)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&n!==FloatType&&!r)},precision:a,logarithmicDepthBuffer:c,maxTextures:l,maxVertexTextures:u,maxTextureSize:t.getParameter(t.MAX_TEXTURE_SIZE),maxCubemapSize:t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),maxAttributes:t.getParameter(t.MAX_VERTEX_ATTRIBS),maxVertexUniforms:t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),maxVaryings:t.getParameter(t.MAX_VARYING_VECTORS),maxFragmentUniforms:t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),vertexTextures:u>0,maxSamples:t.getParameter(t.MAX_SAMPLES)}}function WebGLClipping(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new Plane,o=new Matrix3,c={value:null,needsUpdate:!1};function l(t,n,i,r){const s=null!==t?t.length:0;let l=null;if(0!==s){if(l=c.value,!0!==r||null===l){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===l||l.length<e)&&(l=new Float32Array(e));for(let n=0,c=i;n!==s;++n,c+=4)a.copy(t[n]).applyMatrix4(r,o),a.normal.toArray(l,c),l[c+3]=a.constant}c.value=l,c.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,l}this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e){const n=0!==t.length||e||0!==i||r;return r=e,i=t.length,n},this.beginShadows=function(){s=!0,l(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(t,e){n=l(t,e,0)},this.setState=function(a,o,u){const h=a.clippingPlanes,d=a.clipIntersection,p=a.clipShadows,f=t.get(a);if(!r||null===h||0===h.length||s&&!p)s?l(null):function(){c.value!==n&&(c.value=n,c.needsUpdate=i>0);e.numPlanes=i,e.numIntersection=0}();else{const t=s?0:i,e=4*t;let r=f.clippingState||null;c.value=r,r=l(h,o,e,u);for(let i=0;i!==e;++i)r[i]=n[i];f.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function WebGLCubeMaps(t){let e=new WeakMap;function n(t,e){return e===EquirectangularReflectionMapping?t.mapping=CubeReflectionMapping:e===EquirectangularRefractionMapping&&(t.mapping=CubeRefractionMapping),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping;if(s===EquirectangularReflectionMapping||s===EquirectangularRefractionMapping){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=new WebGLCubeRenderTarget(s.height);return a.fromEquirectangularTexture(t,r),e.set(r,a),r.addEventListener("dispose",i),n(a.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}class OrthographicCamera extends Camera{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color;let _oldTarget=null,_oldActiveCubeFace=0,_oldActiveMipmapLevel=0,_oldXrEnabled=!1;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(-PHI,INV_PHI,0),new Vector3(PHI,INV_PHI,0),new Vector3(-INV_PHI,0,PHI),new Vector3(INV_PHI,0,PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(0,PHI,INV_PHI),new Vector3(-1,1,-1),new Vector3(1,1,-1),new Vector3(-1,1,1),new Vector3(1,1,1)];class PMREMGenerator{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;t<this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(_oldTarget,_oldActiveCubeFace,_oldActiveMipmapLevel),this._renderer.xr.enabled=_oldXrEnabled,t.scissorTest=!1,_setViewport(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===CubeReflectionMapping||t.mapping===CubeRefractionMapping?this._setSize(0===t.image.length?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4),_oldTarget=this._renderer.getRenderTarget(),_oldActiveCubeFace=this._renderer.getActiveCubeFace(),_oldActiveMipmapLevel=this._renderer.getActiveMipmapLevel(),_oldXrEnabled=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const n=e||this._allocateTargets();return this._textureToCubeUV(t,n),this._applyPMREM(n),this._cleanup(n),n}_allocateTargets(){const t=3*Math.max(this._cubeSize,112),e=4*this._cubeSize,n={magFilter:LinearFilter,minFilter:LinearFilter,generateMipmaps:!1,type:HalfFloatType,format:RGBAFormat,colorSpace:LinearSRGBColorSpace,depthBuffer:!1},i=_createRenderTarget(t,e,n);if(null===this._pingPongRenderTarget||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){null!==this._pingPongRenderTarget&&this._dispose(),this._pingPongRenderTarget=_createRenderTarget(t,e,n);const{_lodMax:i}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_createPlanes(i)),this._blurMaterial=_getBlurShader(i,t,e)}return i}_compileMaterial(t){const e=new Mesh(this._lodPlanes[0],t);this._renderer.compile(e,_flatCamera)}_sceneToCubeUV(t,e,n,i){const r=new PerspectiveCamera(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,c=o.autoClear,l=o.toneMapping;o.getClearColor(_clearColor),o.toneMapping=NoToneMapping,o.autoClear=!1;const u=new MeshBasicMaterial({name:"PMREM.Background",side:BackSide,depthWrite:!1,depthTest:!1}),h=new Mesh(new BoxGeometry,u);let d=!1;const p=t.background;p?p.isColor&&(u.color.copy(p),t.background=null,d=!0):(u.color.copy(_clearColor),d=!0);for(let f=0;f<6;f++){const e=f%3;0===e?(r.up.set(0,s[f],0),r.lookAt(a[f],0,0)):1===e?(r.up.set(0,0,s[f]),r.lookAt(0,a[f],0)):(r.up.set(0,s[f],0),r.lookAt(0,0,a[f]));const n=this._cubeSize;_setViewport(i,e*n,f>2?n:0,n,n),o.setRenderTarget(i),d&&o.render(h,r),o.render(t,r)}h.geometry.dispose(),h.material.dispose(),o.toneMapping=l,o.autoClear=c,t.background=p}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===CubeReflectionMapping||t.mapping===CubeRefractionMapping;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial());const r=i?this._cubemapMaterial:this._equirectMaterial,s=new Mesh(this._lodPlanes[0],r);r.uniforms.envMap.value=t;const a=this._cubeSize;_setViewport(e,0,0,3*a,2*a),n.setRenderTarget(e),n.render(s,_flatCamera)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const i=this._lodPlanes.length;for(let r=1;r<i;r++){const e=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),n=_axisDirections[(i-r-1)%_axisDirections.length];this._blur(t,r-1,r,e,n)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,"latitudinal",r),this._halfBlur(s,t,n,n,i,"longitudinal",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,c=this._blurMaterial;"latitudinal"!==s&&"longitudinal"!==s&&console.error("blur direction must be either latitudinal or longitudinal!");const l=new Mesh(this._lodPlanes[i],c),u=c.uniforms,h=this._sizeLods[n]-1,d=isFinite(r)?Math.PI/(2*h):2*Math.PI/(2*MAX_SAMPLES-1),p=r/d,f=isFinite(r)?1+Math.floor(3*p):MAX_SAMPLES;f>MAX_SAMPLES&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${f} samples when the maximum is set to ${MAX_SAMPLES}`);const m=[];let g=0;for(let y=0;y<MAX_SAMPLES;++y){const t=y/p,e=Math.exp(-t*t/2);m.push(e),0===y?g+=e:y<f&&(g+=2*e)}for(let y=0;y<m.length;y++)m[y]=m[y]/g;u.envMap.value=t.texture,u.samples.value=f,u.weights.value=m,u.latitudinal.value="latitudinal"===s,a&&(u.poleAxis.value=a);const{_lodMax:A}=this;u.dTheta.value=d,u.mipInt.value=A-n;const v=this._sizeLods[i];_setViewport(e,3*v*(i>A-LOD_MIN?i-A+LOD_MIN:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(e),o.render(l,_flatCamera)}}function _createPlanes(t){const e=[],n=[],i=[];let r=t;const s=t-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let a=0;a<s;a++){const s=Math.pow(2,r);n.push(s);let o=1/s;a>t-LOD_MIN?o=EXTRA_LOD_SIGMA[a-t+LOD_MIN-1]:0===a&&(o=0),i.push(o);const c=1/(s-2),l=-c,u=1+c,h=[l,l,u,l,u,u,l,l,u,u,l,u],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),v=new Float32Array(m*p*d),y=new Float32Array(g*p*d);for(let t=0;t<d;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];A.set(i,f*p*t),v.set(h,m*p*t);const r=[t,t,t,t,t,t];y.set(r,g*p*t)}const S=new BufferGeometry;S.setAttribute("position",new BufferAttribute(A,f)),S.setAttribute("uv",new BufferAttribute(v,m)),S.setAttribute("faceIndex",new BufferAttribute(y,g)),e.push(S),r>LOD_MIN&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function _createRenderTarget(t,e,n){const i=new WebGLRenderTarget(t,e,n);return i.texture.mapping=CubeUVReflectionMapping,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function _setViewport(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function _getBlurShader(t,e,n){const i=new Float32Array(MAX_SAMPLES),r=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCommonVertexShader(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function WebGLCubeUVMaps(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture){const s=r.mapping,a=s===EquirectangularReflectionMapping||s===EquirectangularRefractionMapping,o=s===CubeReflectionMapping||s===CubeRefractionMapping;if(a||o){let s=e.get(r);const c=void 0!==s?s.texture.pmremVersion:0;if(r.isRenderTargetTexture&&r.pmremVersion!==c)return null===n&&(n=new PMREMGenerator(t)),s=a?n.fromEquirectangular(r,s):n.fromCubemap(r,s),s.texture.pmremVersion=r.pmremVersion,e.set(r,s),s.texture;if(void 0!==s)return s.texture;{const c=r.image;return a&&c&&c.height>0||o&&c&&function(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}(c)?(null===n&&(n=new PMREMGenerator(t)),s=a?n.fromEquirectangular(r):n.fromCubemap(r),s.texture.pmremVersion=r.pmremVersion,e.set(r,s),r.addEventListener("dispose",i),s.texture):null}}}return r},dispose:function(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function WebGLExtensions(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(t){const e=n(t);return null===e&&warnOnce("THREE.WebGLRenderer: "+t+" extension not supported."),e}}}function WebGLGeometries(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const n in o.attributes)e.remove(o.attributes[n]);for(const n in o.morphAttributes){const t=o.morphAttributes[n];for(let n=0,i=t.length;n<i;n++)e.remove(t[n])}o.removeEventListener("dispose",a),delete r[o.id];const c=s.get(o);c&&(e.remove(c),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{if(void 0===r)return;{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}}const o=new(arrayNeedsUint32(n)?Uint32BufferAttribute:Uint16BufferAttribute)(n,1);o.version=a;const c=s.get(t);c&&e.remove(c),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(n){const i=n.attributes;for(const s in i)e.update(i[s],t.ARRAY_BUFFER);const r=n.morphAttributes;for(const s in r){const n=r[s];for(let i=0,r=n.length;i<r;i++)e.update(n[i],t.ARRAY_BUFFER)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function WebGLIndexedBufferRenderer(t,e,n){let i,r,s;function a(e,a,o){0!==o&&(t.drawElementsInstanced(i,a,r,e*s,o),n.update(a,i,o))}this.setMode=function(t){i=t},this.setIndex=function(t){r=t.type,s=t.bytesPerElement},this.render=function(e,a){t.drawElements(i,a,r,e*s),n.update(a,i,1)},this.renderInstances=a,this.renderMultiDraw=function(t,s,a){if(0===a)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(i,s,0,r,t,0,a);let o=0;for(let e=0;e<a;e++)o+=s[e];n.update(o,i,1)},this.renderMultiDrawInstances=function(t,o,c,l){if(0===c)return;const u=e.get("WEBGL_multi_draw");if(null===u)for(let e=0;e<t.length;e++)a(t[e]/s,o[e],l[e]);else{u.multiDrawElementsInstancedWEBGL(i,o,0,r,t,0,l,0,c);let e=0;for(let t=0;t<c;t++)e+=o[t];for(let t=0;t<l.length;t++)n.update(e,i,l[t])}}}function WebGLInfo(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(n,i,r){switch(e.calls++,i){case t.TRIANGLES:e.triangles+=r*(n/3);break;case t.LINES:e.lines+=r*(n/2);break;case t.LINE_STRIP:e.lines+=r*(n-1);break;case t.LINE_LOOP:e.lines+=r*n;break;case t.POINTS:e.points+=r*n;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i)}}}}function WebGLMorphtargets(t,e,n){const i=new WeakMap,r=new Vector4;return{update:function(s,a,o){const c=s.morphTargetInfluences,l=a.morphAttributes.position||a.morphAttributes.normal||a.morphAttributes.color,u=void 0!==l?l.length:0;let h=i.get(a);if(void 0===h||h.count!==u){let t=function(){A.dispose(),i.delete(a),a.removeEventListener("dispose",t)};void 0!==h&&h.texture.dispose();const n=void 0!==a.morphAttributes.position,s=void 0!==a.morphAttributes.normal,o=void 0!==a.morphAttributes.color,c=a.morphAttributes.position||[],l=a.morphAttributes.normal||[],d=a.morphAttributes.color||[];let p=0;!0===n&&(p=1),!0===s&&(p=2),!0===o&&(p=3);let f=a.attributes.position.count*p,m=1;f>e.maxTextureSize&&(m=Math.ceil(f/e.maxTextureSize),f=e.maxTextureSize);const g=new Float32Array(f*m*4*u),A=new DataArrayTexture(g,f,m,u);A.type=FloatType,A.needsUpdate=!0;const v=4*p;for(let e=0;e<u;e++){const t=c[e],i=l[e],a=d[e],u=f*m*4*e;for(let e=0;e<t.count;e++){const c=e*v;!0===n&&(r.fromBufferAttribute(t,e),g[u+c+0]=r.x,g[u+c+1]=r.y,g[u+c+2]=r.z,g[u+c+3]=0),!0===s&&(r.fromBufferAttribute(i,e),g[u+c+4]=r.x,g[u+c+5]=r.y,g[u+c+6]=r.z,g[u+c+7]=0),!0===o&&(r.fromBufferAttribute(a,e),g[u+c+8]=r.x,g[u+c+9]=r.y,g[u+c+10]=r.z,g[u+c+11]=4===a.itemSize?r.w:1)}}h={count:u,texture:A,size:new Vector2(f,m)},i.set(a,h),a.addEventListener("dispose",t)}if(!0===s.isInstancedMesh&&null!==s.morphTexture)o.getUniforms().setValue(t,"morphTexture",s.morphTexture,n);else{let e=0;for(let t=0;t<c.length;t++)e+=c[t];const n=a.morphTargetsRelative?1:1-e;o.getUniforms().setValue(t,"morphTargetBaseInfluence",n),o.getUniforms().setValue(t,"morphTargetInfluences",c)}o.getUniforms().setValue(t,"morphTargetsTexture",h.texture,n),o.getUniforms().setValue(t,"morphTargetsTextureSize",h.size)}}}function WebGLObjects(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener("dispose",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(a){const o=i.render.frame,c=a.geometry,l=e.get(a,c);if(r.get(l)!==o&&(e.update(l),r.set(l,o)),a.isInstancedMesh&&(!1===a.hasEventListener("dispose",s)&&a.addEventListener("dispose",s),r.get(a)!==o&&(n.update(a.instanceMatrix,t.ARRAY_BUFFER),null!==a.instanceColor&&n.update(a.instanceColor,t.ARRAY_BUFFER),r.set(a,o))),a.isSkinnedMesh){const t=a.skeleton;r.get(t)!==o&&(t.update(),r.set(t,o))}return l},dispose:function(){r=new WeakMap}}}class DepthTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l=DepthFormat){if(l!==DepthFormat&&l!==DepthStencilFormat)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&l===DepthFormat&&(n=UnsignedIntType),void 0===n&&l===DepthStencilFormat&&(n=UnsignedInt248Type),super(null,i,r,s,a,o,l,n,c),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:NearestFilter,this.minFilter=void 0!==o?o:NearestFilter,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}const emptyTexture=new Texture,emptyShadowTexture=new DepthTexture(1,1),emptyArrayTexture=new DataArrayTexture,empty3dTexture=new Data3DTexture,emptyCubeTexture=new CubeTexture,arrayCacheF32=[],arrayCacheI32=[],mat4array=new Float32Array(16),mat3array=new Float32Array(9),mat2array=new Float32Array(4);function flatten(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=arrayCacheF32[r];if(void 0===s&&(s=new Float32Array(r),arrayCacheF32[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function arraysEqual(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function copyArray(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function allocTexUnits(t,e){let n=arrayCacheI32[e];void 0===n&&(n=new Int32Array(e),arrayCacheI32[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function setValueV1f(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function setValueV2f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2fv(this.addr,e),copyArray(n,e)}}function setValueV3f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(arraysEqual(n,e))return;t.uniform3fv(this.addr,e),copyArray(n,e)}}function setValueV4f(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4fv(this.addr,e),copyArray(n,e)}}function setValueM2(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat2array.set(i),t.uniformMatrix2fv(this.addr,!1,mat2array),copyArray(n,i)}}function setValueM3(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat3array.set(i),t.uniformMatrix3fv(this.addr,!1,mat3array),copyArray(n,i)}}function setValueM4(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(arraysEqual(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),copyArray(n,e)}else{if(arraysEqual(n,i))return;mat4array.set(i),t.uniformMatrix4fv(this.addr,!1,mat4array),copyArray(n,i)}}function setValueV1i(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function setValueV2i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2iv(this.addr,e),copyArray(n,e)}}function setValueV3i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(arraysEqual(n,e))return;t.uniform3iv(this.addr,e),copyArray(n,e)}}function setValueV4i(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4iv(this.addr,e),copyArray(n,e)}}function setValueV1ui(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function setValueV2ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(arraysEqual(n,e))return;t.uniform2uiv(this.addr,e),copyArray(n,e)}}function setValueV3ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(arraysEqual(n,e))return;t.uniform3uiv(this.addr,e),copyArray(n,e)}}function setValueV4ui(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(arraysEqual(n,e))return;t.uniform4uiv(this.addr,e),copyArray(n,e)}}function setValueT1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();let s;i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),this.type===t.SAMPLER_2D_SHADOW?(emptyShadowTexture.compareFunction=LessEqualCompare,s=emptyShadowTexture):s=emptyTexture,n.setTexture2D(e||s,r)}function setValueT3D1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||empty3dTexture,r)}function setValueT6(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTextureCube(e||emptyCubeTexture,r)}function setValueT2DArray1(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||emptyArrayTexture,r)}function getSingularSetter(t){switch(t){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}function setValueV1fArray(t,e){t.uniform1fv(this.addr,e)}function setValueV2fArray(t,e){const n=flatten(e,this.size,2);t.uniform2fv(this.addr,n)}function setValueV3fArray(t,e){const n=flatten(e,this.size,3);t.uniform3fv(this.addr,n)}function setValueV4fArray(t,e){const n=flatten(e,this.size,4);t.uniform4fv(this.addr,n)}function setValueM2Array(t,e){const n=flatten(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function setValueM3Array(t,e){const n=flatten(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function setValueM4Array(t,e){const n=flatten(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function setValueV1iArray(t,e){t.uniform1iv(this.addr,e)}function setValueV2iArray(t,e){t.uniform2iv(this.addr,e)}function setValueV3iArray(t,e){t.uniform3iv(this.addr,e)}function setValueV4iArray(t,e){t.uniform4iv(this.addr,e)}function setValueV1uiArray(t,e){t.uniform1uiv(this.addr,e)}function setValueV2uiArray(t,e){t.uniform2uiv(this.addr,e)}function setValueV3uiArray(t,e){t.uniform3uiv(this.addr,e)}function setValueV4uiArray(t,e){t.uniform4uiv(this.addr,e)}function setValueT1Array(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture2D(e[a]||emptyTexture,s[a])}function setValueT3DArray(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture3D(e[a]||empty3dTexture,s[a])}function setValueT6Array(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTextureCube(e[a]||emptyCubeTexture,s[a])}function setValueT2DArrayArray(t,e,n){const i=this.cache,r=e.length,s=allocTexUnits(n,r);arraysEqual(i,s)||(t.uniform1iv(this.addr,s),copyArray(i,s));for(let a=0;a!==r;++a)n.setTexture2DArray(e[a]||emptyArrayTexture,s[a])}function getPureArraySetter(t){switch(t){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}class SingleUniform{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.setValue=getSingularSetter(e.type)}}class PureArrayUniform{constructor(t,e,n){this.id=t,this.addr=n,this.cache=[],this.type=e.type,this.size=e.size,this.setValue=getPureArraySetter(e.type)}}class StructuredUniform{constructor(t){this.id=t,this.seq=[],this.map={}}setValue(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}}}const RePathPart=/(\w+)(\])?(\[|\.)?/g;function addUniform(t,e){t.seq.push(e),t.map[e.id]=e}function parseUniform(t,e,n){const i=t.name,r=i.length;for(RePathPart.lastIndex=0;;){const s=RePathPart.exec(i),a=RePathPart.lastIndex;let o=s[1];const c="]"===s[2],l=s[3];if(c&&(o|=0),void 0===l||"["===l&&a+2===r){addUniform(n,void 0===l?new SingleUniform(o,t,e):new PureArrayUniform(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new StructuredUniform(o),addUniform(n,t)),n=t}}}class WebGLUniforms{constructor(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);parseUniform(n,t.getUniformLocation(e,n.name),this)}}setValue(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)}setOptional(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)}static upload(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}}static seqWithValue(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n}}function WebGLShader(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}const COMPLETION_STATUS_KHR=37297;let programIdCount=0;function handleSource(t,e){const n=t.split("\n"),i=[],r=Math.max(e-6,0),s=Math.min(e+6,n.length);for(let a=r;a<s;a++){const t=a+1;i.push(`${t===e?">":" "} ${t}: ${n[a]}`)}return i.join("\n")}function getEncodingComponents(t){const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),n=ColorManagement.getPrimaries(t);let i;switch(e===n?i="":e===P3Primaries&&n===Rec709Primaries?i="LinearDisplayP3ToLinearSRGB":e===Rec709Primaries&&n===P3Primaries&&(i="LinearSRGBToLinearDisplayP3"),t){case LinearSRGBColorSpace:case LinearDisplayP3ColorSpace:return[i,"LinearTransferOETF"];case SRGBColorSpace:case DisplayP3ColorSpace:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[i,"LinearTransferOETF"]}}function getShaderErrors(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(i&&""===r)return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const i=parseInt(s[1]);return n.toUpperCase()+"\n\n"+r+"\n\n"+handleSource(t.getShaderSource(e),i)}return r}function getTexelEncodingFunction(t,e){const n=getEncodingComponents(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function getToneMappingFunction(t,e){let n;switch(e){case LinearToneMapping:n="Linear";break;case ReinhardToneMapping:n="Reinhard";break;case CineonToneMapping:n="OptimizedCineon";break;case ACESFilmicToneMapping:n="ACESFilmic";break;case AgXToneMapping:n="AgX";break;case NeutralToneMapping:n="Neutral";break;case CustomToneMapping:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function generateVertexExtensions(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(filterEmptyLine).join("\n")}function generateDefines(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}function fetchAttributeLocations(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r),s=i.name;let a=1;i.type===t.FLOAT_MAT2&&(a=2),i.type===t.FLOAT_MAT3&&(a=3),i.type===t.FLOAT_MAT4&&(a=4),n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}function filterEmptyLine(t){return""!==t}function replaceLightNums(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function replaceClippingPlaneNums(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const includePattern=/^[ \t]*#include +<([\w\d./]+)>/gm;function resolveIncludes(t){return t.replace(includePattern,includeReplacer)}const shaderChunkMap=new Map;function includeReplacer(t,e){let n=ShaderChunk[e];if(void 0===n){const t=shaderChunkMap.get(e);if(void 0===t)throw new Error("Can not resolve #include <"+e+">");n=ShaderChunk[t],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,t)}return resolveIncludes(n)}const unrollLoopPattern=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function unrollLoops(t){return t.replace(unrollLoopPattern,loopReplacer)}function loopReplacer(t,e,n,i){let r="";for(let s=parseInt(e);s<parseInt(n);s++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return r}function generatePrecision(t){let e=`precision ${t.precision} float;\n\tprecision ${t.precision} int;\n\tprecision ${t.precision} sampler2D;\n\tprecision ${t.precision} samplerCube;\n\tprecision ${t.precision} sampler3D;\n\tprecision ${t.precision} sampler2DArray;\n\tprecision ${t.precision} sampler2DShadow;\n\tprecision ${t.precision} samplerCubeShadow;\n\tprecision ${t.precision} sampler2DArrayShadow;\n\tprecision ${t.precision} isampler2D;\n\tprecision ${t.precision} isampler3D;\n\tprecision ${t.precision} isamplerCube;\n\tprecision ${t.precision} isampler2DArray;\n\tprecision ${t.precision} usampler2D;\n\tprecision ${t.precision} usampler3D;\n\tprecision ${t.precision} usamplerCube;\n\tprecision ${t.precision} usampler2DArray;\n\t`;return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function generateShadowMapTypeDefine(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===PCFShadowMap?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===PCFSoftShadowMap?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===VSMShadowMap&&(e="SHADOWMAP_TYPE_VSM"),e}function generateEnvMapTypeDefine(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case CubeReflectionMapping:case CubeRefractionMapping:e="ENVMAP_TYPE_CUBE";break;case CubeUVReflectionMapping:e="ENVMAP_TYPE_CUBE_UV"}return e}function generateEnvMapModeDefine(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap&&t.envMapMode===CubeRefractionMapping)e="ENVMAP_MODE_REFRACTION";return e}function generateEnvMapBlendingDefine(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case MultiplyOperation:e="ENVMAP_BLENDING_MULTIPLY";break;case MixOperation:e="ENVMAP_BLENDING_MIX";break;case AddOperation:e="ENVMAP_BLENDING_ADD"}return e}function generateCubeUVSize(t){const e=t.envMapCubeUVHeight;if(null===e)return null;const n=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,n),112)),texelHeight:i,maxMip:n}}function WebGLProgram(t,e,n,i){const r=t.getContext(),s=n.defines;let a=n.vertexShader,o=n.fragmentShader;const c=generateShadowMapTypeDefine(n),l=generateEnvMapTypeDefine(n),u=generateEnvMapModeDefine(n),h=generateEnvMapBlendingDefine(n),d=generateCubeUVSize(n),p=generateVertexExtensions(n),f=generateDefines(s),m=r.createProgram();let g,A,v=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(g=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f].filter(filterEmptyLine).join("\n"),g.length>0&&(g+="\n"),A=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f].filter(filterEmptyLine).join("\n"),A.length>0&&(A+="\n")):(g=[generatePrecision(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+u:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(filterEmptyLine).join("\n"),A=[generatePrecision(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,f,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+l:"",n.envMap?"#define "+u:"",n.envMap?"#define "+h:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&!1===n.flatShading?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==NoToneMapping?"#define TONE_MAPPING":"",n.toneMapping!==NoToneMapping?ShaderChunk.tonemapping_pars_fragment:"",n.toneMapping!==NoToneMapping?getToneMappingFunction("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",ShaderChunk.colorspace_pars_fragment,getTexelEncodingFunction("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(filterEmptyLine).join("\n")),a=resolveIncludes(a),a=replaceLightNums(a,n),a=replaceClippingPlaneNums(a,n),o=resolveIncludes(o),o=replaceLightNums(o,n),o=replaceClippingPlaneNums(o,n),a=unrollLoops(a),o=unrollLoops(o),!0!==n.isRawShaderMaterial&&(v="#version 300 es\n",g=[p,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+g,A=["#define varying in",n.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+A);const y=v+g+a,S=v+A+o,b=WebGLShader(r,r.VERTEX_SHADER,y),x=WebGLShader(r,r.FRAGMENT_SHADER,S);function M(e){if(t.debug.checkShaderErrors){const n=r.getProgramInfoLog(m).trim(),i=r.getShaderInfoLog(b).trim(),s=r.getShaderInfoLog(x).trim();let a=!0,o=!0;if(!1===r.getProgramParameter(m,r.LINK_STATUS))if(a=!1,"function"==typeof t.debug.onShaderError)t.debug.onShaderError(r,m,b,x);else{const t=getShaderErrors(r,b,"vertex"),i=getShaderErrors(r,x,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(m,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+e.name+"\nMaterial Type: "+e.type+"\n\nProgram Info Log: "+n+"\n"+t+"\n"+i)}else""!==n?console.warn("THREE.WebGLProgram: Program Info Log:",n):""!==i&&""!==s||(o=!1);o&&(e.diagnostics={runnable:a,programLog:n,vertexShader:{log:i,prefix:g},fragmentShader:{log:s,prefix:A}})}r.deleteShader(b),r.deleteShader(x),T=new WebGLUniforms(r,m),I=fetchAttributeLocations(r,m)}let T,I;r.attachShader(m,b),r.attachShader(m,x),void 0!==n.index0AttributeName?r.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(m,0,"position"),r.linkProgram(m),this.getUniforms=function(){return void 0===T&&M(this),T},this.getAttributes=function(){return void 0===I&&M(this),I};let R=!1===n.rendererExtensionParallelShaderCompile;return this.isReady=function(){return!1===R&&(R=r.getProgramParameter(m,COMPLETION_STATUS_KHR)),R},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(m),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=programIdCount++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=b,this.fragmentShader=x,this}let _id$1=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),r=this._getShaderStage(n),s=this._getShaderCacheForMaterial(t);return!1===s.has(i)&&(s.add(i),i.usedTimes++),!1===s.has(r)&&(s.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,0===n.usedTimes&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return void 0===n&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return void 0===n&&(n=new WebGLShaderStage(t),e.set(t,n)),n}}class WebGLShaderStage{constructor(t){this.id=_id$1++,this.code=t,this.usedTimes=0}}function WebGLPrograms(t,e,n,i,r,s,a){const o=new Layers,c=new WebGLShaderCache,l=new Set,u=[],h=r.logarithmicDepthBuffer,d=r.vertexTextures;let p=r.precision;const f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(t){return l.add(t),0===t?"uv":`uv${t}`}return{getParameters:function(s,o,u,g,A){const v=g.fog,y=A.geometry,S=s.isMeshStandardMaterial?g.environment:null,b=(s.isMeshStandardMaterial?n:e).get(s.envMap||S),x=b&&b.mapping===CubeUVReflectionMapping?b.image.height:null,M=f[s.type];null!==s.precision&&(p=r.getMaxPrecision(s.precision),p!==s.precision&&console.warn("THREE.WebGLProgram.getParameters:",s.precision,"not supported, using",p,"instead."));const T=y.morphAttributes.position||y.morphAttributes.normal||y.morphAttributes.color,I=void 0!==T?T.length:0;let R,E,w,C,_=0;if(void 0!==y.morphAttributes.position&&(_=1),void 0!==y.morphAttributes.normal&&(_=2),void 0!==y.morphAttributes.color&&(_=3),M){const t=ShaderLib[M];R=t.vertexShader,E=t.fragmentShader}else R=s.vertexShader,E=s.fragmentShader,c.update(s),w=c.getVertexShaderID(s),C=c.getFragmentShaderID(s);const k=t.getRenderTarget(),L=!0===A.isInstancedMesh,U=!0===A.isBatchedMesh,F=!!s.map,N=!!s.matcap,V=!!b,P=!!s.aoMap,B=!!s.lightMap,W=!!s.bumpMap,D=!!s.normalMap,O=!!s.displacementMap,J=!!s.emissiveMap,G=!!s.metalnessMap,H=!!s.roughnessMap,q=s.anisotropy>0,j=s.clearcoat>0,K=s.dispersion>0,z=s.iridescence>0,X=s.sheen>0,Z=s.transmission>0,Q=q&&!!s.anisotropyMap,Y=j&&!!s.clearcoatMap,$=j&&!!s.clearcoatNormalMap,tt=j&&!!s.clearcoatRoughnessMap,et=z&&!!s.iridescenceMap,nt=z&&!!s.iridescenceThicknessMap,it=X&&!!s.sheenColorMap,rt=X&&!!s.sheenRoughnessMap,st=!!s.specularMap,at=!!s.specularColorMap,ot=!!s.specularIntensityMap,ct=Z&&!!s.transmissionMap,lt=Z&&!!s.thicknessMap,ut=!!s.gradientMap,ht=!!s.alphaMap,dt=s.alphaTest>0,pt=!!s.alphaHash,ft=!!s.extensions;let mt=NoToneMapping;s.toneMapped&&(null!==k&&!0!==k.isXRRenderTarget||(mt=t.toneMapping));const gt={shaderID:M,shaderType:s.type,shaderName:s.name,vertexShader:R,fragmentShader:E,defines:s.defines,customVertexShaderID:w,customFragmentShaderID:C,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,batching:U,batchingColor:U&&null!==A._colorsTexture,instancing:L,instancingColor:L&&null!==A.instanceColor,instancingMorph:L&&null!==A.morphTexture,supportsVertexTextures:d,outputColorSpace:null===k?t.outputColorSpace:!0===k.isXRRenderTarget?k.texture.colorSpace:LinearSRGBColorSpace,alphaToCoverage:!!s.alphaToCoverage,map:F,matcap:N,envMap:V,envMapMode:V&&b.mapping,envMapCubeUVHeight:x,aoMap:P,lightMap:B,bumpMap:W,normalMap:D,displacementMap:d&&O,emissiveMap:J,normalMapObjectSpace:D&&s.normalMapType===ObjectSpaceNormalMap,normalMapTangentSpace:D&&s.normalMapType===TangentSpaceNormalMap,metalnessMap:G,roughnessMap:H,anisotropy:q,anisotropyMap:Q,clearcoat:j,clearcoatMap:Y,clearcoatNormalMap:$,clearcoatRoughnessMap:tt,dispersion:K,iridescence:z,iridescenceMap:et,iridescenceThicknessMap:nt,sheen:X,sheenColorMap:it,sheenRoughnessMap:rt,specularMap:st,specularColorMap:at,specularIntensityMap:ot,transmission:Z,transmissionMap:ct,thicknessMap:lt,gradientMap:ut,opaque:!1===s.transparent&&s.blending===NormalBlending&&!1===s.alphaToCoverage,alphaMap:ht,alphaTest:dt,alphaHash:pt,combine:s.combine,mapUv:F&&m(s.map.channel),aoMapUv:P&&m(s.aoMap.channel),lightMapUv:B&&m(s.lightMap.channel),bumpMapUv:W&&m(s.bumpMap.channel),normalMapUv:D&&m(s.normalMap.channel),displacementMapUv:O&&m(s.displacementMap.channel),emissiveMapUv:J&&m(s.emissiveMap.channel),metalnessMapUv:G&&m(s.metalnessMap.channel),roughnessMapUv:H&&m(s.roughnessMap.channel),anisotropyMapUv:Q&&m(s.anisotropyMap.channel),clearcoatMapUv:Y&&m(s.clearcoatMap.channel),clearcoatNormalMapUv:$&&m(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&m(s.clearcoatRoughnessMap.channel),iridescenceMapUv:et&&m(s.iridescenceMap.channel),iridescenceThicknessMapUv:nt&&m(s.iridescenceThicknessMap.channel),sheenColorMapUv:it&&m(s.sheenColorMap.channel),sheenRoughnessMapUv:rt&&m(s.sheenRoughnessMap.channel),specularMapUv:st&&m(s.specularMap.channel),specularColorMapUv:at&&m(s.specularColorMap.channel),specularIntensityMapUv:ot&&m(s.specularIntensityMap.channel),transmissionMapUv:ct&&m(s.transmissionMap.channel),thicknessMapUv:lt&&m(s.thicknessMap.channel),alphaMapUv:ht&&m(s.alphaMap.channel),vertexTangents:!!y.attributes.tangent&&(D||q),vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!y.attributes.color&&4===y.attributes.color.itemSize,pointsUvs:!0===A.isPoints&&!!y.attributes.uv&&(F||ht),fog:!!v,useFog:!0===s.fog,fogExp2:!!v&&v.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:h,skinning:!0===A.isSkinnedMesh,morphTargets:void 0!==y.morphAttributes.position,morphNormals:void 0!==y.morphAttributes.normal,morphColors:void 0!==y.morphAttributes.color,morphTargetsCount:I,morphTextureStride:_,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numLightProbes:o.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.length>0,shadowMapType:t.shadowMap.type,toneMapping:mt,decodeVideoTexture:F&&!0===s.map.isVideoTexture&&ColorManagement.getTransfer(s.map.colorSpace)===SRGBTransfer,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===DoubleSide,flipSided:s.side===BackSide,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionClipCullDistance:ft&&!0===s.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(ft&&!0===s.extensions.multiDraw||U)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:s.customProgramCacheKey()};return gt.vertexUv1s=l.has(1),gt.vertexUv2s=l.has(2),gt.vertexUv3s=l.has(3),l.clear(),gt},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(!function(t,e){t.push(e.precision),t.push(e.outputColorSpace),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.mapUv),t.push(e.alphaMapUv),t.push(e.lightMapUv),t.push(e.aoMapUv),t.push(e.bumpMapUv),t.push(e.normalMapUv),t.push(e.displacementMapUv),t.push(e.emissiveMapUv),t.push(e.metalnessMapUv),t.push(e.roughnessMapUv),t.push(e.anisotropyMapUv),t.push(e.clearcoatMapUv),t.push(e.clearcoatNormalMapUv),t.push(e.clearcoatRoughnessMapUv),t.push(e.iridescenceMapUv),t.push(e.iridescenceThicknessMapUv),t.push(e.sheenColorMapUv),t.push(e.sheenRoughnessMapUv),t.push(e.specularMapUv),t.push(e.specularColorMapUv),t.push(e.specularIntensityMapUv),t.push(e.transmissionMapUv),t.push(e.thicknessMapUv),t.push(e.combine),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.numLightProbes),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}(n,e),function(t,e){o.disableAll(),e.supportsVertexTextures&&o.enable(0);e.instancing&&o.enable(1);e.instancingColor&&o.enable(2);e.instancingMorph&&o.enable(3);e.matcap&&o.enable(4);e.envMap&&o.enable(5);e.normalMapObjectSpace&&o.enable(6);e.normalMapTangentSpace&&o.enable(7);e.clearcoat&&o.enable(8);e.iridescence&&o.enable(9);e.alphaTest&&o.enable(10);e.vertexColors&&o.enable(11);e.vertexAlphas&&o.enable(12);e.vertexUv1s&&o.enable(13);e.vertexUv2s&&o.enable(14);e.vertexUv3s&&o.enable(15);e.vertexTangents&&o.enable(16);e.anisotropy&&o.enable(17);e.alphaHash&&o.enable(18);e.batching&&o.enable(19);e.dispersion&&o.enable(20);e.batchingColor&&o.enable(21);t.push(o.mask),o.disableAll(),e.fog&&o.enable(0);e.useFog&&o.enable(1);e.flatShading&&o.enable(2);e.logarithmicDepthBuffer&&o.enable(3);e.skinning&&o.enable(4);e.morphTargets&&o.enable(5);e.morphNormals&&o.enable(6);e.morphColors&&o.enable(7);e.premultipliedAlpha&&o.enable(8);e.shadowMapEnabled&&o.enable(9);e.doubleSided&&o.enable(10);e.flipSided&&o.enable(11);e.useDepthPacking&&o.enable(12);e.dithering&&o.enable(13);e.transmission&&o.enable(14);e.sheen&&o.enable(15);e.opaque&&o.enable(16);e.pointsUvs&&o.enable(17);e.decodeVideoTexture&&o.enable(18);e.alphaToCoverage&&o.enable(19);t.push(o.mask)}(n,e),n.push(t.outputColorSpace)),n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=f[t.type];let n;if(e){const t=ShaderLib[e];n=UniformsUtils.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,r=u.length;t<r;t++){const e=u[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new WebGLProgram(t,n,e,s),u.push(i)),i},releaseProgram:function(t){if(0===--t.usedTimes){const e=u.indexOf(t);u[e]=u[u.length-1],u.pop(),t.destroy()}},releaseShaderCache:function(t){c.remove(t)},programs:u,dispose:function(){c.dispose()}}}function WebGLProperties(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function painterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function reversePainterSortStable(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function WebGLRenderList(){const t=[];let e=0;const n=[],i=[],r=[];function s(n,i,r,s,a,o){let c=t[e];return void 0===c?(c={id:n.id,object:n,geometry:i,material:r,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o},t[e]=c):(c.id=n.id,c.object=n,c.geometry=i,c.material=r,c.groupOrder=s,c.renderOrder=n.renderOrder,c.z=a,c.group=o),e++,c}return{opaque:n,transmissive:i,transparent:r,init:function(){e=0,n.length=0,i.length=0,r.length=0},push:function(t,e,a,o,c,l){const u=s(t,e,a,o,c,l);a.transmission>0?i.push(u):!0===a.transparent?r.push(u):n.push(u)},unshift:function(t,e,a,o,c,l){const u=s(t,e,a,o,c,l);a.transmission>0?i.unshift(u):!0===a.transparent?r.unshift(u):n.unshift(u)},finish:function(){for(let n=e,i=t.length;n<i;n++){const e=t[n];if(null===e.id)break;e.id=null,e.object=null,e.geometry=null,e.material=null,e.group=null}},sort:function(t,e){n.length>1&&n.sort(t||painterSortStable),i.length>1&&i.sort(e||reversePainterSortStable),r.length>1&&r.sort(e||reversePainterSortStable)}}}function WebGLRenderLists(){let t=new WeakMap;return{get:function(e,n){const i=t.get(e);let r;return void 0===i?(r=new WebGLRenderList,t.set(e,[r])):n>=i.length?(r=new WebGLRenderList,i.push(r)):r=i[n],r},dispose:function(){t=new WeakMap}}}function UniformsCache(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Vector3,color:new Color};break;case"SpotLight":n={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Vector3,color:new Color,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case"RectAreaLight":n={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3}}return t[e.id]=n,n}}}function ShadowUniformsCache(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}let nextVersion=0;function shadowCastingAndTexturingLightsFirst(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function WebGLLights(t){const e=new UniformsCache,n=ShadowUniformsCache(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let o=0;o<9;o++)i.probe.push(new Vector3);const r=new Vector3,s=new Matrix4,a=new Matrix4;return{setup:function(r){let s=0,a=0,o=0;for(let t=0;t<9;t++)i.probe[t].set(0,0,0);let c=0,l=0,u=0,h=0,d=0,p=0,f=0,m=0,g=0,A=0,v=0;r.sort(shadowCastingAndTexturingLightsFirst);for(let t=0,S=r.length;t<S;t++){const y=r[t],S=y.color,b=y.intensity,x=y.distance,M=y.shadow&&y.shadow.map?y.shadow.map.texture:null;if(y.isAmbientLight)s+=S.r*b,a+=S.g*b,o+=S.b*b;else if(y.isLightProbe){for(let t=0;t<9;t++)i.probe[t].addScaledVector(y.sh.coefficients[t],b);v++}else if(y.isDirectionalLight){const t=e.get(y);if(t.color.copy(y.color).multiplyScalar(y.intensity),y.castShadow){const t=y.shadow,e=n.get(y);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,i.directionalShadow[c]=e,i.directionalShadowMap[c]=M,i.directionalShadowMatrix[c]=y.shadow.matrix,p++}i.directional[c]=t,c++}else if(y.isSpotLight){const t=e.get(y);t.position.setFromMatrixPosition(y.matrixWorld),t.color.copy(S).multiplyScalar(b),t.distance=x,t.coneCos=Math.cos(y.angle),t.penumbraCos=Math.cos(y.angle*(1-y.penumbra)),t.decay=y.decay,i.spot[u]=t;const r=y.shadow;if(y.map&&(i.spotLightMap[g]=y.map,g++,r.updateMatrices(y),y.castShadow&&A++),i.spotLightMatrix[u]=r.matrix,y.castShadow){const t=n.get(y);t.shadowIntensity=r.intensity,t.shadowBias=r.bias,t.shadowNormalBias=r.normalBias,t.shadowRadius=r.radius,t.shadowMapSize=r.mapSize,i.spotShadow[u]=t,i.spotShadowMap[u]=M,m++}u++}else if(y.isRectAreaLight){const t=e.get(y);t.color.copy(S).multiplyScalar(b),t.halfWidth.set(.5*y.width,0,0),t.halfHeight.set(0,.5*y.height,0),i.rectArea[h]=t,h++}else if(y.isPointLight){const t=e.get(y);if(t.color.copy(y.color).multiplyScalar(y.intensity),t.distance=y.distance,t.decay=y.decay,y.castShadow){const t=y.shadow,e=n.get(y);e.shadowIntensity=t.intensity,e.shadowBias=t.bias,e.shadowNormalBias=t.normalBias,e.shadowRadius=t.radius,e.shadowMapSize=t.mapSize,e.shadowCameraNear=t.camera.near,e.shadowCameraFar=t.camera.far,i.pointShadow[l]=e,i.pointShadowMap[l]=M,i.pointShadowMatrix[l]=y.shadow.matrix,f++}i.point[l]=t,l++}else if(y.isHemisphereLight){const t=e.get(y);t.skyColor.copy(y.color).multiplyScalar(b),t.groundColor.copy(y.groundColor).multiplyScalar(b),i.hemi[d]=t,d++}}h>0&&(!0===t.has("OES_texture_float_linear")?(i.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,i.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):(i.rectAreaLTC1=UniformsLib.LTC_HALF_1,i.rectAreaLTC2=UniformsLib.LTC_HALF_2)),i.ambient[0]=s,i.ambient[1]=a,i.ambient[2]=o;const y=i.hash;y.directionalLength===c&&y.pointLength===l&&y.spotLength===u&&y.rectAreaLength===h&&y.hemiLength===d&&y.numDirectionalShadows===p&&y.numPointShadows===f&&y.numSpotShadows===m&&y.numSpotMaps===g&&y.numLightProbes===v||(i.directional.length=c,i.spot.length=u,i.rectArea.length=h,i.point.length=l,i.hemi.length=d,i.directionalShadow.length=p,i.directionalShadowMap.length=p,i.pointShadow.length=f,i.pointShadowMap.length=f,i.spotShadow.length=m,i.spotShadowMap.length=m,i.directionalShadowMatrix.length=p,i.pointShadowMatrix.length=f,i.spotLightMatrix.length=m+g-A,i.spotLightMap.length=g,i.numSpotLightShadowsWithMaps=A,i.numLightProbes=v,y.directionalLength=c,y.pointLength=l,y.spotLength=u,y.rectAreaLength=h,y.hemiLength=d,y.numDirectionalShadows=p,y.numPointShadows=f,y.numSpotShadows=m,y.numSpotMaps=g,y.numLightProbes=v,i.version=nextVersion++)},setupView:function(t,e){let n=0,o=0,c=0,l=0,u=0;const h=e.matrixWorldInverse;for(let d=0,p=t.length;d<p;d++){const e=t[d];if(e.isDirectionalLight){const t=i.directional[n];t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(h),n++}else if(e.isSpotLight){const t=i.spot[c];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),t.direction.setFromMatrixPosition(e.matrixWorld),r.setFromMatrixPosition(e.target.matrixWorld),t.direction.sub(r),t.direction.transformDirection(h),c++}else if(e.isRectAreaLight){const t=i.rectArea[l];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),a.identity(),s.copy(e.matrixWorld),s.premultiply(h),a.extractRotation(s),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),t.halfWidth.applyMatrix4(a),t.halfHeight.applyMatrix4(a),l++}else if(e.isPointLight){const t=i.point[o];t.position.setFromMatrixPosition(e.matrixWorld),t.position.applyMatrix4(h),o++}else if(e.isHemisphereLight){const t=i.hemi[u];t.direction.setFromMatrixPosition(e.matrixWorld),t.direction.transformDirection(h),u++}}},state:i}}function WebGLRenderState(t){const e=new WebGLLights(t),n=[],i=[];const r={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:function(t){r.camera=t,n.length=0,i.length=0},state:r,setupLights:function(){e.setup(n)},setupLightsView:function(t){e.setupView(n,t)},pushLight:function(t){n.push(t)},pushShadow:function(t){i.push(t)}}}function WebGLRenderStates(t){let e=new WeakMap;return{get:function(n,i=0){const r=e.get(n);let s;return void 0===r?(s=new WebGLRenderState(t),e.set(n,[s])):i>=r.length?(s=new WebGLRenderState(t),r.push(s)):s=r[i],s},dispose:function(){e=new WeakMap}}}class MeshDepthMaterial extends Material{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragment="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function WebGLShadowMap(t,e,n){let i=new Frustum;const r=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),c=new MeshDistanceMaterial,l={},u=n.maxTextureSize,h={[FrontSide]:BackSide,[BackSide]:FrontSide,[DoubleSide]:DoubleSide},d=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const f=new BufferGeometry;f.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const m=new Mesh(f,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap;let A=this.type;function v(n,i){const s=e.update(m);d.defines.VSM_SAMPLES!==n.blurSamples&&(d.defines.VSM_SAMPLES=n.blurSamples,p.defines.VSM_SAMPLES=n.blurSamples,d.needsUpdate=!0,p.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new WebGLRenderTarget(r.x,r.y)),d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,s,d,m,null),p.uniforms.shadow_pass.value=n.mapPass.texture,p.uniforms.resolution.value=n.mapSize,p.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,s,p,m,null)}function y(e,n,i,r){let s=null;const a=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===i.isPointLight?c:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const t=s.uuid,e=n.uuid;let i=l[t];void 0===i&&(i={},l[t]=i);let r=i[e];void 0===r&&(r=s.clone(),i[e]=r,n.addEventListener("dispose",b)),s=r}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=r===VSMShadowMap?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:h[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===i.isPointLight&&!0===s.isMeshDistanceMaterial){t.properties.get(s).light=i}return s}function S(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===VSMShadowMap)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),c=n.material;if(Array.isArray(c)){const e=i.groups;for(let l=0,u=e.length;l<u;l++){const u=e[l],h=c[u.materialIndex];if(h&&h.visible){const e=y(n,h,a,o);n.onBeforeShadow(t,n,r,s,i,e,u),t.renderBufferDirect(s,null,i,e,n,u),n.onAfterShadow(t,n,r,s,i,e,u)}}}else if(c.visible){const e=y(n,c,a,o);n.onBeforeShadow(t,n,r,s,i,e,null),t.renderBufferDirect(s,null,i,e,n,null),n.onAfterShadow(t,n,r,s,i,e,null)}}const c=n.children;for(let t=0,e=c.length;t<e;t++)S(c[t],r,s,a,o)}function b(t){t.target.removeEventListener("dispose",b);for(const e in l){const n=l[e],i=t.target.uuid;if(i in n){n[i].dispose(),delete n[i]}}}this.render=function(e,n,o){if(!1===g.enabled)return;if(!1===g.autoUpdate&&!1===g.needsUpdate)return;if(0===e.length)return;const c=t.getRenderTarget(),l=t.getActiveCubeFace(),h=t.getActiveMipmapLevel(),d=t.state;d.setBlending(NoBlending),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);const p=A!==VSMShadowMap&&this.type===VSMShadowMap,f=A===VSMShadowMap&&this.type!==VSMShadowMap;for(let m=0,g=e.length;m<g;m++){const c=e[m],l=c.shadow;if(void 0===l){console.warn("THREE.WebGLShadowMap:",c,"has no shadow.");continue}if(!1===l.autoUpdate&&!1===l.needsUpdate)continue;r.copy(l.mapSize);const h=l.getFrameExtents();if(r.multiply(h),s.copy(l.mapSize),(r.x>u||r.y>u)&&(r.x>u&&(s.x=Math.floor(u/h.x),r.x=s.x*h.x,l.mapSize.x=s.x),r.y>u&&(s.y=Math.floor(u/h.y),r.y=s.y*h.y,l.mapSize.y=s.y)),null===l.map||!0===p||!0===f){const t=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};null!==l.map&&l.map.dispose(),l.map=new WebGLRenderTarget(r.x,r.y,t),l.map.texture.name=c.name+".shadowMap",l.camera.updateProjectionMatrix()}t.setRenderTarget(l.map),t.clear();const g=l.getViewportCount();for(let t=0;t<g;t++){const e=l.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),l.updateMatrices(c,t),i=l.getFrustum(),S(n,o,l.camera,c,this.type)}!0!==l.isPointLightShadow&&this.type===VSMShadowMap&&v(l,o),l.needsUpdate=!1}A=this.type,g.needsUpdate=!1,t.setRenderTarget(c,l,h)}}function WebGLState(t){const e=new function(){let e=!1;const n=new Vector4;let i=null;const r=new Vector4(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},n=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(e){e?W(t.DEPTH_TEST):D(t.DEPTH_TEST)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){switch(e){case NeverDepth:t.depthFunc(t.NEVER);break;case AlwaysDepth:t.depthFunc(t.ALWAYS);break;case LessDepth:t.depthFunc(t.LESS);break;case LessEqualDepth:t.depthFunc(t.LEQUAL);break;case EqualDepth:t.depthFunc(t.EQUAL);break;case GreaterEqualDepth:t.depthFunc(t.GEQUAL);break;case GreaterDepth:t.depthFunc(t.GREATER);break;case NotEqualDepth:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},i=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,c=null,l=null;return{setTest:function(n){e||(n?W(t.STENCIL_TEST):D(t.STENCIL_TEST))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&c===i||(t.stencilOp(e,n,i),a=e,o=n,c=i)},setLocked:function(t){e=t},setClear:function(e){l!==e&&(t.clearStencil(e),l=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,c=null,l=null}}},r=new WeakMap,s=new WeakMap;let a={},o={},c=new WeakMap,l=[],u=null,h=!1,d=null,p=null,f=null,m=null,g=null,A=null,v=null,y=new Color(0,0,0),S=0,b=!1,x=null,M=null,T=null,I=null,R=null;const E=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let w=!1,C=0;const _=t.getParameter(t.VERSION);-1!==_.indexOf("WebGL")?(C=parseFloat(/^WebGL (\d)/.exec(_)[1]),w=C>=1):-1!==_.indexOf("OpenGL ES")&&(C=parseFloat(/^OpenGL ES (\d)/.exec(_)[1]),w=C>=2);let k=null,L={};const U=t.getParameter(t.SCISSOR_BOX),F=t.getParameter(t.VIEWPORT),N=(new Vector4).fromArray(U),V=(new Vector4).fromArray(F);function P(e,n,i,r){const s=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let o=0;o<i;o++)e===t.TEXTURE_3D||e===t.TEXTURE_2D_ARRAY?t.texImage3D(n,0,t.RGBA,1,1,r,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(n+o,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,s);return a}const B={};function W(e){!0!==a[e]&&(t.enable(e),a[e]=!0)}function D(e){!1!==a[e]&&(t.disable(e),a[e]=!1)}B[t.TEXTURE_2D]=P(t.TEXTURE_2D,t.TEXTURE_2D,1),B[t.TEXTURE_CUBE_MAP]=P(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),B[t.TEXTURE_2D_ARRAY]=P(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),B[t.TEXTURE_3D]=P(t.TEXTURE_3D,t.TEXTURE_3D,1,1),e.setClear(0,0,0,1),n.setClear(1),i.setClear(0),W(t.DEPTH_TEST),n.setFunc(LessEqualDepth),H(!1),q(CullFaceBack),W(t.CULL_FACE),G(NoBlending);const O={[AddEquation]:t.FUNC_ADD,[SubtractEquation]:t.FUNC_SUBTRACT,[ReverseSubtractEquation]:t.FUNC_REVERSE_SUBTRACT};O[MinEquation]=t.MIN,O[MaxEquation]=t.MAX;const J={[ZeroFactor]:t.ZERO,[OneFactor]:t.ONE,[SrcColorFactor]:t.SRC_COLOR,[SrcAlphaFactor]:t.SRC_ALPHA,[SrcAlphaSaturateFactor]:t.SRC_ALPHA_SATURATE,[DstColorFactor]:t.DST_COLOR,[DstAlphaFactor]:t.DST_ALPHA,[OneMinusSrcColorFactor]:t.ONE_MINUS_SRC_COLOR,[OneMinusSrcAlphaFactor]:t.ONE_MINUS_SRC_ALPHA,[OneMinusDstColorFactor]:t.ONE_MINUS_DST_COLOR,[OneMinusDstAlphaFactor]:t.ONE_MINUS_DST_ALPHA,[ConstantColorFactor]:t.CONSTANT_COLOR,[OneMinusConstantColorFactor]:t.ONE_MINUS_CONSTANT_COLOR,[ConstantAlphaFactor]:t.CONSTANT_ALPHA,[OneMinusConstantAlphaFactor]:t.ONE_MINUS_CONSTANT_ALPHA};function G(e,n,i,r,s,a,o,c,l,u){if(e!==NoBlending){if(!1===h&&(W(t.BLEND),h=!0),e===CustomBlending)s=s||n,a=a||i,o=o||r,n===p&&s===g||(t.blendEquationSeparate(O[n],O[s]),p=n,g=s),i===f&&r===m&&a===A&&o===v||(t.blendFuncSeparate(J[i],J[r],J[a],J[o]),f=i,m=r,A=a,v=o),!1!==c.equals(y)&&l===S||(t.blendColor(c.r,c.g,c.b,l),y.copy(c),S=l),d=e,b=!1;else if(e!==d||u!==b){if(p===AddEquation&&g===AddEquation||(t.blendEquation(t.FUNC_ADD),p=AddEquation,g=AddEquation),u)switch(e){case NormalBlending:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:t.blendFunc(t.ONE,t.ONE);break;case SubtractiveBlending:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case MultiplyBlending:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case NormalBlending:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case AdditiveBlending:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case SubtractiveBlending:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case MultiplyBlending:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}f=null,m=null,A=null,v=null,y.set(0,0,0),S=0,d=e,b=u}}else!0===h&&(D(t.BLEND),h=!1)}function H(e){x!==e&&(e?t.frontFace(t.CW):t.frontFace(t.CCW),x=e)}function q(e){e!==CullFaceNone?(W(t.CULL_FACE),e!==M&&(e===CullFaceBack?t.cullFace(t.BACK):e===CullFaceFront?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):D(t.CULL_FACE),M=e}function j(e,n,i){e?(W(t.POLYGON_OFFSET_FILL),I===n&&R===i||(t.polygonOffset(n,i),I=n,R=i)):D(t.POLYGON_OFFSET_FILL)}return{buffers:{color:e,depth:n,stencil:i},enable:W,disable:D,bindFramebuffer:function(e,n){return o[e]!==n&&(t.bindFramebuffer(e,n),o[e]=n,e===t.DRAW_FRAMEBUFFER&&(o[t.FRAMEBUFFER]=n),e===t.FRAMEBUFFER&&(o[t.DRAW_FRAMEBUFFER]=n),!0)},drawBuffers:function(e,n){let i=l,r=!1;if(e){i=c.get(n),void 0===i&&(i=[],c.set(n,i));const s=e.textures;if(i.length!==s.length||i[0]!==t.COLOR_ATTACHMENT0){for(let e=0,n=s.length;e<n;e++)i[e]=t.COLOR_ATTACHMENT0+e;i.length=s.length,r=!0}}else i[0]!==t.BACK&&(i[0]=t.BACK,r=!0);r&&t.drawBuffers(i)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:G,setMaterial:function(r,s){r.side===DoubleSide?D(t.CULL_FACE):W(t.CULL_FACE);let a=r.side===BackSide;s&&(a=!a),H(a),r.blending===NormalBlending&&!1===r.transparent?G(NoBlending):G(r.blending,r.blendEquation,r.blendSrc,r.blendDst,r.blendEquationAlpha,r.blendSrcAlpha,r.blendDstAlpha,r.blendColor,r.blendAlpha,r.premultipliedAlpha),n.setFunc(r.depthFunc),n.setTest(r.depthTest),n.setMask(r.depthWrite),e.setMask(r.colorWrite);const o=r.stencilWrite;i.setTest(o),o&&(i.setMask(r.stencilWriteMask),i.setFunc(r.stencilFunc,r.stencilRef,r.stencilFuncMask),i.setOp(r.stencilFail,r.stencilZFail,r.stencilZPass)),j(r.polygonOffset,r.polygonOffsetFactor,r.polygonOffsetUnits),!0===r.alphaToCoverage?W(t.SAMPLE_ALPHA_TO_COVERAGE):D(t.SAMPLE_ALPHA_TO_COVERAGE)},setFlipSided:H,setCullFace:q,setLineWidth:function(e){e!==T&&(w&&t.lineWidth(e),T=e)},setPolygonOffset:j,setScissorTest:function(e){e?W(t.SCISSOR_TEST):D(t.SCISSOR_TEST)},activeTexture:function(e){void 0===e&&(e=t.TEXTURE0+E-1),k!==e&&(t.activeTexture(e),k=e)},bindTexture:function(e,n,i){void 0===i&&(i=null===k?t.TEXTURE0+E-1:k);let r=L[i];void 0===r&&(r={type:void 0,texture:void 0},L[i]=r),r.type===e&&r.texture===n||(k!==i&&(t.activeTexture(i),k=i),t.bindTexture(e,n||B[e]),r.type=e,r.texture=n)},unbindTexture:function(){const e=L[k];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexImage3D:function(){try{t.compressedTexImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},updateUBOMapping:function(e,n){let i=s.get(n);void 0===i&&(i=new WeakMap,s.set(n,i));let r=i.get(e);void 0===r&&(r=t.getUniformBlockIndex(n,e.name),i.set(e,r))},uniformBlockBinding:function(e,n){const i=s.get(n).get(e);r.get(n)!==i&&(t.uniformBlockBinding(n,i,e.__bindingPointIndex),r.set(n,i))},texStorage2D:function(){try{t.texStorage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texStorage3D:function(){try{t.texStorage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texSubImage2D:function(){try{t.texSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},texSubImage3D:function(){try{t.texSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexSubImage2D:function(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},compressedTexSubImage3D:function(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(e){console.error("THREE.WebGLState:",e)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===V.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),V.copy(e))},reset:function(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),a={},k=null,L={},o={},c=new WeakMap,l=[],u=null,h=!1,d=null,p=null,f=null,m=null,g=null,A=null,v=null,y=new Color(0,0,0),S=0,b=!1,x=null,M=null,T=null,I=null,R=null,N.set(0,0,t.canvas.width,t.canvas.height),V.set(0,0,t.canvas.width,t.canvas.height),e.reset(),n.reset(),i.reset()}}}function contain(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;return n>e?(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2):(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0),t}function cover(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;return n>e?(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0):(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2),t}function fill(t){return t.repeat.x=1,t.repeat.y=1,t.offset.x=0,t.offset.y=0,t}function getByteLength(t,e,n,i){const r=getTextureTypeByteLength(i);switch(n){case AlphaFormat:case LuminanceFormat:return t*e;case LuminanceAlphaFormat:return t*e*2;case RedFormat:case RedIntegerFormat:return t*e/r.components*r.byteLength;case RGFormat:case RGIntegerFormat:return t*e*2/r.components*r.byteLength;case RGBFormat:return t*e*3/r.components*r.byteLength;case RGBAFormat:case RGBAIntegerFormat:return t*e*4/r.components*r.byteLength;case RGB_S3TC_DXT1_Format:case RGBA_S3TC_DXT1_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case RGBA_S3TC_DXT3_Format:case RGBA_S3TC_DXT5_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case RGB_PVRTC_2BPPV1_Format:case RGBA_PVRTC_2BPPV1_Format:return Math.max(t,16)*Math.max(e,8)/4;case RGB_PVRTC_4BPPV1_Format:case RGBA_PVRTC_4BPPV1_Format:return Math.max(t,8)*Math.max(e,8)/2;case RGB_ETC1_Format:case RGB_ETC2_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case RGBA_ETC2_EAC_Format:case RGBA_ASTC_4x4_Format:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case RGBA_ASTC_5x4_Format:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case RGBA_ASTC_5x5_Format:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case RGBA_ASTC_6x5_Format:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case RGBA_ASTC_6x6_Format:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case RGBA_ASTC_8x5_Format:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case RGBA_ASTC_8x6_Format:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case RGBA_ASTC_8x8_Format:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case RGBA_ASTC_10x5_Format:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case RGBA_ASTC_10x6_Format:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case RGBA_ASTC_10x8_Format:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case RGBA_ASTC_10x10_Format:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case RGBA_ASTC_12x10_Format:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case RGBA_ASTC_12x12_Format:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case RGBA_BPTC_Format:case RGB_BPTC_SIGNED_Format:case RGB_BPTC_UNSIGNED_Format:return Math.ceil(t/4)*Math.ceil(e/4)*16;case RED_RGTC1_Format:case SIGNED_RED_RGTC1_Format:return Math.ceil(t/4)*Math.ceil(e/4)*8;case RED_GREEN_RGTC2_Format:case SIGNED_RED_GREEN_RGTC2_Format:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function getTextureTypeByteLength(t){switch(t){case UnsignedByteType:case ByteType:return{byteLength:1,components:1};case UnsignedShortType:case ShortType:case HalfFloatType:return{byteLength:2,components:1};case UnsignedShort4444Type:case UnsignedShort5551Type:return{byteLength:2,components:4};case UnsignedIntType:case IntType:case FloatType:return{byteLength:4,components:1};case UnsignedInt5999Type:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}const TextureUtils={contain,cover,fill,getByteLength};function WebGLTextures(t,e,n,i,r,s,a){const o=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,c="undefined"!=typeof navigator&&/OculusBrowser/g.test(navigator.userAgent),l=new Vector2,u=new WeakMap;let h;const d=new WeakMap;let p=!1;try{p="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(O){}function f(t,e){return p?new OffscreenCanvas(t,e):createElementNS("canvas")}function m(t,e,n){let i=1;const r=D(t);if((r.width>n||r.height>n)&&(i=n/Math.max(r.width,r.height)),i<1){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!=typeof VideoFrame&&t instanceof VideoFrame){const n=Math.floor(i*r.width),s=Math.floor(i*r.height);void 0===h&&(h=f(n,s));const a=e?f(n,s):h;a.width=n,a.height=s;return a.getContext("2d").drawImage(t,0,0,n,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+r.width+"x"+r.height+") to ("+n+"x"+s+")."),a}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+r.width+"x"+r.height+")."),t}return t}function g(t){return t.generateMipmaps&&t.minFilter!==NearestFilter&&t.minFilter!==LinearFilter}function A(e){t.generateMipmap(e)}function v(n,i,r,s,a=!1){if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let o=i;if(i===t.RED&&(r===t.FLOAT&&(o=t.R32F),r===t.HALF_FLOAT&&(o=t.R16F),r===t.UNSIGNED_BYTE&&(o=t.R8)),i===t.RED_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.R8UI),r===t.UNSIGNED_SHORT&&(o=t.R16UI),r===t.UNSIGNED_INT&&(o=t.R32UI),r===t.BYTE&&(o=t.R8I),r===t.SHORT&&(o=t.R16I),r===t.INT&&(o=t.R32I)),i===t.RG&&(r===t.FLOAT&&(o=t.RG32F),r===t.HALF_FLOAT&&(o=t.RG16F),r===t.UNSIGNED_BYTE&&(o=t.RG8)),i===t.RG_INTEGER&&(r===t.UNSIGNED_BYTE&&(o=t.RG8UI),r===t.UNSIGNED_SHORT&&(o=t.RG16UI),r===t.UNSIGNED_INT&&(o=t.RG32UI),r===t.BYTE&&(o=t.RG8I),r===t.SHORT&&(o=t.RG16I),r===t.INT&&(o=t.RG32I)),i===t.RGB&&r===t.UNSIGNED_INT_5_9_9_9_REV&&(o=t.RGB9_E5),i===t.RGBA){const e=a?LinearTransfer:ColorManagement.getTransfer(s);r===t.FLOAT&&(o=t.RGBA32F),r===t.HALF_FLOAT&&(o=t.RGBA16F),r===t.UNSIGNED_BYTE&&(o=e===SRGBTransfer?t.SRGB8_ALPHA8:t.RGBA8),r===t.UNSIGNED_SHORT_4_4_4_4&&(o=t.RGBA4),r===t.UNSIGNED_SHORT_5_5_5_1&&(o=t.RGB5_A1)}return o!==t.R16F&&o!==t.R32F&&o!==t.RG16F&&o!==t.RG32F&&o!==t.RGBA16F&&o!==t.RGBA32F||e.get("EXT_color_buffer_float"),o}function y(e,n){let i;return e?null===n||n===UnsignedIntType||n===UnsignedInt248Type?i=t.DEPTH24_STENCIL8:n===FloatType?i=t.DEPTH32F_STENCIL8:n===UnsignedShortType&&(i=t.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===n||n===UnsignedIntType||n===UnsignedInt248Type?i=t.DEPTH_COMPONENT24:n===FloatType?i=t.DEPTH_COMPONENT32F:n===UnsignedShortType&&(i=t.DEPTH_COMPONENT16),i}function S(t,e){return!0===g(t)||t.isFramebufferTexture&&t.minFilter!==NearestFilter&&t.minFilter!==LinearFilter?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function b(t){const e=t.target;e.removeEventListener("dispose",b),function(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=d.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&M(t),0===Object.keys(r).length&&d.delete(n)}i.remove(t)}(e),e.isVideoTexture&&u.delete(e)}function x(e){const n=e.target;n.removeEventListener("dispose",x),function(e){const n=i.get(e);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let i=0;i<6;i++){if(Array.isArray(n.__webglFramebuffer[i]))for(let e=0;e<n.__webglFramebuffer[i].length;e++)t.deleteFramebuffer(n.__webglFramebuffer[i][e]);else t.deleteFramebuffer(n.__webglFramebuffer[i]);n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer[i])}else{if(Array.isArray(n.__webglFramebuffer))for(let e=0;e<n.__webglFramebuffer.length;e++)t.deleteFramebuffer(n.__webglFramebuffer[e]);else t.deleteFramebuffer(n.__webglFramebuffer);if(n.__webglDepthbuffer&&t.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&t.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer)for(let e=0;e<n.__webglColorRenderbuffer.length;e++)n.__webglColorRenderbuffer[e]&&t.deleteRenderbuffer(n.__webglColorRenderbuffer[e]);n.__webglDepthRenderbuffer&&t.deleteRenderbuffer(n.__webglDepthRenderbuffer)}const r=e.textures;for(let s=0,o=r.length;s<o;s++){const e=i.get(r[s]);e.__webglTexture&&(t.deleteTexture(e.__webglTexture),a.memory.textures--),i.remove(r[s])}i.remove(e)}(n)}function M(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source;delete d.get(r)[n.__cacheKey],a.memory.textures--}let T=0;function I(e,r){const s=i.get(e);if(e.isVideoTexture&&function(t){const e=a.render.frame;u.get(t)!==e&&(u.set(t,e),t.update())}(e),!1===e.isRenderTargetTexture&&e.version>0&&s.__version!==e.version){const t=e.image;if(null===t)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==t.complete)return void k(s,e,r);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(t.TEXTURE_2D,s.__webglTexture,t.TEXTURE0+r)}const R={[RepeatWrapping]:t.REPEAT,[ClampToEdgeWrapping]:t.CLAMP_TO_EDGE,[MirroredRepeatWrapping]:t.MIRRORED_REPEAT},E={[NearestFilter]:t.NEAREST,[NearestMipmapNearestFilter]:t.NEAREST_MIPMAP_NEAREST,[NearestMipmapLinearFilter]:t.NEAREST_MIPMAP_LINEAR,[LinearFilter]:t.LINEAR,[LinearMipmapNearestFilter]:t.LINEAR_MIPMAP_NEAREST,[LinearMipmapLinearFilter]:t.LINEAR_MIPMAP_LINEAR},w={[NeverCompare]:t.NEVER,[AlwaysCompare]:t.ALWAYS,[LessCompare]:t.LESS,[LessEqualCompare]:t.LEQUAL,[EqualCompare]:t.EQUAL,[GreaterEqualCompare]:t.GEQUAL,[GreaterCompare]:t.GREATER,[NotEqualCompare]:t.NOTEQUAL};function C(n,s){if(s.type!==FloatType||!1!==e.has("OES_texture_float_linear")||s.magFilter!==LinearFilter&&s.magFilter!==LinearMipmapNearestFilter&&s.magFilter!==NearestMipmapLinearFilter&&s.magFilter!==LinearMipmapLinearFilter&&s.minFilter!==LinearFilter&&s.minFilter!==LinearMipmapNearestFilter&&s.minFilter!==NearestMipmapLinearFilter&&s.minFilter!==LinearMipmapLinearFilter||console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(n,t.TEXTURE_WRAP_S,R[s.wrapS]),t.texParameteri(n,t.TEXTURE_WRAP_T,R[s.wrapT]),n!==t.TEXTURE_3D&&n!==t.TEXTURE_2D_ARRAY||t.texParameteri(n,t.TEXTURE_WRAP_R,R[s.wrapR]),t.texParameteri(n,t.TEXTURE_MAG_FILTER,E[s.magFilter]),t.texParameteri(n,t.TEXTURE_MIN_FILTER,E[s.minFilter]),s.compareFunction&&(t.texParameteri(n,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(n,t.TEXTURE_COMPARE_FUNC,w[s.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){if(s.magFilter===NearestFilter)return;if(s.minFilter!==NearestMipmapLinearFilter&&s.minFilter!==LinearMipmapLinearFilter)return;if(s.type===FloatType&&!1===e.has("OES_texture_float_linear"))return;if(s.anisotropy>1||i.get(s).__currentAnisotropy){const a=e.get("EXT_texture_filter_anisotropic");t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy}}}function _(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",b));const r=n.source;let s=d.get(r);void 0===s&&(s={},d.set(r,s));const o=function(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.wrapR||0),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.colorSpace),e.join()}(n);if(o!==e.__cacheKey){void 0===s[o]&&(s[o]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,i=!0),s[o].usedTimes++;const r=s[e.__cacheKey];void 0!==r&&(s[e.__cacheKey].usedTimes--,0===r.usedTimes&&M(n)),e.__cacheKey=o,e.__webglTexture=s[o].texture}return i}function k(e,a,o){let c=t.TEXTURE_2D;(a.isDataArrayTexture||a.isCompressedArrayTexture)&&(c=t.TEXTURE_2D_ARRAY),a.isData3DTexture&&(c=t.TEXTURE_3D);const l=_(e,a),u=a.source;n.bindTexture(c,e.__webglTexture,t.TEXTURE0+o);const h=i.get(u);if(u.version!==h.__version||!0===l){n.activeTexture(t.TEXTURE0+o);const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),i=a.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(a.colorSpace),d=a.colorSpace===NoColorSpace||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,d);let p=m(a.image,!1,r.maxTextureSize);p=W(a,p);const f=s.convert(a.format,a.colorSpace),b=s.convert(a.type);let x,M=v(a.internalFormat,f,b,a.colorSpace,a.isVideoTexture);C(c,a);const T=a.mipmaps,I=!0!==a.isVideoTexture,R=void 0===h.__version||!0===l,E=u.dataReady,w=S(a,p);if(a.isDepthTexture)M=y(a.format===DepthStencilFormat,a.type),R&&(I?n.texStorage2D(t.TEXTURE_2D,1,M,p.width,p.height):n.texImage2D(t.TEXTURE_2D,0,M,p.width,p.height,0,f,b,null));else if(a.isDataTexture)if(T.length>0){I&&R&&n.texStorage2D(t.TEXTURE_2D,w,M,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)x=T[e],I?E&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,b,x.data):n.texImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,f,b,x.data);a.generateMipmaps=!1}else I?(R&&n.texStorage2D(t.TEXTURE_2D,w,M,p.width,p.height),E&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,p.width,p.height,f,b,p.data)):n.texImage2D(t.TEXTURE_2D,0,M,p.width,p.height,0,f,b,p.data);else if(a.isCompressedTexture)if(a.isCompressedArrayTexture){I&&R&&n.texStorage3D(t.TEXTURE_2D_ARRAY,w,M,T[0].width,T[0].height,p.depth);for(let e=0,i=T.length;e<i;e++)if(x=T[e],a.format!==RGBAFormat)if(null!==f)if(I){if(E)if(a.layerUpdates.size>0){const i=getByteLength(x.width,x.height,a.format,a.type);for(const r of a.layerUpdates){const s=x.data.subarray(r*i/x.data.BYTES_PER_ELEMENT,(r+1)*i/x.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,r,x.width,x.height,1,f,s,0,0)}a.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,x.width,x.height,p.depth,f,x.data,0,0)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,e,M,x.width,x.height,p.depth,0,x.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else I?E&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,e,0,0,0,x.width,x.height,p.depth,f,b,x.data):n.texImage3D(t.TEXTURE_2D_ARRAY,e,M,x.width,x.height,p.depth,0,f,b,x.data)}else{I&&R&&n.texStorage2D(t.TEXTURE_2D,w,M,T[0].width,T[0].height);for(let e=0,i=T.length;e<i;e++)x=T[e],a.format!==RGBAFormat?null!==f?I?E&&n.compressedTexSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,x.data):n.compressedTexImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,x.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):I?E&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,x.width,x.height,f,b,x.data):n.texImage2D(t.TEXTURE_2D,e,M,x.width,x.height,0,f,b,x.data)}else if(a.isDataArrayTexture)if(I){if(R&&n.texStorage3D(t.TEXTURE_2D_ARRAY,w,M,p.width,p.height,p.depth),E)if(a.layerUpdates.size>0){const e=getByteLength(p.width,p.height,a.format,a.type);for(const i of a.layerUpdates){const r=p.data.subarray(i*e/p.data.BYTES_PER_ELEMENT,(i+1)*e/p.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,i,p.width,p.height,1,f,b,r)}a.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,p.width,p.height,p.depth,f,b,p.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,M,p.width,p.height,p.depth,0,f,b,p.data);else if(a.isData3DTexture)I?(R&&n.texStorage3D(t.TEXTURE_3D,w,M,p.width,p.height,p.depth),E&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,p.width,p.height,p.depth,f,b,p.data)):n.texImage3D(t.TEXTURE_3D,0,M,p.width,p.height,p.depth,0,f,b,p.data);else if(a.isFramebufferTexture){if(R)if(I)n.texStorage2D(t.TEXTURE_2D,w,M,p.width,p.height);else{let e=p.width,i=p.height;for(let r=0;r<w;r++)n.texImage2D(t.TEXTURE_2D,r,M,e,i,0,f,b,null),e>>=1,i>>=1}}else if(T.length>0){if(I&&R){const e=D(T[0]);n.texStorage2D(t.TEXTURE_2D,w,M,e.width,e.height)}for(let e=0,i=T.length;e<i;e++)x=T[e],I?E&&n.texSubImage2D(t.TEXTURE_2D,e,0,0,f,b,x):n.texImage2D(t.TEXTURE_2D,e,M,f,b,x);a.generateMipmaps=!1}else if(I){if(R){const e=D(p);n.texStorage2D(t.TEXTURE_2D,w,M,e.width,e.height)}E&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,f,b,p)}else n.texImage2D(t.TEXTURE_2D,0,M,f,b,p);g(a)&&A(c),h.__version=u.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}function L(e,r,a,c,l,u){const h=s.convert(a.format,a.colorSpace),d=s.convert(a.type),p=v(a.internalFormat,h,d,a.colorSpace);if(!i.get(r).__hasExternalTextures){const e=Math.max(1,r.width>>u),i=Math.max(1,r.height>>u);l===t.TEXTURE_3D||l===t.TEXTURE_2D_ARRAY?n.texImage3D(l,u,p,e,i,r.depth,0,h,d,null):n.texImage2D(l,u,p,e,i,0,h,d,null)}n.bindFramebuffer(t.FRAMEBUFFER,e),B(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,c,l,i.get(a).__webglTexture,0,P(r)):(l===t.TEXTURE_2D||l>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,c,l,i.get(a).__webglTexture,u),n.bindFramebuffer(t.FRAMEBUFFER,null)}function U(e,n,i){if(t.bindRenderbuffer(t.RENDERBUFFER,e),n.depthBuffer){const r=n.depthTexture,s=r&&r.isDepthTexture?r.type:null,a=y(n.stencilBuffer,s),c=n.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,l=P(n);B(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,l,a,n.width,n.height):i?t.renderbufferStorageMultisample(t.RENDERBUFFER,l,a,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,a,n.width,n.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,c,t.RENDERBUFFER,e)}else{const e=n.textures;for(let r=0;r<e.length;r++){const a=e[r],c=s.convert(a.format,a.colorSpace),l=s.convert(a.type),u=v(a.internalFormat,c,l,a.colorSpace),h=P(n);i&&!1===B(n)?t.renderbufferStorageMultisample(t.RENDERBUFFER,h,u,n.width,n.height):B(n)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,h,u,n.width,n.height):t.renderbufferStorage(t.RENDERBUFFER,u,n.width,n.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function F(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture&&!r.__autoAllocateDepthBuffer){if(s)throw new Error("target.depthTexture not supported in Cube render targets");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),I(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture,a=P(r);if(r.depthTexture.format===DepthFormat)B(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,s,0,a):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,s,0);else{if(r.depthTexture.format!==DepthStencilFormat)throw new Error("Unknown depthTexture format");B(r)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,s,0,a):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),U(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(t.FRAMEBUFFER,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),U(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(t.FRAMEBUFFER,null)}const N=[],V=[];function P(t){return Math.min(r.maxSamples,t.samples)}function B(t){const n=i.get(t);return t.samples>0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function W(t,e){const n=t.colorSpace,i=t.format,r=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||n!==LinearSRGBColorSpace&&n!==NoColorSpace&&(ColorManagement.getTransfer(n)===SRGBTransfer?i===RGBAFormat&&r===UnsignedByteType||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),e}function D(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement?(l.width=t.naturalWidth||t.width,l.height=t.naturalHeight||t.height):"undefined"!=typeof VideoFrame&&t instanceof VideoFrame?(l.width=t.displayWidth,l.height=t.displayHeight):(l.width=t.width,l.height=t.height),l}this.allocateTextureUnit=function(){const t=T;return t>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+r.maxTextures),T+=1,t},this.resetTextureUnits=function(){T=0},this.setTexture2D=I,this.setTexture2DArray=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?k(s,e,r):n.bindTexture(t.TEXTURE_2D_ARRAY,s.__webglTexture,t.TEXTURE0+r)},this.setTexture3D=function(e,r){const s=i.get(e);e.version>0&&s.__version!==e.version?k(s,e,r):n.bindTexture(t.TEXTURE_3D,s.__webglTexture,t.TEXTURE0+r)},this.setTextureCube=function(e,a){const o=i.get(e);e.version>0&&o.__version!==e.version?function(e,a,o){if(6!==a.image.length)return;const c=_(e,a),l=a.source;n.bindTexture(t.TEXTURE_CUBE_MAP,e.__webglTexture,t.TEXTURE0+o);const u=i.get(l);if(l.version!==u.__version||!0===c){n.activeTexture(t.TEXTURE0+o);const e=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),i=a.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(a.colorSpace),h=a.colorSpace===NoColorSpace||e===i?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,a.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,a.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,h);const d=a.isCompressedTexture||a.image[0].isCompressedTexture,p=a.image[0]&&a.image[0].isDataTexture,f=[];for(let t=0;t<6;t++)f[t]=d||p?p?a.image[t].image:a.image[t]:m(a.image[t],!0,r.maxCubemapSize),f[t]=W(a,f[t]);const y=f[0],b=s.convert(a.format,a.colorSpace),x=s.convert(a.type),M=v(a.internalFormat,b,x,a.colorSpace),T=!0!==a.isVideoTexture,I=void 0===u.__version||!0===c,R=l.dataReady;let E,w=S(a,y);if(C(t.TEXTURE_CUBE_MAP,a),d){T&&I&&n.texStorage2D(t.TEXTURE_CUBE_MAP,w,M,y.width,y.height);for(let e=0;e<6;e++){E=f[e].mipmaps;for(let i=0;i<E.length;i++){const r=E[i];a.format!==RGBAFormat?null!==b?T?R&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,r.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,M,r.width,r.height,0,r.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):T?R&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,0,0,r.width,r.height,b,x,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i,M,r.width,r.height,0,b,x,r.data)}}}else{if(E=a.mipmaps,T&&I){E.length>0&&w++;const e=D(f[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,w,M,e.width,e.height)}for(let e=0;e<6;e++)if(p){T?R&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,f[e].width,f[e].height,b,x,f[e].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,M,f[e].width,f[e].height,0,b,x,f[e].data);for(let i=0;i<E.length;i++){const r=E[i].image[e].image;T?R&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,r.width,r.height,b,x,r.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,M,r.width,r.height,0,b,x,r.data)}}else{T?R&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,0,0,b,x,f[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,M,b,x,f[e]);for(let i=0;i<E.length;i++){const r=E[i];T?R&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,0,0,b,x,r.image[e]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+e,i+1,M,b,x,r.image[e])}}}g(a)&&A(t.TEXTURE_CUBE_MAP),u.__version=l.version,a.onUpdate&&a.onUpdate(a)}e.__version=a.version}(o,e,a):n.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture,t.TEXTURE0+a)},this.rebindTextures=function(e,n,r){const s=i.get(e);void 0!==n&&L(s.__webglFramebuffer,e,e.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),void 0!==r&&F(e)},this.setupRenderTarget=function(e){const r=e.texture,o=i.get(e),c=i.get(r);e.addEventListener("dispose",x);const l=e.textures,u=!0===e.isWebGLCubeRenderTarget,h=l.length>1;if(h||(void 0===c.__webglTexture&&(c.__webglTexture=t.createTexture()),c.__version=r.version,a.memory.textures++),u){o.__webglFramebuffer=[];for(let e=0;e<6;e++)if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer[e]=[];for(let n=0;n<r.mipmaps.length;n++)o.__webglFramebuffer[e][n]=t.createFramebuffer()}else o.__webglFramebuffer[e]=t.createFramebuffer()}else{if(r.mipmaps&&r.mipmaps.length>0){o.__webglFramebuffer=[];for(let e=0;e<r.mipmaps.length;e++)o.__webglFramebuffer[e]=t.createFramebuffer()}else o.__webglFramebuffer=t.createFramebuffer();if(h)for(let e=0,n=l.length;e<n;e++){const n=i.get(l[e]);void 0===n.__webglTexture&&(n.__webglTexture=t.createTexture(),a.memory.textures++)}if(e.samples>0&&!1===B(e)){o.__webglMultisampledFramebuffer=t.createFramebuffer(),o.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,o.__webglMultisampledFramebuffer);for(let n=0;n<l.length;n++){const i=l[n];o.__webglColorRenderbuffer[n]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,o.__webglColorRenderbuffer[n]);const r=s.convert(i.format,i.colorSpace),a=s.convert(i.type),c=v(i.internalFormat,r,a,i.colorSpace,!0===e.isXRRenderTarget),u=P(e);t.renderbufferStorageMultisample(t.RENDERBUFFER,u,c,e.width,e.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+n,t.RENDERBUFFER,o.__webglColorRenderbuffer[n])}t.bindRenderbuffer(t.RENDERBUFFER,null),e.depthBuffer&&(o.__webglDepthRenderbuffer=t.createRenderbuffer(),U(o.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(u){n.bindTexture(t.TEXTURE_CUBE_MAP,c.__webglTexture),C(t.TEXTURE_CUBE_MAP,r);for(let n=0;n<6;n++)if(r.mipmaps&&r.mipmaps.length>0)for(let i=0;i<r.mipmaps.length;i++)L(o.__webglFramebuffer[n][i],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,i);else L(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+n,0);g(r)&&A(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(h){for(let r=0,s=l.length;r<s;r++){const s=l[r],a=i.get(s);n.bindTexture(t.TEXTURE_2D,a.__webglTexture),C(t.TEXTURE_2D,s),L(o.__webglFramebuffer,e,s,t.COLOR_ATTACHMENT0+r,t.TEXTURE_2D,0),g(s)&&A(t.TEXTURE_2D)}n.unbindTexture()}else{let i=t.TEXTURE_2D;if((e.isWebGL3DRenderTarget||e.isWebGLArrayRenderTarget)&&(i=e.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(i,c.__webglTexture),C(i,r),r.mipmaps&&r.mipmaps.length>0)for(let n=0;n<r.mipmaps.length;n++)L(o.__webglFramebuffer[n],e,r,t.COLOR_ATTACHMENT0,i,n);else L(o.__webglFramebuffer,e,r,t.COLOR_ATTACHMENT0,i,0);g(r)&&A(i),n.unbindTexture()}e.depthBuffer&&F(e)},this.updateRenderTargetMipmap=function(e){const r=e.textures;for(let s=0,a=r.length;s<a;s++){const a=r[s];if(g(a)){const r=e.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,s=i.get(a).__webglTexture;n.bindTexture(r,s),A(r),n.unbindTexture()}}},this.updateMultisampleRenderTarget=function(e){if(e.samples>0)if(!1===B(e)){const r=e.textures,s=e.width,a=e.height;let o=t.COLOR_BUFFER_BIT;const l=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,u=i.get(e),h=r.length>1;if(h)for(let e=0;e<r.length;e++)n.bindFramebuffer(t.FRAMEBUFFER,u.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,u.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,u.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,u.__webglFramebuffer);for(let n=0;n<r.length;n++){if(e.resolveDepthBuffer&&(e.depthBuffer&&(o|=t.DEPTH_BUFFER_BIT),e.stencilBuffer&&e.resolveStencilBuffer&&(o|=t.STENCIL_BUFFER_BIT)),h){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,u.__webglColorRenderbuffer[n]);const e=i.get(r[n]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0)}t.blitFramebuffer(0,0,s,a,0,0,s,a,o,t.NEAREST),!0===c&&(N.length=0,V.length=0,N.push(t.COLOR_ATTACHMENT0+n),e.depthBuffer&&!1===e.resolveDepthBuffer&&(N.push(l),V.push(l),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,V)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,N))}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),h)for(let e=0;e<r.length;e++){n.bindFramebuffer(t.FRAMEBUFFER,u.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.RENDERBUFFER,u.__webglColorRenderbuffer[e]);const s=i.get(r[e]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,u.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+e,t.TEXTURE_2D,s,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,u.__webglMultisampledFramebuffer)}else if(e.depthBuffer&&!1===e.resolveDepthBuffer&&c){const n=e.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[n])}},this.setupDepthRenderbuffer=F,this.setupFrameBufferTexture=L,this.useMultisampledRTT=B}function WebGLUtils(t,e){return{convert:function(n,i=NoColorSpace){let r;const s=ColorManagement.getTransfer(i);if(n===UnsignedByteType)return t.UNSIGNED_BYTE;if(n===UnsignedShort4444Type)return t.UNSIGNED_SHORT_4_4_4_4;if(n===UnsignedShort5551Type)return t.UNSIGNED_SHORT_5_5_5_1;if(n===UnsignedInt5999Type)return t.UNSIGNED_INT_5_9_9_9_REV;if(n===ByteType)return t.BYTE;if(n===ShortType)return t.SHORT;if(n===UnsignedShortType)return t.UNSIGNED_SHORT;if(n===IntType)return t.INT;if(n===UnsignedIntType)return t.UNSIGNED_INT;if(n===FloatType)return t.FLOAT;if(n===HalfFloatType)return t.HALF_FLOAT;if(n===AlphaFormat)return t.ALPHA;if(n===RGBFormat)return t.RGB;if(n===RGBAFormat)return t.RGBA;if(n===LuminanceFormat)return t.LUMINANCE;if(n===LuminanceAlphaFormat)return t.LUMINANCE_ALPHA;if(n===DepthFormat)return t.DEPTH_COMPONENT;if(n===DepthStencilFormat)return t.DEPTH_STENCIL;if(n===RedFormat)return t.RED;if(n===RedIntegerFormat)return t.RED_INTEGER;if(n===RGFormat)return t.RG;if(n===RGIntegerFormat)return t.RG_INTEGER;if(n===RGBAIntegerFormat)return t.RGBA_INTEGER;if(n===RGB_S3TC_DXT1_Format||n===RGBA_S3TC_DXT1_Format||n===RGBA_S3TC_DXT3_Format||n===RGBA_S3TC_DXT5_Format)if(s===SRGBTransfer){if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===r)return null;if(n===RGB_S3TC_DXT1_Format)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT1_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT3_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===RGBA_S3TC_DXT5_Format)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(r=e.get("WEBGL_compressed_texture_s3tc"),null===r)return null;if(n===RGB_S3TC_DXT1_Format)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT1_Format)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===RGBA_S3TC_DXT3_Format)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===RGBA_S3TC_DXT5_Format)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===RGB_PVRTC_4BPPV1_Format||n===RGB_PVRTC_2BPPV1_Format||n===RGBA_PVRTC_4BPPV1_Format||n===RGBA_PVRTC_2BPPV1_Format){if(r=e.get("WEBGL_compressed_texture_pvrtc"),null===r)return null;if(n===RGB_PVRTC_4BPPV1_Format)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===RGB_PVRTC_2BPPV1_Format)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===RGBA_PVRTC_4BPPV1_Format)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===RGBA_PVRTC_2BPPV1_Format)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===RGB_ETC1_Format||n===RGB_ETC2_Format||n===RGBA_ETC2_EAC_Format){if(r=e.get("WEBGL_compressed_texture_etc"),null===r)return null;if(n===RGB_ETC1_Format||n===RGB_ETC2_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===RGBA_ETC2_EAC_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}if(n===RGBA_ASTC_4x4_Format||n===RGBA_ASTC_5x4_Format||n===RGBA_ASTC_5x5_Format||n===RGBA_ASTC_6x5_Format||n===RGBA_ASTC_6x6_Format||n===RGBA_ASTC_8x5_Format||n===RGBA_ASTC_8x6_Format||n===RGBA_ASTC_8x8_Format||n===RGBA_ASTC_10x5_Format||n===RGBA_ASTC_10x6_Format||n===RGBA_ASTC_10x8_Format||n===RGBA_ASTC_10x10_Format||n===RGBA_ASTC_12x10_Format||n===RGBA_ASTC_12x12_Format){if(r=e.get("WEBGL_compressed_texture_astc"),null===r)return null;if(n===RGBA_ASTC_4x4_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===RGBA_ASTC_5x4_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===RGBA_ASTC_5x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===RGBA_ASTC_6x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===RGBA_ASTC_6x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===RGBA_ASTC_8x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===RGBA_ASTC_8x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===RGBA_ASTC_8x8_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===RGBA_ASTC_10x5_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===RGBA_ASTC_10x6_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===RGBA_ASTC_10x8_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===RGBA_ASTC_10x10_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===RGBA_ASTC_12x10_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===RGBA_ASTC_12x12_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===RGBA_BPTC_Format||n===RGB_BPTC_SIGNED_Format||n===RGB_BPTC_UNSIGNED_Format){if(r=e.get("EXT_texture_compression_bptc"),null===r)return null;if(n===RGBA_BPTC_Format)return s===SRGBTransfer?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===RGB_BPTC_SIGNED_Format)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===RGB_BPTC_UNSIGNED_Format)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}if(n===RED_RGTC1_Format||n===SIGNED_RED_RGTC1_Format||n===RED_GREEN_RGTC2_Format||n===SIGNED_RED_GREEN_RGTC2_Format){if(r=e.get("EXT_texture_compression_rgtc"),null===r)return null;if(n===RGBA_BPTC_Format)return r.COMPRESSED_RED_RGTC1_EXT;if(n===SIGNED_RED_RGTC1_Format)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===RED_GREEN_RGTC2_Format)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===SIGNED_RED_GREEN_RGTC2_Format)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}return n===UnsignedInt248Type?t.UNSIGNED_INT_24_8:void 0!==t[n]?t[n]:null}}}class ArrayCamera extends PerspectiveCamera{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}let Group$1=class extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}};const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Group$1,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Group$1,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Group$1,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,c=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState){if(c&&t.hand){s=!0;for(const s of t.hand.values()){const t=e.getJointPose(s,n),i=this._getHandJoint(c,s);null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.matrixWorldNeedsUpdate=!0,i.jointRadius=t.radius),i.visible=null!==t}const i=c.joints["index-finger-tip"],r=c.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,l=.005;c.inputState.pinching&&a>o+l?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&a<=o-l&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==c&&(c.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const n=new Group$1;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const _occlusion_vertex="\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",_occlusion_fragment="\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}";class WebXRDepthSensing{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(null===this.texture){const i=new Texture;t.properties.get(i).__webglTexture=e.texture,e.depthNear==n.depthNear&&e.depthFar==n.depthFar||(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(t){if(null!==this.texture&&null===this.mesh){const e=t.cameras[0].viewport,n=new ShaderMaterial({vertexShader:_occlusion_vertex,fragmentShader:_occlusion_fragment,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Mesh(new PlaneGeometry(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class WebXRManager extends EventDispatcher{constructor(t,e){super();const n=this;let i=null,r=1,s=null,a="local-floor",o=1,c=null,l=null,u=null,h=null,d=null,p=null;const f=new WebXRDepthSensing,m=e.getContextAttributes();let g=null,A=null;const v=[],y=[],S=new Vector2;let b=null;const x=new PerspectiveCamera;x.layers.enable(1),x.viewport=new Vector4;const M=new PerspectiveCamera;M.layers.enable(2),M.viewport=new Vector4;const T=[x,M],I=new ArrayCamera;I.layers.enable(1),I.layers.enable(2);let R=null,E=null;function w(t){const e=y.indexOf(t.inputSource);if(-1===e)return;const n=v[e];void 0!==n&&(n.update(t.inputSource,t.frame,c||s),n.dispatchEvent({type:t.type,data:t.inputSource}))}function C(){i.removeEventListener("select",w),i.removeEventListener("selectstart",w),i.removeEventListener("selectend",w),i.removeEventListener("squeeze",w),i.removeEventListener("squeezestart",w),i.removeEventListener("squeezeend",w),i.removeEventListener("end",C),i.removeEventListener("inputsourceschange",_);for(let t=0;t<v.length;t++){const e=y[t];null!==e&&(y[t]=null,v[t].disconnect(e))}R=null,E=null,f.reset(),t.setRenderTarget(g),d=null,h=null,u=null,i=null,A=null,N.stop(),n.isPresenting=!1,t.setPixelRatio(b),t.setSize(S.width,S.height,!1),n.dispatchEvent({type:"sessionend"})}function _(t){for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=y.indexOf(n);i>=0&&(y[i]=null,v[i].disconnect(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e];let i=y.indexOf(n);if(-1===i){for(let t=0;t<v.length;t++){if(t>=y.length){y.push(n),i=t;break}if(null===y[t]){y[t]=n,i=t;break}}if(-1===i)break}const r=v[i];r&&r.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=v[t];return void 0===e&&(e=new WebXRController,v[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=v[t];return void 0===e&&(e=new WebXRController,v[t]=e),e.getGripSpace()},this.getHand=function(t){let e=v[t];return void 0===e&&(e=new WebXRController,v[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){a=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(t){c=t},this.getBaseLayer=function(){return null!==h?h:d},this.getBinding=function(){return u},this.getFrame=function(){return p},this.getSession=function(){return i},this.setSession=async function(l){if(i=l,null!==i){if(g=t.getRenderTarget(),i.addEventListener("select",w),i.addEventListener("selectstart",w),i.addEventListener("selectend",w),i.addEventListener("squeeze",w),i.addEventListener("squeezestart",w),i.addEventListener("squeezeend",w),i.addEventListener("end",C),i.addEventListener("inputsourceschange",_),!0!==m.xrCompatible&&await e.makeXRCompatible(),b=t.getPixelRatio(),t.getSize(S),void 0===i.renderState.layers){const n={antialias:m.antialias,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:d}),t.setPixelRatio(1),t.setSize(d.framebufferWidth,d.framebufferHeight,!1),A=new WebGLRenderTarget(d.framebufferWidth,d.framebufferHeight,{format:RGBAFormat,type:UnsignedByteType,colorSpace:t.outputColorSpace,stencilBuffer:m.stencil})}else{let n=null,s=null,a=null;m.depth&&(a=m.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,n=m.stencil?DepthStencilFormat:DepthFormat,s=m.stencil?UnsignedInt248Type:UnsignedIntType);const o={colorFormat:e.RGBA8,depthFormat:a,scaleFactor:r};u=new XRWebGLBinding(i,e),h=u.createProjectionLayer(o),i.updateRenderState({layers:[h]}),t.setPixelRatio(1),t.setSize(h.textureWidth,h.textureHeight,!1),A=new WebGLRenderTarget(h.textureWidth,h.textureHeight,{format:RGBAFormat,type:UnsignedByteType,depthTexture:new DepthTexture(h.textureWidth,h.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,colorSpace:t.outputColorSpace,samples:m.antialias?4:0,resolveDepthBuffer:!1===h.ignoreDepthValues})}A.isXRRenderTarget=!0,this.setFoveation(o),c=null,s=await i.requestReferenceSpace(a),N.setContext(i),N.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==i)return i.environmentBlendMode},this.getDepthTexture=function(){return f.getDepthTexture()};const k=new Vector3,L=new Vector3;function U(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;null!==f.texture&&(t.near=f.depthNear,t.far=f.depthFar),I.near=M.near=x.near=t.near,I.far=M.far=x.far=t.far,R===I.near&&E===I.far||(i.updateRenderState({depthNear:I.near,depthFar:I.far}),R=I.near,E=I.far,x.near=R,x.far=E,M.near=R,M.far=E,x.updateProjectionMatrix(),M.updateProjectionMatrix(),t.updateProjectionMatrix());const e=t.parent,n=I.cameras;U(I,e);for(let i=0;i<n.length;i++)U(n[i],e);2===n.length?function(t,e,n){k.setFromMatrixPosition(e.matrixWorld),L.setFromMatrixPosition(n.matrixWorld);const i=k.distanceTo(L),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),c=(r[9]+1)/r[5],l=(r[9]-1)/r[5],u=(r[8]-1)/r[0],h=(s[8]+1)/s[0],d=a*u,p=a*h,f=i/(-u+h),m=f*-u;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+f,A=o+f,v=d-m,y=p+(i-m),S=c*o/A*g,b=l*o/A*g;t.projectionMatrix.makePerspective(v,y,S,b,g,A),t.projectionMatrixInverse.copy(t.projectionMatrix).invert()}(I,x,M):I.projectionMatrix.copy(x.projectionMatrix),function(t,e,n){null===n?t.matrix.copy(e.matrixWorld):(t.matrix.copy(n.matrixWorld),t.matrix.invert(),t.matrix.multiply(e.matrixWorld));t.matrix.decompose(t.position,t.quaternion,t.scale),t.updateMatrixWorld(!0),t.projectionMatrix.copy(e.projectionMatrix),t.projectionMatrixInverse.copy(e.projectionMatrixInverse),t.isPerspectiveCamera&&(t.fov=2*RAD2DEG$1*Math.atan(1/t.projectionMatrix.elements[5]),t.zoom=1)}(t,I,e)},this.getCamera=function(){return I},this.getFoveation=function(){if(null!==h||null!==d)return o},this.setFoveation=function(t){o=t,null!==h&&(h.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)},this.hasDepthSensing=function(){return null!==f.texture},this.getDepthSensingMesh=function(){return f.getMesh(I)};let F=null;const N=new WebGLAnimation;N.setAnimationLoop(function(e,r){if(l=r.getViewerPose(c||s),p=r,null!==l){const e=l.views;null!==d&&(t.setRenderTargetFramebuffer(A,d.framebuffer),t.setRenderTarget(A));let n=!1;e.length!==I.cameras.length&&(I.cameras.length=0,n=!0);for(let i=0;i<e.length;i++){const r=e[i];let s=null;if(null!==d)s=d.getViewport(r);else{const e=u.getViewSubImage(h,r);s=e.viewport,0===i&&(t.setRenderTargetTextures(A,e.colorTexture,h.ignoreDepthValues?void 0:e.depthStencilTexture),t.setRenderTarget(A))}let a=T[i];void 0===a&&(a=new PerspectiveCamera,a.layers.enable(i),a.viewport=new Vector4,T[i]=a),a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.quaternion,a.scale),a.projectionMatrix.fromArray(r.projectionMatrix),a.projectionMatrixInverse.copy(a.projectionMatrix).invert(),a.viewport.set(s.x,s.y,s.width,s.height),0===i&&(I.matrix.copy(a.matrix),I.matrix.decompose(I.position,I.quaternion,I.scale)),!0===n&&I.cameras.push(a)}const r=i.enabledFeatures;if(r&&r.includes("depth-sensing")){const n=u.getDepthInformation(e[0]);n&&n.isValid&&n.texture&&f.init(t,n,i.renderState)}}for(let t=0;t<v.length;t++){const e=y[t],n=v[t];null!==e&&void 0!==n&&n.update(e,r,c||s)}F&&F(e,r),r.detectedPlanes&&n.dispatchEvent({type:"planesdetected",data:r}),p=null}),this.setAnimationLoop=function(t){F=t},this.dispose=function(){}}}const _e1=new Euler,_m1=new Matrix4;function WebGLMaterials(t,e){function n(t,e){!0===t.matrixAutoUpdate&&t.updateMatrix(),e.value.copy(t.matrix)}function i(t,i){t.opacity.value=i.opacity,i.color&&t.diffuse.value.copy(i.color),i.emissive&&t.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(t.map.value=i.map,n(i.map,t.mapTransform)),i.alphaMap&&(t.alphaMap.value=i.alphaMap,n(i.alphaMap,t.alphaMapTransform)),i.bumpMap&&(t.bumpMap.value=i.bumpMap,n(i.bumpMap,t.bumpMapTransform),t.bumpScale.value=i.bumpScale,i.side===BackSide&&(t.bumpScale.value*=-1)),i.normalMap&&(t.normalMap.value=i.normalMap,n(i.normalMap,t.normalMapTransform),t.normalScale.value.copy(i.normalScale),i.side===BackSide&&t.normalScale.value.negate()),i.displacementMap&&(t.displacementMap.value=i.displacementMap,n(i.displacementMap,t.displacementMapTransform),t.displacementScale.value=i.displacementScale,t.displacementBias.value=i.displacementBias),i.emissiveMap&&(t.emissiveMap.value=i.emissiveMap,n(i.emissiveMap,t.emissiveMapTransform)),i.specularMap&&(t.specularMap.value=i.specularMap,n(i.specularMap,t.specularMapTransform)),i.alphaTest>0&&(t.alphaTest.value=i.alphaTest);const r=e.get(i),s=r.envMap,a=r.envMapRotation;s&&(t.envMap.value=s,_e1.copy(a),_e1.x*=-1,_e1.y*=-1,_e1.z*=-1,s.isCubeTexture&&!1===s.isRenderTargetTexture&&(_e1.y*=-1,_e1.z*=-1),t.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)),t.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,t.reflectivity.value=i.reflectivity,t.ior.value=i.ior,t.refractionRatio.value=i.refractionRatio),i.lightMap&&(t.lightMap.value=i.lightMap,t.lightMapIntensity.value=i.lightMapIntensity,n(i.lightMap,t.lightMapTransform)),i.aoMap&&(t.aoMap.value=i.aoMap,t.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,t.aoMapTransform))}return{refreshFogUniforms:function(e,n){n.color.getRGB(e.fogColor.value,getUnlitUniformColorSpace(t)),n.isFog?(e.fogNear.value=n.near,e.fogFar.value=n.far):n.isFogExp2&&(e.fogDensity.value=n.density)},refreshMaterialUniforms:function(t,r,s,a,o){r.isMeshBasicMaterial||r.isMeshLambertMaterial?i(t,r):r.isMeshToonMaterial?(i(t,r),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}(t,r)):r.isMeshPhongMaterial?(i(t,r),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}(t,r)):r.isMeshStandardMaterial?(i(t,r),function(t,e){t.metalness.value=e.metalness,e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap,n(e.metalnessMap,t.metalnessMapTransform));t.roughness.value=e.roughness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap,n(e.roughnessMap,t.roughnessMapTransform));e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}(t,r),r.isMeshPhysicalMaterial&&function(t,e,i){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap,n(e.sheenColorMap,t.sheenColorMapTransform)),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap,n(e.sheenRoughnessMap,t.sheenRoughnessMapTransform)));e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap,n(e.clearcoatMap,t.clearcoatMapTransform)),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap,n(e.clearcoatRoughnessMap,t.clearcoatRoughnessMapTransform)),e.clearcoatNormalMap&&(t.clearcoatNormalMap.value=e.clearcoatNormalMap,n(e.clearcoatNormalMap,t.clearcoatNormalMapTransform),t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),e.side===BackSide&&t.clearcoatNormalScale.value.negate()));e.dispersion>0&&(t.dispersion.value=e.dispersion);e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap,n(e.iridescenceMap,t.iridescenceMapTransform)),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap,n(e.iridescenceThicknessMap,t.iridescenceThicknessMapTransform)));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap,n(e.transmissionMap,t.transmissionMapTransform)),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap,n(e.thicknessMap,t.thicknessMapTransform)),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor));e.anisotropy>0&&(t.anisotropyVector.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation)),e.anisotropyMap&&(t.anisotropyMap.value=e.anisotropyMap,n(e.anisotropyMap,t.anisotropyMapTransform)));t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap,n(e.specularColorMap,t.specularColorMapTransform));e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap,n(e.specularIntensityMap,t.specularIntensityMapTransform))}(t,r,o)):r.isMeshMatcapMaterial?(i(t,r),function(t,e){e.matcap&&(t.matcap.value=e.matcap)}(t,r)):r.isMeshDepthMaterial?i(t,r):r.isMeshDistanceMaterial?(i(t,r),function(t,n){const i=e.get(n).light;t.referencePosition.value.setFromMatrixPosition(i.matrixWorld),t.nearDistance.value=i.shadow.camera.near,t.farDistance.value=i.shadow.camera.far}(t,r)):r.isMeshNormalMaterial?i(t,r):r.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform))}(t,r),r.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,r)):r.isPointsMaterial?function(t,e,i,r){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*i,t.scale.value=.5*r,e.map&&(t.map.value=e.map,n(e.map,t.uvTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r,s,a):r.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map,n(e.map,t.mapTransform));e.alphaMap&&(t.alphaMap.value=e.alphaMap,n(e.alphaMap,t.alphaMapTransform));e.alphaTest>0&&(t.alphaTest.value=e.alphaTest)}(t,r):r.isShadowMaterial?(t.color.value.copy(r.color),t.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function WebGLUniformsGroups(t,e,n,i){let r={},s={},a=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function c(t,e,n,i){const r=t.value,s=e+"_"+n;if(void 0===i[s])return i[s]="number"==typeof r||"boolean"==typeof r?r:r.clone(),!0;{const t=i[s];if("number"==typeof r||"boolean"==typeof r){if(t!==r)return i[s]=r,!0}else if(!1===t.equals(r))return t.copy(r),!0}return!1}function l(t){const e={boundary:0,storage:0};return"number"==typeof t||"boolean"==typeof t?(e.boundary=4,e.storage=4):t.isVector2?(e.boundary=8,e.storage=8):t.isVector3||t.isColor?(e.boundary=16,e.storage=12):t.isVector4?(e.boundary=16,e.storage=16):t.isMatrix3?(e.boundary=48,e.storage=48):t.isMatrix4?(e.boundary=64,e.storage=64):t.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",t),e}function u(e){const n=e.target;n.removeEventListener("dispose",u);const i=a.indexOf(n.__bindingPointIndex);a.splice(i,1),t.deleteBuffer(r[n.id]),delete r[n.id],delete s[n.id]}return{bind:function(t,e){const n=e.program;i.uniformBlockBinding(t,n)},update:function(n,h){let d=r[n.id];void 0===d&&(!function(t){const e=t.uniforms;let n=0;const i=16;for(let s=0,a=e.length;s<a;s++){const t=Array.isArray(e[s])?e[s]:[e[s]];for(let e=0,r=t.length;e<r;e++){const r=t[e],s=Array.isArray(r.value)?r.value:[r.value];for(let t=0,e=s.length;t<e;t++){const e=l(s[t]),a=n%i;0!==a&&i-a<e.boundary&&(n+=i-a),r.__data=new Float32Array(e.storage/Float32Array.BYTES_PER_ELEMENT),r.__offset=n,n+=e.storage}}}const r=n%i;r>0&&(n+=i-r);t.__size=n,t.__cache={}}(n),d=function(e){const n=function(){for(let t=0;t<o;t++)if(-1===a.indexOf(t))return a.push(t),t;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}();e.__bindingPointIndex=n;const i=t.createBuffer(),r=e.__size,s=e.usage;return t.bindBuffer(t.UNIFORM_BUFFER,i),t.bufferData(t.UNIFORM_BUFFER,r,s),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,n,i),i}(n),r[n.id]=d,n.addEventListener("dispose",u));const p=h.program;i.updateUBOMapping(n,p);const f=e.render.frame;s[n.id]!==f&&(!function(e){const n=r[e.id],i=e.uniforms,s=e.__cache;t.bindBuffer(t.UNIFORM_BUFFER,n);for(let r=0,a=i.length;r<a;r++){const e=Array.isArray(i[r])?i[r]:[i[r]];for(let n=0,i=e.length;n<i;n++){const i=e[n];if(!0===c(i,r,n,s)){const e=i.__offset,n=Array.isArray(i.value)?i.value:[i.value];let r=0;for(let s=0;s<n.length;s++){const a=n[s],o=l(a);"number"==typeof a||"boolean"==typeof a?(i.__data[0]=a,t.bufferSubData(t.UNIFORM_BUFFER,e+r,i.__data)):a.isMatrix3?(i.__data[0]=a.elements[0],i.__data[1]=a.elements[1],i.__data[2]=a.elements[2],i.__data[3]=0,i.__data[4]=a.elements[3],i.__data[5]=a.elements[4],i.__data[6]=a.elements[5],i.__data[7]=0,i.__data[8]=a.elements[6],i.__data[9]=a.elements[7],i.__data[10]=a.elements[8],i.__data[11]=0):(a.toArray(i.__data,r),r+=o.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,e,i.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}(n),s[n.id]=f)},dispose:function(){for(const e in r)t.deleteBuffer(r[e]);a=[],r={},s={}}}}class WebGLRenderer{constructor(t={}){const{canvas:e=createCanvasElement(),context:n=null,depth:i=!0,stencil:r=!1,alpha:s=!1,antialias:a=!1,premultipliedAlpha:o=!0,preserveDrawingBuffer:c=!1,powerPreference:l="default",failIfMajorPerformanceCaveat:u=!1}=t;let h;if(this.isWebGLRenderer=!0,null!==n){if("undefined"!=typeof WebGLRenderingContext&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");h=n.getContextAttributes().alpha}else h=s;const d=new Uint32Array(4),p=new Int32Array(4);let f=null,m=null;const g=[],A=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=SRGBColorSpace,this.toneMapping=NoToneMapping,this.toneMappingExposure=1;const v=this;let y=!1,S=0,b=0,x=null,M=-1,T=null;const I=new Vector4,R=new Vector4;let E=null;const w=new Color(0);let C=0,_=e.width,k=e.height,L=1,U=null,F=null;const N=new Vector4(0,0,_,k),V=new Vector4(0,0,_,k);let P=!1;const B=new Frustum;let W=!1,D=!1;const O=new Matrix4,J=new Vector3,G=new Vector4,H={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let q=!1;function j(){return null===x?L:1}let K,z,X,Z,Q,Y,$,tt,et,nt,it,rt,st,at,ot,ct,lt,ut,ht,dt,pt,ft,mt,gt,At=n;function vt(t,n){return e.getContext(t,n)}try{const t={alpha:!0,depth:i,stencil:r,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:c,powerPreference:l,failIfMajorPerformanceCaveat:u};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${REVISION}`),e.addEventListener("webglcontextlost",bt,!1),e.addEventListener("webglcontextrestored",xt,!1),e.addEventListener("webglcontextcreationerror",Mt,!1),null===At){const e="webgl2";if(At=vt(e,t),null===At)throw vt(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Bt){throw console.error("THREE.WebGLRenderer: "+Bt.message),Bt}function yt(){K=new WebGLExtensions(At),K.init(),ft=new WebGLUtils(At,K),z=new WebGLCapabilities(At,K,t,ft),X=new WebGLState(At),Z=new WebGLInfo(At),Q=new WebGLProperties,Y=new WebGLTextures(At,K,X,Q,z,ft,Z),$=new WebGLCubeMaps(v),tt=new WebGLCubeUVMaps(v),et=new WebGLAttributes(At),mt=new WebGLBindingStates(At,et),nt=new WebGLGeometries(At,et,Z,mt),it=new WebGLObjects(At,nt,et,Z),ht=new WebGLMorphtargets(At,z,Y),ct=new WebGLClipping(Q),rt=new WebGLPrograms(v,$,tt,K,z,mt,ct),st=new WebGLMaterials(v,Q),at=new WebGLRenderLists,ot=new WebGLRenderStates(K),ut=new WebGLBackground(v,$,tt,X,it,h,o),lt=new WebGLShadowMap(v,it,z),gt=new WebGLUniformsGroups(At,Z,z,X),dt=new WebGLBufferRenderer(At,K,Z),pt=new WebGLIndexedBufferRenderer(At,K,Z),Z.programs=rt.programs,v.capabilities=z,v.extensions=K,v.properties=Q,v.renderLists=at,v.shadowMap=lt,v.state=X,v.info=Z}yt();const St=new WebXRManager(v,At);function bt(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),y=!0}function xt(){console.log("THREE.WebGLRenderer: Context Restored."),y=!1;const t=Z.autoReset,e=lt.enabled,n=lt.autoUpdate,i=lt.needsUpdate,r=lt.type;yt(),Z.autoReset=t,lt.enabled=e,lt.autoUpdate=n,lt.needsUpdate=i,lt.type=r}function Mt(t){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",t.statusMessage)}function Tt(t){const e=t.target;e.removeEventListener("dispose",Tt),function(t){(function(t){const e=Q.get(t).programs;void 0!==e&&(e.forEach(function(t){rt.releaseProgram(t)}),t.isShaderMaterial&&rt.releaseShaderCache(t))})(t),Q.remove(t)}(e)}function It(t,e,n){!0===t.transparent&&t.side===DoubleSide&&!1===t.forceSinglePass?(t.side=BackSide,t.needsUpdate=!0,Nt(t,e,n),t.side=FrontSide,t.needsUpdate=!0,Nt(t,e,n),t.side=DoubleSide):Nt(t,e,n)}this.xr=St,this.getContext=function(){return At},this.getContextAttributes=function(){return At.getContextAttributes()},this.forceContextLoss=function(){const t=K.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=K.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return L},this.setPixelRatio=function(t){void 0!==t&&(L=t,this.setSize(_,k,!1))},this.getSize=function(t){return t.set(_,k)},this.setSize=function(t,n,i=!0){St.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(_=t,k=n,e.width=Math.floor(t*L),e.height=Math.floor(n*L),!0===i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(_*L,k*L).floor()},this.setDrawingBufferSize=function(t,n,i){_=t,k=n,L=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(I)},this.getViewport=function(t){return t.copy(N)},this.setViewport=function(t,e,n,i){t.isVector4?N.set(t.x,t.y,t.z,t.w):N.set(t,e,n,i),X.viewport(I.copy(N).multiplyScalar(L).round())},this.getScissor=function(t){return t.copy(V)},this.setScissor=function(t,e,n,i){t.isVector4?V.set(t.x,t.y,t.z,t.w):V.set(t,e,n,i),X.scissor(R.copy(V).multiplyScalar(L).round())},this.getScissorTest=function(){return P},this.setScissorTest=function(t){X.setScissorTest(P=t)},this.setOpaqueSort=function(t){U=t},this.setTransparentSort=function(t){F=t},this.getClearColor=function(t){return t.copy(ut.getClearColor())},this.setClearColor=function(){ut.setClearColor.apply(ut,arguments)},this.getClearAlpha=function(){return ut.getClearAlpha()},this.setClearAlpha=function(){ut.setClearAlpha.apply(ut,arguments)},this.clear=function(t=!0,e=!0,n=!0){let i=0;if(t){let t=!1;if(null!==x){const e=x.texture.format;t=e===RGBAIntegerFormat||e===RGIntegerFormat||e===RedIntegerFormat}if(t){const t=x.texture.type,e=t===UnsignedByteType||t===UnsignedIntType||t===UnsignedShortType||t===UnsignedInt248Type||t===UnsignedShort4444Type||t===UnsignedShort5551Type,n=ut.getClearColor(),i=ut.getClearAlpha(),r=n.r,s=n.g,a=n.b;e?(d[0]=r,d[1]=s,d[2]=a,d[3]=i,At.clearBufferuiv(At.COLOR,0,d)):(p[0]=r,p[1]=s,p[2]=a,p[3]=i,At.clearBufferiv(At.COLOR,0,p))}else i|=At.COLOR_BUFFER_BIT}e&&(i|=At.DEPTH_BUFFER_BIT),n&&(i|=At.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),At.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",bt,!1),e.removeEventListener("webglcontextrestored",xt,!1),e.removeEventListener("webglcontextcreationerror",Mt,!1),at.dispose(),ot.dispose(),Q.dispose(),$.dispose(),tt.dispose(),it.dispose(),mt.dispose(),gt.dispose(),rt.dispose(),St.dispose(),St.removeEventListener("sessionstart",Et),St.removeEventListener("sessionend",wt),Ct.stop()},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=H);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=function(t,e,n,i,r){!0!==e.isScene&&(e=H);Y.resetTextureUnits();const s=e.fog,a=i.isMeshStandardMaterial?e.environment:null,o=null===x?v.outputColorSpace:!0===x.isXRRenderTarget?x.texture.colorSpace:LinearSRGBColorSpace,c=(i.isMeshStandardMaterial?tt:$).get(i.envMap||a),l=!0===i.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize,u=!!n.attributes.tangent&&(!!i.normalMap||i.anisotropy>0),h=!!n.morphAttributes.position,d=!!n.morphAttributes.normal,p=!!n.morphAttributes.color;let f=NoToneMapping;i.toneMapped&&(null!==x&&!0!==x.isXRRenderTarget||(f=v.toneMapping));const g=n.morphAttributes.position||n.morphAttributes.normal||n.morphAttributes.color,A=void 0!==g?g.length:0,y=Q.get(i),S=m.state.lights;if(!0===W&&(!0===D||t!==T)){const e=t===T&&i.id===M;ct.setState(i,t,e)}let b=!1;i.version===y.__version?y.needsLights&&y.lightsStateVersion!==S.state.version||y.outputColorSpace!==o||r.isBatchedMesh&&!1===y.batching?b=!0:r.isBatchedMesh||!0!==y.batching?r.isBatchedMesh&&!0===y.batchingColor&&null===r.colorTexture||r.isBatchedMesh&&!1===y.batchingColor&&null!==r.colorTexture||r.isInstancedMesh&&!1===y.instancing?b=!0:r.isInstancedMesh||!0!==y.instancing?r.isSkinnedMesh&&!1===y.skinning?b=!0:r.isSkinnedMesh||!0!==y.skinning?r.isInstancedMesh&&!0===y.instancingColor&&null===r.instanceColor||r.isInstancedMesh&&!1===y.instancingColor&&null!==r.instanceColor||r.isInstancedMesh&&!0===y.instancingMorph&&null===r.morphTexture||r.isInstancedMesh&&!1===y.instancingMorph&&null!==r.morphTexture||y.envMap!==c||!0===i.fog&&y.fog!==s?b=!0:void 0===y.numClippingPlanes||y.numClippingPlanes===ct.numPlanes&&y.numIntersection===ct.numIntersection?(y.vertexAlphas!==l||y.vertexTangents!==u||y.morphTargets!==h||y.morphNormals!==d||y.morphColors!==p||y.toneMapping!==f||y.morphTargetsCount!==A)&&(b=!0):b=!0:b=!0:b=!0:b=!0:(b=!0,y.__version=i.version);let I=y.currentProgram;!0===b&&(I=Nt(i,e,r));let R=!1,E=!1,w=!1;const C=I.getUniforms(),_=y.uniforms;X.useProgram(I.program)&&(R=!0,E=!0,w=!0);i.id!==M&&(M=i.id,E=!0);if(R||T!==t){C.setValue(At,"projectionMatrix",t.projectionMatrix),C.setValue(At,"viewMatrix",t.matrixWorldInverse);const e=C.map.cameraPosition;void 0!==e&&e.setValue(At,J.setFromMatrixPosition(t.matrixWorld)),z.logarithmicDepthBuffer&&C.setValue(At,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&C.setValue(At,"isOrthographic",!0===t.isOrthographicCamera),T!==t&&(T=t,E=!0,w=!0)}if(r.isSkinnedMesh){C.setOptional(At,r,"bindMatrix"),C.setOptional(At,r,"bindMatrixInverse");const t=r.skeleton;t&&(null===t.boneTexture&&t.computeBoneTexture(),C.setValue(At,"boneTexture",t.boneTexture,Y))}r.isBatchedMesh&&(C.setOptional(At,r,"batchingTexture"),C.setValue(At,"batchingTexture",r._matricesTexture,Y),C.setOptional(At,r,"batchingIdTexture"),C.setValue(At,"batchingIdTexture",r._indirectTexture,Y),C.setOptional(At,r,"batchingColorTexture"),null!==r._colorsTexture&&C.setValue(At,"batchingColorTexture",r._colorsTexture,Y));const U=n.morphAttributes;void 0===U.position&&void 0===U.normal&&void 0===U.color||ht.update(r,n,I);(E||y.receiveShadow!==r.receiveShadow)&&(y.receiveShadow=r.receiveShadow,C.setValue(At,"receiveShadow",r.receiveShadow));i.isMeshGouraudMaterial&&null!==i.envMap&&(_.envMap.value=c,_.flipEnvMap.value=c.isCubeTexture&&!1===c.isRenderTargetTexture?-1:1);i.isMeshStandardMaterial&&null===i.envMap&&null!==e.environment&&(_.envMapIntensity.value=e.environmentIntensity);E&&(C.setValue(At,"toneMappingExposure",v.toneMappingExposure),y.needsLights&&(N=w,(F=_).ambientLightColor.needsUpdate=N,F.lightProbe.needsUpdate=N,F.directionalLights.needsUpdate=N,F.directionalLightShadows.needsUpdate=N,F.pointLights.needsUpdate=N,F.pointLightShadows.needsUpdate=N,F.spotLights.needsUpdate=N,F.spotLightShadows.needsUpdate=N,F.rectAreaLights.needsUpdate=N,F.hemisphereLights.needsUpdate=N),s&&!0===i.fog&&st.refreshFogUniforms(_,s),st.refreshMaterialUniforms(_,i,L,k,m.state.transmissionRenderTarget[t.id]),WebGLUniforms.upload(At,Vt(y),_,Y));var F,N;i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(WebGLUniforms.upload(At,Vt(y),_,Y),i.uniformsNeedUpdate=!1);i.isSpriteMaterial&&C.setValue(At,"center",r.center);if(C.setValue(At,"modelViewMatrix",r.modelViewMatrix),C.setValue(At,"normalMatrix",r.normalMatrix),C.setValue(At,"modelMatrix",r.matrixWorld),i.isShaderMaterial||i.isRawShaderMaterial){const t=i.uniformsGroups;for(let e=0,n=t.length;e<n;e++){const n=t[e];gt.update(n,I),gt.bind(n,I)}}return I}(t,e,n,i,r);X.setMaterial(i,a);let c=n.index,l=1;if(!0===i.wireframe){if(c=nt.getWireframeAttribute(n),void 0===c)return;l=2}const u=n.drawRange,h=n.attributes.position;let d=u.start*l,p=(u.start+u.count)*l;null!==s&&(d=Math.max(d,s.start*l),p=Math.min(p,(s.start+s.count)*l)),null!==c?(d=Math.max(d,0),p=Math.min(p,c.count)):null!=h&&(d=Math.max(d,0),p=Math.min(p,h.count));const f=p-d;if(f<0||f===1/0)return;let g;mt.setup(r,i,o,n,c);let A=dt;if(null!==c&&(g=et.get(c),A=pt,A.setIndex(g)),r.isMesh)!0===i.wireframe?(X.setLineWidth(i.wireframeLinewidth*j()),A.setMode(At.LINES)):A.setMode(At.TRIANGLES);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),X.setLineWidth(t*j()),r.isLineSegments?A.setMode(At.LINES):r.isLineLoop?A.setMode(At.LINE_LOOP):A.setMode(At.LINE_STRIP)}else r.isPoints?A.setMode(At.POINTS):r.isSprite&&A.setMode(At.TRIANGLES);if(r.isBatchedMesh)if(null!==r._multiDrawInstances)A.renderMultiDrawInstances(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount,r._multiDrawInstances);else if(K.get("WEBGL_multi_draw"))A.renderMultiDraw(r._multiDrawStarts,r._multiDrawCounts,r._multiDrawCount);else{const t=r._multiDrawStarts,e=r._multiDrawCounts,n=r._multiDrawCount,s=c?et.get(c).bytesPerElement:1,a=Q.get(i).currentProgram.getUniforms();for(let i=0;i<n;i++)a.setValue(At,"_gl_DrawID",i),A.render(t[i]/s,e[i])}else if(r.isInstancedMesh)A.renderInstances(d,f,r.count);else if(n.isInstancedBufferGeometry){const t=void 0!==n._maxInstanceCount?n._maxInstanceCount:1/0,e=Math.min(n.instanceCount,t);A.renderInstances(d,f,e)}else A.render(d,f)},this.compile=function(t,e,n=null){null===n&&(n=t),m=ot.get(n),m.init(e),A.push(m),n.traverseVisible(function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))}),t!==n&&t.traverseVisible(function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))}),m.setupLights();const i=new Set;return t.traverse(function(t){const e=t.material;if(e)if(Array.isArray(e))for(let r=0;r<e.length;r++){const s=e[r];It(s,n,t),i.add(s)}else It(e,n,t),i.add(e)}),A.pop(),m=null,i},this.compileAsync=function(t,e,n=null){const i=this.compile(t,e,n);return new Promise(e=>{function n(){i.forEach(function(t){Q.get(t).currentProgram.isReady()&&i.delete(t)}),0!==i.size?setTimeout(n,10):e(t)}null!==K.get("KHR_parallel_shader_compile")?n():setTimeout(n,10)})};let Rt=null;function Et(){Ct.stop()}function wt(){Ct.start()}const Ct=new WebGLAnimation;function _t(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||B.intersectsSprite(t)){i&&G.setFromMatrixPosition(t.matrixWorld).applyMatrix4(O);const e=it.update(t),r=t.material;r.visible&&f.push(t,e,r,n,G.z,null)}}else if((t.isMesh||t.isLine||t.isPoints)&&(!t.frustumCulled||B.intersectsObject(t))){const e=it.update(t),r=t.material;if(i&&(void 0!==t.boundingSphere?(null===t.boundingSphere&&t.computeBoundingSphere(),G.copy(t.boundingSphere.center)):(null===e.boundingSphere&&e.computeBoundingSphere(),G.copy(e.boundingSphere.center)),G.applyMatrix4(t.matrixWorld).applyMatrix4(O)),Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&f.push(t,e,o,n,G.z,a)}}else r.visible&&f.push(t,e,r,n,G.z,null)}const r=t.children;for(let s=0,a=r.length;s<a;s++)_t(r[s],e,n,i)}function kt(t,e,n,i){const r=t.opaque,s=t.transmissive,a=t.transparent;m.setupLightsView(n),!0===W&&ct.setGlobalState(v.clippingPlanes,n),i&&X.viewport(I.copy(i)),r.length>0&&Ut(r,e,n),s.length>0&&Ut(s,e,n),a.length>0&&Ut(a,e,n),X.buffers.depth.setTest(!0),X.buffers.depth.setMask(!0),X.buffers.color.setMask(!0),X.setPolygonOffset(!1)}function Lt(t,e,n,i){if(null!==(!0===n.isScene?n.overrideMaterial:null))return;void 0===m.state.transmissionRenderTarget[i.id]&&(m.state.transmissionRenderTarget[i.id]=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:K.has("EXT_color_buffer_half_float")||K.has("EXT_color_buffer_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ColorManagement.workingColorSpace}));const s=m.state.transmissionRenderTarget[i.id],a=i.viewport||I;s.setSize(a.z,a.w);const o=v.getRenderTarget();v.setRenderTarget(s),v.getClearColor(w),C=v.getClearAlpha(),C<1&&v.setClearColor(16777215,.5),q?ut.render(n):v.clear();const c=v.toneMapping;v.toneMapping=NoToneMapping;const l=i.viewport;if(void 0!==i.viewport&&(i.viewport=void 0),m.setupLightsView(i),!0===W&&ct.setGlobalState(v.clippingPlanes,i),Ut(t,n,i),Y.updateMultisampleRenderTarget(s),Y.updateRenderTargetMipmap(s),!1===K.has("WEBGL_multisampled_render_to_texture")){let t=!1;for(let r=0,s=e.length;r<s;r++){const s=e[r],a=s.object,o=s.geometry,c=s.material,l=s.group;if(c.side===DoubleSide&&a.layers.test(i.layers)){const e=c.side;c.side=BackSide,c.needsUpdate=!0,Ft(a,n,i,o,c,l),c.side=e,c.needsUpdate=!0,t=!0}}!0===t&&(Y.updateMultisampleRenderTarget(s),Y.updateRenderTargetMipmap(s))}v.setRenderTarget(o),v.setClearColor(w,C),void 0!==l&&(i.viewport=l),v.toneMapping=c}function Ut(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,c=null===i?s.material:i,l=s.group;a.layers.test(n.layers)&&Ft(a,e,n,o,c,l)}}function Ft(t,e,n,i,r,s){t.onBeforeRender(v,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),!0===r.transparent&&r.side===DoubleSide&&!1===r.forceSinglePass?(r.side=BackSide,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=FrontSide,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=DoubleSide):v.renderBufferDirect(n,e,i,r,t,s),t.onAfterRender(v,e,n,i,r,s)}function Nt(t,e,n){!0!==e.isScene&&(e=H);const i=Q.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=rt.getParameters(t,r.state,s,e,n),c=rt.getProgramCacheKey(o);let l=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?tt:$).get(t.envMap||i.environment),i.envMapRotation=null!==i.environment&&null===t.envMap?e.environmentRotation:t.envMapRotation,void 0===l&&(t.addEventListener("dispose",Tt),l=new Map,i.programs=l);let u=l.get(c);if(void 0!==u){if(i.currentProgram===u&&i.lightsStateVersion===a)return Pt(t,o),u}else o.uniforms=rt.getUniforms(t),t.onBeforeCompile(o,v),u=rt.acquireProgram(o,c),l.set(c,u),i.uniforms=o.uniforms;const h=i.uniforms;return(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(h.clippingPlanes=ct.uniform),Pt(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(h.ambientLightColor.value=r.state.ambient,h.lightProbe.value=r.state.probe,h.directionalLights.value=r.state.directional,h.directionalLightShadows.value=r.state.directionalShadow,h.spotLights.value=r.state.spot,h.spotLightShadows.value=r.state.spotShadow,h.rectAreaLights.value=r.state.rectArea,h.ltc_1.value=r.state.rectAreaLTC1,h.ltc_2.value=r.state.rectAreaLTC2,h.pointLights.value=r.state.point,h.pointLightShadows.value=r.state.pointShadow,h.hemisphereLights.value=r.state.hemi,h.directionalShadowMap.value=r.state.directionalShadowMap,h.directionalShadowMatrix.value=r.state.directionalShadowMatrix,h.spotShadowMap.value=r.state.spotShadowMap,h.spotLightMatrix.value=r.state.spotLightMatrix,h.spotLightMap.value=r.state.spotLightMap,h.pointShadowMap.value=r.state.pointShadowMap,h.pointShadowMatrix.value=r.state.pointShadowMatrix),i.currentProgram=u,i.uniformsList=null,u}function Vt(t){if(null===t.uniformsList){const e=t.currentProgram.getUniforms();t.uniformsList=WebGLUniforms.seqWithValue(e.seq,t.uniforms)}return t.uniformsList}function Pt(t,e){const n=Q.get(t);n.outputColorSpace=e.outputColorSpace,n.batching=e.batching,n.batchingColor=e.batchingColor,n.instancing=e.instancing,n.instancingColor=e.instancingColor,n.instancingMorph=e.instancingMorph,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphColors=e.morphColors,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents,n.toneMapping=e.toneMapping}Ct.setAnimationLoop(function(t){Rt&&Rt(t)}),"undefined"!=typeof self&&Ct.setContext(self),this.setAnimationLoop=function(t){Rt=t,St.setAnimationLoop(t),null===t?Ct.stop():Ct.start()},St.addEventListener("sessionstart",Et),St.addEventListener("sessionend",wt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===y)return;if(!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===e.parent&&!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),!0===St.enabled&&!0===St.isPresenting&&(!0===St.cameraAutoUpdate&&St.updateCamera(e),e=St.getCamera()),!0===t.isScene&&t.onBeforeRender(v,t,e,x),m=ot.get(t,A.length),m.init(e),A.push(m),O.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),B.setFromProjectionMatrix(O),D=this.localClippingEnabled,W=ct.init(this.clippingPlanes,D),f=at.get(t,g.length),f.init(),g.push(f),!0===St.enabled&&!0===St.isPresenting){const t=v.xr.getDepthSensingMesh();null!==t&&_t(t,e,-1/0,v.sortObjects)}_t(t,e,0,v.sortObjects),f.finish(),!0===v.sortObjects&&f.sort(U,F),q=!1===St.enabled||!1===St.isPresenting||!1===St.hasDepthSensing(),q&&ut.addToRenderList(f,t),this.info.render.frame++,!0===W&&ct.beginShadows();const n=m.state.shadowsArray;lt.render(n,t,e),!0===W&&ct.endShadows(),!0===this.info.autoReset&&this.info.reset();const i=f.opaque,r=f.transmissive;if(m.setupLights(),e.isArrayCamera){const n=e.cameras;if(r.length>0)for(let e=0,s=n.length;e<s;e++){Lt(i,r,t,n[e])}q&&ut.render(t);for(let e=0,i=n.length;e<i;e++){const i=n[e];kt(f,t,i,i.viewport)}}else r.length>0&&Lt(i,r,t,e),q&&ut.render(t),kt(f,t,e);null!==x&&(Y.updateMultisampleRenderTarget(x),Y.updateRenderTargetMipmap(x)),!0===t.isScene&&t.onAfterRender(v,t,e),mt.resetDefaultState(),M=-1,T=null,A.pop(),A.length>0?(m=A[A.length-1],!0===W&&ct.setGlobalState(v.clippingPlanes,m.state.camera)):m=null,g.pop(),f=g.length>0?g[g.length-1]:null},this.getActiveCubeFace=function(){return S},this.getActiveMipmapLevel=function(){return b},this.getRenderTarget=function(){return x},this.setRenderTargetTextures=function(t,e,n){Q.get(t.texture).__webglTexture=e,Q.get(t.depthTexture).__webglTexture=n;const i=Q.get(t);i.__hasExternalTextures=!0,i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===K.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(t,e){const n=Q.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){x=t,S=e,b=n;let i=!0,r=null,s=!1,a=!1;if(t){const o=Q.get(t);void 0!==o.__useDefaultFramebuffer?(X.bindFramebuffer(At.FRAMEBUFFER,null),i=!1):void 0===o.__webglFramebuffer?Y.setupRenderTarget(t):o.__hasExternalTextures&&Y.rebindTextures(t,Q.get(t.texture).__webglTexture,Q.get(t.depthTexture).__webglTexture);const c=t.texture;(c.isData3DTexture||c.isDataArrayTexture||c.isCompressedArrayTexture)&&(a=!0);const l=Q.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=Array.isArray(l[e])?l[e][n]:l[e],s=!0):r=t.samples>0&&!1===Y.useMultisampledRTT(t)?Q.get(t).__webglMultisampledFramebuffer:Array.isArray(l)?l[n]:l,I.copy(t.viewport),R.copy(t.scissor),E=t.scissorTest}else I.copy(N).multiplyScalar(L).floor(),R.copy(V).multiplyScalar(L).floor(),E=P;if(X.bindFramebuffer(At.FRAMEBUFFER,r)&&i&&X.drawBuffers(t,r),X.viewport(I),X.scissor(R),X.setScissorTest(E),s){const i=Q.get(t.texture);At.framebufferTexture2D(At.FRAMEBUFFER,At.COLOR_ATTACHMENT0,At.TEXTURE_CUBE_MAP_POSITIVE_X+e,i.__webglTexture,n)}else if(a){const i=Q.get(t.texture),r=e||0;At.framebufferTextureLayer(At.FRAMEBUFFER,At.COLOR_ATTACHMENT0,i.__webglTexture,n||0,r)}M=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){X.bindFramebuffer(At.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,c=a.type;if(!z.textureFormatReadable(o))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!z.textureTypeReadable(c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&At.readPixels(e,n,i,r,ft.convert(o),ft.convert(c),s)}finally{const t=null!==x?Q.get(x).__webglFramebuffer:null;X.bindFramebuffer(At.FRAMEBUFFER,t)}}},this.readRenderTargetPixelsAsync=async function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=Q.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){X.bindFramebuffer(At.FRAMEBUFFER,o);try{const a=t.texture,o=a.format,c=a.type;if(!z.textureFormatReadable(o))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!z.textureTypeReadable(c))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r){const t=At.createBuffer();At.bindBuffer(At.PIXEL_PACK_BUFFER,t),At.bufferData(At.PIXEL_PACK_BUFFER,s.byteLength,At.STREAM_READ),At.readPixels(e,n,i,r,ft.convert(o),ft.convert(c),0),At.flush();const a=At.fenceSync(At.SYNC_GPU_COMMANDS_COMPLETE,0);await probeAsync(At,a,4);try{At.bindBuffer(At.PIXEL_PACK_BUFFER,t),At.getBufferSubData(At.PIXEL_PACK_BUFFER,0,s)}finally{At.deleteBuffer(t),At.deleteSync(a)}return s}}finally{const t=null!==x?Q.get(x).__webglFramebuffer:null;X.bindFramebuffer(At.FRAMEBUFFER,t)}}},this.copyFramebufferToTexture=function(t,e=null,n=0){!0!==t.isTexture&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),e=arguments[0]||null,t=arguments[1]);const i=Math.pow(2,-n),r=Math.floor(t.image.width*i),s=Math.floor(t.image.height*i),a=null!==e?e.x:0,o=null!==e?e.y:0;Y.setTexture2D(t,0),At.copyTexSubImage2D(At.TEXTURE_2D,n,0,0,a,o,r,s),X.unbindTexture()},this.copyTextureToTexture=function(t,e,n=null,i=null,r=0){let s,a,o,c,l,u;!0!==t.isTexture&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),i=arguments[0]||null,t=arguments[1],e=arguments[2],r=arguments[3]||0,n=null),null!==n?(s=n.max.x-n.min.x,a=n.max.y-n.min.y,o=n.min.x,c=n.min.y):(s=t.image.width,a=t.image.height,o=0,c=0),null!==i?(l=i.x,u=i.y):(l=0,u=0);const h=ft.convert(e.format),d=ft.convert(e.type);Y.setTexture2D(e,0),At.pixelStorei(At.UNPACK_FLIP_Y_WEBGL,e.flipY),At.pixelStorei(At.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),At.pixelStorei(At.UNPACK_ALIGNMENT,e.unpackAlignment);const p=At.getParameter(At.UNPACK_ROW_LENGTH),f=At.getParameter(At.UNPACK_IMAGE_HEIGHT),m=At.getParameter(At.UNPACK_SKIP_PIXELS),g=At.getParameter(At.UNPACK_SKIP_ROWS),A=At.getParameter(At.UNPACK_SKIP_IMAGES),v=t.isCompressedTexture?t.mipmaps[r]:t.image;At.pixelStorei(At.UNPACK_ROW_LENGTH,v.width),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,v.height),At.pixelStorei(At.UNPACK_SKIP_PIXELS,o),At.pixelStorei(At.UNPACK_SKIP_ROWS,c),t.isDataTexture?At.texSubImage2D(At.TEXTURE_2D,r,l,u,s,a,h,d,v.data):t.isCompressedTexture?At.compressedTexSubImage2D(At.TEXTURE_2D,r,l,u,v.width,v.height,h,v.data):At.texSubImage2D(At.TEXTURE_2D,r,l,u,s,a,h,d,v),At.pixelStorei(At.UNPACK_ROW_LENGTH,p),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,f),At.pixelStorei(At.UNPACK_SKIP_PIXELS,m),At.pixelStorei(At.UNPACK_SKIP_ROWS,g),At.pixelStorei(At.UNPACK_SKIP_IMAGES,A),0===r&&e.generateMipmaps&&At.generateMipmap(At.TEXTURE_2D),X.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n=null,i=null,r=0){let s,a,o,c,l,u,h,d,p;!0!==t.isTexture&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),n=arguments[0]||null,i=arguments[1]||null,t=arguments[2],e=arguments[3],r=arguments[4]||0);const f=t.isCompressedTexture?t.mipmaps[r]:t.image;null!==n?(s=n.max.x-n.min.x,a=n.max.y-n.min.y,o=n.max.z-n.min.z,c=n.min.x,l=n.min.y,u=n.min.z):(s=f.width,a=f.height,o=f.depth,c=0,l=0,u=0),null!==i?(h=i.x,d=i.y,p=i.z):(h=0,d=0,p=0);const m=ft.convert(e.format),g=ft.convert(e.type);let A;if(e.isData3DTexture)Y.setTexture3D(e,0),A=At.TEXTURE_3D;else{if(!e.isDataArrayTexture&&!e.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Y.setTexture2DArray(e,0),A=At.TEXTURE_2D_ARRAY}At.pixelStorei(At.UNPACK_FLIP_Y_WEBGL,e.flipY),At.pixelStorei(At.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),At.pixelStorei(At.UNPACK_ALIGNMENT,e.unpackAlignment);const v=At.getParameter(At.UNPACK_ROW_LENGTH),y=At.getParameter(At.UNPACK_IMAGE_HEIGHT),S=At.getParameter(At.UNPACK_SKIP_PIXELS),b=At.getParameter(At.UNPACK_SKIP_ROWS),x=At.getParameter(At.UNPACK_SKIP_IMAGES);At.pixelStorei(At.UNPACK_ROW_LENGTH,f.width),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,f.height),At.pixelStorei(At.UNPACK_SKIP_PIXELS,c),At.pixelStorei(At.UNPACK_SKIP_ROWS,l),At.pixelStorei(At.UNPACK_SKIP_IMAGES,u),t.isDataTexture||t.isData3DTexture?At.texSubImage3D(A,r,h,d,p,s,a,o,m,g,f.data):e.isCompressedArrayTexture?At.compressedTexSubImage3D(A,r,h,d,p,s,a,o,m,f.data):At.texSubImage3D(A,r,h,d,p,s,a,o,m,g,f),At.pixelStorei(At.UNPACK_ROW_LENGTH,v),At.pixelStorei(At.UNPACK_IMAGE_HEIGHT,y),At.pixelStorei(At.UNPACK_SKIP_PIXELS,S),At.pixelStorei(At.UNPACK_SKIP_ROWS,b),At.pixelStorei(At.UNPACK_SKIP_IMAGES,x),0===r&&e.generateMipmaps&&At.generateMipmap(A),X.unbindTexture()},this.initRenderTarget=function(t){void 0===Q.get(t).__webglFramebuffer&&Y.setupRenderTarget(t)},this.initTexture=function(t){t.isCubeTexture?Y.setTextureCube(t,0):t.isData3DTexture?Y.setTexture3D(t,0):t.isDataArrayTexture||t.isCompressedArrayTexture?Y.setTexture2DArray(t,0):Y.setTexture2D(t,0),X.unbindTexture()},this.resetState=function(){S=0,b=0,x=null,X.reset(),mt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return WebGLCoordinateSystem}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===DisplayP3ColorSpace?"display-p3":"srgb",e.unpackColorSpace=ColorManagement.workingColorSpace===LinearDisplayP3ColorSpace?"display-p3":"srgb"}}class FogExp2{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color(t),this.density=e}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Fog{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Color(t),this.near=e,this.far=n}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class InterleavedBuffer{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=StaticDrawUsage,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return warnOnce("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const _vector$6=new Vector3;class InterleavedBufferAttribute{constructor(t,e,n,i=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.applyMatrix4(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.applyNormalMatrix(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)_vector$6.fromBufferAttribute(this,e),_vector$6.transformDirection(t),this.setXYZ(e,_vector$6.x,_vector$6.y,_vector$6.z);return this}getComponent(t,e){let n=this.array[t*this.data.stride+this.offset+e];return this.normalized&&(n=denormalize(n,this.array)),n}setComponent(t,e,n){return this.normalized&&(n=normalize(n,this.array)),this.data.array[t*this.data.stride+this.offset+e]=n,this}setX(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.normalized&&(e=normalize(e,this.array)),this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];return this.normalized&&(e=denormalize(e,this.array)),e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];return this.normalized&&(e=denormalize(e,this.array)),e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];return this.normalized&&(e=denormalize(e,this.array)),e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];return this.normalized&&(e=denormalize(e,this.array)),e}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.normalized&&(e=normalize(e,this.array),n=normalize(n,this.array),i=normalize(i,this.array),r=normalize(r,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new BufferAttribute(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new InterleavedBufferAttribute(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class SpriteMaterial extends Material{constructor(t){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}let _geometry$1;const _intersectPoint=new Vector3,_worldScale=new Vector3,_mvPosition=new Vector3,_alignedPosition=new Vector2,_rotatedPosition=new Vector2,_viewWorldMatrix=new Matrix4,_vA=new Vector3,_vB=new Vector3,_vC=new Vector3,_uvA=new Vector2,_uvB=new Vector2,_uvC=new Vector2;class Sprite extends Object3D{constructor(t=new SpriteMaterial){if(super(),this.isSprite=!0,this.type="Sprite",void 0===_geometry$1){_geometry$1=new BufferGeometry;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new InterleavedBuffer(t,5);_geometry$1.setIndex([0,1,2,0,2,3]),_geometry$1.setAttribute("position",new InterleavedBufferAttribute(e,3,0,!1)),_geometry$1.setAttribute("uv",new InterleavedBufferAttribute(e,2,3,!1))}this.geometry=_geometry$1,this.material=t,this.center=new Vector2(.5,.5)}raycast(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),_worldScale.setFromMatrixScale(this.matrixWorld),_viewWorldMatrix.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),_mvPosition.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&_worldScale.multiplyScalar(-_mvPosition.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;transformVertex(_vA.set(-.5,-.5,0),_mvPosition,s,_worldScale,i,r),transformVertex(_vB.set(.5,-.5,0),_mvPosition,s,_worldScale,i,r),transformVertex(_vC.set(.5,.5,0),_mvPosition,s,_worldScale,i,r),_uvA.set(0,0),_uvB.set(1,0),_uvC.set(1,1);let a=t.ray.intersectTriangle(_vA,_vB,_vC,!1,_intersectPoint);if(null===a&&(transformVertex(_vB.set(-.5,.5,0),_mvPosition,s,_worldScale,i,r),_uvB.set(0,1),a=t.ray.intersectTriangle(_vA,_vC,_vB,!1,_intersectPoint),null===a))return;const o=t.ray.origin.distanceTo(_intersectPoint);o<t.near||o>t.far||e.push({distance:o,point:_intersectPoint.clone(),uv:Triangle.getInterpolation(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function transformVertex(t,e,n,i,r,s){_alignedPosition.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(_rotatedPosition.x=s*_alignedPosition.x-r*_alignedPosition.y,_rotatedPosition.y=r*_alignedPosition.x+s*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),t.copy(e),t.x+=_rotatedPosition.x,t.y+=_rotatedPosition.y,t.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let n=0,i=e.length;n<i;n++){const t=e[n];this.addLevel(t.object.clone(),t.distance,t.hysteresis)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0,n=0){e=Math.abs(e);const i=this.levels;let r;for(r=0;r<i.length&&!(e<i[r].distance);r++);return i.splice(r,0,{distance:e,hysteresis:n,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i;n++){let i=e[n].distance;if(e[n].object.visible&&(i-=i*e[n].hysteresis),t<i)break}return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){_v1$2.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){_v1$2.setFromMatrixPosition(t.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const n=_v1$2.distanceTo(_v2$1)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r;i++){let t=e[i].distance;if(e[i].object.visible&&(t-=t*e[i].hysteresis),!(n>=t))break;e[i-1].object.visible=!1,e[i].object.visible=!0}for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let i=0,r=n.length;i<r;i++){const t=n[i];e.object.levels.push({object:t.object.uuid,distance:t.distance,hysteresis:t.hysteresis})}return e}}const _basePosition=new Vector3,_skinIndex=new Vector4,_skinWeight=new Vector4,_vector3=new Vector3,_matrix4=new Matrix4,_vertex=new Vector3,_sphere$4=new Sphere,_inverseMatrix$2=new Matrix4,_ray$2=new Ray;class SkinnedMesh extends Mesh{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=AttachedBindMode,this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;null===this.boundingBox&&(this.boundingBox=new Box3),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;n<e.count;n++)this.getVertexPosition(n,_vertex),this.boundingBox.expandByPoint(_vertex)}computeBoundingSphere(){const t=this.geometry;null===this.boundingSphere&&(this.boundingSphere=new Sphere),this.boundingSphere.makeEmpty();const e=t.getAttribute("position");for(let n=0;n<e.count;n++)this.getVertexPosition(n,_vertex),this.boundingSphere.expandByPoint(_vertex)}copy(t,e){return super.copy(t,e),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this}raycast(t,e){const n=this.material,i=this.matrixWorld;void 0!==n&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$4.copy(this.boundingSphere),_sphere$4.applyMatrix4(i),!1!==t.ray.intersectsSphere(_sphere$4)&&(_inverseMatrix$2.copy(i).invert(),_ray$2.copy(t.ray).applyMatrix4(_inverseMatrix$2),null!==this.boundingBox&&!1===_ray$2.intersectsBox(this.boundingBox)||this._computeIntersections(t,e,_ray$2)))}getVertexPosition(t,e){return super.getVertexPosition(t,e),this.applyBoneTransform(t,e),e}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Vector4,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.fromBufferAttribute(e,n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.bindMode===AttachedBindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===DetachedBindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(t,e){const n=this.skeleton,i=this.geometry;_skinIndex.fromBufferAttribute(i.attributes.skinIndex,t),_skinWeight.fromBufferAttribute(i.attributes.skinWeight,t),_basePosition.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let r=0;r<4;r++){const t=_skinWeight.getComponent(r);if(0!==t){const i=_skinIndex.getComponent(r);_matrix4.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]),e.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4),t)}}return e.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super(),this.isBone=!0,this.type="Bone"}}class DataTexture extends Texture{constructor(t=null,e=1,n=1,i,r,s,a,o,c=NearestFilter,l=NearestFilter,u,h){super(null,s,a,o,c,l,i,r,u,h),this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const _offsetMatrix=new Matrix4,_identityMatrix$1=new Matrix4;class Skeleton{constructor(t=[],e=[]){this.uuid=generateUUID(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new Matrix4;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let r=0,s=t.length;r<s;r++){const i=t[r]?t[r].matrixWorld:_identityMatrix$1;_offsetMatrix.multiplyMatrices(i,e[r]),_offsetMatrix.toArray(n,16*r)}null!==i&&(i.needsUpdate=!0)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=4*Math.ceil(t/4),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new DataTexture(e,t,t,RGBAFormat,FloatType);return n.needsUpdate=!0,this.boneMatrices=e,this.boneTexture=n,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(console.warn("THREE.Skeleton: No bone found with UUID:",i),r=new Bone),this.bones.push(r),this.boneInverses.push((new Matrix4).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}class InstancedBufferAttribute extends BufferAttribute{constructor(t,e,n,i=1){super(t,e,n),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}const _instanceLocalMatrix=new Matrix4,_instanceWorldMatrix=new Matrix4,_instanceIntersects=[],_box3=new Box3,_identity=new Matrix4,_mesh$1=new Mesh,_sphere$3=new Sphere;class InstancedMesh extends Mesh{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(16*n),16),this.instanceColor=null,this.morphTexture=null,this.count=n,this.boundingBox=null,this.boundingSphere=null;for(let i=0;i<n;i++)this.setMatrixAt(i,_identity)}computeBoundingBox(){const t=this.geometry,e=this.count;null===this.boundingBox&&(this.boundingBox=new Box3),null===t.boundingBox&&t.computeBoundingBox(),this.boundingBox.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,_instanceLocalMatrix),_box3.copy(t.boundingBox).applyMatrix4(_instanceLocalMatrix),this.boundingBox.union(_box3)}computeBoundingSphere(){const t=this.geometry,e=this.count;null===this.boundingSphere&&(this.boundingSphere=new Sphere),null===t.boundingSphere&&t.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,_instanceLocalMatrix),_sphere$3.copy(t.boundingSphere).applyMatrix4(_instanceLocalMatrix),this.boundingSphere.union(_sphere$3)}copy(t,e){return super.copy(t,e),this.instanceMatrix.copy(t.instanceMatrix),null!==t.morphTexture&&(this.morphTexture=t.morphTexture.clone()),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}getMorphAt(t,e){const n=e.morphTargetInfluences,i=this.morphTexture.source.data.data,r=t*(n.length+1)+1;for(let s=0;s<n.length;s++)n[s]=i[r+s]}raycast(t,e){const n=this.matrixWorld,i=this.count;if(_mesh$1.geometry=this.geometry,_mesh$1.material=this.material,void 0!==_mesh$1.material&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$3.copy(this.boundingSphere),_sphere$3.applyMatrix4(n),!1!==t.ray.intersectsSphere(_sphere$3)))for(let r=0;r<i;r++){this.getMatrixAt(r,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(n,_instanceLocalMatrix),_mesh$1.matrixWorld=_instanceWorldMatrix,_mesh$1.raycast(t,_instanceIntersects);for(let t=0,n=_instanceIntersects.length;t<n;t++){const n=_instanceIntersects[t];n.instanceId=r,n.object=this,e.push(n)}_instanceIntersects.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(3*this.instanceMatrix.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}setMorphAt(t,e){const n=e.morphTargetInfluences,i=n.length+1;null===this.morphTexture&&(this.morphTexture=new DataTexture(new Float32Array(i*this.count),i,this.count,RedFormat,FloatType));const r=this.morphTexture.source.data.data;let s=0;for(let c=0;c<n.length;c++)s+=n[c];const a=this.geometry.morphTargetsRelative?1:1-s,o=i*t;r[o]=a,r.set(n,o+1)}updateMorphTargets(){}dispose(){return this.dispatchEvent({type:"dispose"}),null!==this.morphTexture&&(this.morphTexture.dispose(),this.morphTexture=null),this}}function sortOpaque(t,e){return t.z-e.z}function sortTransparent(t,e){return e.z-t.z}class MultiDrawRenderList{constructor(){this.index=0,this.pool=[],this.list=[]}push(t,e,n){const i=this.pool,r=this.list;this.index>=i.length&&i.push({start:-1,count:-1,z:-1,index:-1});const s=i[this.index];r.push(s),this.index++,s.start=t.start,s.count=t.count,s.z=e,s.index=n}reset(){this.list.length=0,this.index=0}}const _matrix$1=new Matrix4,_invMatrixWorld=new Matrix4,_identityMatrix$2=new Matrix4,_whiteColor=new Color(1,1,1),_projScreenMatrix$2=new Matrix4,_frustum=new Frustum,_box$1$1=new Box3,_sphere$2=new Sphere,_vector$5=new Vector3,_forward=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let s=0;s<r;s++)for(let r=0;r<i;r++)e.setComponent(s+n,r,t.getComponent(s,r))}else e.array.set(t.array,n*i);e.needsUpdate=!0}class BatchedMesh extends Mesh{get maxInstanceCount(){return this._maxInstanceCount}constructor(t,e,n=2*e,i){super(new BufferGeometry,i),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._drawInfo=[],this._drawRanges=[],this._reservedRanges=[],this._bounds=[],this._maxInstanceCount=t,this._maxVertexCount=e,this._maxIndexCount=n,this._geometryInitialized=!1,this._geometryCount=0,this._multiDrawCounts=new Int32Array(t),this._multiDrawStarts=new Int32Array(t),this._multiDrawCount=0,this._multiDrawInstances=null,this._visibilityChanged=!0,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}_initMatricesTexture(){let t=Math.sqrt(4*this._maxInstanceCount);t=4*Math.ceil(t/4),t=Math.max(t,4);const e=new Float32Array(t*t*4),n=new DataTexture(e,t,t,RGBAFormat,FloatType);this._matricesTexture=n}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);const e=new Uint32Array(t*t),n=new DataTexture(e,t,t,RedIntegerFormat,UnsignedIntType);this._indirectTexture=n}_initColorsTexture(){let t=Math.sqrt(this._maxIndexCount);t=Math.ceil(t);const e=new Float32Array(t*t*4).fill(1),n=new DataTexture(e,t,t,RGBAFormat,FloatType);n.colorSpace=ColorManagement.workingColorSpace,this._colorsTexture=n}_initializeGeometry(t){const e=this.geometry,n=this._maxVertexCount,i=this._maxIndexCount;if(!1===this._geometryInitialized){for(const i in t.attributes){const r=t.getAttribute(i),{array:s,itemSize:a,normalized:o}=r,c=new s.constructor(n*a),l=new BufferAttribute(c,a,o);e.setAttribute(i,l)}if(null!==t.getIndex()){const t=n>65535?new Uint32Array(i):new Uint16Array(i);e.setIndex(new BufferAttribute(t,1))}this._geometryInitialized=!0}}_validateGeometry(t){const e=this.geometry;if(Boolean(t.getIndex())!==Boolean(e.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const n in e.attributes){if(!t.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const i=t.getAttribute(n),r=e.getAttribute(n);if(i.itemSize!==r.itemSize||i.normalized!==r.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this._geometryCount,e=this.boundingBox,n=this._drawInfo;e.makeEmpty();for(let i=0;i<t;i++){if(!1===n[i].active)continue;const t=n[i].geometryIndex;this.getMatrixAt(i,_matrix$1),this.getBoundingBoxAt(t,_box$1$1).applyMatrix4(_matrix$1),e.union(_box$1$1)}}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const t=this.boundingSphere,e=this._drawInfo;t.makeEmpty();for(let n=0,i=e.length;n<i;n++){if(!1===e[n].active)continue;const i=e[n].geometryIndex;this.getMatrixAt(n,_matrix$1),this.getBoundingSphereAt(i,_sphere$2).applyMatrix4(_matrix$1),t.union(_sphere$2)}}addInstance(t){if(this._drawInfo.length>=this._maxInstanceCount)throw new Error("BatchedMesh: Maximum item count reached.");this._drawInfo.push({visible:!0,active:!0,geometryIndex:t});const e=this._drawInfo.length-1,n=this._matricesTexture,i=n.image.data;_identityMatrix$2.toArray(i,16*e),n.needsUpdate=!0;const r=this._colorsTexture;return r&&(_whiteColor.toArray(r.image.data,4*e),r.needsUpdate=!0),e}addGeometry(t,e=-1,n=-1){if(this._initializeGeometry(t),this._validateGeometry(t),this._drawInfo.length>=this._maxInstanceCount)throw new Error("BatchedMesh: Maximum item count reached.");const i={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let r=null;const s=this._reservedRanges,a=this._drawRanges,o=this._bounds;0!==this._geometryCount&&(r=s[s.length-1]),i.vertexCount=-1===e?t.getAttribute("position").count:e,i.vertexStart=null===r?0:r.vertexStart+r.vertexCount;const c=t.getIndex(),l=null!==c;if(l&&(i.indexCount=-1===n?c.count:n,i.indexStart=null===r?0:r.indexStart+r.indexCount),-1!==i.indexStart&&i.indexStart+i.indexCount>this._maxIndexCount||i.vertexStart+i.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const u=this._geometryCount;return this._geometryCount++,s.push(i),a.push({start:l?i.indexStart:i.vertexStart,count:-1}),o.push({boxInitialized:!1,box:new Box3,sphereInitialized:!1,sphere:new Sphere}),this.setGeometryAt(u,t),u}setGeometryAt(t,e){if(t>=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(e);const n=this.geometry,i=null!==n.getIndex(),r=n.getIndex(),s=e.getIndex(),a=this._reservedRanges[t];if(i&&s.count>a.indexCount||e.attributes.position.count>a.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const o=a.vertexStart,c=a.vertexCount;for(const d in n.attributes){const t=e.getAttribute(d),i=n.getAttribute(d);copyAttributeData(t,i,o);const r=t.itemSize;for(let e=t.count,n=c;e<n;e++){const t=o+e;for(let e=0;e<r;e++)i.setComponent(t,e,0)}i.needsUpdate=!0,i.addUpdateRange(o*r,c*r)}if(i){const t=a.indexStart;for(let e=0;e<s.count;e++)r.setX(t+e,o+s.getX(e));for(let e=s.count,n=a.indexCount;e<n;e++)r.setX(t+e,o);r.needsUpdate=!0,r.addUpdateRange(t,a.indexCount)}const l=this._bounds[t];null!==e.boundingBox?(l.box.copy(e.boundingBox),l.boxInitialized=!0):l.boxInitialized=!1,null!==e.boundingSphere?(l.sphere.copy(e.boundingSphere),l.sphereInitialized=!0):l.sphereInitialized=!1;const u=this._drawRanges[t],h=e.getAttribute("position");return u.count=i?s.count:h.count,this._visibilityChanged=!0,t}getBoundingBoxAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t],i=n.box,r=this.geometry;if(!1===n.boxInitialized){i.makeEmpty();const e=r.index,s=r.attributes.position,a=this._drawRanges[t];for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n)),i.expandByPoint(_vector$5.fromBufferAttribute(s,n))}n.boxInitialized=!0}return e.copy(i),e}getBoundingSphereAt(t,e){if(t>=this._geometryCount)return null;const n=this._bounds[t],i=n.sphere,r=this.geometry;if(!1===n.sphereInitialized){i.makeEmpty(),this.getBoundingBoxAt(t,_box$1$1),_box$1$1.getCenter(i.center);const e=r.index,s=r.attributes.position,a=this._drawRanges[t];let o=0;for(let t=a.start,n=a.start+a.count;t<n;t++){let n=t;e&&(n=e.getX(n)),_vector$5.fromBufferAttribute(s,n),o=Math.max(o,i.center.distanceToSquared(_vector$5))}i.radius=Math.sqrt(o),n.sphereInitialized=!0}return e.copy(i),e}setMatrixAt(t,e){const n=this._drawInfo,i=this._matricesTexture,r=this._matricesTexture.image.data;return t>=n.length||!1===n[t].active||(e.toArray(r,16*t),i.needsUpdate=!0),this}getMatrixAt(t,e){const n=this._drawInfo,i=this._matricesTexture.image.data;return t>=n.length||!1===n[t].active?null:e.fromArray(i,16*t)}setColorAt(t,e){null===this._colorsTexture&&this._initColorsTexture();const n=this._colorsTexture,i=this._colorsTexture.image.data,r=this._drawInfo;return t>=r.length||!1===r[t].active||(e.toArray(i,4*t),n.needsUpdate=!0),this}getColorAt(t,e){const n=this._colorsTexture.image.data,i=this._drawInfo;return t>=i.length||!1===i[t].active?null:e.fromArray(n,4*t)}setVisibleAt(t,e){const n=this._drawInfo;return t>=n.length||!1===n[t].active||n[t].visible===e||(n[t].visible=e,this._visibilityChanged=!0),this}getVisibleAt(t){const e=this._drawInfo;return!(t>=e.length||!1===e[t].active)&&e[t].visible}raycast(t,e){const n=this._drawInfo,i=this._drawRanges,r=this.matrixWorld,s=this.geometry;_mesh.material=this.material,_mesh.geometry.index=s.index,_mesh.geometry.attributes=s.attributes,null===_mesh.geometry.boundingBox&&(_mesh.geometry.boundingBox=new Box3),null===_mesh.geometry.boundingSphere&&(_mesh.geometry.boundingSphere=new Sphere);for(let a=0,o=n.length;a<o;a++){if(!n[a].visible||!n[a].active)continue;const s=n[a].geometryIndex,o=i[s];_mesh.geometry.setDrawRange(o.start,o.count),this.getMatrixAt(a,_mesh.matrixWorld).premultiply(r),this.getBoundingBoxAt(s,_mesh.geometry.boundingBox),this.getBoundingSphereAt(s,_mesh.geometry.boundingSphere),_mesh.raycast(t,_batchIntersects);for(let t=0,n=_batchIntersects.length;t<n;t++){const n=_batchIntersects[t];n.object=this,n.batchId=a,e.push(n)}_batchIntersects.length=0}_mesh.material=null,_mesh.geometry.index=null,_mesh.geometry.attributes={},_mesh.geometry.setDrawRange(0,1/0)}copy(t){return super.copy(t),this.geometry=t.geometry.clone(),this.perObjectFrustumCulled=t.perObjectFrustumCulled,this.sortObjects=t.sortObjects,this.boundingBox=null!==t.boundingBox?t.boundingBox.clone():null,this.boundingSphere=null!==t.boundingSphere?t.boundingSphere.clone():null,this._drawRanges=t._drawRanges.map(t=>({...t})),this._reservedRanges=t._reservedRanges.map(t=>({...t})),this._drawInfo=t._drawInfo.map(t=>({...t})),this._bounds=t._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxInstanceCount=t._maxInstanceCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._geometryCount=t._geometryCount,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),null!==this._colorsTexture&&(this._colorsTexture=t._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(t,e,n,i,r){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex(),a=null===s?1:s.array.BYTES_PER_ELEMENT,o=this._drawInfo,c=this._multiDrawStarts,l=this._multiDrawCounts,u=this._drawRanges,h=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;h&&(_projScreenMatrix$2.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_projScreenMatrix$2,t.coordinateSystem));let f=0;if(this.sortObjects){_invMatrixWorld.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(n.matrixWorld).applyMatrix4(_invMatrixWorld),_forward.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(_invMatrixWorld);for(let n=0,i=o.length;n<i;n++)if(o[n].visible&&o[n].active){const t=o[n].geometryIndex;this.getMatrixAt(n,_matrix$1),this.getBoundingSphereAt(t,_sphere$2).applyMatrix4(_matrix$1);let e=!1;if(h&&(e=!_frustum.intersectsSphere(_sphere$2)),!e){const e=_temp.subVectors(_sphere$2.center,_vector$5).dot(_forward);_renderList.push(u[t],e,n)}}const t=_renderList.list,e=this.customSort;null===e?t.sort(r.transparent?sortTransparent:sortOpaque):e.call(this,t,n);for(let n=0,i=t.length;n<i;n++){const e=t[n];c[f]=e.start*a,l[f]=e.count,p[f]=e.index,f++}_renderList.reset()}else for(let m=0,g=o.length;m<g;m++)if(o[m].visible&&o[m].active){const t=o[m].geometryIndex;let e=!1;if(h&&(this.getMatrixAt(m,_matrix$1),this.getBoundingSphereAt(t,_sphere$2).applyMatrix4(_matrix$1),e=!_frustum.intersectsSphere(_sphere$2)),!e){const e=u[t];c[f]=e.start*a,l[f]=e.count,p[f]=m,f++}}d.needsUpdate=!0,this._multiDrawCount=f,this._visibilityChanged=!1}onBeforeShadow(t,e,n,i,r,s){this.onBeforeRender(t,null,i,r,s)}}class LineBasicMaterial extends Material{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Color(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const _vStart=new Vector3,_vEnd=new Vector3,_inverseMatrix$1=new Matrix4,_ray$1=new Ray,_sphere$1=new Sphere,_intersectPointOnRay=new Vector3,_intersectPointOnSegment=new Vector3;class Line extends Object3D{constructor(t=new BufferGeometry,e=new LineBasicMaterial){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)_vStart.fromBufferAttribute(e,t-1),_vEnd.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=_vStart.distanceTo(_vEnd);t.setAttribute("lineDistance",new Float32BufferAttribute(n,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$1.copy(n.boundingSphere),_sphere$1.applyMatrix4(i),_sphere$1.radius+=r,!1===t.ray.intersectsSphere(_sphere$1))return;_inverseMatrix$1.copy(i).invert(),_ray$1.copy(t.ray).applyMatrix4(_inverseMatrix$1);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,c=this.isLineSegments?2:1,l=n.index,u=n.attributes.position;if(null!==l){const n=Math.max(0,s.start),i=Math.min(l.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=c){const n=l.getX(r),i=l.getX(r+1),s=checkIntersection(this,t,_ray$1,o,n,i);s&&e.push(s)}if(this.isLineLoop){const r=l.getX(i-1),s=l.getX(n),a=checkIntersection(this,t,_ray$1,o,r,s);a&&e.push(a)}}else{const n=Math.max(0,s.start),i=Math.min(u.count,s.start+s.count);for(let r=n,s=i-1;r<s;r+=c){const n=checkIntersection(this,t,_ray$1,o,r,r+1);n&&e.push(n)}if(this.isLineLoop){const r=checkIntersection(this,t,_ray$1,o,i-1,n);r&&e.push(r)}}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}}function checkIntersection(t,e,n,i,r,s){const a=t.geometry.attributes.position;_vStart.fromBufferAttribute(a,r),_vEnd.fromBufferAttribute(a,s);if(n.distanceSqToSegment(_vStart,_vEnd,_intersectPointOnRay,_intersectPointOnSegment)>i)return;_intersectPointOnRay.applyMatrix4(t.matrixWorld);const o=e.ray.origin.distanceTo(_intersectPointOnRay);return o<e.near||o>e.far?void 0:{distance:o,point:_intersectPointOnSegment.clone().applyMatrix4(t.matrixWorld),index:r,face:null,faceIndex:null,object:t}}const _start$1=new Vector3,_end$1=new Vector3;class LineSegments extends Line{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)_start$1.fromBufferAttribute(e,t),_end$1.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+_start$1.distanceTo(_end$1);t.setAttribute("lineDistance",new Float32BufferAttribute(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class LineLoop extends Line{constructor(t,e){super(t,e),this.isLineLoop=!0,this.type="LineLoop"}}class PointsMaterial extends Material{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}const _inverseMatrix=new Matrix4,_ray$4=new Ray,_sphere$7=new Sphere,_position$2=new Vector3;class Points extends Object3D{constructor(t=new BufferGeometry,e=new PointsMaterial){super(),this.isPoints=!0,this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),_sphere$7.copy(n.boundingSphere),_sphere$7.applyMatrix4(i),_sphere$7.radius+=r,!1===t.ray.intersectsSphere(_sphere$7))return;_inverseMatrix.copy(i).invert(),_ray$4.copy(t.ray).applyMatrix4(_inverseMatrix);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,c=n.index,l=n.attributes.position;if(null!==c){for(let n=Math.max(0,s.start),r=Math.min(c.count,s.start+s.count);n<r;n++){const r=c.getX(n);_position$2.fromBufferAttribute(l,r),testPoint(_position$2,r,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(l.count,s.start+s.count);n<r;n++)_position$2.fromBufferAttribute(l,n),testPoint(_position$2,n,o,i,t,e,this)}}updateMorphTargets(){const t=this.geometry.morphAttributes,e=Object.keys(t);if(e.length>0){const n=t[e[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,e=n.length;t<e;t++){const e=n[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[e]=t}}}}}function testPoint(t,e,n,i,r,s,a){const o=_ray$4.distanceSqToPoint(t);if(o<n){const n=new Vector3;_ray$4.closestPointToPoint(t,n),n.applyMatrix4(i);const c=r.ray.origin.distanceTo(n);if(c<r.near||c>r.far)return;s.push({distance:c,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}class VideoTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c){super(t,e,n,i,r,s,a,o,c),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:LinearFilter,this.magFilter=void 0!==r?r:LinearFilter,this.generateMipmaps=!1;const l=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback(function e(){l.needsUpdate=!0,t.requestVideoFrameCallback(e)})}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(t,e){super({width:t,height:e}),this.isFramebufferTexture=!0,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c,l,u,h){super(null,s,a,o,c,l,i,r,u,h),this.isCompressedTexture=!0,this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class CompressedArrayTexture extends CompressedTexture{constructor(t,e,n,i,r,s){super(t,e,n,r,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ClampToEdgeWrapping,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class CompressedCubeTexture extends CompressedTexture{constructor(t,e,n){super(void 0,t[0].width,t[0].height,e,n,CubeReflectionMapping),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=t}}class CanvasTexture extends Texture{constructor(t,e,n,i,r,s,a,o,c){super(t,e,n,i,r,s,a,o,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,c=r-1;for(;o<=c;)if(i=Math.floor(o+(c-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){c=i;break}c=i-1}if(i=c,n[i]===s)return i/(r-1);const l=n[i];return(i+(s-l)/(n[i+1]-l))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new Vector2:new Vector3);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Vector3,i=[],r=[],s=[],a=new Vector3,o=new Matrix4;for(let d=0;d<=t;d++){const e=d/t;i[d]=this.getTangentAt(e,new Vector3)}r[0]=new Vector3,s[0]=new Vector3;let c=Number.MAX_VALUE;const l=Math.abs(i[0].x),u=Math.abs(i[0].y),h=Math.abs(i[0].z);l<=c&&(c=l,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),h<=c&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let d=1;d<=t;d++){if(r[d]=r[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(i[d-1],i[d]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(clamp$1(i[d-1].dot(i[d]),-1,1));r[d].applyMatrix4(o.makeRotationAxis(a,t))}s[d].crossVectors(i[d],r[d])}if(!0===e){let e=Math.acos(clamp$1(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e=new Vector2){const n=e,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),c=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=c-this.aY;o=n*t-i*e+this.aX,c=n*e+i*t+this.aY}return n.set(o,c)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}class ArcCurve extends EllipseCurve{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.isArcCurve=!0,this.type="ArcCurve"}}function CubicPoly(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let c=(e-t)/s-(n-t)/(s+a)+(n-e)/a,l=(n-e)/a-(i-e)/(a+o)+(i-n)/o;c*=a,l*=a,r(e,n,c,l)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}const tmp=new Vector3,px=new CubicPoly,py=new CubicPoly,pz=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(t=[],e=!1,n="centripetal",i=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Vector3){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,c=Math.floor(s),l=s-c;this.closed?c+=c>0?0:(Math.floor(Math.abs(c)/r)+1)*r:0===l&&c===r-1&&(c=r-2,l=1),this.closed||c>0?a=i[(c-1)%r]:(tmp.subVectors(i[0],i[1]).add(i[0]),a=tmp);const u=i[c%r],h=i[(c+1)%r];if(this.closed||c+2<r?o=i[(c+2)%r]:(tmp.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=tmp),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(u),t),n=Math.pow(u.distanceToSquared(h),t),i=Math.pow(h.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),px.initNonuniformCatmullRom(a.x,u.x,h.x,o.x,e,n,i),py.initNonuniformCatmullRom(a.y,u.y,h.y,o.y,e,n,i),pz.initNonuniformCatmullRom(a.z,u.z,h.z,o.z,e,n,i)}else"catmullrom"===this.curveType&&(px.initCatmullRom(a.x,u.x,h.x,o.x,this.tension),py.initCatmullRom(a.y,u.y,h.y,o.y,this.tension),pz.initCatmullRom(a.z,u.z,h.z,o.z,this.tension));return n.set(px.calc(l),py.calc(l),pz.calc(l)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector3).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function CatmullRom(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function QuadraticBezierP0(t,e){const n=1-t;return n*n*e}function QuadraticBezierP1(t,e){return 2*(1-t)*t*e}function QuadraticBezierP2(t,e){return t*t*e}function QuadraticBezier(t,e,n,i){return QuadraticBezierP0(t,e)+QuadraticBezierP1(t,n)+QuadraticBezierP2(t,i)}function CubicBezierP0(t,e){const n=1-t;return n*n*n*e}function CubicBezierP1(t,e){const n=1-t;return 3*n*n*t*e}function CubicBezierP2(t,e){return 3*(1-t)*t*t*e}function CubicBezierP3(t,e){return t*t*t*e}function CubicBezier(t,e,n,i,r){return CubicBezierP0(t,e)+CubicBezierP1(t,n)+CubicBezierP2(t,i)+CubicBezierP3(t,r)}class CubicBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2,i=new Vector2){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Vector2){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}class CubicBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Vector3){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(CubicBezier(t,i.x,r.x,s.x,a.x),CubicBezier(t,i.y,r.y,s.y,a.y),CubicBezier(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}class LineCurve extends Curve{constructor(t=new Vector2,e=new Vector2){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=t,this.v2=e}getPoint(t,e=new Vector2){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector2){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class LineCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=t,this.v2=e}getPoint(t,e=new Vector3){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new Vector3){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class QuadraticBezierCurve extends Curve{constructor(t=new Vector2,e=new Vector2,n=new Vector2){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Vector2){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class QuadraticBezierCurve3 extends Curve{constructor(t=new Vector3,e=new Vector3,n=new Vector3){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Vector3){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(QuadraticBezier(t,i.x,r.x,s.x),QuadraticBezier(t,i.y,r.y,s.y),QuadraticBezier(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class SplineCurve extends Curve{constructor(t=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=t}getPoint(t,e=new Vector2){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],c=i[s],l=i[s>i.length-2?i.length-1:s+1],u=i[s>i.length-3?i.length-1:s+2];return n.set(CatmullRom(a,o.x,c.x,l.x,u.x),CatmullRom(a,o.y,c.y,l.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Vector2).fromArray(n))}return this}}var Curves=Object.freeze({__proto__:null,ArcCurve,CatmullRomCurve3,CubicBezierCurve,CubicBezierCurve3,EllipseCurve,LineCurve,LineCurve3,QuadraticBezierCurve,QuadraticBezierCurve3,SplineCurve});class CurvePath extends Curve{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){const n=!0===t.isVector2?"LineCurve":"LineCurve3";this.curves.push(new Curves[n](e,t))}return this}getPoint(t,e){const n=t*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s.isEllipseCurve?2*t:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Curves[n.type]).fromJSON(n))}return this}}class Path extends CurvePath{constructor(t){super(),this.type="Path",this.currentPoint=new Vector2,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new LineCurve(this.currentPoint.clone(),new Vector2(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(t,e),new Vector2(n,i),new Vector2(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new SplineCurve(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const c=this.currentPoint.x,l=this.currentPoint.y;return this.absellipse(t+c,e+l,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const c=new EllipseCurve(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=c.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(c);const l=c.getPoint(1);return this.currentPoint.copy(l),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class LatheGeometry extends BufferGeometry{constructor(t=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=clamp$1(i,0,2*Math.PI);const r=[],s=[],a=[],o=[],c=[],l=1/e,u=new Vector3,h=new Vector2,d=new Vector3,p=new Vector3,f=new Vector3;let m=0,g=0;for(let A=0;A<=t.length-1;A++)switch(A){case 0:m=t[A+1].x-t[A].x,g=t[A+1].y-t[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case t.length-1:o.push(f.x,f.y,f.z);break;default:m=t[A+1].x-t[A].x,g=t[A+1].y-t[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=e;A++){const r=n+A*l*i,d=Math.sin(r),p=Math.cos(r);for(let n=0;n<=t.length-1;n++){u.x=t[n].x*d,u.y=t[n].y,u.z=t[n].x*p,s.push(u.x,u.y,u.z),h.x=A/e,h.y=n/(t.length-1),a.push(h.x,h.y);const i=o[3*n+0]*d,r=o[3*n+1],l=o[3*n+0]*p;c.push(i,r,l)}}for(let A=0;A<e;A++)for(let e=0;e<t.length-1;e++){const n=e+A*t.length,i=n,s=n+t.length,a=n+t.length+1,o=n+1;r.push(i,s,o),r.push(a,o,s)}this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("uv",new Float32BufferAttribute(a,2)),this.setAttribute("normal",new Float32BufferAttribute(c,3))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new LatheGeometry(t.points,t.segments,t.phiStart,t.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(t=1,e=1,n=4,i=8){const r=new Path;r.absarc(0,-e/2,t,1.5*Math.PI,0),r.absarc(0,e/2,t,0,.5*Math.PI),super(r.getPoints(n),i),this.type="CapsuleGeometry",this.parameters={radius:t,length:e,capSegments:n,radialSegments:i}}static fromJSON(t){return new CapsuleGeometry(t.radius,t.length,t.capSegments,t.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(t=1,e=32,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],c=new Vector3,l=new Vector2;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let u=0,h=3;u<=e;u++,h+=3){const r=n+u/e*i;c.x=t*Math.cos(r),c.y=t*Math.sin(r),s.push(c.x,c.y,c.z),a.push(0,0,1),l.x=(s[h]/t+1)/2,l.y=(s[h+1]/t+1)/2,o.push(l.x,l.y)}for(let u=1;u<=e;u++)r.push(u,u+1,0);this.setIndex(r),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("normal",new Float32BufferAttribute(a,3)),this.setAttribute("uv",new Float32BufferAttribute(o,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new CircleGeometry(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=32,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const c=this;i=Math.floor(i),r=Math.floor(r);const l=[],u=[],h=[],d=[];let p=0;const f=[],m=n/2;let g=0;function A(n){const r=p,s=new Vector2,f=new Vector3;let A=0;const v=!0===n?t:e,y=!0===n?1:-1;for(let t=1;t<=i;t++)u.push(0,m*y,0),h.push(0,y,0),d.push(.5,.5),p++;const S=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);f.x=v*r,f.y=m*y,f.z=v*n,u.push(f.x,f.y,f.z),h.push(0,y,0),s.x=.5*n+.5,s.y=.5*r*y+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=S+t;!0===n?l.push(i,i+1,e):l.push(i+1,i,e),A+=3}c.addGroup(g,A,!0===n?1:2),g+=A}!function(){const s=new Vector3,A=new Vector3;let v=0;const y=(e-t)/n;for(let c=0;c<=r;c++){const l=[],g=c/r,v=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,c=Math.sin(r),f=Math.cos(r);A.x=v*c,A.y=-g*n+m,A.z=v*f,u.push(A.x,A.y,A.z),s.set(c,y,f).normalize(),h.push(s.x,s.y,s.z),d.push(e,1-g),l.push(p++)}f.push(l)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=f[e][t],i=f[e+1][t],r=f[e+1][t+1],s=f[e][t+1];l.push(n,i,s),l.push(i,r,s),v+=6}c.addGroup(g,v,0),g+=v}(),!1===s&&(t>0&&A(!0),e>0&&A(!1)),this.setIndex(l),this.setAttribute("position",new Float32BufferAttribute(u,3)),this.setAttribute("normal",new Float32BufferAttribute(h,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new CylinderGeometry(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(t=1,e=1,n=32,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new ConeGeometry(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let a=0;a<=r;a++){s[a]=[];const i=t.clone().lerp(n,a/r),o=e.clone().lerp(n,a/r),c=r-a;for(let t=0;t<=c;t++)s[a][t]=0===t&&a===r?i:i.clone().lerp(o,t/c)}for(let a=0;a<r;a++)for(let t=0;t<2*(r-a)-1;t++){const e=Math.floor(t/2);t%2==0?(o(s[a][e+1]),o(s[a+1][e]),o(s[a][e])):(o(s[a][e+1]),o(s[a+1][e+1]),o(s[a+1][e]))}}function o(t){r.push(t.x,t.y,t.z)}function c(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function l(t,e,n,i){i<0&&1===t.x&&(s[e]=t.x-1),0===n.x&&0===n.z&&(s[e]=i/2/Math.PI+.5)}function u(t){return Math.atan2(t.z,-t.x)}function h(t){return Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))}!function(t){const n=new Vector3,i=new Vector3,r=new Vector3;for(let s=0;s<e.length;s+=3)c(e[s+0],n),c(e[s+1],i),c(e[s+2],r),a(n,i,r,t)}(i),function(t){const e=new Vector3;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new Vector3;for(let e=0;e<r.length;e+=3){t.x=r[e+0],t.y=r[e+1],t.z=r[e+2];const n=u(t)/2/Math.PI+.5,i=h(t)/Math.PI+.5;s.push(n,1-i)}(function(){const t=new Vector3,e=new Vector3,n=new Vector3,i=new Vector3,a=new Vector2,o=new Vector2,c=new Vector2;for(let h=0,d=0;h<r.length;h+=9,d+=6){t.set(r[h+0],r[h+1],r[h+2]),e.set(r[h+3],r[h+4],r[h+5]),n.set(r[h+6],r[h+7],r[h+8]),a.set(s[d+0],s[d+1]),o.set(s[d+2],s[d+3]),c.set(s[d+4],s[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=u(i);l(a,d+0,t,p),l(o,d+2,e,p),l(c,d+4,n,p)}})(),function(){for(let t=0;t<s.length;t+=6){const e=s[t+0],n=s[t+2],i=s[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new Float32BufferAttribute(r,3)),this.setAttribute("normal",new Float32BufferAttribute(r.slice(),3)),this.setAttribute("uv",new Float32BufferAttribute(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new PolyhedronGeometry(t.vertices,t.indices,t.radius,t.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new DodecahedronGeometry(t.radius,t.detail)}}const _v0=new Vector3,_v1$1=new Vector3,_normal=new Vector3,_triangle=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(DEG2RAD$1*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,c=[0,0,0],l=["a","b","c"],u=new Array(3),h={},d=[];for(let t=0;t<o;t+=3){s?(c[0]=s.getX(t),c[1]=s.getX(t+1),c[2]=s.getX(t+2)):(c[0]=t,c[1]=t+1,c[2]=t+2);const{a:e,b:n,c:o}=_triangle;if(e.fromBufferAttribute(a,c[0]),n.fromBufferAttribute(a,c[1]),o.fromBufferAttribute(a,c[2]),_triangle.getNormal(_normal),u[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`,u[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`,u[2]=`${Math.round(o.x*i)},${Math.round(o.y*i)},${Math.round(o.z*i)}`,u[0]!==u[1]&&u[1]!==u[2]&&u[2]!==u[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=u[t],i=u[e],s=_triangle[l[t]],a=_triangle[l[e]],o=`${n}_${i}`,p=`${i}_${n}`;p in h&&h[p]?(_normal.dot(h[p].normal)<=r&&(d.push(s.x,s.y,s.z),d.push(a.x,a.y,a.z)),h[p]=null):o in h||(h[o]={index0:c[t],index1:c[e],normal:_normal.clone()})}}for(const t in h)if(h[t]){const{index0:e,index1:n}=h[t];_v0.fromBufferAttribute(a,e),_v1$1.fromBufferAttribute(a,n),d.push(_v0.x,_v0.y,_v0.z),d.push(_v1$1.x,_v1$1.y,_v1$1.z)}this.setAttribute("position",new Float32BufferAttribute(d,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}}class Shape extends Path{constructor(t){super(t),this.uuid=generateUUID(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Path).fromJSON(n))}return this}}const Earcut={triangulate:function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=linkedList(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,c,l,u,h,d,p;if(i&&(s=eliminateHoles(t,e,s,n)),t.length>80*n){o=l=t[0],c=u=t[1];for(let e=n;e<r;e+=n)h=t[e],d=t[e+1],h<o&&(o=h),d<c&&(c=d),h>l&&(l=h),d>u&&(u=d);p=Math.max(l-o,u-c),p=0!==p?32767/p:0}return earcutLinked(s,a,n,o,c,p,0),a}};function linkedList(t,e,n,i,r){let s,a;if(r===signedArea(t,e,n,i)>0)for(s=e;s<n;s+=i)a=insertNode(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=insertNode(s,t[s],t[s+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!equals(i,i.next)&&0!==area(i.prev,i,i.next))i=i.next;else{if(removeNode(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function earcutLinked(t,e,n,i,r,s,a){if(!t)return;!a&&s&&indexCurve(t,i,r,s);let o,c,l=t;for(;t.prev!==t.next;)if(o=t.prev,c=t.next,s?isEarHashed(t,i,r,s):isEar(t))e.push(o.i/n|0),e.push(t.i/n|0),e.push(c.i/n|0),removeNode(t),t=c.next,l=c.next;else if((t=c)===l){a?1===a?earcutLinked(t=cureLocalIntersections(filterPoints(t),e,n),e,n,i,r,s,2):2===a&&splitEarcut(t,e,n,i,r,s):earcutLinked(filterPoints(t),e,n,i,r,s,1);break}}function isEar(t){const e=t.prev,n=t,i=t.next;if(area(e,n,i)>=0)return!1;const r=e.x,s=n.x,a=i.x,o=e.y,c=n.y,l=i.y,u=r<s?r<a?r:a:s<a?s:a,h=o<c?o<l?o:l:c<l?c:l,d=r>s?r>a?r:a:s>a?s:a,p=o>c?o>l?o:l:c>l?c:l;let f=i.next;for(;f!==e;){if(f.x>=u&&f.x<=d&&f.y>=h&&f.y<=p&&pointInTriangle(r,o,s,c,a,l,f.x,f.y)&&area(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function isEarHashed(t,e,n,i){const r=t.prev,s=t,a=t.next;if(area(r,s,a)>=0)return!1;const o=r.x,c=s.x,l=a.x,u=r.y,h=s.y,d=a.y,p=o<c?o<l?o:l:c<l?c:l,f=u<h?u<d?u:d:h<d?h:d,m=o>c?o>l?o:l:c>l?c:l,g=u>h?u>d?u:d:h>d?h:d,A=zOrder(p,f,e,n,i),v=zOrder(m,g,e,n,i);let y=t.prevZ,S=t.nextZ;for(;y&&y.z>=A&&S&&S.z<=v;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,u,c,h,l,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,S.x>=p&&S.x<=m&&S.y>=f&&S.y<=g&&S!==r&&S!==a&&pointInTriangle(o,u,c,h,l,d,S.x,S.y)&&area(S.prev,S,S.next)>=0)return!1;S=S.nextZ}for(;y&&y.z>=A;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==r&&y!==a&&pointInTriangle(o,u,c,h,l,d,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;S&&S.z<=v;){if(S.x>=p&&S.x<=m&&S.y>=f&&S.y<=g&&S!==r&&S!==a&&pointInTriangle(o,u,c,h,l,d,S.x,S.y)&&area(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function cureLocalIntersections(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!equals(r,s)&&intersects(r,i,i.next,s)&&locallyInside(r,s)&&locallyInside(s,r)&&(e.push(r.i/n|0),e.push(i.i/n|0),e.push(s.i/n|0),removeNode(i),removeNode(i.next),i=t=s),i=i.next}while(i!==t);return filterPoints(i)}function splitEarcut(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&isValidDiagonal(a,t)){let o=splitPolygon(a,t);return a=filterPoints(a,a.next),o=filterPoints(o,o.next),earcutLinked(a,e,n,i,r,s,0),void earcutLinked(o,e,n,i,r,s,0)}t=t.next}a=a.next}while(a!==t)}function eliminateHoles(t,e,n,i){const r=[];let s,a,o,c,l;for(s=0,a=e.length;s<a;s++)o=e[s]*i,c=s<a-1?e[s+1]*i:t.length,l=linkedList(t,o,c,i,!1),l===l.next&&(l.steiner=!0),r.push(getLeftmost(l));for(r.sort(compareX),s=0;s<r.length;s++)n=eliminateHole(r[s],n);return n}function compareX(t,e){return t.x-e.x}function eliminateHole(t,e){const n=findHoleBridge(t,e);if(!n)return e;const i=splitPolygon(n,t);return filterPoints(i,i.next),filterPoints(n,n.next)}function findHoleBridge(t,e){let n,i=e,r=-1/0;const s=t.x,a=t.y;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){const t=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(t<=s&&t>r&&(r=t,n=i.x<i.next.x?i:i.next,t===s))return n}i=i.next}while(i!==e);if(!n)return null;const o=n,c=n.x,l=n.y;let u,h=1/0;i=n;do{s>=i.x&&i.x>=c&&s!==i.x&&pointInTriangle(a<l?s:r,a,c,l,a<l?r:s,a,i.x,i.y)&&(u=Math.abs(a-i.y)/(s-i.x),locallyInside(i,t)&&(u<h||u===h&&(i.x>n.x||i.x===n.x&§orContainsSector(n,i)))&&(n=i,h=u)),i=i.next}while(i!==o);return n}function sectorContainsSector(t,e){return area(t.prev,t,e.prev)<0&&area(e.next,t,t.next)<0}function indexCurve(t,e,n,i){let r=t;do{0===r.z&&(r.z=zOrder(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,sortLinked(r)}function sortLinked(t){let e,n,i,r,s,a,o,c,l=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<l&&(o++,i=i.nextZ,i);e++);for(c=l;o>0||c>0&&i;)0!==o&&(0===c||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,c--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,l*=2}while(a>1);return t}function zOrder(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function getLeftmost(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function pointInTriangle(t,e,n,i,r,s,a,o){return(r-a)*(e-o)>=(t-a)*(s-o)&&(t-a)*(i-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(r-a)*(i-o)}function isValidDiagonal(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!intersectsPolygon(t,e)&&(locallyInside(t,e)&&locallyInside(e,t)&&middleInside(t,e)&&(area(t.prev,t,e.prev)||area(t,e.prev,e))||equals(t,e)&&area(t.prev,t,t.next)>0&&area(e.prev,e,e.next)>0)}function area(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals(t,e){return t.x===e.x&&t.y===e.y}function intersects(t,e,n,i){const r=sign(area(t,e,n)),s=sign(area(t,e,i)),a=sign(area(n,i,t)),o=sign(area(n,i,e));return r!==s&&a!==o||(!(0!==r||!onSegment(t,n,e))||(!(0!==s||!onSegment(t,i,e))||(!(0!==a||!onSegment(n,t,i))||!(0!==o||!onSegment(n,e,i)))))}function onSegment(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function sign(t){return t>0?1:t<0?-1:0}function intersectsPolygon(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&intersects(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function locallyInside(t,e){return area(t.prev,t,t.next)<0?area(t,e,t.next)>=0&&area(t,t.prev,e)>=0:area(t,e,t.prev)<0||area(t,t.next,e)<0}function middleInside(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}function splitPolygon(t,e){const n=new Node(t.i,t.x,t.y),i=new Node(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function insertNode(t,e,n,i){const r=new Node(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function removeNode(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Node(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}class ShapeUtils{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return ShapeUtils.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];removeDupEndPts(t),addContour(n,t);let s=t.length;e.forEach(removeDupEndPts);for(let o=0;o<e.length;o++)i.push(s),s+=e[o].length,addContour(n,e[o]);const a=Earcut.triangulate(n,i);for(let o=0;o<a.length;o+=3)r.push(a.slice(o,o+3));return r}}function removeDupEndPts(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function addContour(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class ExtrudeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let a=0,o=t.length;a<o;a++){s(t[a])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1,c=void 0!==e.depth?e.depth:1;let l=void 0===e.bevelEnabled||e.bevelEnabled,u=void 0!==e.bevelThickness?e.bevelThickness:.2,h=void 0!==e.bevelSize?e.bevelSize:u-.1,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:WorldUVGenerator;let g,A,v,y,S,b=!1;f&&(g=f.getSpacedPoints(o),b=!0,l=!1,A=f.computeFrenetFrames(o,!1),v=new Vector3,y=new Vector3,S=new Vector3),l||(p=0,u=0,h=0,d=0);const x=t.extractPoints(a);let M=x.shape;const T=x.holes;if(!ShapeUtils.isClockWise(M)){M=M.reverse();for(let t=0,e=T.length;t<e;t++){const e=T[t];ShapeUtils.isClockWise(e)&&(T[t]=e.reverse())}}const I=ShapeUtils.triangulateShape(M,T),R=M;for(let e=0,n=T.length;e<n;e++){const t=T[e];M=M.concat(t)}function E(t,e,n){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().addScaledVector(e,n)}const w=M.length,C=I.length;function _(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,c=n.x-t.x,l=n.y-t.y,u=a*a+o*o,h=a*l-o*c;if(Math.abs(h)>Number.EPSILON){const h=Math.sqrt(u),d=Math.sqrt(c*c+l*l),p=e.x-o/h,f=e.y+a/h,m=((n.x-l/d-p)*l-(n.y+c/d-f)*c)/(a*l-o*c);i=p+a*m-t.x,r=f+o*m-t.y;const g=i*i+r*r;if(g<=2)return new Vector2(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?c>Number.EPSILON&&(t=!0):a<-Number.EPSILON?c<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(l)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(u)):(i=a,r=o,s=Math.sqrt(u/2))}return new Vector2(i/s,r/s)}const k=[];for(let e=0,n=R.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),k[e]=_(R[e],R[i],R[r]);const L=[];let U,F=k.concat();for(let e=0,n=T.length;e<n;e++){const t=T[e];U=[];for(let e=0,n=t.length,i=n-1,r=e+1;e<n;e++,i++,r++)i===n&&(i=0),r===n&&(r=0),U[e]=_(t[e],t[i],t[r]);L.push(U),F=F.concat(U)}for(let e=0;e<p;e++){const t=e/p,n=u*Math.cos(t*Math.PI/2),i=h*Math.sin(t*Math.PI/2)+d;for(let e=0,r=R.length;e<r;e++){const t=E(R[e],k[e],i);P(t.x,t.y,-n)}for(let e=0,r=T.length;e<r;e++){const t=T[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=E(t[e],U[e],i);P(r.x,r.y,-n)}}}const N=h+d;for(let e=0;e<w;e++){const t=l?E(M[e],F[e],N):M[e];b?(y.copy(A.normals[0]).multiplyScalar(t.x),v.copy(A.binormals[0]).multiplyScalar(t.y),S.copy(g[0]).add(y).add(v),P(S.x,S.y,S.z)):P(t.x,t.y,0)}for(let e=1;e<=o;e++)for(let t=0;t<w;t++){const n=l?E(M[t],F[t],N):M[t];b?(y.copy(A.normals[e]).multiplyScalar(n.x),v.copy(A.binormals[e]).multiplyScalar(n.y),S.copy(g[e]).add(y).add(v),P(S.x,S.y,S.z)):P(n.x,n.y,c/o*e)}for(let e=p-1;e>=0;e--){const t=e/p,n=u*Math.cos(t*Math.PI/2),i=h*Math.sin(t*Math.PI/2)+d;for(let e=0,r=R.length;e<r;e++){const t=E(R[e],k[e],i);P(t.x,t.y,c+n)}for(let e=0,r=T.length;e<r;e++){const t=T[e];U=L[e];for(let e=0,r=t.length;e<r;e++){const r=E(t[e],U[e],i);b?P(r.x,r.y+g[o-1].y,g[o-1].x+n):P(r.x,r.y,c+n)}}}function V(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=w*t,s=w*(t+1);W(e+i+n,e+r+n,e+r+s,e+i+s)}}}function P(t,e,n){s.push(t),s.push(e),s.push(n)}function B(t,e,r){D(t),D(e),D(r);const s=i.length/3,a=m.generateTopUV(n,i,s-3,s-2,s-1);O(a[0]),O(a[1]),O(a[2])}function W(t,e,r,s){D(t),D(e),D(s),D(e),D(r),D(s);const a=i.length/3,o=m.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);O(o[0]),O(o[1]),O(o[3]),O(o[1]),O(o[2]),O(o[3])}function D(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function O(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(l){let t=0,e=w*t;for(let n=0;n<C;n++){const t=I[n];B(t[2]+e,t[1]+e,t[0]+e)}t=o+2*p,e=w*t;for(let n=0;n<C;n++){const t=I[n];B(t[0]+e,t[1]+e,t[2]+e)}}else{for(let t=0;t<C;t++){const e=I[t];B(e[2],e[1],e[0])}for(let t=0;t<C;t++){const e=I[t];B(e[0]+w*o,e[1]+w*o,e[2]+w*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;V(R,e),e+=R.length;for(let n=0,i=T.length;n<i;n++){const t=T[n];V(t,e),e+=t.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute("position",new Float32BufferAttribute(i,3)),this.setAttribute("uv",new Float32BufferAttribute(r,2)),this.computeVertexNormals()}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return toJSON$1(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let r=0,s=t.shapes.length;r<s;r++){const i=e[t.shapes[r]];n.push(i)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new Curves[i.type]).fromJSON(i)),new ExtrudeGeometry(n,t.options)}}const WorldUVGenerator={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],c=e[3*i+1],l=e[3*r],u=e[3*r+1];return[new Vector2(s,a),new Vector2(o,c),new Vector2(l,u)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],c=e[3*n+2],l=e[3*i],u=e[3*i+1],h=e[3*i+2],d=e[3*r],p=e[3*r+1],f=e[3*r+2],m=e[3*s],g=e[3*s+1],A=e[3*s+2];return Math.abs(o-u)<Math.abs(a-l)?[new Vector2(a,1-c),new Vector2(l,1-h),new Vector2(d,1-f),new Vector2(m,1-A)]:[new Vector2(o,1-c),new Vector2(u,1-h),new Vector2(p,1-f),new Vector2(g,1-A)]}};function toJSON$1(t,e,n){if(n.shapes=[],Array.isArray(t))for(let i=0,r=t.length;i<r;i++){const e=t[i];n.shapes.push(e.uuid)}else n.shapes.push(t.uuid);return n.options=Object.assign({},e),void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON()),n}class IcosahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new IcosahedronGeometry(t.radius,t.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new OctahedronGeometry(t.radius,t.detail)}}class RingGeometry extends BufferGeometry{constructor(t=.5,e=1,n=32,i=1,r=0,s=2*Math.PI){super(),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s},n=Math.max(3,n);const a=[],o=[],c=[],l=[];let u=t;const h=(e-t)/(i=Math.max(1,i)),d=new Vector3,p=new Vector2;for(let f=0;f<=i;f++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=u*Math.cos(i),d.y=u*Math.sin(i),o.push(d.x,d.y,d.z),c.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,l.push(p.x,p.y)}u+=h}for(let f=0;f<i;f++){const t=f*(n+1);for(let e=0;e<n;e++){const i=e+t,r=i,s=i+n+1,o=i+n+2,c=i+1;a.push(r,s,c),a.push(s,o,c)}}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(c,3)),this.setAttribute("uv",new Float32BufferAttribute(l,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new RingGeometry(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(t=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))c(t);else for(let l=0;l<t.length;l++)c(t[l]),this.addGroup(a,o,l),a+=o,o=0;function c(t){const a=i.length/3,c=t.extractPoints(e);let l=c.shape;const u=c.holes;!1===ShapeUtils.isClockWise(l)&&(l=l.reverse());for(let e=0,n=u.length;e<n;e++){const t=u[e];!0===ShapeUtils.isClockWise(t)&&(u[e]=t.reverse())}const h=ShapeUtils.triangulateShape(l,u);for(let e=0,n=u.length;e<n;e++){const t=u[e];l=l.concat(t)}for(let e=0,n=l.length;e<n;e++){const t=l[e];i.push(t.x,t.y,0),r.push(0,0,1),s.push(t.x,t.y)}for(let e=0,i=h.length;e<i;e++){const t=h[e],i=t[0]+a,r=t[1]+a,s=t[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute("position",new Float32BufferAttribute(i,3)),this.setAttribute("normal",new Float32BufferAttribute(r,3)),this.setAttribute("uv",new Float32BufferAttribute(s,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return toJSON(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new ShapeGeometry(n,t.curveSegments)}}function toJSON(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}class SphereGeometry extends BufferGeometry{constructor(t=1,e=32,n=16,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let c=0;const l=[],u=new Vector3,h=new Vector3,d=[],p=[],f=[],m=[];for(let g=0;g<=n;g++){const d=[],A=g/n;let v=0;0===g&&0===s?v=.5/e:g===n&&o===Math.PI&&(v=-.5/e);for(let n=0;n<=e;n++){const o=n/e;u.x=-t*Math.cos(i+o*r)*Math.sin(s+A*a),u.y=t*Math.cos(s+A*a),u.z=t*Math.sin(i+o*r)*Math.sin(s+A*a),p.push(u.x,u.y,u.z),h.copy(u).normalize(),f.push(h.x,h.y,h.z),m.push(o+v,1-A),d.push(c++)}l.push(d)}for(let g=0;g<n;g++)for(let t=0;t<e;t++){const e=l[g][t+1],i=l[g][t],r=l[g+1][t],a=l[g+1][t+1];(0!==g||s>0)&&d.push(e,i,a),(g!==n-1||o<Math.PI)&&d.push(i,r,a)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(f,3)),this.setAttribute("uv",new Float32BufferAttribute(m,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new SphereGeometry(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new TetrahedronGeometry(t.radius,t.detail)}}class TorusGeometry extends BufferGeometry{constructor(t=1,e=.4,n=12,i=48,r=2*Math.PI){super(),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const s=[],a=[],o=[],c=[],l=new Vector3,u=new Vector3,h=new Vector3;for(let d=0;d<=n;d++)for(let s=0;s<=i;s++){const p=s/i*r,f=d/n*Math.PI*2;u.x=(t+e*Math.cos(f))*Math.cos(p),u.y=(t+e*Math.cos(f))*Math.sin(p),u.z=e*Math.sin(f),a.push(u.x,u.y,u.z),l.x=t*Math.cos(p),l.y=t*Math.sin(p),h.subVectors(u,l).normalize(),o.push(h.x,h.y,h.z),c.push(s/i),c.push(d/n)}for(let d=1;d<=n;d++)for(let t=1;t<=i;t++){const e=(i+1)*d+t-1,n=(i+1)*(d-1)+t-1,r=(i+1)*(d-1)+t,a=(i+1)*d+t;s.push(e,n,a),s.push(n,r,a)}this.setIndex(s),this.setAttribute("position",new Float32BufferAttribute(a,3)),this.setAttribute("normal",new Float32BufferAttribute(o,3)),this.setAttribute("uv",new Float32BufferAttribute(c,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new TorusGeometry(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s},n=Math.floor(n),i=Math.floor(i);const a=[],o=[],c=[],l=[],u=new Vector3,h=new Vector3,d=new Vector3,p=new Vector3,f=new Vector3,m=new Vector3,g=new Vector3;for(let v=0;v<=n;++v){const a=v/n*r*Math.PI*2;A(a,r,s,t,d),A(a+.01,r,s,t,p),m.subVectors(p,d),g.addVectors(p,d),f.crossVectors(m,g),g.crossVectors(f,m),f.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,s=-e*Math.cos(r),a=e*Math.sin(r);u.x=d.x+(s*g.x+a*f.x),u.y=d.y+(s*g.y+a*f.y),u.z=d.z+(s*g.z+a*f.z),o.push(u.x,u.y,u.z),h.subVectors(u,d).normalize(),c.push(h.x,h.y,h.z),l.push(v/n),l.push(t/i)}}for(let v=1;v<=n;v++)for(let t=1;t<=i;t++){const e=(i+1)*(v-1)+(t-1),n=(i+1)*v+(t-1),r=(i+1)*v+t,s=(i+1)*(v-1)+t;a.push(e,n,s),a.push(n,r,s)}function A(t,e,n,i,r){const s=Math.cos(t),a=Math.sin(t),o=n/e*t,c=Math.cos(o);r.x=i*(2+c)*.5*s,r.y=i*(2+c)*a*.5,r.z=i*Math.sin(o)*.5}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(c,3)),this.setAttribute("uv",new Float32BufferAttribute(l,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new TorusKnotGeometry(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class TubeGeometry extends BufferGeometry{constructor(t=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),e=64,n=1,i=8,r=!1){super(),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Vector3,o=new Vector3,c=new Vector2;let l=new Vector3;const u=[],h=[],d=[],p=[];function f(r){l=t.getPointAt(r/e,l);const c=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*c.x+r*d.x,o.y=s*c.y+r*d.y,o.z=s*c.z+r*d.z,o.normalize(),h.push(o.x,o.y,o.z),a.x=l.x+n*o.x,a.y=l.y+n*o.y,a.z=l.z+n*o.z,u.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)f(t);f(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)c.x=t/e,c.y=n/i,d.push(c.x,c.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute("position",new Float32BufferAttribute(u,3)),this.setAttribute("normal",new Float32BufferAttribute(h,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new TubeGeometry((new Curves[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class WireframeGeometry extends BufferGeometry{constructor(t=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:t},null!==t){const e=[],n=new Set,i=new Vector3,r=new Vector3;if(null!==t.index){const s=t.attributes.position,a=t.index;let o=t.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,c=o.length;t<c;++t){const c=o[t],l=c.start;for(let t=l,o=l+c.count;t<o;t+=3)for(let c=0;c<3;c++){const o=a.getX(t+c),l=a.getX(t+(c+1)%3);i.fromBufferAttribute(s,o),r.fromBufferAttribute(s,l),!0===isUniqueEdge(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}}else{const s=t.attributes.position;for(let t=0,a=s.count/3;t<a;t++)for(let o=0;o<3;o++){const a=3*t+o,c=3*t+(o+1)%3;i.fromBufferAttribute(s,a),r.fromBufferAttribute(s,c),!0===isUniqueEdge(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}this.setAttribute("position",new Float32BufferAttribute(e,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}}function isUniqueEdge(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`,r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;return!0!==n.has(i)&&!0!==n.has(r)&&(n.add(i),n.add(r),!0)}var Geometries=Object.freeze({__proto__:null,BoxGeometry,CapsuleGeometry,CircleGeometry,ConeGeometry,CylinderGeometry,DodecahedronGeometry,EdgesGeometry,ExtrudeGeometry,IcosahedronGeometry,LatheGeometry,OctahedronGeometry,PlaneGeometry,PolyhedronGeometry,RingGeometry,ShapeGeometry,SphereGeometry,TetrahedronGeometry,TorusGeometry,TorusKnotGeometry,TubeGeometry,WireframeGeometry});class ShadowMaterial extends Material{constructor(t){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new Color(0),this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.fog=t.fog,this}}class RawShaderMaterial extends ShaderMaterial{constructor(t){super(t),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class MeshStandardMaterial extends Material{constructor(t){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Color(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.envMapIntensity=t.envMapIntensity,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(t){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Vector2(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return clamp$1(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Color(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Color(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Color(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(t)}get anisotropy(){return this._anisotropy}set anisotropy(t){this._anisotropy>0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion>0!=t>0&&this.version++,this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.dispersion=t.dispersion,this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color(16777215),this.specular=new Color(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshToonMaterial extends Material{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class MeshNormalMaterial extends Material{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class MeshLambertMaterial extends Material{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class MeshMatcapMaterial extends Material{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function convertArray(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)}function isTypedArray(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function getKeyframeOrder(t){const e=t.length,n=new Array(e);for(let i=0;i!==e;++i)n[i]=i;return n.sort(function(e,n){return t[e]-t[n]}),n}function sortedArray(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r}function flattenJSON(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)}function subclip(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let c=0;c<s.tracks.length;++c){const t=s.tracks[c],e=t.getValueSize(),o=[],l=[];for(let s=0;s<t.times.length;++s){const a=t.times[s]*r;if(!(a<n||a>=i)){o.push(t.times[s]);for(let n=0;n<e;++n)l.push(t.values[s*e+n])}}0!==o.length&&(t.times=convertArray(o,t.times.constructor),t.values=convertArray(l,t.values.constructor),a.push(t))}s.tracks=a;let o=1/0;for(let c=0;c<s.tracks.length;++c)o>s.tracks[c].times[0]&&(o=s.tracks[c].times[0]);for(let c=0;c<s.tracks.length;++c)s.tracks[c].shift(-1*o);return s.resetDuration(),s}function makeClipAdditive(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let a=0;a<r;++a){const e=n.tracks[a],i=e.ValueTypeName;if("bool"===i||"string"===i)continue;const r=t.tracks.find(function(t){return t.name===e.name&&t.ValueTypeName===i});if(void 0===r)continue;let o=0;const c=e.getValueSize();e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=c/3);let l=0;const u=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(l=u/3);const h=e.times.length-1;let d;if(s<=e.times[0]){const t=o,n=c-o;d=e.values.slice(t,n)}else if(s>=e.times[h]){const t=h*c+o,n=t+c-o;d=e.values.slice(t,n)}else{const t=e.createInterpolant(),n=o,i=c-o;t.evaluate(s),d=t.resultBuffer.slice(n,i)}if("quaternion"===i){(new Quaternion).fromArray(d).normalize().conjugate().toArray(d)}const p=r.times.length;for(let t=0;t<p;++t){const e=t*u+l;if("quaternion"===i)Quaternion.multiplyQuaternionsFlat(r.values,e,d,0,r.values,e);else{const t=u-2*l;for(let n=0;n<t;++n)r.values[e+n]-=d[n]}}}return t.blendMode=AdditiveAnimationBlendMode,t}const AnimationUtils={convertArray,isTypedArray,getKeyframeOrder,sortedArray,flattenJSON,subclip,makeClipAdditive};class Interpolant{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(!(t>=r)){const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0;break n}break t}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.copySampleValue_(0);if(void 0===i)return n=e.length,this._cachedIndex=n,this.copySampleValue_(n-1)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let s=0;s!==i;++s)e[s]=n[r+s];return e}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case ZeroSlopeEnding:r=t,a=2*e-n;break;case WrapAroundEnding:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case ZeroSlopeEnding:s=t,o=2*n-e;break;case WrapAroundEnding:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const c=.5*(n-e),l=this.valueSize;this._weightPrev=c/(e-a),this._weightNext=c/(o-n),this._offsetPrev=r*l,this._offsetNext=s*l}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,c=o-a,l=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),f=p*p,m=f*p,g=-h*m+2*h*f-h*p,A=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1,v=(-1-d)*m+(1.5+d)*f+.5*p,y=d*m-d*f;for(let S=0;S!==a;++S)r[S]=g*s[l+S]+A*s[c+S]+v*s[o+S]+y*s[u+S];return r}}class LinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,c=o-a,l=(n-e)/(i-e),u=1-l;for(let h=0;h!==a;++h)r[h]=s[c+h]*u+s[o+h]*l;return r}}class DiscreteInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class KeyframeTrack{constructor(t,e,n,i){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=convertArray(e,this.TimeBufferType),this.values=convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:convertArray(t.times,Array),values:convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new LinearInterpolant(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new CubicInterpolant(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case InterpolateDiscrete:e=this.InterpolantFactoryMethodDiscrete;break;case InterpolateLinear:e=this.InterpolantFactoryMethodLinear;break;case InterpolateSmooth:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return InterpolateDiscrete;case this.InterpolantFactoryMethodLinear:return InterpolateLinear;case this.InterpolantFactoryMethodSmooth:return InterpolateSmooth}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=n.slice(r,s),this.values=this.values.slice(r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==r;a++){const e=n[a];if("number"==typeof e&&isNaN(e)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,e),t=!1;break}if(null!==s&&s>e){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,e,s),t=!1;break}s=e}if(void 0!==i&&isTypedArray(i))for(let a=0,o=i.length;a!==o;++a){const e=i[a];if(isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,e),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===InterpolateSmooth,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=t.slice(0,s),this.values=e.slice(0,s*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}KeyframeTrack.prototype.TimeBufferType=Float32Array,KeyframeTrack.prototype.ValueBufferType=Float32Array,KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool",BooleanKeyframeTrack.prototype.ValueBufferType=Array,BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let c=t*a;for(let l=c+a;c!==l;c+=4)Quaternion.slerpFlat(r,0,s,c-a,s,c,o);return r}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(t){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),t)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion",QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(t,e,n){super(t,e,n)}}StringKeyframeTrack.prototype.ValueTypeName="string",StringKeyframeTrack.prototype.ValueBufferType=Array,StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete,StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(t="",e=-1,n=[],i=NormalAnimationBlendMode){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let s=0,a=n.length;s!==a;++s)e.push(parseKeyframeTrack(n[s]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let r=0,s=n.length;r!==s;++r)e.push(KeyframeTrack.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let a=0;a<r;a++){let t=[],o=[];t.push((a+r-1)%r,a,(a+1)%r),o.push(0,1,0);const c=getKeyframeOrder(t);t=sortedArray(t,1,c),o=sortedArray(o,1,c),i||0!==t[0]||(t.push(r),o.push(o[0])),s.push(new NumberKeyframeTrack(".morphTargetInfluences["+e[a].name+"]",t,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let i=0;i<n.length;i++)if(n[i].name===e)return n[i];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,o=t.length;a<o;a++){const e=t[a],n=e.name.match(r);if(n&&n.length>1){const t=n[1];let r=i[t];r||(i[t]=r=[]),r.push(e)}}const s=[];for(const a in i)s.push(this.CreateFromMorphTargetSequence(a,i[a],e,n));return s}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const c=t.hierarchy||[];for(let l=0;l<c.length;l++){const t=c[l].keys;if(t&&0!==t.length)if(t[0].morphTargets){const e={};let n;for(n=0;n<t.length;n++)if(t[n].morphTargets)for(let i=0;i<t[n].morphTargets.length;i++)e[t[n].morphTargets[i]]=-1;for(const r in e){const e=[],s=[];for(let i=0;i!==t[n].morphTargets.length;++i){const i=t[n];e.push(i.time),s.push(i.morphTarget===r?1:0)}i.push(new NumberKeyframeTrack(".morphTargetInfluence["+r+"]",e,s))}o=e.length*s}else{const r=".bones["+e[l].name+"]";n(VectorKeyframeTrack,r+".position",t,"pos",i),n(QuaternionKeyframeTrack,r+".quaternion",t,"rot",i),n(VectorKeyframeTrack,r+".scale",t,"scl",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return NumberKeyframeTrack;case"vector":case"vector2":case"vector3":case"vector4":return VectorKeyframeTrack;case"color":return ColorKeyframeTrack;case"quaternion":return QuaternionKeyframeTrack;case"bool":case"boolean":return BooleanKeyframeTrack;case"string":return StringKeyframeTrack}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}function parseKeyframeTrack(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const e=getTrackTypeForValueTypeName(t.type);if(void 0===t.times){const e=[],n=[];flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const Cache={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class LoadingManager{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const c=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return c.push(t,e),this},this.removeHandler=function(t){const e=c.indexOf(t);return-1!==e&&c.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=c.length;e<n;e+=2){const n=c[e],i=c[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const DefaultLoadingManager=new LoadingManager;class Loader{constructor(t){this.manager=void 0!==t?t:DefaultLoadingManager,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise(function(i,r){n.load(t,i,e,r)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}Loader.DEFAULT_MATERIAL_NAME="__DEFAULT";const loading={};class HttpError extends Error{constructor(t,e){super(t),this.response=e}}class FileLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=Cache.get(t);if(void 0!==r)return this.manager.itemStart(t),setTimeout(()=>{e&&e(r),this.manager.itemEnd(t)},0),r;if(void 0!==loading[t])return void loading[t].push({onLoad:e,onProgress:n,onError:i});loading[t]=[],loading[t].push({onLoad:e,onProgress:n,onError:i});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then(e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body||void 0===e.body.getReader)return e;const n=loading[t],i=e.body.getReader(),r=e.headers.get("X-File-Size")||e.headers.get("Content-Length"),s=r?parseInt(r):0,a=0!==s;let o=0;const c=new ReadableStream({start(t){!function e(){i.read().then(({done:i,value:r})=>{if(i)t.close();else{o+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let t=0,e=n.length;t<e;t++){const e=n[t];e.onProgress&&e.onProgress(i)}t.enqueue(r),e()}},e=>{t.error(e)})}()}});return new Response(c)}throw new HttpError(`fetch for "${e.url}" responded with ${e.status}: ${e.statusText}`,e)}).then(t=>{switch(o){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"document":return t.text().then(t=>(new DOMParser).parseFromString(t,a));case"json":return t.json();default:if(void 0===a)return t.text();{const e=/charset="?([^;"\s]*)"?/i.exec(a),n=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(n);return t.arrayBuffer().then(t=>i.decode(t))}}}).then(e=>{Cache.add(t,e);const n=loading[t];delete loading[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onLoad&&i.onLoad(e)}}).catch(e=>{const n=loading[t];if(void 0===n)throw this.manager.itemError(t),e;delete loading[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}this.manager.itemError(t)}).finally(()=>{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class AnimationLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=AnimationClip.parse(t[n]);e.push(i)}return e}}class CompressedTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new CompressedTexture,o=new FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let c=0;function l(l){o.load(t[l],function(t){const n=r.parse(t,!0);s[l]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},c+=1,6===c&&(1===n.mipmapCount&&(a.minFilter=LinearFilter),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))},n,i)}if(Array.isArray(t))for(let u=0,h=t.length;u<h;++u)l(u);else o.load(t,function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),s[e].format=n.format,s[e].width=n.width,s[e].height=n.height}a.image=s}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=LinearFilter),a.format=n.format,a.needsUpdate=!0,e&&e(a)},n,i);return a}}class ImageLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Cache.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout(function(){e&&e(s),r.manager.itemEnd(t)},0),s;const a=createElementNS("img");function o(){l(),Cache.add(t,this),e&&e(this),r.manager.itemEnd(t)}function c(e){l(),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}function l(){a.removeEventListener("load",o,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",c,!1),"data:"!==t.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class CubeTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new CubeTexture;r.colorSpace=SRGBColorSpace;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))},void 0,i)}for(let c=0;c<t.length;++c)o(c);return r}}class DataTextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new DataTexture,a=new FileLoader(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,function(t){let n;try{n=r.parse(t)}catch(a){if(void 0===i)return void console.error(a);i(a)}void 0!==n.image?s.image=n.image:void 0!==n.data&&(s.image.width=n.width,s.image.height=n.height,s.image.data=n.data),s.wrapS=void 0!==n.wrapS?n.wrapS:ClampToEdgeWrapping,s.wrapT=void 0!==n.wrapT?n.wrapT:ClampToEdgeWrapping,s.magFilter=void 0!==n.magFilter?n.magFilter:LinearFilter,s.minFilter=void 0!==n.minFilter?n.minFilter:LinearFilter,s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.colorSpace&&(s.colorSpace=n.colorSpace),void 0!==n.flipY&&(s.flipY=n.flipY),void 0!==n.format&&(s.format=n.format),void 0!==n.type&&(s.type=n.type),void 0!==n.mipmaps&&(s.mipmaps=n.mipmaps,s.minFilter=LinearMipmapLinearFilter),1===n.mipmapCount&&(s.minFilter=LinearFilter),void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps),s.needsUpdate=!0,e&&e(s,n)},n,i),s}}class TextureLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=new Texture,s=new ImageLoader(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,function(t){r.image=t,r.needsUpdate=!0,void 0!==e&&e(r)},n,i),r}}class Light extends Object3D{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Color(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),void 0!==this.target&&(e.object.target=this.target.uuid),e}}class HemisphereLight extends Light{constructor(t,e,n){super(t,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Color(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}}const _projScreenMatrix$1=new Matrix4,_lightPositionWorld$1=new Vector3,_lookTarget$1=new Vector3;class LightShadow{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Vector2(512,512),this.map=null,this.mapPass=null,this.matrix=new Matrix4,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Frustum,this._frameExtents=new Vector2(1,1),this._viewportCount=1,this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;_lightPositionWorld$1.setFromMatrixPosition(t.matrixWorld),e.position.copy(_lightPositionWorld$1),_lookTarget$1.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(_lookTarget$1),e.updateMatrixWorld(),_projScreenMatrix$1.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_projScreenMatrix$1),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(_projScreenMatrix$1)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.intensity=t.intensity,this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 1!==this.intensity&&(t.intensity=this.intensity),0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=2*RAD2DEG$1*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class SpotLight extends Light{constructor(t,e,n=0,i=Math.PI/3,r=0,s=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.map=null,this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const _projScreenMatrix=new Matrix4,_lightPositionWorld=new Vector3,_lookTarget=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Vector2(4,2),this._viewportCount=6,this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)],this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)],this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),_lightPositionWorld.setFromMatrixPosition(t.matrixWorld),n.position.copy(_lightPositionWorld),_lookTarget.copy(n.position),_lookTarget.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(_lookTarget),n.updateMatrixWorld(),i.makeTranslation(-_lightPositionWorld.x,-_lightPositionWorld.y,-_lightPositionWorld.z),_projScreenMatrix.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_projScreenMatrix)}}class PointLight extends Light{constructor(t,e,n=0,i=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new PointLightShadow}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class DirectionalLight extends Light{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class AmbientLight extends Light{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class RectAreaLight extends Light{constructor(t,e,n=10,i=10){super(t,e),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Vector3)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}class LightProbe extends Light{constructor(t=new SphericalHarmonics3,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}class MaterialLoader extends Loader{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new FileLoader(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}const i=MaterialLoader.createMaterialFromType(t.type);if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenColor&&(i.sheenColor=(new Color).setHex(t.sheenColor)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(t.specularColor),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.dispersion&&(i.dispersion=t.dispersion),void 0!==t.iridescence&&(i.iridescence=t.iridescence),void 0!==t.iridescenceIOR&&(i.iridescenceIOR=t.iridescenceIOR),void 0!==t.iridescenceThicknessRange&&(i.iridescenceThicknessRange=t.iridescenceThicknessRange),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(t.attenuationColor),void 0!==t.anisotropy&&(i.anisotropy=t.anisotropy),void 0!==t.anisotropyRotation&&(i.anisotropyRotation=t.anisotropyRotation),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.alphaHash&&(i.alphaHash=t.alphaHash),void 0!==t.depthFunc&&(i.depthFunc=t.depthFunc),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.blendSrc&&(i.blendSrc=t.blendSrc),void 0!==t.blendDst&&(i.blendDst=t.blendDst),void 0!==t.blendEquation&&(i.blendEquation=t.blendEquation),void 0!==t.blendSrcAlpha&&(i.blendSrcAlpha=t.blendSrcAlpha),void 0!==t.blendDstAlpha&&(i.blendDstAlpha=t.blendDstAlpha),void 0!==t.blendEquationAlpha&&(i.blendEquationAlpha=t.blendEquationAlpha),void 0!==t.blendColor&&void 0!==i.blendColor&&i.blendColor.setHex(t.blendColor),void 0!==t.blendAlpha&&(i.blendAlpha=t.blendAlpha),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),void 0!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.forceSinglePass&&(i.forceSinglePass=t.forceSinglePass),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const r in t.uniforms){const e=t.uniforms[r];switch(i.uniforms[r]={},e.type){case"t":i.uniforms[r].value=n(e.value);break;case"c":i.uniforms[r].value=(new Color).setHex(e.value);break;case"v2":i.uniforms[r].value=(new Vector2).fromArray(e.value);break;case"v3":i.uniforms[r].value=(new Vector3).fromArray(e.value);break;case"v4":i.uniforms[r].value=(new Vector4).fromArray(e.value);break;case"m3":i.uniforms[r].value=(new Matrix3).fromArray(e.value);break;case"m4":i.uniforms[r].value=(new Matrix4).fromArray(e.value);break;default:i.uniforms[r].value=e.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.glslVersion&&(i.glslVersion=t.glslVersion),void 0!==t.extensions)for(const r in t.extensions)i.extensions[r]=t.extensions[r];if(void 0!==t.lights&&(i.lights=t.lights),void 0!==t.clipping&&(i.clipping=t.clipping),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new Vector2).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularColorMap&&(i.specularColorMap=n(t.specularColorMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapRotation&&i.envMapRotation.fromArray(t.envMapRotation),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Vector2).fromArray(t.clearcoatNormalScale)),void 0!==t.iridescenceMap&&(i.iridescenceMap=n(t.iridescenceMap)),void 0!==t.iridescenceThicknessMap&&(i.iridescenceThicknessMap=n(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),void 0!==t.anisotropyMap&&(i.anisotropyMap=n(t.anisotropyMap)),void 0!==t.sheenColorMap&&(i.sheenColorMap=n(t.sheenColorMap)),void 0!==t.sheenRoughnessMap&&(i.sheenRoughnessMap=n(t.sheenRoughnessMap)),i}setTextures(t){return this.textures=t,this}static createMaterialFromType(t){return new{ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material}[t]}}class LoaderUtils{static decodeText(t){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),"undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let i=0,r=t.length;i<r;i++)e+=String.fromCharCode(t[i]);try{return decodeURIComponent(escape(e))}catch(n){return e}}static extractUrlBase(t){const e=t.lastIndexOf("/");return-1===e?"./":t.slice(0,e+1)}static resolveURL(t,e){return"string"!=typeof t||""===t?"":(/^https?:\/\//i.test(e)&&/^\//.test(t)&&(e=e.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t)}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}toJSON(){const t=super.toJSON();return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}class BufferGeometryLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,function(n){try{e(r.parse(JSON.parse(n)))}catch(s){i?i(s):console.error(s),r.manager.itemError(t)}},n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],s=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers,r=i[e],s=new Uint32Array(r).buffer;return n[e]=s,s}(t,r.buffer),a=getTypedArray(r.type,s),o=new InterleavedBuffer(a,r.stride);return o.uuid=r.uuid,e[i]=o,o}const r=t.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry,s=t.data.index;if(void 0!==s){const t=getTypedArray(s.type,s.array);r.setIndex(new BufferAttribute(t,1))}const a=t.data.attributes;for(const u in a){const e=a[u];let n;if(e.isInterleavedBufferAttribute){const r=i(t.data,e.data);n=new InterleavedBufferAttribute(r,e.itemSize,e.offset,e.normalized)}else{const t=getTypedArray(e.type,e.array);n=new(e.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute)(t,e.itemSize,e.normalized)}void 0!==e.name&&(n.name=e.name),void 0!==e.usage&&n.setUsage(e.usage),r.setAttribute(u,n)}const o=t.data.morphAttributes;if(o)for(const u in o){const e=o[u],n=[];for(let r=0,s=e.length;r<s;r++){const s=e[r];let a;if(s.isInterleavedBufferAttribute){const e=i(t.data,s.data);a=new InterleavedBufferAttribute(e,s.itemSize,s.offset,s.normalized)}else{const t=getTypedArray(s.type,s.array);a=new BufferAttribute(t,s.itemSize,s.normalized)}void 0!==s.name&&(a.name=s.name),n.push(a)}r.morphAttributes[u]=n}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const c=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==c)for(let u=0,h=c.length;u!==h;++u){const t=c[u];r.addGroup(t.start,t.count,t.materialIndex)}const l=t.data.boundingSphere;if(void 0!==l){const t=new Vector3;void 0!==l.center&&t.fromArray(l.center),r.boundingSphere=new Sphere(t,l.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}}class ObjectLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=""===this.path?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,function(n){let s=null;try{s=JSON.parse(n)}catch(o){return void 0!==i&&i(o),void console.error("THREE:ObjectLoader: Can't parse "+t+".",o.message)}const a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())return void 0!==i&&i(new Error("THREE.ObjectLoader: Can't load "+t)),void console.error("THREE.ObjectLoader: Can't load "+t);r.parse(s,e)},n,i)}async loadAsync(t,e){const n=""===this.path?LoaderUtils.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new FileLoader(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const r=await i.loadAsync(t,e),s=JSON.parse(r),a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())throw new Error("THREE.ObjectLoader: Can't load "+t);return await this.parseAsync(s)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),s=this.parseImages(t.images,function(){void 0!==e&&e(c)}),a=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,a),c=this.parseObject(t.object,r,o,a,n),l=this.parseSkeletons(t.skeletons,c);if(this.bindSkeletons(c,l),this.bindLightTargets(c),void 0!==e){let t=!1;for(const e in s)if(s[e].data instanceof HTMLImageElement){t=!0;break}!1===t&&e(c)}return c}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),r=await this.parseImagesAsync(t.images),s=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,s),o=this.parseObject(t.object,i,a,s,e),c=this.parseSkeletons(t.skeletons,o);return this.bindSkeletons(o,c),this.bindLightTargets(o),o}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new Shape).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse(function(t){t.isBone&&(i[t.uuid]=t)}),void 0!==t)for(let r=0,s=t.length;r<s;r++){const e=(new Skeleton).fromJSON(t[r],i);n[e.uuid]=e}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new BufferGeometryLoader;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case"BufferGeometry":case"InstancedBufferGeometry":s=i.parse(a);break;default:a.type in Geometries?s=Geometries[a.type].fromJSON(a,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type "${a.type}"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),void 0!==a.userData&&(s.userData=a.userData),n[a.uuid]=s}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new MaterialLoader;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];void 0===n[s.uuid]&&(n[s.uuid]=r.parse(s)),i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],r=AnimationClip.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this,i={};let r;function s(t){if("string"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),r.load(t,function(){n.manager.itemEnd(t)},void 0,function(){n.manager.itemError(t),n.manager.itemEnd(t)})}(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new LoadingManager(e);r=new ImageLoader(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,r=t.length;e<r;e++){const n=t[e],r=n.url;if(Array.isArray(r)){const t=[];for(let e=0,n=r.length;e<n;e++){const n=s(r[e]);null!==n&&(n instanceof HTMLImageElement?t.push(n):t.push(new DataTexture(n.data,n.width,n.height)))}i[n.uuid]=new Source(t)}else{const t=s(n.url);i[n.uuid]=new Source(t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function r(t){if("string"==typeof t){const n=t,r=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:getTypedArray(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new ImageLoader(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],s=i.url;if(Array.isArray(s)){const t=[];for(let e=0,n=s.length;e<n;e++){const n=s[e],i=await r(n);null!==i&&(i instanceof HTMLImageElement?t.push(i):t.push(new DataTexture(i.data,i.width,i.height)))}n[i.uuid]=new Source(t)}else{const t=await r(i.url);n[i.uuid]=new Source(t)}}}return n}parseTextures(t,e){function n(t,e){return"number"==typeof t?t:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",t),e[t])}const i={};if(void 0!==t)for(let r=0,s=t.length;r<s;r++){const s=t[r];void 0===s.image&&console.warn('THREE.ObjectLoader: No "image" specified for',s.uuid),void 0===e[s.image]&&console.warn("THREE.ObjectLoader: Undefined image",s.image);const a=e[s.image],o=a.data;let c;Array.isArray(o)?(c=new CubeTexture,6===o.length&&(c.needsUpdate=!0)):(c=o&&o.data?new DataTexture:new Texture,o&&(c.needsUpdate=!0)),c.source=a,c.uuid=s.uuid,void 0!==s.name&&(c.name=s.name),void 0!==s.mapping&&(c.mapping=n(s.mapping,TEXTURE_MAPPING)),void 0!==s.channel&&(c.channel=s.channel),void 0!==s.offset&&c.offset.fromArray(s.offset),void 0!==s.repeat&&c.repeat.fromArray(s.repeat),void 0!==s.center&&c.center.fromArray(s.center),void 0!==s.rotation&&(c.rotation=s.rotation),void 0!==s.wrap&&(c.wrapS=n(s.wrap[0],TEXTURE_WRAPPING),c.wrapT=n(s.wrap[1],TEXTURE_WRAPPING)),void 0!==s.format&&(c.format=s.format),void 0!==s.internalFormat&&(c.internalFormat=s.internalFormat),void 0!==s.type&&(c.type=s.type),void 0!==s.colorSpace&&(c.colorSpace=s.colorSpace),void 0!==s.minFilter&&(c.minFilter=n(s.minFilter,TEXTURE_FILTER)),void 0!==s.magFilter&&(c.magFilter=n(s.magFilter,TEXTURE_FILTER)),void 0!==s.anisotropy&&(c.anisotropy=s.anisotropy),void 0!==s.flipY&&(c.flipY=s.flipY),void 0!==s.generateMipmaps&&(c.generateMipmaps=s.generateMipmaps),void 0!==s.premultiplyAlpha&&(c.premultiplyAlpha=s.premultiplyAlpha),void 0!==s.unpackAlignment&&(c.unpackAlignment=s.unpackAlignment),void 0!==s.compareFunction&&(c.compareFunction=s.compareFunction),void 0!==s.userData&&(c.userData=s.userData),i[s.uuid]=c}return i}parseObject(t,e,n,i,r){let s,a,o;function c(t){return void 0===e[t]&&console.warn("THREE.ObjectLoader: Undefined geometry",t),e[t]}function l(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&console.warn("THREE.ObjectLoader: Undefined material",r),e.push(n[r])}return e}return void 0===n[t]&&console.warn("THREE.ObjectLoader: Undefined material",t),n[t]}}function u(t){return void 0===i[t]&&console.warn("THREE.ObjectLoader: Undefined texture",t),i[t]}switch(t.type){case"Scene":s=new Scene,void 0!==t.background&&(Number.isInteger(t.background)?s.background=new Color(t.background):s.background=u(t.background)),void 0!==t.environment&&(s.environment=u(t.environment)),void 0!==t.fog&&("Fog"===t.fog.type?s.fog=new Fog(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(s.fog=new FogExp2(t.fog.color,t.fog.density)),""!==t.fog.name&&(s.fog.name=t.fog.name)),void 0!==t.backgroundBlurriness&&(s.backgroundBlurriness=t.backgroundBlurriness),void 0!==t.backgroundIntensity&&(s.backgroundIntensity=t.backgroundIntensity),void 0!==t.backgroundRotation&&s.backgroundRotation.fromArray(t.backgroundRotation),void 0!==t.environmentIntensity&&(s.environmentIntensity=t.environmentIntensity),void 0!==t.environmentRotation&&s.environmentRotation.fromArray(t.environmentRotation);break;case"PerspectiveCamera":s=new PerspectiveCamera(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"OrthographicCamera":s=new OrthographicCamera(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"AmbientLight":s=new AmbientLight(t.color,t.intensity);break;case"DirectionalLight":s=new DirectionalLight(t.color,t.intensity),s.target=t.target||"";break;case"PointLight":s=new PointLight(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":s=new RectAreaLight(t.color,t.intensity,t.width,t.height);break;case"SpotLight":s=new SpotLight(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay),s.target=t.target||"";break;case"HemisphereLight":s=new HemisphereLight(t.color,t.groundColor,t.intensity);break;case"LightProbe":s=(new LightProbe).fromJSON(t);break;case"SkinnedMesh":a=c(t.geometry),o=l(t.material),s=new SkinnedMesh(a,o),void 0!==t.bindMode&&(s.bindMode=t.bindMode),void 0!==t.bindMatrix&&s.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(s.skeleton=t.skeleton);break;case"Mesh":a=c(t.geometry),o=l(t.material),s=new Mesh(a,o);break;case"InstancedMesh":a=c(t.geometry),o=l(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;s=new InstancedMesh(a,o,e),s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n.array),16),void 0!==i&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(i.array),i.itemSize));break;case"BatchedMesh":a=c(t.geometry),o=l(t.material),s=new BatchedMesh(t.maxInstanceCount,t.maxVertexCount,t.maxIndexCount,o),s.geometry=a,s.perObjectFrustumCulled=t.perObjectFrustumCulled,s.sortObjects=t.sortObjects,s._drawRanges=t.drawRanges,s._reservedRanges=t.reservedRanges,s._visibility=t.visibility,s._active=t.active,s._bounds=t.bounds.map(t=>{const e=new Box3;e.min.fromArray(t.boxMin),e.max.fromArray(t.boxMax);const n=new Sphere;return n.radius=t.sphereRadius,n.center.fromArray(t.sphereCenter),{boxInitialized:t.boxInitialized,box:e,sphereInitialized:t.sphereInitialized,sphere:n}}),s._maxInstanceCount=t.maxInstanceCount,s._maxVertexCount=t.maxVertexCount,s._maxIndexCount=t.maxIndexCount,s._geometryInitialized=t.geometryInitialized,s._geometryCount=t.geometryCount,s._matricesTexture=u(t.matricesTexture.uuid),void 0!==t.colorsTexture&&(s._colorsTexture=u(t.colorsTexture.uuid));break;case"LOD":s=new LOD;break;case"Line":s=new Line(c(t.geometry),l(t.material));break;case"LineLoop":s=new LineLoop(c(t.geometry),l(t.material));break;case"LineSegments":s=new LineSegments(c(t.geometry),l(t.material));break;case"PointCloud":case"Points":s=new Points(c(t.geometry),l(t.material));break;case"Sprite":s=new Sprite(l(t.material));break;case"Group":s=new Group$1;break;case"Bone":s=new Bone;break;default:s=new Object3D}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.up&&s.up.fromArray(t.up),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.intensity&&(s.shadow.intensity=t.shadow.intensity),void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if("LOD"===t.type){void 0!==t.autoUpdate&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=s.getObjectByProperty("uuid",n.object);void 0!==i&&s.addLevel(i,n.distance,n.hysteresis)}}return s}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse(function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",t.skeleton):t.bind(n,t.bindMatrix)}})}bindLightTargets(t){t.traverse(function(e){if(e.isDirectionalLight||e.isSpotLight){const n=e.target,i=t.getObjectByProperty("uuid",n);e.target=void 0!==i?i:new Object3D}})}}const TEXTURE_MAPPING={UVMapping,CubeReflectionMapping,CubeRefractionMapping,EquirectangularReflectionMapping,EquirectangularRefractionMapping,CubeUVReflectionMapping},TEXTURE_WRAPPING={RepeatWrapping,ClampToEdgeWrapping,MirroredRepeatWrapping},TEXTURE_FILTER={NearestFilter,NearestMipmapNearestFilter,NearestMipmapLinearFilter,LinearFilter,LinearMipmapNearestFilter,LinearMipmapLinearFilter};class ImageBitmapLoader extends Loader{constructor(t){super(t),this.isImageBitmapLoader=!0,"undefined"==typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=Cache.get(t);if(void 0!==s)return r.manager.itemStart(t),s.then?void s.then(n=>{e&&e(n),r.manager.itemEnd(t)}).catch(t=>{i&&i(t)}):(setTimeout(function(){e&&e(s),r.manager.itemEnd(t)},0),s);const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader;const o=fetch(t,a).then(function(t){return t.blob()}).then(function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(n){return Cache.add(t,n),e&&e(n),r.manager.itemEnd(t),n}).catch(function(e){i&&i(e),Cache.remove(t),r.manager.itemError(t),r.manager.itemEnd(t)});Cache.add(t,o),r.manager.itemStart(t)}}let _context,AudioContext$1=class{static getContext(){return void 0===_context&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(t){_context=t}};class AudioLoader extends Loader{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new FileLoader(this.manager);function a(e){i?i(e):console.error(e),r.manager.itemError(t)}s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,function(t){try{const n=t.slice(0);AudioContext$1.getContext().decodeAudioData(n,function(t){e(t)}).catch(a)}catch(n){a(n)}},n,i)}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep,_projectionMatrix.copy(t.projectionMatrix);const n=e.eyeSep/2,i=n*e.near/e.focus,r=e.near*Math.tan(DEG2RAD$1*e.fov*.5)/e.zoom;let s,a;_eyeLeft.elements[12]=-n,_eyeRight.elements[12]=n,s=-r*e.aspect+i,a=r*e.aspect+i,_projectionMatrix.elements[0]=2*e.near/(a-s),_projectionMatrix.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(_projectionMatrix),s=-r*e.aspect-i,a=r*e.aspect-i,_projectionMatrix.elements[0]=2*e.near/(a-s),_projectionMatrix.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(_eyeRight)}}class Clock{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now$1(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=now$1();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function now$1(){return("undefined"==typeof performance?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext$1.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(_position$1.x,t),e.positionY.linearRampToValueAtTime(_position$1.y,t),e.positionZ.linearRampToValueAtTime(_position$1.z,t),e.forwardX.linearRampToValueAtTime(_orientation$1.x,t),e.forwardY.linearRampToValueAtTime(_orientation$1.y,t),e.forwardZ.linearRampToValueAtTime(_orientation$1.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(_position$1.x,_position$1.y,_position$1.z),e.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,n.x,n.y,n.z)}}let Audio$1=class extends Object3D{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,null!==this.source&&(this.source.stop(),this.source.onended=null),this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(!1!==this._connected){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){return this.detune=t,!0===this.isPlaying&&void 0!==this.source.detune&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}};const _position=new Vector3,_quaternion=new Quaternion,_scale=new Vector3,_orientation=new Vector3;class PositionalAudio extends Audio$1{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}connect(){super.connect(),this.panner.connect(this.gain)}disconnect(){super.disconnect(),this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(_position,_quaternion,_scale),_orientation.set(0,0,1).applyQuaternion(_quaternion);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(_position.x,t),e.positionY.linearRampToValueAtTime(_position.y,t),e.positionZ.linearRampToValueAtTime(_position.z,t),e.orientationX.linearRampToValueAtTime(_orientation.x,t),e.orientationY.linearRampToValueAtTime(_orientation.y,t),e.orientationZ.linearRampToValueAtTime(_orientation.z,t)}else e.setPosition(_position.x,_position.y,_position.z),e.setOrientation(_orientation.x,_orientation.y,_orientation.z)}}class AudioAnalyser{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class PropertyMixer{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case"quaternion":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let o=e,c=e+e;o!==c;++o)if(n[o]!==n[o+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let r=n,s=i;r!==s;++r)e[r]=e[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let s=0;s!==r;++s)t[e+s]=t[n+s]}_slerp(t,e,n,i){Quaternion.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Quaternion.multiplyQuaternionsFlat(t,s,t,e,t,n),Quaternion.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones","map"];class Composite{constructor(t,e,n){const i=n||PropertyBinding.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class PropertyBinding{constructor(t,e,n){this.path=e,this.parsedPath=n||PropertyBinding.parseTrackName(e),this.node=PropertyBinding.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new PropertyBinding.Composite(t,e,n):new PropertyBinding(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(t){const e=_trackRe.exec(t);if(null===e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==_supportedObjectNames.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(void 0===e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=PropertyBinding.findNode(this.rootNode,e.nodeName),this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;case"map":if("map"in t){t=t.map;break}if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.map)return void console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);t=t.material.map;break;default:if(void 0===t[n])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void console.error("THREE.PropertyBinding: Trying to update property for track: "+n+"."+i+" but it wasn't found.",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite,PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray],PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=!0,this.uuid=generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let n=0,i=arguments.length;n!==i;++n)t[arguments[n].uuid]=n;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,c=this.nCachedObjects_;for(let l=0,u=arguments.length;l!==u;++l){const u=arguments[l],h=u.uuid;let d=e[h];if(void 0===d){d=o++,e[h]=d,t.push(u);for(let t=0,e=s;t!==e;++t)r[t].push(new PropertyBinding(u,n[t],i[t]))}else if(d<c){a=t[d];const o=--c,l=t[o];e[l.uuid]=d,t[d]=l,e[h]=o,t[o]=u;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new PropertyBinding(u,n[t],i[t])),e[o]=a}}else t[d]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=c}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,c=e[o];if(void 0!==c&&c>=r){const s=r++,l=t[s];e[l.uuid]=c,t[c]=l,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[c];e[c]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,c=e[o];if(void 0!==c)if(delete e[o],c<r){const a=--r,o=t[a],l=--s,u=t[l];e[o.uuid]=c,t[c]=o,e[u.uuid]=a,t[a]=u,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[l];e[c]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=c),t[c]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[c]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,c=o.length,l=this.nCachedObjects_,u=new Array(c);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(u);for(let h=l,d=o.length;h!==d;++h){const n=o[h];u[h]=new PropertyBinding(n,t,e)}return u}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}class AnimationAction{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let c=0;c!==s;++c){const t=r[c].createInterpolant(null);a[c]=t,t.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,c=a.sampleValues;return o[0]=r,o[1]=r+n,c[0]=t/s,c[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;i<0||0===n?e=0:(this._startTime=null,e=n*i)}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;if(this.blendMode===AdditiveAnimationBlendMode)for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);else for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=n===LoopPingPong;if(0===t)return-1===r||!s||1&~r?i:e-i;if(n===LoopOnce){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&!(1&~r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=ZeroSlopeEnding,i.endingEnd=ZeroSlopeEnding):(i.endingStart=t?this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding,i.endingEnd=e?this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,c=this._bindingsByRootAndName;let l=c[o];void 0===l&&(l={},c[o]=l);for(let u=0;u!==r;++u){const t=i[u],r=t.name;let c=l[r];if(void 0!==c)++c.referenceCount,s[u]=c;else{if(c=s[u],void 0!==c){null===c._cacheIndex&&(++c.referenceCount,this._addInactiveBinding(c,o,r));continue}const i=e&&e._propertyBindings[u].binding.parsedPath;c=new PropertyMixer(PropertyBinding.create(n,r,i),t.ValueTypeName,t.getValueSize()),++c.referenceCount,this._addInactiveBinding(c,o,r),s[u]=c}a[u].resultBuffer=c.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0===--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,c=o[o.length-1],l=t._byClipCacheIndex;c._byClipCacheIndex=l,o[l]=c,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let n=0,i=e.length;n!==i;++n){const t=e[n];0===--t.referenceCount&&this._removeInactiveBinding(t)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],c=t._cacheIndex;o._cacheIndex=c,e[c]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,_controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s="string"==typeof t?AnimationClip.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let c=null;if(void 0===n&&(n=null!==s?s.blendMode:NormalAnimationBlendMode),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;c=o.knownActions[0],null===s&&(s=c._clip)}if(null===s)return null;const l=new AnimationAction(this,s,e,n);return this._bindAction(l,c),this._addInactiveAction(l,a,r),l}existingAction(t,e){const n=e||this._root,i=n.uuid,r="string"==typeof t?AnimationClip.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let c=0;c!==n;++c){e[c]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let c=0;c!==o;++c)a[c].apply(s);return this}setTime(t){this.time=0;for(let e=0;e<this._actions.length;e++)this._actions[e].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const r in n){const t=n[r].actionByRoot[e];void 0!==t&&(this._deactivateAction(t),this._removeInactiveAction(t))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const r in i){const t=i[r];t.restoreOriginalState(),this._removeInactiveBinding(t)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}class Uniform{constructor(t){this.value=t}clone(){return new Uniform(void 0===this.value.clone?this.value:this.value.clone())}}let _id=0;class UniformsGroup extends EventDispatcher{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,"id",{value:_id++}),this.name="",this.usage=StaticDrawUsage,this.uniforms=[]}add(t){return this.uniforms.push(t),this}remove(t){const e=this.uniforms.indexOf(t);return-1!==e&&this.uniforms.splice(e,1),this}setName(t){return this.name=t,this}setUsage(t){return this.usage=t,this}dispose(){return this.dispatchEvent({type:"dispose"}),this}copy(t){this.name=t.name,this.usage=t.usage;const e=t.uniforms;this.uniforms.length=0;for(let n=0,i=e.length;n<i;n++){const t=Array.isArray(e[n])?e[n]:[e[n]];for(let e=0;e<t.length;e++)this.uniforms.push(t[e].clone())}return this}clone(){return(new this.constructor).copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(t,e,n=1){super(t,e),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}class GLBufferAttribute{constructor(t,e,n,i,r){this.isGLBufferAttribute=!0,this.name="",this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}const _matrix=new Matrix4;class Raycaster{constructor(t,e,n=0,i=1/0){this.ray=new Ray(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new Layers,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type: "+e.type)}setFromXRController(t){return _matrix.identity().extractRotation(t.matrixWorld),this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(_matrix),this}intersectObject(t,e=!0,n=[]){return intersect(t,this,n,e),n.sort(ascSort),n}intersectObjects(t,e=!0,n=[]){for(let i=0,r=t.length;i<r;i++)intersect(t[i],this,n,e);return n.sort(ascSort),n}}function ascSort(t,e){return t.distance-e.distance}function intersect(t,e,n,i){let r=!0;if(t.layers.test(e.layers)){!1===t.raycast(e,n)&&(r=!1)}if(!0===r&&!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)intersect(i[t],e,n,!0)}}class Spherical{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(clamp$1(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(t=1,e=0,n=0){return this.radius=t,this.theta=e,this.y=n,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}clone(){return(new this.constructor).copy(this)}}const _vector$4=new Vector2;class Box2{constructor(t=new Vector2(1/0,1/0),e=new Vector2(-1/0,-1/0)){this.isBox2=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=_vector$4.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,_vector$4).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(t=new Vector3,e=new Vector3){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){_startP.subVectors(t,this.start),_startEnd.subVectors(this.end,this.start);const n=_startEnd.dot(_startEnd);let i=_startEnd.dot(_startP)/n;return e&&(i=clamp$1(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(t,e){super(),this.light=t,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const n=new BufferGeometry,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,a=1,o=32;s<o;s++,a++){const t=s/o*Math.PI*2,e=a/o*Math.PI*2;i.push(Math.cos(t),Math.sin(t),1,Math.cos(e),Math.sin(e),1)}n.setAttribute("position",new Float32BufferAttribute(i,3));const r=new LineBasicMaterial({fog:!1,toneMapped:!1});this.cone=new LineSegments(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),_vector$3.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(_vector$3),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const _vector$2=new Vector3,_boneMatrix=new Matrix4,_matrixWorldInv=new Matrix4;class SkeletonHelper extends LineSegments{constructor(t){const e=getBoneList(t),n=new BufferGeometry,i=[],r=[],s=new Color(0,0,1),a=new Color(0,1,0);for(let o=0;o<e.length;o++){const t=e[o];t.parent&&t.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute("position",new Float32BufferAttribute(i,3)),n.setAttribute("color",new Float32BufferAttribute(r,3));super(n,new LineBasicMaterial({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.isSkeletonHelper=!0,this.type="SkeletonHelper",this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute("position");_matrixWorldInv.copy(this.root.matrixWorld).invert();for(let r=0,s=0;r<e.length;r++){const t=e[r];t.parent&&t.parent.isBone&&(_boneMatrix.multiplyMatrices(_matrixWorldInv,t.matrixWorld),_vector$2.setFromMatrixPosition(_boneMatrix),i.setXYZ(s,_vector$2.x,_vector$2.y,_vector$2.z),_boneMatrix.multiplyMatrices(_matrixWorldInv,t.parent.matrixWorld),_vector$2.setFromMatrixPosition(_boneMatrix),i.setXYZ(s+1,_vector$2.x,_vector$2.y,_vector$2.z),s+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(t)}dispose(){this.geometry.dispose(),this.material.dispose()}}function getBoneList(t){const e=[];!0===t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,getBoneList(t.children[n]));return e}class PointLightHelper extends Mesh{constructor(t,e,n){super(new SphereGeometry(e,4,2),new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const _vector$1$1=new Vector3,_color1=new Color,_color2=new Color;class HemisphereLightHelper extends Object3D{constructor(t,e,n){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="HemisphereLightHelper";const i=new OctahedronGeometry(e);i.rotateY(.5*Math.PI),this.material=new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new BufferAttribute(s,3)),this.add(new Mesh(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");_color1.copy(this.light.color),_color2.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?_color1:_color2;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}this.light.updateWorldMatrix(!0,!1),t.lookAt(_vector$1$1.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(t=10,e=10,n=4473924,i=8947848){n=new Color(n),i=new Color(i);const r=e/2,s=t/e,a=t/2,o=[],c=[];for(let u=0,h=0,d=-a;u<=e;u++,d+=s){o.push(-a,0,d,a,0,d),o.push(d,0,-a,d,0,a);const t=u===r?n:i;t.toArray(c,h),h+=3,t.toArray(c,h),h+=3,t.toArray(c,h),h+=3,t.toArray(c,h),h+=3}const l=new BufferGeometry;l.setAttribute("position",new Float32BufferAttribute(o,3)),l.setAttribute("color",new Float32BufferAttribute(c,3));super(l,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}class PolarGridHelper extends LineSegments{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new Color(r),s=new Color(s);const a=[],o=[];if(e>1)for(let l=0;l<e;l++){const n=l/e*(2*Math.PI),i=Math.sin(n)*t,c=Math.cos(n)*t;a.push(0,0,0),a.push(i,0,c);const u=1&l?r:s;o.push(u.r,u.g,u.b),o.push(u.r,u.g,u.b)}for(let l=0;l<n;l++){const e=1&l?r:s,c=t-t/n*l;for(let t=0;t<i;t++){let n=t/i*(2*Math.PI),r=Math.sin(n)*c,s=Math.cos(n)*c;a.push(r,0,s),o.push(e.r,e.g,e.b),n=(t+1)/i*(2*Math.PI),r=Math.sin(n)*c,s=Math.cos(n)*c,a.push(r,0,s),o.push(e.r,e.g,e.b)}}const c=new BufferGeometry;c.setAttribute("position",new Float32BufferAttribute(a,3)),c.setAttribute("color",new Float32BufferAttribute(o,3));super(c,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="PolarGridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}const _v1=new Vector3,_v2=new Vector3,_v3=new Vector3;class DirectionalLightHelper extends Object3D{constructor(t,e,n){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,this.type="DirectionalLightHelper",void 0===e&&(e=1);let i=new BufferGeometry;i.setAttribute("position",new Float32BufferAttribute([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new LineBasicMaterial({fog:!1,toneMapped:!1});this.lightPlane=new Line(i,r),this.add(this.lightPlane),i=new BufferGeometry,i.setAttribute("position",new Float32BufferAttribute([0,0,0,0,0,1],3)),this.targetLine=new Line(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),_v1.setFromMatrixPosition(this.light.matrixWorld),_v2.setFromMatrixPosition(this.light.target.matrixWorld),_v3.subVectors(_v2,_v1),this.lightPlane.lookAt(_v2),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(_v2),this.targetLine.scale.z=_v3.length()}}const _vector$d=new Vector3,_camera$1=new Camera;class CameraHelper extends LineSegments{constructor(t){const e=new BufferGeometry,n=new LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={};function a(t,e){o(t),o(e)}function o(t){i.push(0,0,0),r.push(0,0,0),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),e.setAttribute("position",new Float32BufferAttribute(i,3)),e.setAttribute("color",new Float32BufferAttribute(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const c=new Color(16755200),l=new Color(16711680),u=new Color(43775),h=new Color(16777215),d=new Color(3355443);this.setColors(c,l,u,h,d)}setColors(t,e,n,i,r){const s=this.geometry.getAttribute("color");s.setXYZ(0,t.r,t.g,t.b),s.setXYZ(1,t.r,t.g,t.b),s.setXYZ(2,t.r,t.g,t.b),s.setXYZ(3,t.r,t.g,t.b),s.setXYZ(4,t.r,t.g,t.b),s.setXYZ(5,t.r,t.g,t.b),s.setXYZ(6,t.r,t.g,t.b),s.setXYZ(7,t.r,t.g,t.b),s.setXYZ(8,t.r,t.g,t.b),s.setXYZ(9,t.r,t.g,t.b),s.setXYZ(10,t.r,t.g,t.b),s.setXYZ(11,t.r,t.g,t.b),s.setXYZ(12,t.r,t.g,t.b),s.setXYZ(13,t.r,t.g,t.b),s.setXYZ(14,t.r,t.g,t.b),s.setXYZ(15,t.r,t.g,t.b),s.setXYZ(16,t.r,t.g,t.b),s.setXYZ(17,t.r,t.g,t.b),s.setXYZ(18,t.r,t.g,t.b),s.setXYZ(19,t.r,t.g,t.b),s.setXYZ(20,t.r,t.g,t.b),s.setXYZ(21,t.r,t.g,t.b),s.setXYZ(22,t.r,t.g,t.b),s.setXYZ(23,t.r,t.g,t.b),s.setXYZ(24,e.r,e.g,e.b),s.setXYZ(25,e.r,e.g,e.b),s.setXYZ(26,e.r,e.g,e.b),s.setXYZ(27,e.r,e.g,e.b),s.setXYZ(28,e.r,e.g,e.b),s.setXYZ(29,e.r,e.g,e.b),s.setXYZ(30,e.r,e.g,e.b),s.setXYZ(31,e.r,e.g,e.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,i.r,i.g,i.b),s.setXYZ(39,i.r,i.g,i.b),s.setXYZ(40,r.r,r.g,r.b),s.setXYZ(41,r.r,r.g,r.b),s.setXYZ(42,r.r,r.g,r.b),s.setXYZ(43,r.r,r.g,r.b),s.setXYZ(44,r.r,r.g,r.b),s.setXYZ(45,r.r,r.g,r.b),s.setXYZ(46,r.r,r.g,r.b),s.setXYZ(47,r.r,r.g,r.b),s.setXYZ(48,r.r,r.g,r.b),s.setXYZ(49,r.r,r.g,r.b),s.needsUpdate=!0}update(){const t=this.geometry,e=this.pointMap;_camera$1.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),setPoint("c",e,t,_camera$1,0,0,-1),setPoint("t",e,t,_camera$1,0,0,1),setPoint("n1",e,t,_camera$1,-1,-1,-1),setPoint("n2",e,t,_camera$1,1,-1,-1),setPoint("n3",e,t,_camera$1,-1,1,-1),setPoint("n4",e,t,_camera$1,1,1,-1),setPoint("f1",e,t,_camera$1,-1,-1,1),setPoint("f2",e,t,_camera$1,1,-1,1),setPoint("f3",e,t,_camera$1,-1,1,1),setPoint("f4",e,t,_camera$1,1,1,1),setPoint("u1",e,t,_camera$1,.7,1.1,-1),setPoint("u2",e,t,_camera$1,-.7,1.1,-1),setPoint("u3",e,t,_camera$1,0,2,-1),setPoint("cf1",e,t,_camera$1,-1,0,1),setPoint("cf2",e,t,_camera$1,1,0,1),setPoint("cf3",e,t,_camera$1,0,-1,1),setPoint("cf4",e,t,_camera$1,0,1,1),setPoint("cn1",e,t,_camera$1,-1,0,-1),setPoint("cn2",e,t,_camera$1,1,0,-1),setPoint("cn3",e,t,_camera$1,0,-1,-1),setPoint("cn4",e,t,_camera$1,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}}function setPoint(t,e,n,i,r,s,a){_vector$d.set(r,s,a).unproject(i);const o=e[t];if(void 0!==o){const t=n.getAttribute("position");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],_vector$d.x,_vector$d.y,_vector$d.z)}}const _box$5=new Box3;class BoxHelper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new BufferGeometry;r.setIndex(new BufferAttribute(n,1)),r.setAttribute("position",new BufferAttribute(i,3)),super(r,new LineBasicMaterial({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&_box$5.setFromObject(this.object),_box$5.isEmpty())return;const e=_box$5.min,n=_box$5.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Box3Helper extends LineSegments{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new BufferGeometry;i.setIndex(new BufferAttribute(n,1)),i.setAttribute("position",new Float32BufferAttribute([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new LineBasicMaterial({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}}class PlaneHelper extends Line{constructor(t,e=1,n=16776960){const i=n,r=new BufferGeometry;r.setAttribute("position",new Float32BufferAttribute([1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),r.computeBoundingSphere(),super(r,new LineBasicMaterial({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const s=new BufferGeometry;s.setAttribute("position",new Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),s.computeBoundingSphere(),this.add(new Mesh(s,new MeshBasicMaterial({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(t)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}const _axis=new Vector3;let _lineGeometry,_coneGeometry;class ArrowHelper extends Object3D{constructor(t=new Vector3(0,0,1),e=new Vector3(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===_lineGeometry&&(_lineGeometry=new BufferGeometry,_lineGeometry.setAttribute("position",new Float32BufferAttribute([0,0,0,0,1,0],3)),_coneGeometry=new CylinderGeometry(0,.5,1,5,1),_coneGeometry.translate(0,-.5,0)),this.position.copy(e),this.line=new Line(_lineGeometry,new LineBasicMaterial({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Mesh(_coneGeometry,new MeshBasicMaterial({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(_axis,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class AxesHelper extends LineSegments{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new BufferGeometry;n.setAttribute("position",new Float32BufferAttribute(e,3)),n.setAttribute("color",new Float32BufferAttribute([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new Color,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,c=a.y-n.y;if(Math.abs(c)>Number.EPSILON){if(c<0&&(n=e[s],o=-o,a=e[r],c=-c),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=c*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const n=ShapeUtils.isClockWise,i=this.subPaths;if(0===i.length)return[];let r,s,a;const o=[];if(1===i.length)return s=i[0],a=new Shape,a.curves=s.curves,o.push(a),o;let c=!n(i[0].getPoints());c=t?!c:c;const l=[],u=[];let h,d,p=[],f=0;u[f]=void 0,p[f]=[];for(let m=0,g=i.length;m<g;m++)s=i[m],h=s.getPoints(),r=n(h),r=t?!r:r,r?(!c&&u[f]&&f++,u[f]={s:new Shape,p:h},u[f].s.curves=s.curves,c&&f++,p[f]=[]):p[f].push({h:s,p:h[0]});if(!u[0])return function(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Shape;r.curves=i.curves,e.push(r)}return e}(i);if(u.length>1){let t=!1,n=0;for(let e=0,i=u.length;e<i;e++)l[e]=[];for(let i=0,r=u.length;i<r;i++){const r=p[i];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<u.length;r++)e(a.p,u[r].p)&&(i!==r&&n++,o?(o=!1,l[r].push(a)):t=!0);o&&l[i].push(a)}}n>0&&!1===t&&(p=l)}for(let m=0,g=u.length;m<g;m++){a=u[m].s,o.push(a),d=p[m];for(let t=0,e=d.length;t<e;t++)a.holes.push(d[t].h)}return o}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(t=1,e=1,n=1,i={}){console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'),super(t,e,{...i,count:n}),this.isWebGLMultipleRenderTargets=!0}get texture(){return this.textures}}"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=REVISION);const l$j=Object.freeze(Object.defineProperty({__proto__:null,ACESFilmicToneMapping,AddEquation,AddOperation,AdditiveAnimationBlendMode,AdditiveBlending,AgXToneMapping,AlphaFormat,AlwaysCompare,AlwaysDepth,AlwaysStencilFunc,AmbientLight,AnimationAction,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,AttachedBindMode,Audio:Audio$1,AudioAnalyser,AudioContext:AudioContext$1,AudioListener,AudioLoader,AxesHelper,BackSide,BasicDepthPacking,BasicShadowMap,BatchedMesh,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,ByteType,Cache,Camera,CameraHelper,CanvasTexture,CapsuleGeometry,CatmullRomCurve3,CineonToneMapping,CircleGeometry,ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,ColorManagement,CompressedArrayTexture,CompressedCubeTexture,CompressedTexture,CompressedTextureLoader,ConeGeometry,ConstantAlphaFactor,ConstantColorFactor,CubeCamera,CubeReflectionMapping,CubeRefractionMapping,CubeTexture,CubeTextureLoader,CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,CullFaceBack,CullFaceFront,CullFaceFrontBack,CullFaceNone,Curve,CurvePath,CustomBlending,CustomToneMapping,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTextureLoader,DataUtils,DecrementStencilOp,DecrementWrapStencilOp,DefaultLoadingManager,DepthFormat,DepthStencilFormat,DepthTexture,DetachedBindMode,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,DisplayP3ColorSpace,DodecahedronGeometry,DoubleSide,DstAlphaFactor,DstColorFactor,DynamicCopyUsage,DynamicDrawUsage,DynamicReadUsage,EdgesGeometry,EllipseCurve,EqualCompare,EqualDepth,EqualStencilFunc,EquirectangularReflectionMapping,EquirectangularRefractionMapping,Euler,EventDispatcher,ExtrudeGeometry,FileLoader,Float16BufferAttribute,Float32BufferAttribute,FloatType,Fog,FogExp2,FramebufferTexture,FrontSide,Frustum,GLBufferAttribute,GLSL1,GLSL3,GreaterCompare,GreaterDepth,GreaterEqualCompare,GreaterEqualDepth,GreaterEqualStencilFunc,GreaterStencilFunc,GridHelper,Group:Group$1,HalfFloatType,HemisphereLight,HemisphereLightHelper,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,IncrementStencilOp,IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,InterpolateDiscrete,InterpolateLinear,InterpolateSmooth,InvertStencilOp,KeepStencilOp,KeyframeTrack,LOD,LatheGeometry,Layers,LessCompare,LessDepth,LessEqualCompare,LessEqualDepth,LessEqualStencilFunc,LessStencilFunc,Light,LightProbe,Line,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,LinearDisplayP3ColorSpace,LinearFilter,LinearInterpolant,LinearMipMapLinearFilter,LinearMipMapNearestFilter,LinearMipmapLinearFilter,LinearMipmapNearestFilter,LinearSRGBColorSpace,LinearToneMapping,LinearTransfer,Loader,LoaderUtils,LoadingManager,LoopOnce,LoopPingPong,LoopRepeat,LuminanceAlphaFormat,LuminanceFormat,MOUSE,Material,MaterialLoader,MathUtils,Matrix3,Matrix4,MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,MinEquation,MirroredRepeatWrapping,MixOperation,MultiplyBlending,MultiplyOperation,NearestFilter,NearestMipMapLinearFilter,NearestMipMapNearestFilter,NearestMipmapLinearFilter,NearestMipmapNearestFilter,NeutralToneMapping,NeverCompare,NeverDepth,NeverStencilFunc,NoBlending,NoColorSpace,NoToneMapping,NormalAnimationBlendMode,NormalBlending,NotEqualCompare,NotEqualDepth,NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,ObjectSpaceNormalMap,OctahedronGeometry,OneFactor,OneMinusConstantAlphaFactor,OneMinusConstantColorFactor,OneMinusDstAlphaFactor,OneMinusDstColorFactor,OneMinusSrcAlphaFactor,OneMinusSrcColorFactor,OrthographicCamera,P3Primaries,PCFShadowMap,PCFSoftShadowMap,PMREMGenerator,Path,PerspectiveCamera,Plane,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,RED_GREEN_RGTC2_Format,RED_RGTC1_Format,REVISION,RGBADepthPacking,RGBAFormat,RGBAIntegerFormat,RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format,RGBA_BPTC_Format,RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format,RGBFormat,RGBIntegerFormat,RGB_BPTC_SIGNED_Format,RGB_BPTC_UNSIGNED_Format,RGB_ETC1_Format,RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format,RGFormat,RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,Rec709Primaries,RectAreaLight,RedFormat,RedIntegerFormat,ReinhardToneMapping,RenderTarget,RepeatWrapping,ReplaceStencilOp,ReverseSubtractEquation,RingGeometry,SIGNED_RED_GREEN_RGTC2_Format,SIGNED_RED_RGTC1_Format,SRGBColorSpace,SRGBTransfer,Scene,ShaderChunk,ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeGeometry,ShapePath,ShapeUtils,ShortType,Skeleton,SkeletonHelper,SkinnedMesh,Source,Sphere,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,SrcAlphaFactor,SrcAlphaSaturateFactor,SrcColorFactor,StaticCopyUsage,StaticDrawUsage,StaticReadUsage,StereoCamera,StreamCopyUsage,StreamDrawUsage,StreamReadUsage,StringKeyframeTrack,SubtractEquation,SubtractiveBlending,TOUCH,TangentSpaceNormalMap,TetrahedronGeometry,Texture,TextureLoader,TextureUtils,TorusGeometry,TorusKnotGeometry,Triangle,TriangleFanDrawMode,TriangleStripDrawMode,TrianglesDrawMode,TubeGeometry,UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,UniformsLib,UniformsUtils,UnsignedByteType,UnsignedInt248Type,UnsignedInt5999Type,UnsignedIntType,UnsignedShort4444Type,UnsignedShort5551Type,UnsignedShortType,VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL3DRenderTarget,WebGLArrayRenderTarget,WebGLCoordinateSystem,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLRenderTarget,WebGLRenderer,WebGLUtils,WebGPUCoordinateSystem,WireframeGeometry,WrapAroundEnding,ZeroCurvatureEnding,ZeroFactor,ZeroSlopeEnding,ZeroStencilOp,createCanvasElement},Symbol.toStringTag,{value:"Module"}));function m$M(t,e){return t-=327,M$L()[t]}var H$d=m$M;function M$L(){var t=["1|0|4|3|2","slice","dot","sqrt","BLzVJ","isArray","1894452VcqUSq","dispatchEvent","defineProperty","prototype","xIigU","children","angleTo","lxpww","remove","material","48485OqLDet","lengthSq","4868McXhpc","colorSpace","8339463EQGmKH","Scene","concat","_colorSpace","type","disposeBoundsTree","parent","42988YLfTVe","clamp","33HFkSWT","dispose","forEach","__colorSpace","542296CPeMyT","Jpdpg","WqAzh","geometry","acos","EPCyn","reduce","computeBoundsTree","365paJxSa","_inScene","JrlFb","aWcrx","map","618772GhafQA","IfGVS","split","flat","DEFAULT_UP"];return(M$L=function(){return t})()}!function(t,e){for(var n=m$M,i=t();;)try{if(393288===-parseInt(n(342))/1+-parseInt(n(353))/2*(parseInt(n(355))/3)+parseInt(n(344))/4*(-parseInt(n(367))/5)+-parseInt(n(332))/6+parseInt(n(372))/7+parseInt(n(359))/8+parseInt(n(346))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$L),Object3D[H$d(376)]=Object3D[H$d(335)].up=new Vector3(0,0,1),BufferGeometry[H$d(335)][H$d(366)]=()=>{},BufferGeometry[H$d(335)][H$d(351)]=()=>{},Object3D[H$d(335)][H$d(356)]=function(){for(var t=H$d,e={Jpdpg:t(377),JrlFb:t(356),WqAzh:function(t,e){return t instanceof e}},n=e[t(360)][t(374)]("|"),i=0;;){switch(n[i++]){case"0":this[t(362)]&&this[t(362)][t(356)]();continue;case"1":this[t(352)]&&this[t(352)][t(340)](this);continue;case"2":this[t(333)]({type:e[t(369)]});continue;case"3":this[t(337)][t(327)]()[t(357)](e=>e[t(356)]&&e[t(356)]());continue;case"4":this[t(341)]&&(e[t(361)](this[t(341)],Array)?this[t(341)][t(357)](e=>{var n=t;e[n(371)]&&e[n(371)][n(356)](),e[n(356)]()}):(this[t(341)][t(371)]&&this[t(341)][t(371)][t(356)](),this[t(341)][t(356)]()));continue}break}},Object[H$d(334)](Object3D[H$d(335)],H$d(368),{get(){var t,e,n=H$d,i={EPCyn:function(t,e){return t===e},BLzVJ:n(347)};return i[n(364)](this[n(350)],i[n(330)])||i[n(364)](null==(t=this[n(352)])?void 0:t[n(350)],i[n(330)])||(null==(e=this[n(352)])?void 0:e[n(368)])}}),Object[H$d(334)](Texture[H$d(335)],H$d(345),{get(){var t=H$d;return{aWcrx:function(t,e){return t!==e}}[t(370)](this[t(358)],void 0)?this[t(358)]:this[t(349)]||SRGBColorSpace},set(t){var e=H$d;this[e(349)]={xIigU:function(t,e){return t||e}}[e(336)](t,SRGBColorSpace)}}),Vector2[H$d(335)][H$d(338)]=function(t){var e=H$d,n={IfGVS:function(t,e){return t/e},lxpww:function(t,e){return t*e}},i=n[e(373)](this[e(328)](t),Math[e(329)](n[e(339)](this[e(343)](),t[e(343)]())));return Math[e(363)](MathUtils[e(354)](i,-1,1))},Array[H$d(335)][H$d(375)]||(Array[H$d(335)][H$d(375)]=function(){var t=H$d;return this[t(365)]((e,n)=>e[t(348)](Array[t(331)](n)?n[t(375)]():n),[])});var Easing=Object.freeze({Linear:Object.freeze({None:function(t){return t},In:function(t){return this.None(t)},Out:function(t){return this.None(t)},InOut:function(t){return this.None(t)}}),Quadratic:Object.freeze({In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}}),Cubic:Object.freeze({In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}}),Quartic:Object.freeze({In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}}),Quintic:Object.freeze({In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}}),Sinusoidal:Object.freeze({In:function(t){return 1-Math.sin((1-t)*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.sin(Math.PI*(.5-t)))}}),Exponential:Object.freeze({In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}}),Circular:Object.freeze({In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}}),Elastic:Object.freeze({In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}}),Back:Object.freeze({In:function(t){var e=1.70158;return 1===t?1:t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return 0===t?0:--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}}),Bounce:Object.freeze({In:function(t){return 1-Easing.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*Easing.Bounce.In(2*t):.5*Easing.Bounce.Out(2*t-1)+.5}}),generatePow:function(t){return void 0===t&&(t=4),t=(t=t<Number.EPSILON?Number.EPSILON:t)>1e4?1e4:t,{In:function(e){return Math.pow(e,t)},Out:function(e){return 1-Math.pow(1-e,t)},InOut:function(e){return e<.5?Math.pow(2*e,t)/2:(1-Math.pow(2-2*e,t))/2+.5}}}}),now=function(){return performance.now()},Group=function(){function t(){this._tweens={},this._tweensAddedDuringUpdate={}}return t.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(e){return t._tweens[e]})},t.prototype.removeAll=function(){this._tweens={}},t.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},t.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},t.prototype.update=function(t,e){void 0===t&&(t=now()),void 0===e&&(e=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<n.length;i++){var r=this._tweens[n[i]],s=!e;r&&!1===r.update(t,s)&&!e&&delete this._tweens[n[i]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},t}(),Interpolation={Linear:function(t,e){var n=t.length-1,i=n*e,r=Math.floor(i),s=Interpolation.Utils.Linear;return e<0?s(t[0],t[1],i):e>1?s(t[n],t[n-1],n-i):s(t[r],t[r+1>n?n:r+1],i-r)},Bezier:function(t,e){for(var n=0,i=t.length-1,r=Math.pow,s=Interpolation.Utils.Bernstein,a=0;a<=i;a++)n+=r(1-e,i-a)*r(e,a)*t[a]*s(i,a);return n},CatmullRom:function(t,e){var n=t.length-1,i=n*e,r=Math.floor(i),s=Interpolation.Utils.CatmullRom;return t[0]===t[n]?(e<0&&(r=Math.floor(i=n*(1+e))),s(t[(r-1+n)%n],t[r],t[(r+1)%n],t[(r+2)%n],i-r)):e<0?t[0]-(s(t[0],t[0],t[1],t[1],-i)-t[0]):e>1?t[n]-(s(t[n],t[n],t[n-1],t[n-1],i-n)-t[n]):s(t[r?r-1:0],t[r],t[n<r+1?n:r+1],t[n<r+2?n:r+2],i-r)},Utils:{Linear:function(t,e,n){return(e-t)*n+t},Bernstein:function(t,e){var n=Interpolation.Utils.Factorial;return n(t)/n(e)/n(t-e)},Factorial:function(){var t=[1];return function(e){var n=1;if(t[e])return t[e];for(var i=e;i>1;i--)n*=i;return t[e]=n,n}}(),CatmullRom:function(t,e,n,i,r){var s=.5*(n-t),a=.5*(i-e),o=r*r;return(2*e-2*n+s+a)*(r*o)+(-3*e+3*n-2*s-a)*o+s*r+e}}},Sequence=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),mainGroup=new Group,Tween=function(){function t(t,e){void 0===e&&(e=mainGroup),this._object=t,this._group=e,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Easing.Linear.None,this._interpolationFunction=Interpolation.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Sequence.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.getDuration=function(){return this._duration},t.prototype.to=function(t,e){if(void 0===e&&(e=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=e<0?0:e,this},t.prototype.duration=function(t){return void 0===t&&(t=1e3),this._duration=t<0?0:t,this},t.prototype.dynamic=function(t){return void 0===t&&(t=!1),this._isDynamic=t,this},t.prototype.start=function(t,e){if(void 0===t&&(t=now()),void 0===e&&(e=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var n in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||e){if(this._propertiesAreSetUp=!0,!this._isDynamic){var i={};for(var r in this._valuesEnd)i[r]=this._valuesEnd[r];this._valuesEnd=i}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,e)}return this},t.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},t.prototype._setupProperties=function(t,e,n,i,r){for(var s in n){var a=t[s],o=Array.isArray(a),c=o?"array":typeof a,l=!o&&Array.isArray(n[s]);if("undefined"!==c&&"function"!==c){if(l){if(0===(g=n[s]).length)continue;for(var u=[a],h=0,d=g.length;h<d;h+=1){var p=this._handleRelativeValue(a,g[h]);if(isNaN(p)){l=!1,console.warn("Found invalid interpolation list. Skipping.");break}u.push(p)}l&&(n[s]=u)}if("object"!==c&&!o||!a||l)(void 0===e[s]||r)&&(e[s]=a),o||(e[s]*=1),i[s]=l?n[s].slice().reverse():e[s]||0;else{e[s]=o?[]:{};var f=a;for(var m in f)e[s][m]=f[m];i[s]=o?[]:{};var g=n[s];if(!this._isDynamic){var A={};for(var m in g)A[m]=g[m];n[s]=g=A}this._setupProperties(f,e[s],g,i[s],r)}}}},t.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},t.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},t.prototype.pause=function(t){return void 0===t&&(t=now()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this)),this},t.prototype.resume=function(t){return void 0===t&&(t=now()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},t.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},t.prototype.group=function(t){return void 0===t&&(t=mainGroup),this._group=t,this},t.prototype.delay=function(t){return void 0===t&&(t=0),this._delayTime=t,this},t.prototype.repeat=function(t){return void 0===t&&(t=0),this._initialRepeat=t,this._repeat=t,this},t.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},t.prototype.yoyo=function(t){return void 0===t&&(t=!1),this._yoyo=t,this},t.prototype.easing=function(t){return void 0===t&&(t=Easing.Linear.None),this._easingFunction=t,this},t.prototype.interpolation=function(t){return void 0===t&&(t=Interpolation.Linear),this._interpolationFunction=t,this},t.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},t.prototype.onStart=function(t){return this._onStartCallback=t,this},t.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},t.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},t.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},t.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},t.prototype.onStop=function(t){return this._onStopCallback=t,this},t.prototype.update=function(t,e){var n,i,r=this;if(void 0===t&&(t=now()),void 0===e&&(e=!0),this._isPaused)return!0;var s=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>s)return!1;e&&this.start(t,!0)}if(this._goToEnd=!1,t<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),!1===this._onEveryStartCallbackFired&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var a=t-this._startTime,o=this._duration+(null!==(n=this._repeatDelayTime)&&void 0!==n?n:this._delayTime),c=this._duration+this._repeat*o,l=function(){if(0===r._duration)return 1;if(a>c)return 1;var t=Math.trunc(a/o),e=a-t*o,n=Math.min(e/r._duration,1);return 0===n&&a===r._duration?1:n}(),u=this._easingFunction(l);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),this._onUpdateCallback&&this._onUpdateCallback(this._object,l),0===this._duration||a>=this._duration){if(this._repeat>0){var h=Math.min(Math.trunc((a-this._duration)/o)+1,this._repeat);for(i in isFinite(this._repeat)&&(this._repeat-=h),this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[i]||(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=o*h,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var d=0,p=this._chainedTweens.length;d<p;d++)this._chainedTweens[d].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},t.prototype._updateProperties=function(t,e,n,i){for(var r in n)if(void 0!==e[r]){var s=e[r]||0,a=n[r],o=Array.isArray(t[r]),c=Array.isArray(a);!o&&c?t[r]=this._interpolationFunction(a,i):"object"==typeof a&&a?this._updateProperties(t[r],s,a,i):"number"==typeof(a=this._handleRelativeValue(s,a))&&(t[r]=s+(a-s)*i)}},t.prototype._handleRelativeValue=function(t,e){return"string"!=typeof e?e:"+"===e.charAt(0)||"-"===e.charAt(0)?t+parseFloat(e):parseFloat(e)},t.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];this._valuesStartRepeat[t]="string"==typeof n?this._valuesStartRepeat[t]+parseFloat(n):this._valuesEnd[t],this._valuesEnd[t]=e},t}(),VERSION="23.1.1",nextId=Sequence.nextId,TWEEN=mainGroup,getAll=TWEEN.getAll.bind(TWEEN),removeAll=TWEEN.removeAll.bind(TWEEN),add=TWEEN.add.bind(TWEEN),remove=TWEEN.remove.bind(TWEEN),update=TWEEN.update.bind(TWEEN),exports$1={Easing,Group,Interpolation,now,Sequence,nextId,Tween,VERSION,getAll,removeAll,add,remove,update};const v$h=Object.freeze(Object.defineProperty({__proto__:null,Easing,Group,Interpolation,Sequence,Tween,VERSION,add,default:exports$1,getAll,nextId,now,remove,removeAll,update},Symbol.toStringTag,{value:"Module"}));function mergeGeometries(t,e=!1){const n=null!==t[0].index,i=new Set(Object.keys(t[0].attributes)),r=new Set(Object.keys(t[0].morphAttributes)),s={},a={},o=t[0].morphTargetsRelative,c=new BufferGeometry;let l=0;for(let u=0;u<t.length;++u){const h=t[u];let d=0;if(n!==(null!==h.index))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const t in h.attributes){if(!i.has(t))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+'. All geometries must have compatible attributes; make sure "'+t+'" attribute exists among all geometries, or in none of them.'),null;void 0===s[t]&&(s[t]=[]),s[t].push(h.attributes[t]),d++}if(d!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". Make sure all geometries have the same number of attributes."),null;if(o!==h.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const t in h.morphAttributes){if(!r.has(t))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". .morphAttributes must be consistent throughout all geometries."),null;void 0===a[t]&&(a[t]=[]),a[t].push(h.morphAttributes[t])}if(e){let t;if(n)t=h.index.count;else{if(void 0===h.attributes.position)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+u+". The geometry must have either an index or a position attribute"),null;t=h.attributes.position.count}c.addGroup(l,t,u),l+=t}}if(n){let e=0;const n=[];for(let i=0;i<t.length;++i){const r=t[i].index;for(let t=0;t<r.count;++t)n.push(r.getX(t)+e);e+=t[i].attributes.position.count}c.setIndex(n)}for(const u in s){const t=mergeAttributes(s[u]);if(!t)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+u+" attribute."),null;c.setAttribute(u,t)}for(const u in a){const t=a[u][0].length;if(0===t)break;c.morphAttributes=c.morphAttributes||{},c.morphAttributes[u]=[];for(let e=0;e<t;++e){const t=[];for(let i=0;i<a[u].length;++i)t.push(a[u][i][e]);const n=mergeAttributes(t);if(!n)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+u+" morphAttribute."),null;c.morphAttributes[u].push(n)}}return c}function mergeAttributes(t){let e,n,i,r=-1,s=0;for(let l=0;l<t.length;++l){const a=t[l];if(void 0===e&&(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(void 0===n&&(n=a.itemSize),n!==a.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(void 0===i&&(i=a.normalized),i!==a.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(-1===r&&(r=a.gpuType),r!==a.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;s+=a.count*n}const a=new e(s),o=new BufferAttribute(a,n,i);let c=0;for(let l=0;l<t.length;++l){const e=t[l];if(e.isInterleavedBufferAttribute){const t=c/n;for(let i=0,r=e.count;i<r;i++)for(let s=0;s<n;s++){const n=e.getComponent(i,s);o.setComponent(i+t,s,n)}}else a.set(e.array,c);c+=e.count*n}return void 0!==r&&(o.gpuType=r),o}function toTrianglesDrawMode(t,e){if(e===TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),t;if(e===TriangleFanDrawMode||e===TriangleStripDrawMode){let n=t.getIndex();if(null===n){const e=[],i=t.getAttribute("position");if(void 0===i)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),t;for(let t=0;t<i.count;t++)e.push(t);t.setIndex(e),n=t.getIndex()}const i=n.count-2,r=[];if(e===TriangleFanDrawMode)for(let t=1;t<=i;t++)r.push(n.getX(0)),r.push(n.getX(t)),r.push(n.getX(t+1));else for(let t=0;t<i;t++)t%2==0?(r.push(n.getX(t)),r.push(n.getX(t+1)),r.push(n.getX(t+2))):(r.push(n.getX(t+2)),r.push(n.getX(t+1)),r.push(n.getX(t)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const s=t.clone();return s.setIndex(r),s.clearGroups(),s}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),t}class GLTFLoader extends Loader{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new GLTFMaterialsClearcoatExtension(t)}),this.register(function(t){return new GLTFMaterialsDispersionExtension(t)}),this.register(function(t){return new GLTFTextureBasisUExtension(t)}),this.register(function(t){return new GLTFTextureWebPExtension(t)}),this.register(function(t){return new GLTFTextureAVIFExtension(t)}),this.register(function(t){return new GLTFMaterialsSheenExtension(t)}),this.register(function(t){return new GLTFMaterialsTransmissionExtension(t)}),this.register(function(t){return new GLTFMaterialsVolumeExtension(t)}),this.register(function(t){return new GLTFMaterialsIorExtension(t)}),this.register(function(t){return new GLTFMaterialsEmissiveStrengthExtension(t)}),this.register(function(t){return new GLTFMaterialsSpecularExtension(t)}),this.register(function(t){return new GLTFMaterialsIridescenceExtension(t)}),this.register(function(t){return new GLTFMaterialsAnisotropyExtension(t)}),this.register(function(t){return new GLTFMaterialsBumpExtension(t)}),this.register(function(t){return new GLTFLightsExtension(t)}),this.register(function(t){return new GLTFMeshoptCompression(t)}),this.register(function(t){return new GLTFMeshGpuInstancing(t)})}load(t,e,n,i){const r=this;let s;if(""!==this.resourcePath)s=this.resourcePath;else if(""!==this.path){const e=LoaderUtils.extractUrlBase(t);s=LoaderUtils.resolveURL(e,this.path)}else s=LoaderUtils.extractUrlBase(t);this.manager.itemStart(t);const a=function(e){i?i(e):console.error(e),r.manager.itemError(t),r.manager.itemEnd(t)},o=new FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(n){try{r.parse(n,s,function(n){e(n),r.manager.itemEnd(t)},a)}catch(i){a(i)}},n,a)}setDRACOLoader(t){return this.dracoLoader=t,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return-1===this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.push(t),this}unregister(t){return-1!==this.pluginCallbacks.indexOf(t)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,n,i){let r;const s={},a={},o=new TextDecoder;if("string"==typeof t)r=JSON.parse(t);else if(t instanceof ArrayBuffer){if(o.decode(new Uint8Array(t,0,4))===BINARY_EXTENSION_HEADER_MAGIC){try{s[EXTENSIONS.KHR_BINARY_GLTF]=new GLTFBinaryExtension(t)}catch(l){return void(i&&i(l))}r=JSON.parse(s[EXTENSIONS.KHR_BINARY_GLTF].content)}else r=JSON.parse(o.decode(t))}else r=t;if(void 0===r.asset||r.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new GLTFParser(r,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u<this.pluginCallbacks.length;u++){const t=this.pluginCallbacks[u](c);t.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[t.name]=t,s[t.name]=!0}if(r.extensionsUsed)for(let u=0;u<r.extensionsUsed.length;++u){const t=r.extensionsUsed[u],e=r.extensionsRequired||[];switch(t){case EXTENSIONS.KHR_MATERIALS_UNLIT:s[t]=new GLTFMaterialsUnlitExtension;break;case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:s[t]=new GLTFDracoMeshCompressionExtension(r,this.dracoLoader);break;case EXTENSIONS.KHR_TEXTURE_TRANSFORM:s[t]=new GLTFTextureTransformExtension;break;case EXTENSIONS.KHR_MESH_QUANTIZATION:s[t]=new GLTFMeshQuantizationExtension;break;default:e.indexOf(t)>=0&&void 0===a[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}c.setExtensions(s),c.setPlugins(a),c.parse(n,i)}parseAsync(t,e){const n=this;return new Promise(function(i,r){n.parse(t,e,i,r)})}}function GLTFRegistry(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const EXTENSIONS={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 GLTFLightsExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let n=0,i=e.length;n<i;n++){const i=e[n];i.extensions&&i.extensions[this.name]&&void 0!==i.extensions[this.name].light&&t._addNodeRef(this.cache,i.extensions[this.name].light)}}_loadLight(t){const e=this.parser,n="light:"+t;let i=e.cache.get(n);if(i)return i;const r=e.json,s=((r.extensions&&r.extensions[this.name]||{}).lights||[])[t];let a;const o=new Color(16777215);void 0!==s.color&&o.setRGB(s.color[0],s.color[1],s.color[2],LinearSRGBColorSpace);const c=void 0!==s.range?s.range:0;switch(s.type){case"directional":a=new DirectionalLight(o),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new PointLight(o),a.distance=c;break;case"spot":a=new SpotLight(o),a.distance=c,s.spot=s.spot||{},s.spot.innerConeAngle=void 0!==s.spot.innerConeAngle?s.spot.innerConeAngle:0,s.spot.outerConeAngle=void 0!==s.spot.outerConeAngle?s.spot.outerConeAngle:Math.PI/4,a.angle=s.spot.outerConeAngle,a.penumbra=1-s.spot.innerConeAngle/s.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+s.type)}return a.position.set(0,0,0),a.decay=2,assignExtrasToUserData(a,s),void 0!==s.intensity&&(a.intensity=s.intensity),a.name=e.createUniqueName(s.name||"light_"+t),i=Promise.resolve(a),e.cache.add(n,i),i}getDependency(t,e){if("light"===t)return this._loadLight(e)}createNodeAttachment(t){const e=this,n=this.parser,i=n.json.nodes[t],r=(i.extensions&&i.extensions[this.name]||{}).light;return void 0===r?null:this._loadLight(r).then(function(t){return n._getNodeRef(e.cache,r,t)})}}class GLTFMaterialsUnlitExtension{constructor(){this.name=EXTENSIONS.KHR_MATERIALS_UNLIT}getMaterialType(){return MeshBasicMaterial}extendParams(t,e,n){const i=[];t.color=new Color(1,1,1),t.opacity=1;const r=e.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const e=r.baseColorFactor;t.color.setRGB(e[0],e[1],e[2],LinearSRGBColorSpace),t.opacity=e[3]}void 0!==r.baseColorTexture&&i.push(n.assignTexture(t,"map",r.baseColorTexture,SRGBColorSpace))}return Promise.all(i)}}class GLTFMaterialsEmissiveStrengthExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name].emissiveStrength;return void 0!==i&&(e.emissiveIntensity=i),Promise.resolve()}}class GLTFMaterialsClearcoatExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];if(void 0!==s.clearcoatFactor&&(e.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&r.push(n.assignTexture(e,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(e.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&r.push(n.assignTexture(e,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(r.push(n.assignTexture(e,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){const t=s.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new Vector2(t,t)}return Promise.all(r)}}class GLTFMaterialsDispersionExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_DISPERSION}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return e.dispersion=void 0!==i.dispersion?i.dispersion:0,Promise.resolve()}}class GLTFMaterialsIridescenceExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.iridescenceFactor&&(e.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&r.push(n.assignTexture(e,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(e.iridescenceIOR=s.iridescenceIor),void 0===e.iridescenceThicknessRange&&(e.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(e.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(e.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&r.push(n.assignTexture(e,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}}class GLTFMaterialsSheenExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_SHEEN}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[];e.sheenColor=new Color(0,0,0),e.sheenRoughness=0,e.sheen=1;const s=i.extensions[this.name];if(void 0!==s.sheenColorFactor){const t=s.sheenColorFactor;e.sheenColor.setRGB(t[0],t[1],t[2],LinearSRGBColorSpace)}return void 0!==s.sheenRoughnessFactor&&(e.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&r.push(n.assignTexture(e,"sheenColorMap",s.sheenColorTexture,SRGBColorSpace)),void 0!==s.sheenRoughnessTexture&&r.push(n.assignTexture(e,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(r)}}class GLTFMaterialsTransmissionExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.transmissionFactor&&(e.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&r.push(n.assignTexture(e,"transmissionMap",s.transmissionTexture)),Promise.all(r)}}class GLTFMaterialsVolumeExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_VOLUME}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];e.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&r.push(n.assignTexture(e,"thicknessMap",s.thicknessTexture)),e.attenuationDistance=s.attenuationDistance||1/0;const a=s.attenuationColor||[1,1,1];return e.attenuationColor=(new Color).setRGB(a[0],a[1],a[2],LinearSRGBColorSpace),Promise.all(r)}}class GLTFMaterialsIorExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_IOR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser.json.materials[t];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();const i=n.extensions[this.name];return e.ior=void 0!==i.ior?i.ior:1.5,Promise.resolve()}}class GLTFMaterialsSpecularExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_SPECULAR}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];e.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&r.push(n.assignTexture(e,"specularIntensityMap",s.specularTexture));const a=s.specularColorFactor||[1,1,1];return e.specularColor=(new Color).setRGB(a[0],a[1],a[2],LinearSRGBColorSpace),void 0!==s.specularColorTexture&&r.push(n.assignTexture(e,"specularColorMap",s.specularColorTexture,SRGBColorSpace)),Promise.all(r)}}class GLTFMaterialsBumpExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_MATERIALS_BUMP}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return e.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&r.push(n.assignTexture(e,"bumpMap",s.bumpTexture)),Promise.all(r)}}class GLTFMaterialsAnisotropyExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){const e=this.parser.json.materials[t];return e.extensions&&e.extensions[this.name]?MeshPhysicalMaterial:null}extendMaterialParams(t,e){const n=this.parser,i=n.json.materials[t];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();const r=[],s=i.extensions[this.name];return void 0!==s.anisotropyStrength&&(e.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(e.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&r.push(n.assignTexture(e,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}}class GLTFTextureBasisUExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.KHR_TEXTURE_BASISU}loadTexture(t){const e=this.parser,n=e.json,i=n.textures[t];if(!i.extensions||!i.extensions[this.name])return null;const r=i.extensions[this.name],s=e.options.ktx2Loader;if(!s){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,r.source,s)}}class GLTFTextureWebPExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,n=this.parser,i=n.json,r=i.textures[t];if(!r.extensions||!r.extensions[e])return null;const s=r.extensions[e],a=i.images[s.source];let o=n.textureLoader;if(a.uri){const t=n.options.manager.getHandler(a.uri);null!==t&&(o=t)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(t,s.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(1===e.height)}})),this.isSupported}}class GLTFTextureAVIFExtension{constructor(t){this.parser=t,this.name=EXTENSIONS.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,n=this.parser,i=n.json,r=i.textures[t];if(!r.extensions||!r.extensions[e])return null;const s=r.extensions[e],a=i.images[s.source];let o=n.textureLoader;if(a.uri){const t=n.options.manager.getHandler(a.uri);null!==t&&(o=t)}return this.detectSupport().then(function(r){if(r)return n.loadTextureImage(t,s.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(1===e.height)}})),this.isSupported}}class GLTFMeshoptCompression{constructor(t){this.name=EXTENSIONS.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,n=e.bufferViews[t];if(n.extensions&&n.extensions[this.name]){const t=n.extensions[this.name],i=this.parser.getDependency("buffer",t.buffer),r=this.parser.options.meshoptDecoder;if(!r||!r.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i.then(function(e){const n=t.byteOffset||0,i=t.byteLength||0,s=t.count,a=t.byteStride,o=new Uint8Array(e,n,i);return r.decodeGltfBufferAsync?r.decodeGltfBufferAsync(s,a,o,t.mode,t.filter).then(function(t){return t.buffer}):r.ready.then(function(){const e=new ArrayBuffer(s*a);return r.decodeGltfBuffer(new Uint8Array(e),s,a,o,t.mode,t.filter),e})})}return null}}class GLTFMeshGpuInstancing{constructor(t){this.name=EXTENSIONS.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,n=e.nodes[t];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=e.meshes[n.mesh];for(const o of i.primitives)if(o.mode!==WEBGL_CONSTANTS.TRIANGLES&&o.mode!==WEBGL_CONSTANTS.TRIANGLE_STRIP&&o.mode!==WEBGL_CONSTANTS.TRIANGLE_FAN&&void 0!==o.mode)return null;const r=n.extensions[this.name].attributes,s=[],a={};for(const o in r)s.push(this.parser.getDependency("accessor",r[o]).then(t=>(a[o]=t,a[o])));return s.length<1?null:(s.push(this.parser.createNodeMesh(t)),Promise.all(s).then(t=>{const e=t.pop(),n=e.isGroup?e.children:[e],i=t[0].count,r=[];for(const s of n){const t=new Matrix4,e=new Vector3,n=new Quaternion,o=new Vector3(1,1,1),c=new InstancedMesh(s.geometry,s.material,i);for(let r=0;r<i;r++)a.TRANSLATION&&e.fromBufferAttribute(a.TRANSLATION,r),a.ROTATION&&n.fromBufferAttribute(a.ROTATION,r),a.SCALE&&o.fromBufferAttribute(a.SCALE,r),c.setMatrixAt(r,t.compose(e,n,o));for(const i in a)if("_COLOR_0"===i){const t=a[i];c.instanceColor=new InstancedBufferAttribute(t.array,t.itemSize,t.normalized)}else"TRANSLATION"!==i&&"ROTATION"!==i&&"SCALE"!==i&&s.geometry.setAttribute(i,a[i]);Object3D.prototype.copy.call(c,s),this.parser.assignFinalMaterial(c),r.push(c)}return e.isGroup?(e.clear(),e.add(...r),e):r[0]}))}}const BINARY_EXTENSION_HEADER_MAGIC="glTF",BINARY_EXTENSION_HEADER_LENGTH=12,BINARY_EXTENSION_CHUNK_TYPES={JSON:1313821514,BIN:5130562};class GLTFBinaryExtension{constructor(t){this.name=EXTENSIONS.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(t,0,BINARY_EXTENSION_HEADER_LENGTH),n=new TextDecoder;if(this.header={magic:n.decode(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==BINARY_EXTENSION_HEADER_MAGIC)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-BINARY_EXTENSION_HEADER_LENGTH,r=new DataView(t,BINARY_EXTENSION_HEADER_LENGTH);let s=0;for(;s<i;){const e=r.getUint32(s,!0);s+=4;const i=r.getUint32(s,!0);if(s+=4,i===BINARY_EXTENSION_CHUNK_TYPES.JSON){const i=new Uint8Array(t,BINARY_EXTENSION_HEADER_LENGTH+s,e);this.content=n.decode(i)}else if(i===BINARY_EXTENSION_CHUNK_TYPES.BIN){const n=BINARY_EXTENSION_HEADER_LENGTH+s;this.body=t.slice(n,n+e)}s+=e}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class GLTFDracoMeshCompressionExtension{constructor(t,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=EXTENSIONS.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){const n=this.json,i=this.dracoLoader,r=t.extensions[this.name].bufferView,s=t.extensions[this.name].attributes,a={},o={},c={};for(const l in s){const t=ATTRIBUTES[l]||l.toLowerCase();a[t]=s[l]}for(const l in t.attributes){const e=ATTRIBUTES[l]||l.toLowerCase();if(void 0!==s[l]){const i=n.accessors[t.attributes[l]],r=WEBGL_COMPONENT_TYPES[i.componentType];c[e]=r.name,o[e]=!0===i.normalized}}return e.getDependency("bufferView",r).then(function(t){return new Promise(function(e,n){i.decodeDracoFile(t,function(t){for(const e in t.attributes){const n=t.attributes[e],i=o[e];void 0!==i&&(n.normalized=i)}e(t)},a,c,LinearSRGBColorSpace,n)})})}}class GLTFTextureTransformExtension{constructor(){this.name=EXTENSIONS.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return void 0!==e.texCoord&&e.texCoord!==t.channel||void 0!==e.offset||void 0!==e.rotation||void 0!==e.scale?(t=t.clone(),void 0!==e.texCoord&&(t.channel=e.texCoord),void 0!==e.offset&&t.offset.fromArray(e.offset),void 0!==e.rotation&&(t.rotation=e.rotation),void 0!==e.scale&&t.repeat.fromArray(e.scale),t.needsUpdate=!0,t):t}}class GLTFMeshQuantizationExtension{constructor(){this.name=EXTENSIONS.KHR_MESH_QUANTIZATION}}class GLTFCubicSplineInterpolant extends Interpolant{constructor(t,e,n,i){super(t,e,n,i)}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i*3+i;for(let s=0;s!==i;s++)e[s]=n[r+s];return e}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=2*a,c=3*a,l=i-e,u=(n-e)/l,h=u*u,d=h*u,p=t*c,f=p-c,m=-2*d+3*h,g=d-h,A=1-m,v=g-h+u;for(let y=0;y!==a;y++){const t=s[f+y+a],e=s[f+y+o]*l,n=s[p+y+a],i=s[p+y]*l;r[y]=A*t+v*e+m*n+g*i}return r}}const _q=new Quaternion;class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant{interpolate_(t,e,n,i){const r=super.interpolate_(t,e,n,i);return _q.fromArray(r).normalize().toArray(r),r}}const WEBGL_CONSTANTS={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WEBGL_FILTERS={9728:NearestFilter,9729:LinearFilter,9984:NearestMipmapNearestFilter,9985:LinearMipmapNearestFilter,9986:NearestMipmapLinearFilter,9987:LinearMipmapLinearFilter},WEBGL_WRAPPINGS={33071:ClampToEdgeWrapping,33648:MirroredRepeatWrapping,10497:RepeatWrapping},WEBGL_TYPE_SIZES={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTES={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"},PATH_PROPERTIES={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},INTERPOLATION={CUBICSPLINE:void 0,LINEAR:InterpolateLinear,STEP:InterpolateDiscrete},ALPHA_MODES={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function createDefaultMaterial(t){return void 0===t.DefaultMaterial&&(t.DefaultMaterial=new MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:FrontSide})),t.DefaultMaterial}function addUnknownExtensionsToUserData(t,e,n){for(const i in n.extensions)void 0===t[i]&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=n.extensions[i])}function assignExtrasToUserData(t,e){void 0!==e.extras&&("object"==typeof e.extras?Object.assign(t.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function addMorphTargets(t,e,n){let i=!1,r=!1,s=!1;for(let l=0,u=e.length;l<u;l++){const t=e[l];if(void 0!==t.POSITION&&(i=!0),void 0!==t.NORMAL&&(r=!0),void 0!==t.COLOR_0&&(s=!0),i&&r&&s)break}if(!i&&!r&&!s)return Promise.resolve(t);const a=[],o=[],c=[];for(let l=0,u=e.length;l<u;l++){const u=e[l];if(i){const e=void 0!==u.POSITION?n.getDependency("accessor",u.POSITION):t.attributes.position;a.push(e)}if(r){const e=void 0!==u.NORMAL?n.getDependency("accessor",u.NORMAL):t.attributes.normal;o.push(e)}if(s){const e=void 0!==u.COLOR_0?n.getDependency("accessor",u.COLOR_0):t.attributes.color;c.push(e)}}return Promise.all([Promise.all(a),Promise.all(o),Promise.all(c)]).then(function(e){const n=e[0],a=e[1],o=e[2];return i&&(t.morphAttributes.position=n),r&&(t.morphAttributes.normal=a),s&&(t.morphAttributes.color=o),t.morphTargetsRelative=!0,t})}function updateMorphTargets(t,e){if(t.updateMorphTargets(),void 0!==e.weights)for(let n=0,i=e.weights.length;n<i;n++)t.morphTargetInfluences[n]=e.weights[n];if(e.extras&&Array.isArray(e.extras.targetNames)){const n=e.extras.targetNames;if(t.morphTargetInfluences.length===n.length){t.morphTargetDictionary={};for(let e=0,i=n.length;e<i;e++)t.morphTargetDictionary[n[e]]=e}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function createPrimitiveKey(t){let e;const n=t.extensions&&t.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION];if(e=n?"draco:"+n.bufferView+":"+n.indices+":"+createAttributesKey(n.attributes):t.indices+":"+createAttributesKey(t.attributes)+":"+t.mode,void 0!==t.targets)for(let i=0,r=t.targets.length;i<r;i++)e+=":"+createAttributesKey(t.targets[i]);return e}function createAttributesKey(t){let e="";const n=Object.keys(t).sort();for(let i=0,r=n.length;i<r;i++)e+=n[i]+":"+t[n[i]]+";";return e}function getNormalizedComponentScale(t){switch(t){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.")}}function getImageURIMimeType(t){return t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"}const _identityMatrix=new Matrix4;class GLTFParser{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new GLTFRegistry,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 n=!1,i=-1,r=!1,s=-1;if("undefined"!=typeof navigator){const t=navigator.userAgent;n=!0===/^((?!chrome|android).)*safari/i.test(t);const e=t.match(/Version\/(\d+)/);i=n&&e?parseInt(e[1],10):-1,r=t.indexOf("Firefox")>-1,s=r?t.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"==typeof createImageBitmap||n&&i<17||r&&s<98?this.textureLoader=new TextureLoader(this.options.manager):this.textureLoader=new ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const n=this,i=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(t){return t._markDefs&&t._markDefs()}),Promise.all(this._invokeAll(function(t){return t.beforeRoot&&t.beforeRoot()})).then(function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])}).then(function(e){const s={scene:e[0][i.scene||0],scenes:e[0],animations:e[1],cameras:e[2],asset:i.asset,parser:n,userData:{}};return addUnknownExtensionsToUserData(r,s,i),assignExtrasToUserData(s,i),Promise.all(n._invokeAll(function(t){return t.afterRoot&&t.afterRoot(s)})).then(function(){for(const t of s.scenes)t.updateMatrixWorld();t(s)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],n=this.json.meshes||[];for(let i=0,r=e.length;i<r;i++){const n=e[i].joints;for(let e=0,i=n.length;e<i;e++)t[n[e]].isBone=!0}for(let i=0,r=t.length;i<r;i++){const e=t[i];void 0!==e.mesh&&(this._addNodeRef(this.meshCache,e.mesh),void 0!==e.skin&&(n[e.mesh].isSkinnedMesh=!0)),void 0!==e.camera&&this._addNodeRef(this.cameraCache,e.camera)}}_addNodeRef(t,e){void 0!==e&&(void 0===t.refs[e]&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,n){if(t.refs[e]<=1)return n;const i=n.clone(),r=(t,e)=>{const n=this.associations.get(t);null!=n&&this.associations.set(e,n);for(const[i,s]of t.children.entries())r(s,e.children[i])};return r(n,i),i.name+="_instance_"+t.uses[e]++,i}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let n=0;n<e.length;n++){const i=t(e[n]);if(i)return i}return null}_invokeAll(t){const e=Object.values(this.plugins);e.unshift(this);const n=[];for(let i=0;i<e.length;i++){const r=t(e[i]);r&&n.push(r)}return n}getDependency(t,e){const n=t+":"+e;let i=this.cache.get(n);if(!i){switch(t){case"scene":i=this.loadScene(e);break;case"node":i=this._invokeOne(function(t){return t.loadNode&&t.loadNode(e)});break;case"mesh":i=this._invokeOne(function(t){return t.loadMesh&&t.loadMesh(e)});break;case"accessor":i=this.loadAccessor(e);break;case"bufferView":i=this._invokeOne(function(t){return t.loadBufferView&&t.loadBufferView(e)});break;case"buffer":i=this.loadBuffer(e);break;case"material":i=this._invokeOne(function(t){return t.loadMaterial&&t.loadMaterial(e)});break;case"texture":i=this._invokeOne(function(t){return t.loadTexture&&t.loadTexture(e)});break;case"skin":i=this.loadSkin(e);break;case"animation":i=this._invokeOne(function(t){return t.loadAnimation&&t.loadAnimation(e)});break;case"camera":i=this.loadCamera(e);break;default:if(i=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(t,e)}),!i)throw new Error("Unknown type: "+t)}this.cache.add(n,i)}return i}getDependencies(t){let e=this.cache.get(t);if(!e){const n=this,i=this.json[t+("mesh"===t?"es":"s")]||[];e=Promise.all(i.map(function(e,i){return n.getDependency(t,i)})),this.cache.add(t,e)}return e}loadBuffer(t){const e=this.json.buffers[t],n=this.fileLoader;if(e.type&&"arraybuffer"!==e.type)throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(void 0===e.uri&&0===t)return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body);const i=this.options;return new Promise(function(t,r){n.load(LoaderUtils.resolveURL(e.uri,i.path),t,void 0,function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(t){const e=this.json.bufferViews[t];return this.getDependency("buffer",e.buffer).then(function(t){const n=e.byteLength||0,i=e.byteOffset||0;return t.slice(i,i+n)})}loadAccessor(t){const e=this,n=this.json,i=this.json.accessors[t];if(void 0===i.bufferView&&void 0===i.sparse){const t=WEBGL_TYPE_SIZES[i.type],e=WEBGL_COMPONENT_TYPES[i.componentType],n=!0===i.normalized,r=new e(i.count*t);return Promise.resolve(new BufferAttribute(r,t,n))}const r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(t){const r=t[0],s=WEBGL_TYPE_SIZES[i.type],a=WEBGL_COMPONENT_TYPES[i.componentType],o=a.BYTES_PER_ELEMENT,c=o*s,l=i.byteOffset||0,u=void 0!==i.bufferView?n.bufferViews[i.bufferView].byteStride:void 0,h=!0===i.normalized;let d,p;if(u&&u!==c){const t=Math.floor(l/u),n="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+t+":"+i.count;let c=e.cache.get(n);c||(d=new a(r,t*u,i.count*u/o),c=new InterleavedBuffer(d,u/o),e.cache.add(n,c)),p=new InterleavedBufferAttribute(c,s,l%u/o,h)}else d=null===r?new a(i.count*s):new a(r,l,i.count*s),p=new BufferAttribute(d,s,h);if(void 0!==i.sparse){const e=WEBGL_TYPE_SIZES.SCALAR,n=WEBGL_COMPONENT_TYPES[i.sparse.indices.componentType],o=i.sparse.indices.byteOffset||0,c=i.sparse.values.byteOffset||0,l=new n(t[1],o,i.sparse.count*e),u=new a(t[2],c,i.sparse.count*s);null!==r&&(p=new BufferAttribute(p.array.slice(),p.itemSize,p.normalized));for(let t=0,i=l.length;t<i;t++){const e=l[t];if(p.setX(e,u[t*s]),s>=2&&p.setY(e,u[t*s+1]),s>=3&&p.setZ(e,u[t*s+2]),s>=4&&p.setW(e,u[t*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,n=this.options,i=e.textures[t].source,r=e.images[i];let s=this.textureLoader;if(r.uri){const t=n.manager.getHandler(r.uri);null!==t&&(s=t)}return this.loadTextureImage(t,i,s)}loadTextureImage(t,e,n){const i=this,r=this.json,s=r.textures[t],a=r.images[e],o=(a.uri||a.bufferView)+":"+s.sampler;if(this.textureCache[o])return this.textureCache[o];const c=this.loadImageSource(e,n).then(function(e){e.flipY=!1,e.name=s.name||a.name||"",""===e.name&&"string"==typeof a.uri&&!1===a.uri.startsWith("data:image/")&&(e.name=a.uri);const n=(r.samplers||{})[s.sampler]||{};return e.magFilter=WEBGL_FILTERS[n.magFilter]||LinearFilter,e.minFilter=WEBGL_FILTERS[n.minFilter]||LinearMipmapLinearFilter,e.wrapS=WEBGL_WRAPPINGS[n.wrapS]||RepeatWrapping,e.wrapT=WEBGL_WRAPPINGS[n.wrapT]||RepeatWrapping,i.associations.set(e,{textures:t}),e}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(t,e){const n=this,i=this.json,r=this.options;if(void 0!==this.sourceCache[t])return this.sourceCache[t].then(t=>t.clone());const s=i.images[t],a=self.URL||self.webkitURL;let o=s.uri||"",c=!1;if(void 0!==s.bufferView)o=n.getDependency("bufferView",s.bufferView).then(function(t){c=!0;const e=new Blob([t],{type:s.mimeType});return o=a.createObjectURL(e),o});else if(void 0===s.uri)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const l=Promise.resolve(o).then(function(t){return new Promise(function(n,i){let s=n;!0===e.isImageBitmapLoader&&(s=function(t){const e=new Texture(t);e.needsUpdate=!0,n(e)}),e.load(LoaderUtils.resolveURL(t,r.path),s,void 0,i)})}).then(function(t){return!0===c&&a.revokeObjectURL(o),assignExtrasToUserData(t,s),t.userData.mimeType=s.mimeType||getImageURIMimeType(s.uri),t}).catch(function(t){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),t});return this.sourceCache[t]=l,l}assignTexture(t,e,n,i){const r=this;return this.getDependency("texture",n.index).then(function(s){if(!s)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((s=s.clone()).channel=n.texCoord),r.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]){const t=void 0!==n.extensions?n.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]:void 0;if(t){const e=r.associations.get(s);s=r.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(s,t),r.associations.set(s,e)}}return void 0!==i&&(s.colorSpace=i),t[e]=s,s})}assignFinalMaterial(t){const e=t.geometry;let n=t.material;const i=void 0===e.attributes.tangent,r=void 0!==e.attributes.color,s=void 0===e.attributes.normal;if(t.isPoints){const t="PointsMaterial:"+n.uuid;let e=this.cache.get(t);e||(e=new PointsMaterial,Material.prototype.copy.call(e,n),e.color.copy(n.color),e.map=n.map,e.sizeAttenuation=!1,this.cache.add(t,e)),n=e}else if(t.isLine){const t="LineBasicMaterial:"+n.uuid;let e=this.cache.get(t);e||(e=new LineBasicMaterial,Material.prototype.copy.call(e,n),e.color.copy(n.color),e.map=n.map,this.cache.add(t,e)),n=e}if(i||r||s){let t="ClonedMaterial:"+n.uuid+":";i&&(t+="derivative-tangents:"),r&&(t+="vertex-colors:"),s&&(t+="flat-shading:");let e=this.cache.get(t);e||(e=n.clone(),r&&(e.vertexColors=!0),s&&(e.flatShading=!0),i&&(e.normalScale&&(e.normalScale.y*=-1),e.clearcoatNormalScale&&(e.clearcoatNormalScale.y*=-1)),this.cache.add(t,e),this.associations.set(e,this.associations.get(n))),n=e}t.material=n}getMaterialType(){return MeshStandardMaterial}loadMaterial(t){const e=this,n=this.json,i=this.extensions,r=n.materials[t];let s;const a={},o=[];if((r.extensions||{})[EXTENSIONS.KHR_MATERIALS_UNLIT]){const t=i[EXTENSIONS.KHR_MATERIALS_UNLIT];s=t.getMaterialType(),o.push(t.extendParams(a,r,e))}else{const n=r.pbrMetallicRoughness||{};if(a.color=new Color(1,1,1),a.opacity=1,Array.isArray(n.baseColorFactor)){const t=n.baseColorFactor;a.color.setRGB(t[0],t[1],t[2],LinearSRGBColorSpace),a.opacity=t[3]}void 0!==n.baseColorTexture&&o.push(e.assignTexture(a,"map",n.baseColorTexture,SRGBColorSpace)),a.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,a.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(o.push(e.assignTexture(a,"metalnessMap",n.metallicRoughnessTexture)),o.push(e.assignTexture(a,"roughnessMap",n.metallicRoughnessTexture))),s=this._invokeOne(function(e){return e.getMaterialType&&e.getMaterialType(t)}),o.push(Promise.all(this._invokeAll(function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,a)})))}!0===r.doubleSided&&(a.side=DoubleSide);const c=r.alphaMode||ALPHA_MODES.OPAQUE;if(c===ALPHA_MODES.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,c===ALPHA_MODES.MASK&&(a.alphaTest=void 0!==r.alphaCutoff?r.alphaCutoff:.5)),void 0!==r.normalTexture&&s!==MeshBasicMaterial&&(o.push(e.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new Vector2(1,1),void 0!==r.normalTexture.scale)){const t=r.normalTexture.scale;a.normalScale.set(t,t)}if(void 0!==r.occlusionTexture&&s!==MeshBasicMaterial&&(o.push(e.assignTexture(a,"aoMap",r.occlusionTexture)),void 0!==r.occlusionTexture.strength&&(a.aoMapIntensity=r.occlusionTexture.strength)),void 0!==r.emissiveFactor&&s!==MeshBasicMaterial){const t=r.emissiveFactor;a.emissive=(new Color).setRGB(t[0],t[1],t[2],LinearSRGBColorSpace)}return void 0!==r.emissiveTexture&&s!==MeshBasicMaterial&&o.push(e.assignTexture(a,"emissiveMap",r.emissiveTexture,SRGBColorSpace)),Promise.all(o).then(function(){const n=new s(a);return r.name&&(n.name=r.name),assignExtrasToUserData(n,r),e.associations.set(n,{materials:t}),r.extensions&&addUnknownExtensionsToUserData(i,n,r),n})}createUniqueName(t){const e=PropertyBinding.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,n=this.extensions,i=this.primitiveCache;function r(t){return n[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(t,e).then(function(n){return addPrimitiveAttributes(n,t,e)})}const s=[];for(let a=0,o=t.length;a<o;a++){const n=t[a],o=createPrimitiveKey(n),c=i[o];if(c)s.push(c.promise);else{let t;t=n.extensions&&n.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]?r(n):addPrimitiveAttributes(new BufferGeometry,n,e),i[o]={primitive:n,promise:t},s.push(t)}}return Promise.all(s)}loadMesh(t){const e=this,n=this.json,i=this.extensions,r=n.meshes[t],s=r.primitives,a=[];for(let o=0,c=s.length;o<c;o++){const t=void 0===s[o].material?createDefaultMaterial(this.cache):this.getDependency("material",s[o].material);a.push(t)}return a.push(e.loadGeometries(s)),Promise.all(a).then(function(n){const a=n.slice(0,n.length-1),o=n[n.length-1],c=[];for(let u=0,h=o.length;u<h;u++){const n=o[u],l=s[u];let h;const d=a[u];if(l.mode===WEBGL_CONSTANTS.TRIANGLES||l.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP||l.mode===WEBGL_CONSTANTS.TRIANGLE_FAN||void 0===l.mode)h=!0===r.isSkinnedMesh?new SkinnedMesh(n,d):new Mesh(n,d),!0===h.isSkinnedMesh&&h.normalizeSkinWeights(),l.mode===WEBGL_CONSTANTS.TRIANGLE_STRIP?h.geometry=toTrianglesDrawMode(h.geometry,TriangleStripDrawMode):l.mode===WEBGL_CONSTANTS.TRIANGLE_FAN&&(h.geometry=toTrianglesDrawMode(h.geometry,TriangleFanDrawMode));else if(l.mode===WEBGL_CONSTANTS.LINES)h=new LineSegments(n,d);else if(l.mode===WEBGL_CONSTANTS.LINE_STRIP)h=new Line(n,d);else if(l.mode===WEBGL_CONSTANTS.LINE_LOOP)h=new LineLoop(n,d);else{if(l.mode!==WEBGL_CONSTANTS.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+l.mode);h=new Points(n,d)}Object.keys(h.geometry.morphAttributes).length>0&&updateMorphTargets(h,r),h.name=e.createUniqueName(r.name||"mesh_"+t),assignExtrasToUserData(h,r),l.extensions&&addUnknownExtensionsToUserData(i,h,l),e.assignFinalMaterial(h),c.push(h)}for(let i=0,r=c.length;i<r;i++)e.associations.set(c[i],{meshes:t,primitives:i});if(1===c.length)return r.extensions&&addUnknownExtensionsToUserData(i,c[0],r),c[0];const l=new Group$1;r.extensions&&addUnknownExtensionsToUserData(i,l,r),e.associations.set(l,{meshes:t});for(let t=0,e=c.length;t<e;t++)l.add(c[t]);return l})}loadCamera(t){let e;const n=this.json.cameras[t],i=n[n.type];if(i)return"perspective"===n.type?e=new PerspectiveCamera(MathUtils.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===n.type&&(e=new OrthographicCamera(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),n.name&&(e.name=this.createUniqueName(n.name)),assignExtrasToUserData(e,n),Promise.resolve(e);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(t){const e=this.json.skins[t],n=[];for(let i=0,r=e.joints.length;i<r;i++)n.push(this._loadNodeShallow(e.joints[i]));return void 0!==e.inverseBindMatrices?n.push(this.getDependency("accessor",e.inverseBindMatrices)):n.push(null),Promise.all(n).then(function(t){const n=t.pop(),i=t,r=[],s=[];for(let a=0,o=i.length;a<o;a++){const t=i[a];if(t){r.push(t);const e=new Matrix4;null!==n&&e.fromArray(n.array,16*a),s.push(e)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[a])}return new Skeleton(r,s)})}loadAnimation(t){const e=this.json,n=this,i=e.animations[t],r=i.name?i.name:"animation_"+t,s=[],a=[],o=[],c=[],l=[];for(let u=0,h=i.channels.length;u<h;u++){const t=i.channels[u],e=i.samplers[t.sampler],n=t.target,r=n.node,h=void 0!==i.parameters?i.parameters[e.input]:e.input,d=void 0!==i.parameters?i.parameters[e.output]:e.output;void 0!==n.node&&(s.push(this.getDependency("node",r)),a.push(this.getDependency("accessor",h)),o.push(this.getDependency("accessor",d)),c.push(e),l.push(n))}return Promise.all([Promise.all(s),Promise.all(a),Promise.all(o),Promise.all(c),Promise.all(l)]).then(function(t){const e=t[0],i=t[1],s=t[2],a=t[3],o=t[4],c=[];for(let r=0,l=e.length;r<l;r++){const t=e[r],l=i[r],u=s[r],h=a[r],d=o[r];if(void 0===t)continue;t.updateMatrix&&t.updateMatrix();const p=n._createAnimationTracks(t,l,u,h,d);if(p)for(let e=0;e<p.length;e++)c.push(p[e])}return new AnimationClip(r,void 0,c)})}createNodeMesh(t){const e=this.json,n=this,i=e.nodes[t];return void 0===i.mesh?null:n.getDependency("mesh",i.mesh).then(function(t){const e=n._getNodeRef(n.meshCache,i.mesh,t);return void 0!==i.weights&&e.traverse(function(t){if(t.isMesh)for(let e=0,n=i.weights.length;e<n;e++)t.morphTargetInfluences[e]=i.weights[e]}),e})}loadNode(t){const e=this,n=this.json.nodes[t],i=e._loadNodeShallow(t),r=[],s=n.children||[];for(let o=0,c=s.length;o<c;o++)r.push(e.getDependency("node",s[o]));const a=void 0===n.skin?Promise.resolve(null):e.getDependency("skin",n.skin);return Promise.all([i,Promise.all(r),a]).then(function(t){const e=t[0],n=t[1],i=t[2];null!==i&&e.traverse(function(t){t.isSkinnedMesh&&t.bind(i,_identityMatrix)});for(let r=0,s=n.length;r<s;r++)e.add(n[r]);return e})}_loadNodeShallow(t){const e=this.json,n=this.extensions,i=this;if(void 0!==this.nodeCache[t])return this.nodeCache[t];const r=e.nodes[t],s=r.name?i.createUniqueName(r.name):"",a=[],o=i._invokeOne(function(e){return e.createNodeMesh&&e.createNodeMesh(t)});return o&&a.push(o),void 0!==r.camera&&a.push(i.getDependency("camera",r.camera).then(function(t){return i._getNodeRef(i.cameraCache,r.camera,t)})),i._invokeAll(function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)}).forEach(function(t){a.push(t)}),this.nodeCache[t]=Promise.all(a).then(function(e){let a;if(a=!0===r.isBone?new Bone:e.length>1?new Group$1:1===e.length?e[0]:new Object3D,a!==e[0])for(let t=0,n=e.length;t<n;t++)a.add(e[t]);if(r.name&&(a.userData.name=r.name,a.name=s),assignExtrasToUserData(a,r),r.extensions&&addUnknownExtensionsToUserData(n,a,r),void 0!==r.matrix){const t=new Matrix4;t.fromArray(r.matrix),a.applyMatrix4(t)}else void 0!==r.translation&&a.position.fromArray(r.translation),void 0!==r.rotation&&a.quaternion.fromArray(r.rotation),void 0!==r.scale&&a.scale.fromArray(r.scale);return i.associations.has(a)||i.associations.set(a,{}),i.associations.get(a).nodes=t,a}),this.nodeCache[t]}loadScene(t){const e=this.extensions,n=this.json.scenes[t],i=this,r=new Group$1;n.name&&(r.name=i.createUniqueName(n.name)),assignExtrasToUserData(r,n),n.extensions&&addUnknownExtensionsToUserData(e,r,n);const s=n.nodes||[],a=[];for(let o=0,c=s.length;o<c;o++)a.push(i.getDependency("node",s[o]));return Promise.all(a).then(function(t){for(let e=0,n=t.length;e<n;e++)r.add(t[e]);return i.associations=(t=>{const e=new Map;for(const[n,r]of i.associations)(n instanceof Material||n instanceof Texture)&&e.set(n,r);return t.traverse(t=>{const n=i.associations.get(t);null!=n&&e.set(t,n)}),e})(r),r})}_createAnimationTracks(t,e,n,i,r){const s=[],a=t.name?t.name:t.uuid,o=[];let c;switch(PATH_PROPERTIES[r.path]===PATH_PROPERTIES.weights?t.traverse(function(t){t.morphTargetInfluences&&o.push(t.name?t.name:t.uuid)}):o.push(a),PATH_PROPERTIES[r.path]){case PATH_PROPERTIES.weights:c=NumberKeyframeTrack;break;case PATH_PROPERTIES.rotation:c=QuaternionKeyframeTrack;break;case PATH_PROPERTIES.position:case PATH_PROPERTIES.scale:c=VectorKeyframeTrack;break;default:if(1===n.itemSize)c=NumberKeyframeTrack;else c=VectorKeyframeTrack}const l=void 0!==i.interpolation?INTERPOLATION[i.interpolation]:InterpolateLinear,u=this._getArrayFromAccessor(n);for(let h=0,d=o.length;h<d;h++){const t=new c(o[h]+"."+PATH_PROPERTIES[r.path],e.array,u,l);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(t),s.push(t)}return s}_getArrayFromAccessor(t){let e=t.array;if(t.normalized){const t=getNormalizedComponentScale(e.constructor),n=new Float32Array(e.length);for(let i=0,r=e.length;i<r;i++)n[i]=e[i]*t;e=n}return e}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(t){return new(this instanceof QuaternionKeyframeTrack?GLTFCubicSplineQuaternionInterpolant:GLTFCubicSplineInterpolant)(this.times,this.values,this.getValueSize()/3,t)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function computeBounds(t,e,n){const i=e.attributes,r=new Box3;if(void 0===i.POSITION)return;{const t=n.json.accessors[i.POSITION],e=t.min,s=t.max;if(void 0===e||void 0===s)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new Vector3(e[0],e[1],e[2]),new Vector3(s[0],s[1],s[2])),t.normalized){const e=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[t.componentType]);r.min.multiplyScalar(e),r.max.multiplyScalar(e)}}const s=e.targets;if(void 0!==s){const t=new Vector3,e=new Vector3;for(let i=0,r=s.length;i<r;i++){const r=s[i];if(void 0!==r.POSITION){const i=n.json.accessors[r.POSITION],s=i.min,a=i.max;if(void 0!==s&&void 0!==a){if(e.setX(Math.max(Math.abs(s[0]),Math.abs(a[0]))),e.setY(Math.max(Math.abs(s[1]),Math.abs(a[1]))),e.setZ(Math.max(Math.abs(s[2]),Math.abs(a[2]))),i.normalized){const t=getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[i.componentType]);e.multiplyScalar(t)}t.max(e)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(t)}t.boundingBox=r;const a=new Sphere;r.getCenter(a.center),a.radius=r.min.distanceTo(r.max)/2,t.boundingSphere=a}function addPrimitiveAttributes(t,e,n){const i=e.attributes,r=[];function s(e,i){return n.getDependency("accessor",e).then(function(e){t.setAttribute(i,e)})}for(const a in i){const e=ATTRIBUTES[a]||a.toLowerCase();e in t.attributes||r.push(s(i[a],e))}if(void 0!==e.indices&&!t.index){const i=n.getDependency("accessor",e.indices).then(function(e){t.setIndex(e)});r.push(i)}return ColorManagement.workingColorSpace!==LinearSRGBColorSpace&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ColorManagement.workingColorSpace}" not supported.`),assignExtrasToUserData(t,e),computeBounds(t,e,n),Promise.all(r).then(function(){return void 0!==e.targets?addMorphTargets(t,e.targets,n):t})}const DEG2RAD=Math.PI/180,RAD2DEG=180/Math.PI;function clamp(t,e,n){return Math.max(e,Math.min(n,t))}const n$5=m$L;!function(t,e){const n=m$L,i=t();for(;;)try{if(736835===parseInt(n(412))/1+parseInt(n(380))/2+parseInt(n(498))/3*(-parseInt(n(441))/4)+parseInt(n(395))/5*(-parseInt(n(540))/6)+-parseInt(n(393))/7*(-parseInt(n(452))/8)+-parseInt(n(545))/9*(-parseInt(n(364))/10)+-parseInt(n(370))/11*(parseInt(n(352))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$K);let debug=location[n$5(360)][n$5(386)](n$5(497))||window[n$5(385)];const texureLoader=new TextureLoader,gltfLoader=new GLTFLoader,g$t=document[n$5(357)](n$5(463));let l$i;function showMessage(t,e=3e3){const n=n$5,i={dDSvw:n(411),FQcCu:n(544),uUvql:n(410),untaQ:n(520),DTgaS:n(415),lTDRz:n(444),mRRvr:n(408),HdTQw:function(t,e){return t(e)},uVxBg:function(t,e,n){return t(e,n)},vPnio:n(442),dqyVW:n(422),DkutU:n(384)},r=i[n(482)][n(446)]("|");let s=0;for(;;){switch(r[s++]){case"0":g$t[n(501)][n(398)]=i[n(486)];continue;case"1":g$t[n(501)][n(418)]=i[n(541)];continue;case"2":g$t[n(501)][n(471)]=i[n(448)];continue;case"3":document[n(358)][n(489)](g$t);continue;case"4":g$t[n(501)][n(461)]=i[n(450)];continue;case"5":g$t[n(501)][n(474)]="0";continue;case"6":if(!debug)return;continue;case"7":g$t[n(501)][n(361)]=i[n(435)];continue;case"8":g$t[n(501)][n(473)]=i[n(459)];continue;case"9":i[n(368)](clearTimeout,l$i);continue;case"10":l$i=i[n(399)](setTimeout,()=>{const t=n;document[t(358)][t(445)](g$t)},e);continue;case"11":g$t[n(501)][n(372)]=i[n(424)];continue;case"12":g$t[n(374)]=""+t;continue;case"13":g$t[n(501)][n(396)]=i[n(504)];continue;case"14":g$t[n(501)][n(536)]=i[n(493)];continue;case"15":g$t[n(501)][n(373)]="0";continue}break}}const log=new class{constructor(){__publicField(this,_b2,document[n$5(357)](n$5(463))),__publicField(this,_a2,{});const t=n$5,e={fNzqj:t(535),ZgawM:t(384),OUZJq:t(416),GPKkB:t(415),TMjtf:function(t,e,n){return t(e,n)},MHmHf:t(422),KeRwg:t(410),Gxmpt:t(444),zwHgE:t(544)},n=e[t(518)][t(446)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(463)][t(501)][t(536)]=e[t(467)];continue;case"1":this[t(463)][t(501)][t(533)]="0";continue;case"2":this[t(463)][t(501)][t(543)]="0";continue;case"3":this[t(463)][t(501)][t(471)]=e[t(494)];continue;case"4":this[t(463)][t(501)][t(461)]=e[t(427)];continue;case"5":e[t(512)](setTimeout,()=>{const e=t;document[e(358)][e(489)](this[e(463)])},3e3);continue;case"6":this[t(463)][t(501)][t(396)]=e[t(510)];continue;case"7":this[t(463)][t(501)][t(418)]=e[t(458)];continue;case"8":this[t(463)][t(501)][t(361)]=e[t(425)];continue;case"9":this[t(463)][t(501)][t(398)]=e[t(365)];continue}break}}[(_b2=n$5(463),_a2=n$5(514),n$5(484))](t,e){const n=n$5;debug&&(this[n(514)][t]=e,this[n(506)]())}[n$5(508)](t){const e=n$5;debug&&(Object[e(387)](this[e(514)],t),this[e(506)]())}[n$5(506)](){const t=n$5;if(!debug)return;let e="";for(const n in this[t(514)])e+=n+": "+this[t(514)][n]+", ";this[t(463)][t(374)]=""+e}};function setSize(t,e,n){const i=n$5,r={hZBdy:function(t,e){return t*e},rirFy:function(t,e){return t in e},mtqgj:i(542),Bichm:function(t,e){return t/e},JokEm:function(t,e){return t(e)},HcoKA:function(t,e){return t/e},wUxnG:function(t,e){return t*e}};if(e&&(t[i(440)]=r[i(500)](e,r[i(529)](r[i(469)],t[i(453)][i(433)])||isPc?1:devicePixelRatio)),!t[i(453)]||!t[i(453)][i(433)][i(526)])return;const{height:s,width:a}=t[i(453)][i(433)][i(526)];let o=r[i(350)](s,n);r[i(426)](isNaN,o)&&(o=1),t[i(487)][i(502)](o,o,1)[i(430)](r[i(538)](r[i(481)](t[i(487)].x,a),s))[i(428)](t[i(440)]||1)}class Collision{constructor(){__publicField(this,_c);this[n$5(466)]=[]}[(_c=n$5(466),n$5(419))](){const t=n$5;this[t(466)][t(378)]=0}[n$5(421)](t){const e=n$5;if({rsbTv:function(t,e){return t===e}}[e(531)](this[e(466)][e(378)],0))return this[e(466)][e(421)](t),!1;for(var n in this[e(466)]){var i=this[e(466)][n];if(this[e(449)](i,t))return!0}return this[e(466)][e(421)](t),!1}[n$5(449)](t,e){const n=n$5,i={oScZM:function(t,e){return t<e},srIOa:function(t,e){return t+e},Sdtzr:function(t,e){return t>e},XKPUC:function(t,e){return t+e},ogGam:function(t,e){return t<e},xyKEa:function(t,e){return t+e}};return i[n(367)](t.x,i[n(457)](e.x,e.w))&&i[n(476)](i[n(523)](t.x,t.w),e.x)&&i[n(534)](t.y,i[n(371)](e.y,e.h))&&i[n(476)](i[n(371)](t.h,t.y),e.y)}}function convert3dTo2d(t,e,n){const i=n$5,r={WhFww:function(t,e){return t*e},dMZnp:function(t,e){return t/e},cQXNe:function(t,e){return t+e},QoQYY:function(t,e){return t*e},QoxHI:function(t,e){return t-e},ecdIF:function(t,e){return t/e},GXGVf:function(t,e){return t<=e},oRtpl:function(t,e){return t>=e},zjRqV:function(t,e){return t>=e},BsPiV:function(t,e){return t<e}};let s=(new Vector3)[i(437)](t)[i(511)](e);const{clientWidth:a,clientHeight:o}=n;let c=r[i(491)](r[i(509)](r[i(485)](s.x,1),2),a),l=r[i(530)](r[i(496)](1,r[i(478)](r[i(485)](s.y,1),2)),o),u=r[i(477)](c,n[i(407)])&&r[i(391)](c,0)&&r[i(477)](l,n[i(527)])&&r[i(475)](l,0);return{pos:new Vector2(c,l),vector:s,trueSide:r[i(362)](s.z,1),inSight:u}}function createShortId(){const t=n$5;return Math[t(472)]()[t(394)](36)[t(392)](2,10)}function reactiveEvent(t,e){const n=n$5,i={bEAdT:function(t,e){return t!==e},IaOzC:function(t,e,n){return t(e,n)}};let r={};for(const s in t)Object[n(480)](r,s,{get:()=>t[s],set(r){const a=n;i[a(537)](r,t[s])&&(t[s]=r,i[a(366)](e,s,r))}});return r}function getPromise(){const t=n$5,e={CzIPN:t(462),DzYeH:function(t,...e){return t(...e)},UwhSJ:t(443)},n={status:e[t(517)]};return n[t(429)]=new Promise(i=>{const r=t;n[r(409)]=(...t)=>{const s=r;n[s(483)]=e[s(432)],e[s(525)](i,...t)}}),n}function getURLQuery(t=location[n$5(360)]){const e=n$5,n={},i=/([^?&=]+)=([^?&=]+)/g;let r=i[e(389)](t);for(;r;)n[r[1]]=r[2],r=i[e(389)](t);return n}function fps(t,e){const n=n$5,i={dHDsn:function(t,e){return t-e},YAiQm:function(t,e){return t>e},YApOn:function(t,e){return t-e},MYAoU:function(t,e){return t%e},jGkPv:function(t){return t()},WMRlG:function(t,e){return t/e}};let r,s,a=Date[n(456)](),o=i[n(447)](1e3,debug?100:e);return()=>{const e=n;r=Date[e(456)](),s=i[e(495)](r,a),i[e(436)](s,o)&&(a=i[e(400)](r,i[e(404)](s,o)),i[e(516)](t))}}function getLineLength(t,e){const n=n$5,i={TMnAb:function(t,e){return t in e},ehNSY:function(t,e){return t in e},TJuFU:function(t,e){return t+e},UVzIH:function(t,e){return t**e},scDHc:function(t,e){return t-e},mSKwS:function(t,e){return t**e},CBrGk:function(t,e){return t-e}};let r=i[n(414)]("x",t),s=r?t.x:t[0],a=r?t.y:t[1],o=i[n(532)]("x",e),c=o?e.x:e[0],l=o?e.y:e[1];return Math[n(402)](i[n(351)](i[n(464)](i[n(353)](c,s),2),i[n(522)](i[n(377)](l,a),2)))}function M$K(){const t=["angleTo","WhFww","JaFnO","DkutU","OUZJq","dHDsn","QoxHI","log=","261otBYCV","iphone","hZBdy","style","set","GSumo","dqyVW","UopPW","update","touches","showlogs","dMZnp","MHmHf","project","TMjtf","NxTXD","obj","cross","jGkPv","UwhSJ","fNzqj","bxzYv","red","bBVoM","mSKwS","XKPUC","clientY","DzYeH","image","clientHeight","changedTouches","rirFy","QoQYY","rsbTv","ehNSY","left","ogGam","6|2|1|9|8|7|4|3|0|5","zIndex","bEAdT","HcoKA","vwElA","402lpQBLB","uUvql","_text","bottom","100vw","279cNNfaw","QeNMH","Bichm","TJuFU","1453992jZnPvB","scDHc","ShDWp","jDdDK","bROsa","createElement","body","mYDWV","href","whiteSpace","BsPiV","YCEeC","153590QKUOPk","zwHgE","IaOzC","oScZM","HdTQw","OUuPx","110ToLMlv","xyKEa","borderRadius","top","innerHTML","containsPoint","HzeoL","CBrGk","length","sub","1004464EwbNSh","match","mobile","trident","99999","debug","includes","assign","matrixWorldInverse","exec","postMessage","oRtpl","substring","469ISdmgM","toString","43115dWRVTC","position","createObjectURL","maxWidth","uVxBg","YApOn","micromessenger","sqrt","setFromProjectionMatrix","MYAoU","multiplyMatrices","shVno","clientWidth","5px","resolve","#ffffff","6|9|13|15|5|0|7|1|4|2|11|8|14|12|3|10","618561TXTONv","vIKho","TMnAb","none","rgba(0,0,0,0.5)","SGuUF","color","clear","toLowerCase","push","fixed","ipad","vPnio","Gxmpt","JokEm","GPKkB","multiplyScalar","promise","setX","projectionMatrix","CzIPN","map","IZJKy","lTDRz","YAiQm","copy","linux","UXSHf","_scale","156mfPzpe","3px","pending","pre-wrap","removeChild","split","WMRlG","untaQ","collision","DTgaS",")()","111368EDWUyt","material","clientX","KvRSl","now","srIOa","KeRwg","mRRvr","NkPbg","pointerEvents","fulfilled","div","UVzIH","onmessage","rects","ZgawM","AfVSM","mtqgj","userAgent","backgroundColor","random","padding","right","zjRqV","Sdtzr","GXGVf","ecdIF","android","defineProperty","wUxnG","dDSvw","status","show","cQXNe","FQcCu","scale","EUUnu","appendChild"];return(M$K=function(){return t})()}const ua=function(){const t=n$5,e={shVno:t(479),jDdDK:t(438),bxzYv:t(499),bROsa:t(423),SGuUF:t(401),YCEeC:function(t,e){return t&&e},OUuPx:t(383)},n=navigator[t(470)][t(420)]();let i=!!n[t(381)](/\(i[^;]+;( u;)? cpu.+mac os x/),r=n[t(386)](e[t(406)])||n[t(386)](e[t(355)]),s=n[t(386)](e[t(519)]),a=n[t(386)](e[t(356)]),o=n[t(386)](e[t(417)]),c=e[t(363)](!o,!a)&&!i&&!s&&!r;return{ie:n[t(386)](e[t(369)]),mobile:!c,ios:i,android:r,iphone:s,ipad:a,wx:o,pc:c}}(),isPc=!ua[n$5(382)]&&!ua[n$5(423)];function getXY(t){const e=n$5,n={JaFnO:function(t,e){return t in e},NkPbg:e(454)};return n[e(492)](n[e(460)],t)?{x:t[e(454)],y:t[e(524)]}:t[e(507)]&&t[e(507)][0]?{x:t[e(507)][0][e(454)],y:t[e(507)][0][e(524)]}:t[e(528)]&&t[e(528)][0]?{x:t[e(528)][0][e(454)],y:t[e(528)][0][e(524)]}:t}function m$L(t,e){t-=349;return M$K()[t]}function getLineAngle(t,e,n){const i=n$5;let r=(new Vector2)[i(437)](t),s=(new Vector2)[i(437)](e),a=(new Vector2)[i(437)](n),o=r[i(379)](s),c=a[i(379)](s),l=o[i(490)](c),u=o[i(515)](c);return{deg:{NxTXD:function(t,e){return t*e}}[i(513)](l,RAD2DEG),cross:u,rad:l}}const isPointInScreen=function(){const t=new Frustum,e=new Matrix4,n=new Vector3;return function(i,r){const s=m$L,a=e[s(405)](i[s(431)],i[s(388)]);return t[s(403)](a),t[s(375)](n[s(437)](r))}}();function pointInPolygon(t,e){const n=n$5,i={HzeoL:function(t,e){return t-e},IZJKy:function(t,e){return t<e},ShDWp:function(t,e){return t!==e},EUUnu:function(t,e){return t>e},QeNMH:function(t,e){return t>e},UopPW:function(t,e){return t<e},vwElA:function(t,e){return t+e},UXSHf:function(t,e){return t/e},KvRSl:function(t,e){return t*e},bBVoM:function(t,e){return t-e},AfVSM:function(t,e){return t-e}},r=t.x,s=t.y;let a=!1;for(let o=0,c=i[n(376)](e[n(378)],1);i[n(434)](o,e[n(378)]);c=o++){const t=e[o].x,l=e[o].y,u=e[c].x,h=e[c].y;i[n(354)](i[n(488)](l,s),i[n(349)](h,s))&&i[n(505)](r,i[n(539)](i[n(439)](i[n(455)](i[n(521)](u,t),i[n(468)](s,l)),i[n(521)](h,l)),t))&&(a=!a)}return a}function debounce(t,e){const n={GSumo:function(t,e){return t(e)},vIKho:function(t,e,n){return t(e,n)}};let i;return function(){const r=m$L;i&&n[r(503)](clearTimeout,i),i=n[r(413)](setTimeout,t,e)}}const i$4=m$K;function M$J(){const t=["7egzStc","event","add","YsHpy","lSJUS","delete","parent","pointermove","pXFrO","YkVeJ","dqHGI","function","initListener","position","biXQi","amap","plane","2442hPyzhi","object","pointerout","off","387536mokSNu","renderOrder","ApOqY","15300sAWVlI","SrayW","intersectObjects","find","VpyUZ","intersectObjectsByLine","pointerdown","UTdLr","3558860NGPhRO","top","MKXGM","FNMUb","container2","rightclick","setFromCamera","YpdCK","handleIntersect","canvas","bbdZO","pJtmN","camera","height","handleEvent","push","vImql","qUoPB","wvMNQ","UvOsQ","default","coordsToLngLatWorld","qWQtK","intersectionList","ZDzIW","has","uJUgm","65Tbvctr","enterList","hasEvent","clientHeight","set","leftclick","getBoundingClientRect","lqocz","intersectObjectsBy2D","Tghqj","9ncdejJ","width","yTUPQ","dlbCT","sort","quiHp","RWWDw","now","433278GYzQAG","xIhky","_noClick","length","4242gCLLXS","cursor","123204JJsuyc","_listeners","1505576vPTvuC","ImrnG","clientWidth","point","pointerenter","defineProperty","visible","distance","style","apply","left","AxDht","isArray","addEventListener","gzGwz","nQZtX","_click","594CEyTHe","fNhsb","PoUKH","emit","lnglat","UFdpF","slice","pointerup","split","click","removeEventListener","iVCsf","button","FsBoc","abs","distanceTo","prototype","hihXd","4|0|2|3|1","kroKU","dispose","IMFEc","UEczp","handEnterOut","uuid","BMCjv","DFpmL","raycaster","traverse","map"];return(M$J=function(){return t})()}!function(t,e){const n=m$K,i=t();for(;;)try{if(218261===parseInt(n(376))/1+-parseInt(n(304))/2*(-parseInt(n(325))/3)+parseInt(n(306))/4*(-parseInt(n(282))/5)+-parseInt(n(300))/6*(-parseInt(n(355))/7)+parseInt(n(308))/8*(-parseInt(n(292))/9)+-parseInt(n(387))/10+-parseInt(n(372))/11*(-parseInt(n(379))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$J);const g$s=new Set;EventDispatcher[i$4(341)].on=function(t,e){const n=i$4,i={ZDzIW:n(345),pJtmN:function(t,e){return t!==e},hihXd:n(366),YsHpy:function(t,e){return t instanceof e}};if(!i[n(398)](typeof e,i[n(342)])){if(this[n(321)](t,e),!g$s[n(412)](this)&&i[n(358)](this,Object3D)){g$s[n(357)](this);const t=()=>{const e=n;g$s[e(360)](this),this[e(335)](i[e(411)],t)};this[n(321)](i[n(411)],t)}return()=>this[n(375)](t,e)}},EventDispatcher[i$4(341)][i$4(375)]=function(t,e){return this[i$4(335)](t,e),this},EventDispatcher[i$4(341)][i$4(328)]=function(t,...e){const n=i$4,i={gzGwz:function(t,e){return t===e},nQZtX:function(t,e){return t<e}};if(i[n(322)](this[n(307)],void 0)||!this[n(307)][t])return;const r=(this[n(307)][t]||[])[n(331)](0);for(let s=0;i[n(323)](s,r[n(303)]);s++)r[s][n(317)](this,e);return this};let l$h=class extends EventDispatcher{constructor(t){var e=(...t)=>(super(...t),__publicField(this,_h),__publicField(this,_g),__publicField(this,_f),__publicField(this,_e2,[]),__publicField(this,_d,new Mesh(new PlaneGeometry(1e9,1e9))),this);const n=i$4,i={SrayW:n(343)}[n(380)][n(333)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[n(354)]=t;continue;case"1":this[n(367)]();continue;case"2":this[n(283)]={};continue;case"3":this[n(352)]=new Raycaster;continue;case"4":e();continue}break}}get[(_h=i$4(354),_g=i$4(352),_f=i$4(283),_e2=i$4(410),_d=i$4(371),i$4(399))](){const t=i$4;return this[t(354)][t(399)]}get[i$4(396)](){const t=i$4;return this[t(354)][t(370)][t(391)]}[i$4(395)](t,e){const n=i$4,i={YpdCK:n(329),YkVeJ:function(t,e,n){return t(e,n)}};this[n(352)][n(393)](i[n(364)](screenPosTo3dPos,t,this[n(396)]),this[n(399)]);let r=e||[...g$s],s=[];Array[n(320)](r)?r[n(354)](t=>{const e=n;t[e(353)](t=>{const n=e;(t[n(324)]||t[n(314)])&&!t[n(302)]&&s[n(402)](t)})}):r[n(353)](t=>{const e=n;(t[e(324)]||t[e(314)])&&!t[e(302)]&&s[e(402)](t)}),this[n(410)]=this[n(352)][n(381)](s,!1)[n(354)](t=>{const e=n;return t[e(315)]=this[e(399)][e(368)][e(340)](t[e(311)]),t})[n(296)]((t,e)=>t[n(315)]-e[n(315)])[n(296)]((t,e)=>e[n(373)][n(377)]-t[n(373)][n(377)]);let a=this[n(354)];this[n(410)][n(354)](t=>{const e=n;Object[e(313)](t,i[e(394)],{get(){const t=e;return a[t(408)](this[t(311)])}})})}[i$4(367)](){const t=i$4,e={yTUPQ:function(t,e){return t(e)},qWQtK:t(385),qUoPB:function(t,e){return t<=e},kroKU:function(t,e){return t-e},lqocz:function(t,e){return t<=e},RWWDw:t(334),ImrnG:function(t,e){return t===e},UFdpF:t(287),xIhky:t(392),UTdLr:t(332),dlbCT:function(t){return t()},BMCjv:t(362),MKXGM:t(407),VpyUZ:function(t,e){return t(e)},quiHp:function(t,e){return t>e},lSJUS:function(t,e){return t-e},DFpmL:function(t){return t()},bbdZO:function(t,e,n){return t(e,n)}};let n;this[t(396)][t(321)](e[t(409)],i=>{const r=t;this[r(395)](i),n=e[r(294)](getXY,i),this[r(401)](i,e[r(409)])}),this[t(396)][t(321)](e[t(386)],i=>{const r=t;let s=e[r(294)](getXY,i);e[r(404)](Math[r(339)](e[r(344)](s.x,n.x)),3)&&e[r(289)](Math[r(339)](e[r(344)](s.y,n.y)),3)&&(this[r(395)](i),this[r(401)](i,e[r(298)]),this[r(328)](e[r(298)],i),e[r(309)](i[r(337)],0)?(this[r(401)](i,e[r(330)]),this[r(328)](e[r(330)],i)):e[r(309)](i[r(337)],2)&&(this[r(401)](i,e[r(301)]),this[r(328)](e[r(301)],i))),this[r(401)](i,e[r(386)])});let i,r=Date[t(299)]();ua.pc&&this[t(396)][t(321)](e[t(350)],n=>{const s=t,a={pXFrO:e[s(350)],FsBoc:e[s(389)]};i&&e[s(383)](clearTimeout,i);const o=()=>{const t=s;this[t(395)](n),this[t(328)](a[t(363)],n),this[t(401)](n,a[t(363)]),this[t(348)](n);const e=this[t(410)][0];this[t(396)][t(316)][t(305)]=e&&e[t(373)][t(305)]||a[t(338)]};e[s(297)](e[s(359)](Date[s(299)](),r),60)&&(e[s(351)](o),r=Date[s(299)]()),i=e[s(397)](setTimeout,()=>{const t=s;e[t(295)](o),r=Date[t(299)]()},60)})}[i$4(348)](t){const e=i$4,n={PoUKH:e(312),wvMNQ:e(374)};this[e(410)][e(354)](i=>{const r=e;!this[r(283)][i[r(373)][r(349)]]&&(i[r(373)][r(328)](n[r(327)],{event:t,...i}),this[r(283)][i[r(373)][r(349)]]=i[r(373)])});for(const i in this[e(283)]){const r=this[e(283)][i];!this[e(410)][e(382)](t=>t[e(373)][e(349)]===i)&&(delete this[e(283)][i],r[e(328)](n[e(405)],{event:t,object:r}))}}[i$4(284)](t,e){const n=i$4;return t[n(307)]&&t[n(307)][e]&&t[n(307)][e][n(303)]}[i$4(401)](t,e){const n=i$4,i={ApOqY:function(t,e,n){return t(e,n)},FNMUb:function(t,e,n){return t(e,n)}};let r={},s=(n,a)=>{const o=m$K;if(!n)return;this[o(284)](n,e)&&!r[n.id]&&(r[n.id]=1,a[o(356)]=t,n[o(328)](e,a)),i[o(378)](s,n[o(361)],a)},a=!1;this[n(410)][n(354)](r=>{const o=n;!a&&this[o(284)](r[o(373)],e)&&(r[o(356)]=t,r[o(373)][o(328)](e,r),a=!0),i[o(390)](s,r[o(373)][o(361)],r)})}[i$4(384)](t,e,n=[]){const i=i$4;return this[i(352)][i(286)](t,e),this[i(352)][i(381)](n,!0)[i(354)](t=>{const e=i;return t[e(315)]=this[e(399)][e(368)][e(340)](t[e(311)]),t})[i(296)]((t,e)=>t[i(315)]-e[i(315)])}[i$4(290)](t,e=[]){const n=i$4;return this[n(352)][n(393)]({vImql:function(t,e,n){return t(e,n)}}[n(403)](screenPosTo3dPos,t,this[n(396)]),this[n(399)]),this[n(352)][n(381)](e,!0)[n(354)](t=>{const e=n;return t[e(315)]=this[e(399)][e(368)][e(340)](t[e(311)]),t})[n(296)]((t,e)=>t[n(315)]-e[n(315)])}};function m$K(t,e){t-=282;return M$J()[t]}function screenPosTo3dPos(t,e){const n=i$4,i={IMFEc:function(t,e){return t(e)},iVCsf:function(t,e){return t/e},dqHGI:function(t,e){return t*e},uJUgm:function(t,e){return t-e},AxDht:function(t,e){return t/e},biXQi:function(t,e){return t*e},fNhsb:function(t,e){return t-e},UvOsQ:function(t,e){return t*e},UEczp:function(t,e){return t+e},Tghqj:function(t,e){return t*e}},{x:r,y:s}=i[n(346)](getXY,t),a=e[n(288)](),o={x:i[n(336)](i[n(365)](i[n(413)](r,a[n(318)]),e[n(310)]),a[n(293)]),y:i[n(319)](i[n(369)](i[n(326)](s,a[n(388)]),e[n(285)]),a[n(400)])},c=new Vector2;return c.x=i[n(326)](i[n(406)](i[n(319)](o.x,e[n(310)]),2),1),c.y=i[n(347)](i[n(291)](i[n(336)](o.y,e[n(285)]),-2),1),c}const g$r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDJGNDIyNTVFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDJGNDIyNTZFMjIwMTFFQzhEM0JFRTRCODREQ0E5NzUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMkY0MjI1M0UyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMkY0MjI1NEUyMjAxMUVDOEQzQkVFNEI4NERDQTk3NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmJkHWMAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAANlBMVEUAAAAAAAAF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",l$g="data:image/png;base64,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",v$g="data:image/png;base64,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",z$a="data:image/png;base64,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",B$c="data:image/png;base64,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",r$b="data:image/png;base64,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",w$b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZIAAAHyCAMAAAD2qLiSAAADI2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEzNzA1MjRFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEzNzA1MjVFMjIwMTFFQzk5MkY4MzFFNTc1NjU3NEIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTM3MDUyMkUyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTM3MDUyM0UyMjAxMUVDOTkyRjgzMUU1NzU2NTc0QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiwRsYYAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAPFBMVEUAAAACAAAA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",V$2=m$J;function m$J(t,e){t-=496;return M$I()[t]}function M$I(){const t=["https://lbsapi.vgomap.com/","1326183MDidgC","$config","https://test.3dwxb.com/","21038JswJMe","130bVDjWW","10669210LwmFYl","9696624meHNLP","2801555wnyrcU","11644902qsrMEm","机动车道","8lucbOv","18TTpIbU","6423368LJWlqF","api","出入口"];return(M$I=function(){return t})()}!function(t,e){const n=m$J,i=t();for(;;)try{if(842231===parseInt(n(498))/1*(-parseInt(n(497))/2)+-parseInt(n(510))/3*(-parseInt(n(504))/4)+parseInt(n(501))/5*(parseInt(n(505))/6)+-parseInt(n(500))/7+parseInt(n(506))/8+parseInt(n(502))/9+-parseInt(n(499))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$I);const H$c={api:(null==(_i=window[V$2(511)])?void 0:_i[V$2(507)])||V$2(496),api2:(null==(_j=window[V$2(511)])?void 0:_j[V$2(507)])||V$2(509),texList:{"洗手间":r$b,"卫生间":r$b,"电梯":l$g,"扶梯":z$a,"楼梯":B$c,"步梯":B$c,"大门":g$r,"停车场":w$b,"安全出口":v$g,"出入口":v$g}},o$a=5,F$9=6,k$a=7,P$8=8,I$5=9,EnterType={stairs:o$a,escalator:F$9,elevator:k$a,indoor:P$8,motorway:I$5,[o$a]:{name:"楼梯",id:o$a},[F$9]:{name:"扶梯",id:F$9},[k$a]:{name:"电梯",id:k$a},[P$8]:{name:V$2(508),id:P$8},[I$5]:{name:V$2(503),id:I$5}},i$3=0,S$5=1,K$4=2,t$4=3,n$4=4,O$3=10,CrossType={block:i$3,manCar:S$5,man:K$4,manOnly:t$4,car:n$4,carOnly:O$3,[i$3]:{name:"不通",id:i$3},[S$5]:{name:"人车",id:S$5},[K$4]:{name:"人",id:K$4},[n$4]:{name:"车",id:n$4},[t$4]:{name:"仅人",id:t$4},[O$3]:{name:"仅车",id:O$3}},renderOrderConfig={line:1e4,arrow:10003,positionMarker:10009,beaconDetectShow:1e5,beacon:9999,testMsgSprite:100101,startEnd:10002};function m$I(t,e){t-=340;return M$H()[t]}const o$9=m$I;!function(t,e){const n=m$I,i=t();for(;;)try{if(100984===-parseInt(n(374))/1+parseInt(n(348))/2*(parseInt(n(369))/3)+parseInt(n(370))/4+-parseInt(n(341))/5*(parseInt(n(373))/6)+parseInt(n(356))/7+-parseInt(n(367))/8*(parseInt(n(346))/9)+-parseInt(n(359))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$H);let g$q=class extends EventDispatcher{constructor(){super(...arguments),__publicField(this,_p),__publicField(this,_o,[]),__publicField(this,_n,[]),__publicField(this,_m),__publicField(this,_l),__publicField(this,_k)}[(_p=o$9(352),_o=o$9(362),_n=o$9(345),_m=o$9(368),_l=o$9(350),_k=o$9(360),o$9(349))](t){const e=o$9;t[e(352)]&&(t[e(352)]=null),{EJEsp:function(t,e){return t<e}}[e(357)](this[e(362)][e(342)](t),0)&&(this[e(368)][e(349)](t[e(368)]),t[e(352)]=this,this[e(362)][e(371)](t))}[o$9(375)](t){const e=o$9,n={FTfLx:e(358),UlTfh:function(t,e){return t>e}};let i=this[e(362)][e(342)](t);n[e(361)](i,-1)&&(this[e(362)][e(353)](i,1),t[e(368)][e(355)](),t[e(368)][e(372)](t=>{const i=e;t[i(364)]&&(t[i(366)][i(344)][i(354)]=n[i(343)])}),this[e(345)][e(371)](t))}[o$9(363)](t){const e=o$9;let n,i=this[e(345)][e(340)](n=>n[e(360)].id===t);return{pRTYU:function(t,e){return t>e}}[e(351)](i,-1)&&(n=this[e(345)][e(353)](i,1)[0],this[e(362)][e(371)](n),n[e(352)]=this,this[e(368)][e(349)](n[e(368)])),n}[o$9(355)](){var t;const e=o$9;null==(t=this[e(352)])||t[e(375)](this)}[o$9(365)](){const t=o$9;this[t(362)][t(350)](e=>{e[t(352)]=null}),this[t(368)][t(347)]()}};function M$H(){const t=["682872kBFUjj","push","traverse","61710zEWTzU","77891hlkUqP","remove","findIndex","20QkdQAF","indexOf","FTfLx","style","childrenPool","237312qGftTI","dispose","115318sHBahT","add","map","pRTYU","parent","splice","display","removeFromParent","1269996zQORjv","EJEsp","none","2260040vPzKNw","data","UlTfh","children","addFromChildrnPool","isCSS2DObject","destory","element","24BiSNob","object3d","9pYMGdK"];return(M$H=function(){return t})()}const g$p="data:image/jpeg;base64,/9j/4R1GRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAABjAAAAcgEyAAIAAAAUAAAA1YdpAAQAAAABAAAA7AAAARgACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTNSAoMTIuMHgyMDEwMDExNSBbMjAxMDAxMTUubS45OTggMjAxMC8wMS8xNTowMjowMDowMCBjdXRvZmY7IG0gYnJhbmNoXSkgIFdpbmRvd3MAMjAxMzoxMjowNSAwMDo1NDowOQAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAEAKADAAQAAAABAAAEAAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAFmARsABQAAAAEAAAFuASgAAwAAAAEAAgAAAgEABAAAAAEAAAF2AgIABAAAAAEAABvIAAAAAAAAAEgAAAABAAAASAAAAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAoACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8ANdXtcN43AbdwIjjvrLUYMH83U4l0TsAEBEucbq9wbNh5gQfk5VvS1a5o2uYZAkyPGP5K6UHiGuhCw6RJkfTI8XnEf9ys1sO2vduaTp2ieyL9ja4bG1CWmII4B48dycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0QD5fyELIp9Mt9Iv26OaAfo/DarT6r68gvbo18ckwHDQt/tJi0kbXNBI7DUJRkbu7BZhfBcpcRMif8GPyNZ7riWvaRA5IEEfHciVve4BrtpiYIBB17f1UQlrmtIEjgiIP8psJPqNZDmEOb4HnzR4hVVXZWTNVmtd1MrY5v0OOddUK7HYW6kODdARrofJWWOa4biC5p5BgSPFn9VT9Gt9bmHdtIIGoPzame4YnVrGZrU6n/moK78mpkB+4NhpYfdA/N91m5F9eYsZW3c2N3ugaoRZ6I2WHcABrBGn8pOysOINLwQBqCRoP5Lf3EiIHWh/e+Xi80gCrOmmsj6dUvqYZdL2thx94aJAP8l6jda1gBa4emNNxOsFQLmCWvaCRILhoNPzYQLMYOB2vD2idHaGPJ6QhGxZP11DLDAMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22MLDJFZ/dEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9YjZZtPuH0dzT5+7a9DNbG37iyGPEiSTB/qj/qkJ9bGQHuI/OYZ58Ycove30BY2w2Na4g7hq0n2w+D+9/JTxAD5dLY5RqhAHQXf93du0NxwSwuLZBEeac4oLJrf6rYMgCHNH7zWfnbVW9cODLtm1/5wLpbp+dWfzUY2W0WzTrBhzXGdDw5h0TDGV2Dr2NVouNnQG9u1cBf/9Czpja1ufZSdTt7d9rmtTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPyculNj+sfz/vNbmso0jEcVj8B+8oW2sq/SBpYD9JoDiJ+W7YpOc7YIG3yEkHuNs+xNcCK22seId7WzEGdCwkQoeozaBO0M4a07gR+7uQAG9edLeWw8UiSLqIs+Mun9ZK51jXiXbCezpIcPl7dqm4b6zqIH7oJ81UdZ7Q3WGzwZ0+asY1lJ1cXAHTcdOf++pSiQL7dm0T+sJl9B9ELoB2iTuMQeT4fTUPXNe0gugGQ1x1+H8pWcims8glswYPBHgqz69rNJLxpDvyOT4kEBgy1xEGyd6ZMzNsb40OjuSO/I+KMc81ENdQ8h/LmgHXj2vf7NyoWuc9p/R88hx8vc10KeJawt9Ik7h3JJAIG33tSliiRdIw4Y8XFMXQ9Mf0f8L+o2n3PEOZLqzq0yCY/qn/qVBmTXaGixsFuh2ANII/ODv6qa2u8dgAdQ6JBP/mSFQ0Os1ewjlszAjttS4Y8N9uoZTCJyxva+n8vmkkde+t49u5g1aSADHhuI3OVptlVjDtjcBo13cHw/NQ/T9RoZZEHVm7Vp8WobKrKHQPoTA1Bj+ruTSIkdpD8V2ScRfQeB/DiZFplpeHbSY3N1Gn8lFre15f6QMj80kA+P5yQcTLXMa1w1M6Bw/fby1Qtr3/pK3g2NGskGR9yG++n/RYsYMjfb5R0/dXe6wNLNggcgwdD/X/76qvotMmQ20j/ADh/35GFlzqwHkNLdCeZ/BQIgHa4T3EaAp8bHh5MkhwDSrrp4/1kNLKa2ltrYbOgJn5SrArxywNBEcCYOng1xQ/swsLnktc6A4gHtGod+btQ2UiXMrD2sOjiPc2f3f8AzhOOutm1uMXEes3L5j+hCA2f/9G8RJHDw8fSmZn4IW21j3VubIP0H87dPoyEzxQ5kV+0gkFkwWmZ4P0kg58jY+XRBA9pH8ks/PXSgdfzaMIGcxIjevm7H5kb6wWFrhq4yQeNf5A9rVJtG6wQ+C4aOBgH+RCnXe4tLDD/AOSRB/e+lruSfdS5h9o9vu2kiRHknXK6r+RdEGUYgRGtD8EVlf2V7S9v6I8mJI/lJ67mOJgkCdrhMtd+6fak41uZxLGkQWTIB19o/O/qoZrDH72y7uCNDH/fv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP83VAcHvbAJLhpPePNGAc7wfHOsFJ9ctLILHNOhhAEBEjGzQG2pamy4dwzxgGdENwsOljtNRv2iB4Q9harkWMO8OLm6bo1RDW17AXN3N4Lm/e3RP46WTyiIoVfl3RUuLqi0vln/RDh22oe9r7A6sEbuDJjd/1SMWUAizbq07XHvM+12xO4uY8lgaHHVwdoHNPgm3qaXGQiIyIJl2Pp/lNG1trg9u9wLTLqo2gebJUy20t1O7T87y8Ub1ybBvpPuHtI9w0+kChtY4uLDLSfogeXxQs9QB1VrIgGhGz+H91ELMqotJ91bgDEyB/wBFGaAX72d+SCTH9YITK7wHMBcWtOoggie/9VTYHEAxLu41B8/d/wCSSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/wBpOdCWOaCOziY+TUy6LWlPiFn5d+yEUAkWVccOA4+TQnDxWdu709IJA2x4FFa/03FjADGjmdx4PbCQey0FlsOsAgEgAuj3D3fRS4j1Fj8VSmTEEj0/ox/ePd//0rD7tp3NDi13YnsddHJy6p4G5pYdA4nQ6cHcPig7WNfuJ2AzuaNWn+rtRWekJFQImRqCJn83XaunIAF6+bHhiOI8IJN8I/dUW2V2exjXyJ5EmOYlQhljg7kdpABHkmBc8jeAO7WkagjRwCI6pxbuHHlrB8NEh4tiZGOJFjjJJtiGGrQtBB0E8/ekGtdofY3w8EVlQLQWmH9xrHySLZI8R3aZ0PbVLia0p6VHUnr4MPe32kyANDp/1SlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/L5mVm+p/tMt7kaEfJDc6xoLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLa0MG5xcOz4Bj+Q5EHvux0OM/yLIZQhpNQMiC8GQR4Jqg66sNbLTUSBB1H3/m+5R2tYJrA292g7TqOyky2tlw9c7dx2l8NB1+g5w9qBAANDx/kF05RExQ+XTXVGarx/K11JgfPlTayw6u+k3kcFXHUssMNjeRu4Ba8cO2IXpWVvnQDUSdQPLcEPcBHS1TzcA6DbzZUjeIfua4DaDHMeJ/OTPays+naNu7ggaqQ9Vhhx27tIE7TPh+c1NbNjPTcdR+fE/wBlqZZvwPZiHFKBN/yK1jQ1wLg2I1ce6jY8Rs3ECJaJ04+CUOaGtc9vEtkkgj+Vz7kwrrc06uAbzBn56JwrrqyxhEjXY6sHVb9rq3lrm8OiHfP+ShOfdRb74e1wBcwmTLdPY7+qivMDUOLm/IOHk5D9RriGNkPA9u8AiPJ4TxfmEZrkdvL/AH3/05PeHD1mOgO0c1+nP5zf6v56ep1znjeZHZw1H+v9ZH+zUuc4hoDSYcQ32mfov4Tuw/bNQBe0e5jfDyXT8cao/ig5Y4hUR+srt8iQs2tlxB84jlItc1xDCADyJQqrmvqDH6uB2747dvaiejYTGhjxG0gjwTNtywk6cczuBv2R7Q1x2HadDof++qcknWIOkH+CMyqtwILnV2MJBJk/9Ugvqsn3QBzIMtP8rakJAn+K3GRK5nSN7n9jHewzGrQdQpmkugNaSw6t78qTgyRp6e4aOEkT5/yVOm2lzS1zgduj2kmR5t0QMiBYB/NbPLcqANDbr/hNR1VrHCfo/iPmptxWP9zjIdyONf3tFdsx2uq3NtBAH52v/mSpWF+LYHj3s0kAkgg89kY5OMek+r7FcchQj17Mvsjnbq2uO8CWzrI+73KPpsyGBtxDSBG8D/vyha8C9j67D6biQ14Jlrj9HfuChfdYbTvra4P5e3UT4x9FOAkevj/WXY8OSUpa7H1E/ox3CRljKhsadu0nSdAT4bv3kr8i5xJr3BzNHB3BHmqptvpPu3XMOu9sSI7PbopWWWOd6rLRx7pAB07bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/8ASTuJYRsluukGQD/VQ/XbUWgv26GD3bH/AFbVP0brLYY4OFgmGE+7vx9FIgA3sF/CDjBl6IXevb9FkbGwC0ls+73AQT3/AKqb7TSf0lf0hodo0IP5pTih9byxzTYw6tJ1I/kv/eSdtDZDASNQ8CRH7rmIenzX3E2dTuyY/wBSdrHH+qN35EG191furYSzXc0CHc86nahvse2yaTtDhyJH4IlXUdlmzJ1rf9Jzmg6HTcncJGoFj91hMDuQN9B/3T//1LteRlVMgP3BsNLDrA/N91m7ai+vMWMrbubG73QNUMsFILLDuAGhgjT+UkysOINLwQBqCRoP5Lf3F0ZEDrQ/vfLxebSAjVnTTWR9OqX1MMul7WkOPvDRIB/kvUbrWsALXD0xpuJ1g8KBcwS17QSJBcNBp+bCBZjBwO14e0To7Qx5PSEI2LJ+uoZYcuMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22VlhkivttEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9Y27LNrvcNW7mnvPu96G6tgv3FkMeJEkmD8B/1SE+tjID3EfnMM8+MOUXvb6AsbYbGtcQdw1aT7YfB/e/kp4gB8ulsco1QgCKF3/d3btDMcEsLiyQRA8U5xQWA1v9VsGQBDmg/nNZ+dtVb1w4Mu2bX/AJwLpbp+dWfzUY2W0WzTrBhzXHseHMdomGMrsHXsarRceI6Xe29VwSQ3VkOHqe6Nu4ERx313NRgwfzdTnExOwRARLnG6vcGzZ3gQfk781VvS1a5o2uYZAkyPGP5KQPENdCF50iTI+mR4vOI/7lTWw7a925pOnaJ7In2NrhsbUJaYgjgdtddycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0AA+XHsQsigVlnpF5YIc0T9H4bVafVfXkF7dGvjkmA4aFv9pMWkja5oJHYahKMjfFdgswvguUuImRP+DH5Gs91xLbGkQOS0QQfE7kSux7gGugxMEAg69v6qIS1zWkCRwREH+U2En1GshzCHN8Dz5o8QqiK7Ky5qs1ruplbXN+jxzrqh20NLeQ7bwRrofJWGOa4biC5p5BgSPFn9VT9Fj63M920ggGQfm1M9wxOrWMzW+p/wCa/wD/1bb7rNHMl1Z1aZBMH+SoMya7Q0WNgt0OwBpBH5wd/VTW13jsADqHRIJQqGh1mr2EctmYEdtq6cRjw326hjMInLG9r6fy/SSOvfW8e3cwatJABjw3EbnK02yqxh2xuA0a7uD4fmofp+o0MsiDqzdq0+LUNlVlDoH0Jgagx/V3JpESO0h+K7JOIvoPA/hxMi0y0vDtpMbm6jT+Si1va8v9IGR+aSAfH85IOJlrmNa4amdA4fvt5aoW17/0lbwbGjWSDI+5DffT/osWMGRvt8o6furvdYGlmwQOQYOh/r/99VX0WmTIbaR/nD/vyMLLnVgPIaW6E8z+CgRAO1wnuI0BT42PDyZJDgGlXXTx/rIaWU1tLbWw2dATPylWBXjlgaCI0DZg6eDXFD+zCwueS1zoDiAe0ah35u1DZSJcysPaw6OI9zZ/d/8AOE4662bW4xcR6zcvmP6EIDZs6Y2tbn2UnU7e3fa5oTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPycozY/rH8/wC8x81lGkYjisfgP3lC21lX6QNLAfpNAcRPy3bFJznbBA2+Qkg9xtn2JrgRW21jxDva2YgzoWEiFD1GbQJ2hnDWncCP3dyAA3rzpby2HikSRdRFnxl0/rJXOsa8S7YT2dJDh8vbtU3DfWdRA/dBPmqjrPaG6w2eDOnzVjGspOri4A6bjpz/AN9SlEgX27Non9YTL6D6IXQDtEncYg8nw+moeua9pBdAMhrjr8P5Ss5FNZ5BLZgweCPBVn17WaSXjSHfkcnxIIDBlriINk70yZmbY3xodHckd+R8UY55rIa6h5D9C9oBE8aPf7Gqha5z2n9HzyHHy9zXQp4lrC30pO4dySQCBt97SlLFEi6Rhwx4uKYuh6Y/o/4X9R//1p0uLqi0vln/AEQ4dtqHva+wOrBG7gyY3f8AVIxZQCLNurTtce8z7XbU7i5jyWBocdXB2gc0+C6m9TXVYZCIjIgmXY+n+UkbW2uD273AtMuqjaB5slTLbS3U7tPzvLxRvXJsG+k+4e0j3DT6QKG1ji4sMtJ+iB5fFCz1AHVWsiAaEbP4f3UQsyqi0n3VuAMTIH/RRmgF+9nfkgkx/WCEyu8BzAXFrTqIIInv/VU2BxAMS7uNQfP3f+SSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/2k50JY5oI7OJj5NTLotaU+IWfl37IRQCRZVxw4Dj5NCcPFZ27vT0gkDbHgUVr/TcWMAMaOZ3Hg9sJNey0bLIdYBAJABdHuHu+ilxHqLH4qlMmIJHp/Rj+8e65EkcPDxzMzPwQdtrHurc2QfoP526fRkJnjHcyK/aQSCyYLTM/RP0kg58jY+XRBA9pH8ks/PSA6/mxQgZzEiN6+bsfmRvrBYWuGrjJB41/kD2tUm0brBD4Lho4GAf5EKdd7i0sMP/AJJEH976Wu5J91LmH2j2+7aSJEeSdcrqv5F0QZRiBEa0PwRWV/ZXtL2/ojyYkj+UnruY4mCQJ2uEy137p9qTjW5nEsaRBZMgHX2j87+qhmsMfvbLu4I0Mf8Afv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP8AN1QHB72wCS4aT3jzRgHO8HxzrBSfXLSyCxzToYQBARIxs0BtqWpsuHcM8YBnRDIs4sdpqN+0QPCH1lquRYw7w4ubpujVENbXsBc3c3gubp5t0T+Olk8oiKFX5d3/17AyhDSagZEF4MiPBNUHXVhrZaaiQIOo+/8AN9yjtawTXG3u0HadRyFJltbLh6527jtL4aDr9Bzh7V05AANDx/kGCcoiYofLQ11Rmq8fytdSYHz5U2ssOrvpN5HBVx1LLDDY3kbuAWvHDtiF6Vlb50A1EnUDy3BD3AR0tU83AOg282VI3iH7muA2gxzHifzkz2srPp2jbu4IGqkPVYYcdu7SBO0z4fnNTWzYz03HUfnxP9lqZZvwPZiHFKBN/wAitY0NcC4NiNXHuo2PEbNxAiWidOPglDmhrXPbxLZJII/lc+5MK63NOrgG8wZ+eicK66ssYRI12OrB1W/a6t5a5vDoh3z/AJKE591FsvAeHAEsJky39x39VFeYGocXN+QcPJyH6jXEMbIsA9u8AiPJ4TxfmEZrkdvL/fSPuDTuaHFjuxOsHXRycuqeBuaWHQOJ0OnB3D4oO1jX7idgM7mjVp/q7UVnpCRUCJkagiZ/N12oEADr5smGI4jwgk3wj91RbZXZ7GNfInkSY5iVCGWODuR2kAEeSYFzyN4A7taRqCNHAIjqnFu4ceWsHw0SHi2JkY4kWOMkm2IYatC0EHQTz96Qa12h9jfDwRWVAtBaYf3GsfJItkjxHdpnQ9tUuJrSnpUdSevgw97faTIA0On/AFSlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/AC+ZlZvqf7TLe5GhHyQ3OsbLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLY0M97tzezoBj+Q5EHvux0OM/yL//0Lv2Rzt1bXHcBLZ1kfd7lH02ZDA24hpAjeB/35QteBex7LDscSA8TLXH6O+QoX3Wm07q2uD+Xt1E+MfRXTASPXx/rNbHhySkddj6if0Y/MEjLGVDY07dpOk6Anw3fvJX5FziTXuDmaODuCPNVTbfSfduuYdQ9sSI7PbopWWWOd6rLe3ukAH4bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/9JO4lhGyW66QZAP8AVQ/XbXtl+3Qw7u2P+rap+lc+2GOBFgmGE+7vx9FIgA3sF/CDjBl6I3evb9FkbGwC0ls+73AQT3/qpvtNJ/SV/SGh2jQg/mlOKH1vLHNNjDq0nUj+S/8AeScGtbOzUah4EiP3XMQ9PmvuJs6ndkx/qTtY4/1Ru/Ig2vurl1VZLNZaAA7nn3Hahvse2yaTtDhyJH4IlXUdlm3J1rf9Nzmg6H85HhI1AB/qsJidyBvoP+6YveHD1q3QHaOa/TQ/nN/d2/np6nXOeN5kdnDUf6/1lY+y1Oc6GiJhxa32n91/CTsPSagC9o9zG9x5IccdvzZTljiFRH6yu3yJCza2XEHziOUi1zXEMIAPIlDqua6oMeDuB2747dvap+jYTEAx4jaQR+6mbblhJ045ncA69ke0Ncdh2nQ6H/vqnJJ1iDpB/gjMqqcCNzq7GEiTJ/6pBfVZOsAcyDLT57UhIH+1bjIlczpG9z+xjvYZjVoOoUzSXQGtJYdW9+VJzWyNPT3DRwkifP8AkqdNtLgWucDt0e0kyI7t0QMiBYB/NbPLcqANDbr/AITUdVaxwn6P4j5qbcVjvc4yHcjjX97RXLMdjq9zbWkAfnGf/MlTfvxrA8e5mkgEkEHnsjHJxj0n1K45ChHr2D//2f/tI+RQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNBDoAAAAAAHsAAAAQAAAAAQAAAAAAC3ByaW50T3V0cHV0AAAABAAAAABDbHJTZW51bQAAAABDbHJTAAAAAFJHQkMAAAAASW50ZWVudW0AAAAASW50ZQAAAABDbHJtAAAAAE1wQmxib29sAQAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAOEJJTQQ7AAAAAAGCAAAAEAAAAAEAAAAAABJwcmludE91dHB1dE9wdGlvbnMAAAAQAAAAAENwdG5ib29sAAAAAABDbGJyYm9vbAAAAAAAUmdzTWJvb2wAAAAAAENybkNib29sAAAAAABDbnRDYm9vbAAAAAAATGJsc2Jvb2wAAAAAAE5ndHZib29sAAAAAABFbWxEYm9vbAAAAAAASW50cmJvb2wAAAAAAEJja2dPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAAR3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAAAAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBSAJOAAAAAAAAACnZlY3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAA4QklNA+0AAAAAABAASAJOAAEAAgBIAk4AAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAAAAEBADhCSU0ELQAAAAAABgABAAAADThCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANNAAAABgAAAAAAAAAAAAAEAAAABAAAAAAMAHcAYQB0AGUAcgBuAG8AcgBtAGEAbABzAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAEAAAAAABSZ2h0bG9uZwAABAAAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAABAAAAAAAUmdodGxvbmcAAAQAAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQUAAAAAAAEAAAADjhCSU0EDAAAAAAb5AAAAAEAAACgAAAAoAAAAeAAASwAAAAbyAAYAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAoACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8ANdXtcN43AbdwIjjvrLUYMH83U4l0TsAEBEucbq9wbNh5gQfk5VvS1a5o2uYZAkyPGP5K6UHiGuhCw6RJkfTI8XnEf9ys1sO2vduaTp2ieyL9ja4bG1CWmII4B48dycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0QD5fyELIp9Mt9Iv26OaAfo/DarT6r68gvbo18ckwHDQt/tJi0kbXNBI7DUJRkbu7BZhfBcpcRMif8GPyNZ7riWvaRA5IEEfHciVve4BrtpiYIBB17f1UQlrmtIEjgiIP8psJPqNZDmEOb4HnzR4hVVXZWTNVmtd1MrY5v0OOddUK7HYW6kODdARrofJWWOa4biC5p5BgSPFn9VT9Gt9bmHdtIIGoPzame4YnVrGZrU6n/moK78mpkB+4NhpYfdA/N91m5F9eYsZW3c2N3ugaoRZ6I2WHcABrBGn8pOysOINLwQBqCRoP5Lf3EiIHWh/e+Xi80gCrOmmsj6dUvqYZdL2thx94aJAP8l6jda1gBa4emNNxOsFQLmCWvaCRILhoNPzYQLMYOB2vD2idHaGPJ6QhGxZP11DLDAMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22MLDJFZ/dEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9YjZZtPuH0dzT5+7a9DNbG37iyGPEiSTB/qj/qkJ9bGQHuI/OYZ58Ycove30BY2w2Na4g7hq0n2w+D+9/JTxAD5dLY5RqhAHQXf93du0NxwSwuLZBEeac4oLJrf6rYMgCHNH7zWfnbVW9cODLtm1/5wLpbp+dWfzUY2W0WzTrBhzXGdDw5h0TDGV2Dr2NVouNnQG9u1cBf/9Czpja1ufZSdTt7d9rmtTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPyculNj+sfz/vNbmso0jEcVj8B+8oW2sq/SBpYD9JoDiJ+W7YpOc7YIG3yEkHuNs+xNcCK22seId7WzEGdCwkQoeozaBO0M4a07gR+7uQAG9edLeWw8UiSLqIs+Mun9ZK51jXiXbCezpIcPl7dqm4b6zqIH7oJ81UdZ7Q3WGzwZ0+asY1lJ1cXAHTcdOf++pSiQL7dm0T+sJl9B9ELoB2iTuMQeT4fTUPXNe0gugGQ1x1+H8pWcims8glswYPBHgqz69rNJLxpDvyOT4kEBgy1xEGyd6ZMzNsb40OjuSO/I+KMc81ENdQ8h/LmgHXj2vf7NyoWuc9p/R88hx8vc10KeJawt9Ik7h3JJAIG33tSliiRdIw4Y8XFMXQ9Mf0f8L+o2n3PEOZLqzq0yCY/qn/qVBmTXaGixsFuh2ANII/ODv6qa2u8dgAdQ6JBP/mSFQ0Os1ewjlszAjttS4Y8N9uoZTCJyxva+n8vmkkde+t49u5g1aSADHhuI3OVptlVjDtjcBo13cHw/NQ/T9RoZZEHVm7Vp8WobKrKHQPoTA1Bj+ruTSIkdpD8V2ScRfQeB/DiZFplpeHbSY3N1Gn8lFre15f6QMj80kA+P5yQcTLXMa1w1M6Bw/fby1Qtr3/pK3g2NGskGR9yG++n/RYsYMjfb5R0/dXe6wNLNggcgwdD/X/76qvotMmQ20j/ADh/35GFlzqwHkNLdCeZ/BQIgHa4T3EaAp8bHh5MkhwDSrrp4/1kNLKa2ltrYbOgJn5SrArxywNBEcCYOng1xQ/swsLnktc6A4gHtGod+btQ2UiXMrD2sOjiPc2f3f8AzhOOutm1uMXEes3L5j+hCA2f/9G8RJHDw8fSmZn4IW21j3VubIP0H87dPoyEzxQ5kV+0gkFkwWmZ4P0kg58jY+XRBA9pH8ks/PXSgdfzaMIGcxIjevm7H5kb6wWFrhq4yQeNf5A9rVJtG6wQ+C4aOBgH+RCnXe4tLDD/AOSRB/e+lruSfdS5h9o9vu2kiRHknXK6r+RdEGUYgRGtD8EVlf2V7S9v6I8mJI/lJ67mOJgkCdrhMtd+6fak41uZxLGkQWTIB19o/O/qoZrDH72y7uCNDH/fv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP83VAcHvbAJLhpPePNGAc7wfHOsFJ9ctLILHNOhhAEBEjGzQG2pamy4dwzxgGdENwsOljtNRv2iB4Q9harkWMO8OLm6bo1RDW17AXN3N4Lm/e3RP46WTyiIoVfl3RUuLqi0vln/RDh22oe9r7A6sEbuDJjd/1SMWUAizbq07XHvM+12xO4uY8lgaHHVwdoHNPgm3qaXGQiIyIJl2Pp/lNG1trg9u9wLTLqo2gebJUy20t1O7T87y8Ub1ybBvpPuHtI9w0+kChtY4uLDLSfogeXxQs9QB1VrIgGhGz+H91ELMqotJ91bgDEyB/wBFGaAX72d+SCTH9YITK7wHMBcWtOoggie/9VTYHEAxLu41B8/d/wCSSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/wBpOdCWOaCOziY+TUy6LWlPiFn5d+yEUAkWVccOA4+TQnDxWdu709IJA2x4FFa/03FjADGjmdx4PbCQey0FlsOsAgEgAuj3D3fRS4j1Fj8VSmTEEj0/ox/ePd//0rD7tp3NDi13YnsddHJy6p4G5pYdA4nQ6cHcPig7WNfuJ2AzuaNWn+rtRWekJFQImRqCJn83XaunIAF6+bHhiOI8IJN8I/dUW2V2exjXyJ5EmOYlQhljg7kdpABHkmBc8jeAO7WkagjRwCI6pxbuHHlrB8NEh4tiZGOJFjjJJtiGGrQtBB0E8/ekGtdofY3w8EVlQLQWmH9xrHySLZI8R3aZ0PbVLia0p6VHUnr4MPe32kyANDp/1SlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/L5mVm+p/tMt7kaEfJDc6xoLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLa0MG5xcOz4Bj+Q5EHvux0OM/yLIZQhpNQMiC8GQR4Jqg66sNbLTUSBB1H3/m+5R2tYJrA292g7TqOyky2tlw9c7dx2l8NB1+g5w9qBAANDx/kF05RExQ+XTXVGarx/K11JgfPlTayw6u+k3kcFXHUssMNjeRu4Ba8cO2IXpWVvnQDUSdQPLcEPcBHS1TzcA6DbzZUjeIfua4DaDHMeJ/OTPays+naNu7ggaqQ9Vhhx27tIE7TPh+c1NbNjPTcdR+fE/wBlqZZvwPZiHFKBN/yK1jQ1wLg2I1ce6jY8Rs3ECJaJ04+CUOaGtc9vEtkkgj+Vz7kwrrc06uAbzBn56JwrrqyxhEjXY6sHVb9rq3lrm8OiHfP+ShOfdRb74e1wBcwmTLdPY7+qivMDUOLm/IOHk5D9RriGNkPA9u8AiPJ4TxfmEZrkdvL/AH3/05PeHD1mOgO0c1+nP5zf6v56ep1znjeZHZw1H+v9ZH+zUuc4hoDSYcQ32mfov4Tuw/bNQBe0e5jfDyXT8cao/ig5Y4hUR+srt8iQs2tlxB84jlItc1xDCADyJQqrmvqDH6uB2747dvaiejYTGhjxG0gjwTNtywk6cczuBv2R7Q1x2HadDof++qcknWIOkH+CMyqtwILnV2MJBJk/9Ugvqsn3QBzIMtP8rakJAn+K3GRK5nSN7n9jHewzGrQdQpmkugNaSw6t78qTgyRp6e4aOEkT5/yVOm2lzS1zgduj2kmR5t0QMiBYB/NbPLcqANDbr/hNR1VrHCfo/iPmptxWP9zjIdyONf3tFdsx2uq3NtBAH52v/mSpWF+LYHj3s0kAkgg89kY5OMek+r7FcchQj17Mvsjnbq2uO8CWzrI+73KPpsyGBtxDSBG8D/vyha8C9j67D6biQ14Jlrj9HfuChfdYbTvra4P5e3UT4x9FOAkevj/WXY8OSUpa7H1E/ox3CRljKhsadu0nSdAT4bv3kr8i5xJr3BzNHB3BHmqptvpPu3XMOu9sSI7PbopWWWOd6rLRx7pAB07bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/8ASTuJYRsluukGQD/VQ/XbUWgv26GD3bH/AFbVP0brLYY4OFgmGE+7vx9FIgA3sF/CDjBl6IXevb9FkbGwC0ls+73AQT3/AKqb7TSf0lf0hodo0IP5pTih9byxzTYw6tJ1I/kv/eSdtDZDASNQ8CRH7rmIenzX3E2dTuyY/wBSdrHH+qN35EG191furYSzXc0CHc86nahvse2yaTtDhyJH4IlXUdlmzJ1rf9Jzmg6HTcncJGoFj91hMDuQN9B/3T//1LteRlVMgP3BsNLDrA/N91m7ai+vMWMrbubG73QNUMsFILLDuAGhgjT+UkysOINLwQBqCRoP5Lf3F0ZEDrQ/vfLxebSAjVnTTWR9OqX1MMul7WkOPvDRIB/kvUbrWsALXD0xpuJ1g8KBcwS17QSJBcNBp+bCBZjBwO14e0To7Qx5PSEI2LJ+uoZYcuMgMpkgb69I/o+lm65vqtsYS7dJ14+785I22VlhkivttEx/Vao491mPsBaH17oO/WD2c0/SRLa6rw8AOG2YAOgTqANEafvMk6lDgiOGIO+524pf9FRzN9Y27LNrvcNW7mnvPu96G6tgv3FkMeJEkmD8B/1SE+tjID3EfnMM8+MOUXvb6AsbYbGtcQdw1aT7YfB/e/kp4gB8ulsco1QgCKF3/d3btDMcEsLiyQRA8U5xQWA1v9VsGQBDmg/nNZ+dtVb1w4Mu2bX/AJwLpbp+dWfzUY2W0WzTrBhzXHseHMdomGMrsHXsarRceI6Xe29VwSQ3VkOHqe6Nu4ERx313NRgwfzdTnExOwRARLnG6vcGzZ3gQfk781VvS1a5o2uYZAkyPGP5KQPENdCF50iTI+mR4vOI/7lTWw7a925pOnaJ7In2NrhsbUJaYgjgdtddycvqAh4BbH0vnqxyIMSsEem6XNPtmRofzdxPuSlOupj9NGvLLZo2Bvw1v/eQ42PQwurLTyTG0AA+XHsQsigVlnpF5YIc0T9H4bVafVfXkF7dGvjkmA4aFv9pMWkja5oJHYahKMjfFdgswvguUuImRP+DH5Gs91xLbGkQOS0QQfE7kSux7gGugxMEAg69v6qIS1zWkCRwREH+U2En1GshzCHN8Dz5o8QqiK7Ky5qs1ruplbXN+jxzrqh20NLeQ7bwRrofJWGOa4biC5p5BgSPFn9VT9Fj63M920ggGQfm1M9wxOrWMzW+p/wCa/wD/1bb7rNHMl1Z1aZBMH+SoMya7Q0WNgt0OwBpBH5wd/VTW13jsADqHRIJQqGh1mr2EctmYEdtq6cRjw326hjMInLG9r6fy/SSOvfW8e3cwatJABjw3EbnK02yqxh2xuA0a7uD4fmofp+o0MsiDqzdq0+LUNlVlDoH0Jgagx/V3JpESO0h+K7JOIvoPA/hxMi0y0vDtpMbm6jT+Si1va8v9IGR+aSAfH85IOJlrmNa4amdA4fvt5aoW17/0lbwbGjWSDI+5DffT/osWMGRvt8o6furvdYGlmwQOQYOh/r/99VX0WmTIbaR/nD/vyMLLnVgPIaW6E8z+CgRAO1wnuI0BT42PDyZJDgGlXXTx/rIaWU1tLbWw2dATPylWBXjlgaCI0DZg6eDXFD+zCwueS1zoDiAe0ah35u1DZSJcysPaw6OI9zZ/d/8AOE4662bW4xcR6zcvmP6EIDZs6Y2tbn2UnU7e3fa5oTv9wDqxuY/UGdR/KbH/AFChV6lTS1oG3lp1geRaiV3MYwurEAGXbfPycozY/rH8/wC8x81lGkYjisfgP3lC21lX6QNLAfpNAcRPy3bFJznbBA2+Qkg9xtn2JrgRW21jxDva2YgzoWEiFD1GbQJ2hnDWncCP3dyAA3rzpby2HikSRdRFnxl0/rJXOsa8S7YT2dJDh8vbtU3DfWdRA/dBPmqjrPaG6w2eDOnzVjGspOri4A6bjpz/AN9SlEgX27Non9YTL6D6IXQDtEncYg8nw+moeua9pBdAMhrjr8P5Ss5FNZ5BLZgweCPBVn17WaSXjSHfkcnxIIDBlriINk70yZmbY3xodHckd+R8UY55rIa6h5D9C9oBE8aPf7Gqha5z2n9HzyHHy9zXQp4lrC30pO4dySQCBt97SlLFEi6Rhwx4uKYuh6Y/o/4X9R//1p0uLqi0vln/AEQ4dtqHva+wOrBG7gyY3f8AVIxZQCLNurTtce8z7XbU7i5jyWBocdXB2gc0+C6m9TXVYZCIjIgmXY+n+UkbW2uD273AtMuqjaB5slTLbS3U7tPzvLxRvXJsG+k+4e0j3DT6QKG1ji4sMtJ+iB5fFCz1AHVWsiAaEbP4f3UQsyqi0n3VuAMTIH/RRmgF+9nfkgkx/WCEyu8BzAXFrTqIIInv/VU2BxAMS7uNQfP3f+SSNeHbReJCMQBQJ9Wnh3TBpBLSBB4I5UH7K3S2O2o/i1Epcw+3cd0fQ4M/2k50JY5oI7OJj5NTLotaU+IWfl37IRQCRZVxw4Dj5NCcPFZ27vT0gkDbHgUVr/TcWMAMaOZ3Hg9sJNey0bLIdYBAJABdHuHu+ilxHqLH4qlMmIJHp/Rj+8e65EkcPDxzMzPwQdtrHurc2QfoP526fRkJnjHcyK/aQSCyYLTM/RP0kg58jY+XRBA9pH8ks/PSA6/mxQgZzEiN6+bsfmRvrBYWuGrjJB41/kD2tUm0brBD4Lho4GAf5EKdd7i0sMP/AJJEH976Wu5J91LmH2j2+7aSJEeSdcrqv5F0QZRiBEa0PwRWV/ZXtL2/ojyYkj+UnruY4mCQJ2uEy137p9qTjW5nEsaRBZMgHX2j87+qhmsMfvbLu4I0Mf8Afv7SduNd2OMOGfFKzL8u6d11ha5jgRHYQP8AN1QHB72wCS4aT3jzRgHO8HxzrBSfXLSyCxzToYQBARIxs0BtqWpsuHcM8YBnRDIs4sdpqN+0QPCH1lquRYw7w4ubpujVENbXsBc3c3gubp5t0T+Olk8oiKFX5d3/17AyhDSagZEF4MiPBNUHXVhrZaaiQIOo+/8AN9yjtawTXG3u0HadRyFJltbLh6527jtL4aDr9Bzh7V05AANDx/kGCcoiYofLQ11Rmq8fytdSYHz5U2ssOrvpN5HBVx1LLDDY3kbuAWvHDtiF6Vlb50A1EnUDy3BD3AR0tU83AOg282VI3iH7muA2gxzHifzkz2srPp2jbu4IGqkPVYYcdu7SBO0z4fnNTWzYz03HUfnxP9lqZZvwPZiHFKBN/wAitY0NcC4NiNXHuo2PEbNxAiWidOPglDmhrXPbxLZJII/lc+5MK63NOrgG8wZ+eicK66ssYRI12OrB1W/a6t5a5vDoh3z/AJKE591FsvAeHAEsJky39x39VFeYGocXN+QcPJyH6jXEMbIsA9u8AiPJ4TxfmEZrkdvL/fSPuDTuaHFjuxOsHXRycuqeBuaWHQOJ0OnB3D4oO1jX7idgM7mjVp/q7UVnpCRUCJkagiZ/N12oEADr5smGI4jwgk3wj91RbZXZ7GNfInkSY5iVCGWODuR2kAEeSYFzyN4A7taRqCNHAIjqnFu4ceWsHw0SHi2JkY4kWOMkm2IYatC0EHQTz96Qa12h9jfDwRWVAtBaYf3GsfJItkjxHdpnQ9tUuJrSnpUdSevgw97faTIA0On/AFSlWRY/a08idTBTekx0GQfI6GQhFzq3iJLBrBPb+S5LfbdWkYgDvcj/AC+ZlZvqf7TLe5GhHyQ3OsbLgfVa3lhMGPL6O5WXj1QdriYGgMAkeTkLY0M97tzezoBj+Q5EHvux0OM/yL//0Lv2Rzt1bXHcBLZ1kfd7lH02ZDA24hpAjeB/35QteBex7LDscSA8TLXH6O+QoX3Wm07q2uD+Xt1E+MfRXTASPXx/rNbHhySkddj6if0Y/MEjLGVDY07dpOk6Anw3fvJX5FziTXuDmaODuCPNVTbfSfduuYdQ9sSI7PbopWWWOd6rLe3ukAH4bdydwC7NHxK8Yo8JlKiAbMpa2P30tN+/9DaCx3G6ZaR2/k/9JO4lhGyW66QZAP8AVQ/XbXtl+3Qw7u2P+rap+lc+2GOBFgmGE+7vx9FIgA3sF/CDjBl6I3evb9FkbGwC0ls+73AQT3/qpvtNJ/SV/SGh2jQg/mlOKH1vLHNNjDq0nUj+S/8AeScGtbOzUah4EiP3XMQ9PmvuJs6ndkx/qTtY4/1Ru/Ig2vurl1VZLNZaAA7nn3Hahvse2yaTtDhyJH4IlXUdlm3J1rf9Nzmg6H85HhI1AB/qsJidyBvoP+6YveHD1q3QHaOa/TQ/nN/d2/np6nXOeN5kdnDUf6/1lY+y1Oc6GiJhxa32n91/CTsPSagC9o9zG9x5IccdvzZTljiFRH6yu3yJCza2XEHziOUi1zXEMIAPIlDqua6oMeDuB2747dvap+jYTEAx4jaQR+6mbblhJ045ncA69ke0Ncdh2nQ6H/vqnJJ1iDpB/gjMqqcCNzq7GEiTJ/6pBfVZOsAcyDLT57UhIH+1bjIlczpG9z+xjvYZjVoOoUzSXQGtJYdW9+VJzWyNPT3DRwkifP8AkqdNtLgWucDt0e0kyI7t0QMiBYB/NbPLcqANDbr/AITUdVaxwn6P4j5qbcVjvc4yHcjjX97RXLMdjq9zbWkAfnGf/MlTfvxrA8e5mkgEkEHnsjHJxj0n1K45ChHr2D//2ThCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAAAAEAOEJJTQQGAAAAAAAHAAQAAQABAQD/4Q74aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQzNDIsIDIwMTAvMDEvMTAtMTg6MDY6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgKDEyLjB4MjAxMDAxMTUgWzIwMTAwMTE1Lm0uOTk4IDIwMTAvMDEvMTU6MDI6MDA6MDAgY3V0b2ZmOyBtIGJyYW5jaF0pICBXaW5kb3dzIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxMy0xMi0wM1QyMDo0MjoxMyswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTMtMTItMDVUMDA6NTQ6MDkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkM2MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QzUyMUNCMjQzQzVERTMxMUJDRjE5RDcwMEE5NDMwQUIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1MjFDQjI0M0M1REUzMTFCQ0YxOUQ3MDBBOTQzMEFCIiBzdEV2dDp3aGVuPSIyMDEzLTEyLTAzVDIwOjQyOjEzKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1ICgxMi4weDIwMTAwMTE1IFsyMDEwMDExNS5tLjk5OCAyMDEwLzAxLzE1OjAyOjAwOjAwIGN1dG9mZjsgbSBicmFuY2hdKSAgV2luZG93cyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNjIxQ0IyNDNDNURFMzExQkNGMTlENzAwQTk0MzBBQiIgc3RFdnQ6d2hlbj0iMjAxMy0xMi0wNVQwMDo1NDowOSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNSAoMTIuMHgyMDEwMDExNSBbMjAxMDAxMTUubS45OTggMjAxMC8wMS8xNTowMjowMDowMCBjdXRvZmY7IG0gYnJhbmNoXSkgIFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZAAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQcHBw0MDRgQEBgUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAQABAADAREAAhEBAxEB/90ABACA/8QAkwAAAwEBAQEBAAAAAAAAAAAAAgMEBQEABgcBAAMBAQEBAQAAAAAAAAAAAAIDBAEABQYHEAACAQMDAwMEAQMEAgIBBQEBAgMAEQQhMRJBUSJhEwVxgTIUkaFCI7FSMxXBYtEGcuHxgkMkUxEAAgMAAgICAwADAAMBAQEAAAERAgMhEjEEQRNRYSJxMhSBQgUjFVL/2gAMAwEAAhEDEQA/ANXHZ1Ugai/Wv0e6RH69eGDmSIEHMBr9BXZrngo1zbSgzv2VR9LqvQXqnrIuuTRQCk4P+t6XyjG+TNzMeRDwV9D0BpqsmQ7w4TRNj4+SkpVieB63vRtqD0vR6pwWNhy3ufIeppKse49Ei/HhjMdmBBtrap3/ALBabvrCKseMKBxbQdKHTklrpwUjJ4MLrfvQ/XweT7DdrBySxSAEDj3vWVq0LvSOWTyYqubj+aYrwTW0hk0mEivqxtRLRsito73hC+ftSWBuKbEo9GlIKIyri96W+BlTrCxte9cgr8gliNq0OlJJmnb3LAUccFlclXlgZcZaLlcC+wraOGJuvsfHgyfYlL6DXoae2W5KtEWQ4iSIA4u1Kbhna+zKhAn45VckK3IbXou5N9z5GzYbyRAlNayt0hG2yamSFcOdGI6E7UzuiH7qpHZ/jpUsygkHcVy0R1tUIk+IYjmUYg9BWrRFfrar4M+fCy8c841bj2NMVkyu1q+Wafxk2VKoUpY0nVIo9a9H8mzDgOV5cSSelRu3Jfb2Uq8eBc+G6OAYrg70+l1Hk8b2Ne10pFCJFlH+Nh6dKKeDraNNKR82Gk+gTixoK3gVvrDieWZ3sSYz/gfXtT5Vg/X4rMmli/IoFHuWA/21PfL8DYb8FT5kLEFdBQVzZPvRpyybJ9pzy43Nt6Oso8vWexltmrBIqqxUqdgaK2cnnaZWbSN3F+UUqC7aUm+H4PZ9fD8F0WT+whCfzepdK9Wez6uKqm2IYMlwwJpy5O0twwVgMikoxX0vWu0MVW6pSWBLFIqggnkNzejq0zyNb/Y5E3DOLEhvU0wfWsQPhCJKGa5760q8tQOpo+3Ba0GFLYgkaa2NTq16j3e0yRS4axS35FlPrVNdJRBro3Yug/XKbk+lT3mSzN2aOTRoykDbpXUswroiKRqQL/WqE2T2bGI+Mu4oWrDa9jmQmO4upA+9dRtHXTki/Ux2fU3b607uwfsacIaIMVTZtPQGh7MG2lm4R1oICPxP1vXKzGOzSFthxWuAb/Wi7sTbVg+0BuLXrZEd2wgxX8dqyB1K/kXMwOrXI7VqQjZ/gdEU43C2XpehYFbfJQrjhZVF+9LaBc28keSpa4P9KbQJZpGS2MyzBlW996erHY/7o60ELm7crjpWyy3TRzCBbEiIuouel652ZNvs0jf+A/8AsEuKFhkAKDQaV5/teotOfkkzm3yfU/8Ac4sijko1ryP+K68MH2cX4QC5MLNoBx7Ct+my8kNc+vLKkxonFxGNeu9JezXyUU0/Z32FUBdARXfY2Fa7aglkxR7h5C696dXXjgT2i3BNPgf3Rg7/AEp9N/ydLswGiUxEG4YU1WcnsLjMSoYREoWJo2+eRFOayyVshw5LMRboBTFmvwQqk2bGRZcZYcpih7G9ZbN/gaqw/BpRorkNcsLb7VJZtHoZ368jGwsdhctr9aBb2RLpvazMnPxfbf8Ax6gDXWrcdJXIu2fPJD+u8iX3NU90i/0qKJAb42VtGFwdta5ao9HX2a1UIdD8bMo4otx9aG2y+RVfYVuGyeXDnVyDcH/bTK6Jol32SGxxlBqDftehdpIXo78IpxJ0PiQQ/wDSlaUZRR9amxE/KL8QSOxvUFlD8k+unZRJNIXUk217XptUiVUgFwzw3C2N9710wxOlk6h40RfQsQe1K01gn+5LhA5KNDY3La6dqyn9iuruwo82cC4uB2FM/wCep6nr+uoByfkMgobrdT3o6evSR2nr1iSH3GZbga1QqonpnPBL+zkC+ttdqcs6l+GFUhqZr3sTr1oXmi6mPZhrkoXHMPf+lLtRxwelTOGkoK8iATxEjtUOFutj0fZv1p+zNSHIgI4IbDcmvUdq28njK6VZbNXEylSxlG+9Ra5T4Eq7s+B8pxJtVJB7UFO9RGlbV5Ee3EHsdul6b2cEvZ9gJCisONq5zBH7V2uCqKTEZfNQbdamtW/wS0dreBntY0in20Brlay8sqomly+RChU8TFb1prl/JybS8lKCNo7WuOnSk2bTCd+tZAfHFjaw+m9ctJIXZ2ciGwseS1yb+pp61si7JusMhyMOGCUNa4+tUU0dkFNnaRMkeLIxv4+t6YnZFNE+xJPjJGSA/NT3NNrdsLa7biCFmhjU3LXpyTYGednWCP8AdCyWuxU96PoZ9PUsVr2sSQdaEpS+BkcK8r2uT60LZXlaPAxoGY6Ej6GhVjb3SJnw3D3JN/rR9zzr688DVIRgGJB9DWPkem20kWo+O41JLDvSGmi+qcDkRT5KLdBrQtmWuaeJlvHGwvcD1qHfNNodhXumIyM6KS4IJP1p2ebQl+t8mZNEpkDODbterKvgjvaHwGIIypIUfc0PZg21aTZdBjKIuanbcA0i2nMCM9XoJlgLqeIa/wBaNWgvzqq1lkyYvCT/ACKddzemu8rgGmk24FZMWMHHK/0ra2tBL7mlu0I4kWOGJjBF/WtbfyT9rLyf/9CuJz7jLyIr9MsuBdF1bRVJGDGCBfS5JpNXyP0cpIglWE/kP6VQpJbtpcCo+KPoPAmifImrjlhZESXDg6b2oFYi3u25HYrQROOYup3FqG8tFXpVta5VLHFIR7el9r0mln8nv6fwuQoYyoKuRbpXXfyifO/ZwhDz+21lFxRVUlFs+q5BXNQPsb9+lM+vg8m9Ha/6Kvf9wX5DXal9YB1jwhT5zwnUmw6WrfqViDTJti3+Shkbya1zRLFop9f02nIidlNyuvbWmVLHm24I4s11cqSQD0pjpJqzVS39g8bm4FL6mdZDRpWsY1PHuaCxXhSq5Z5o3BudL961Mn9nWXCGJALFSy2NBawyluqgXLgw3BuSfSirditdmFHCyeUetu9c7fkg0245NGNuSqGjubb1O/0wFaY5FvENRawolYGzI2gYEaXHWj7nn2tLPOSFCBdfWtgdeswhXvhGsDxPUHamdT1M8GkkT5U2PIpVzqeooqJoo1ydawiLHDwyFsd+Sn+3rTbQ1yBl/PDN/CzJGQDiQw3qLTNSUXsmoKpve9xXceI3tS6REEPsXqrSg5cdZIw6WB7msreHDFK3HZiZIUZbg2dR0olaBuFXpaTNzEdkNydKozfJ6rzSqZw4r/Zr1Jp4KlV8jhkxWsxH0FZ1ZJtLPMxkGjWFdEE7qq8sgycWHmGO561ys2zzbXte/wChuFKEYIxuporqUe56q6rk2cSQRNdNR2qXSsltbs1o2GTCQw4+tR2XR8CqtQ2RT4pgfwkv6GqKX7LlE+1nZxHBI+RKHAJLX7bU9VUArFST5EsyOrgFhRVSaO0zTskgos93HVSDtWPMdXNVRoQZERF2azdhSLUZjbYbNCz+O57msSaRJdPtLHY5VGAZ9DQaKRqv1+C2WGHiHXyqal3MMY22pI5F2ZI/rpVKf5YhVlzJO7SI1yniaNJMp6peAiFdLrY+lZ4Z3wTPHKsgIUW+lNTUE2l0nJRFjCQHoaXa8C6a8nXwylirX7iuWkm67BJEnVqx2ZK9HZgtEORsdLb1qYdVDAGKT/x2v3re/wCRzvChiZMdSSrXB70auTaXFJjtGeNyRuDRO0gq/EDkjkZQFOooW0PyjiRM8eR3NFVobq6olMEvLkelMVkKzsk+Dhhcm/St7HX0SDEETRki4YUt3Z519XaTiYUkieLcSPtW90in171pWWXYceTGODHkR1pWlqsXp7Cs4LossKCHa1ulTWznwS2m3gtxfmEjI8zxttSNPT7Iow9d+TRT5SFwGDWB6GpLeo0bbJyc/wC0hWQgnkD2rH6dmiX6LOw2OfHnPieJoXnankqzz6vkY+ArKSbEEdKCvswx/wB0+DNkx2hPGNvWxq6uitywbKKwyV4n5cmIud9KarL4IbWTfB18RZOLKoZh1FctY4D78odFJLDe467b0F6qw215RoRGCfdbHudKjv2oHS0M9kfGQvciuz9poK2jvYy/0njZlH8Vf9yakryfWsHmVlA5g6Vsz4JtdJKsZjoQKn0Qmlx08WPLbkgv3pNbWr8id7Nsjk+NhIIsD2tVVfYaGZ2aUEc2FLGRw17AVRXZPyMtdQdx58yEkNdB6i9DelLfsTXqy1ZxKtioYn+61TvOPk7rPBLIgVtbi3UUbtwSb3jhfAEUs8bEqCytsaFZ1t5EetkrWlnpsiYHja4NPWdT0dMlXg7FllDa2nWteUlWeXwdnyI3QqQdf4rK0aGbZwoM4zcGIXW3SqlTg71/XESZMx/Fbd6NVR6GfrJsQTk+8GZeK96JRBVe1Kvg0oBIwBvv3qa8IKt1EmzGgMQ0s3pXmviwy+vdEOV73FlXxIq3OOCPTNJOSK01tRc96fxIeaVagPmGPe4olnJmmUnY8xZhZgbd655wQ6xmp+SgexyHlpbap32Z4et7XudiyEjY21TqDWvNsoxzdeWUR5VjeLQUFs/yN6Ryy6FXyF8yAO1SXuqeCZ7VTGJiiM8bkjsKU9nYners4E5DrEbe231vT869vkuy9Zv5JHz4klXlHcfWqFi2vI6+T7JJj3SDLjuni3agTtR8jn/NZZKfi1ViWN/Smr2JBz2bfBNPhxqLnW1Npo2bNrvgy8qBCSUAudwaqpYqsuleSSf4x3TmBx9RRrVEN90+R+BjThRy8htegtomBl7CszQXDi5agrelPRlr3dfBQMReJC+VL+wS9HYjycXJD3AsKbS9TP5mTyYckqeQ8x1Na9EinC6YIhMbjlXdpRVptHgtiWEbmlWbE1tZvgrhxiwJQjiaj2vykz1/Vsqpk0mGwuFGu96opovJN7GsKCdkk/Fjr3pyaPLvZC5Y3XxL6HaiTk6/4SF4vuqWCyFgelbokVepVVUR5GStmDRbjrQU6sr2rRKDsUWW7cmJFFa1UQvaifB3KxZynK/81lLoj1unyTEEIDfWmIVmuyk//9F3DJMh0IFq/TZUHU6u4V5UfVzftWQmimzUgs128xRJHm725hHY5Y0cLbQ9TQ2TZ5+ktwHNxdLDVulYlAN68QdxcWZ2Cuv3vXaXSR6nq6VpCLXxWRuN7WGl6npdRJbrp2tAEeK8oFybg117wUY3VUcyfjGte2orcdUL9z2VAmP4uRlvxI+tOeyPIXtKA1wvbtdtRQvSRF/YbKGxI5oyePLuKD7GmFi3ZmbNiRp+MdvrVFbyenRP8kjCUE8V260copVVVciHmkVvNeu9MSPP188FkDsyAalT3pdkGrKtS6HHAQG5N+lItbkOu38jPYLHVTWdoJe/I4YBIuAPrQfaMv7EIYcZgNCD6UP2Ij117MmkUkWYcfpTExNuEHCul1Yi3rWWYWdhwkcban1pbSEbWEnICuOXjrqK5Zk2WXKYrOh5yc42FvSnZuFyexjilaWSPgvJ5MSCKYtIPRWqXID/ABiueOtwN6JawT7ezzyJPxzREOoNwelF9qZE/Y7f4NHEXJ5XuADSLupv31Us1IY1K8ZHOtSXv+EQa+w3wkVCDHKlFOtutJ728suyraIZIMWRXII09KfbRNHpeu1RHW+Ouu2nrWLYzT2CKfAjB4gAmqK6sCjb8mTkfHryIICmqq6Aa69UDFi+2bHyB2rHeTzNPYdnCFSwKz8QLMNqKrNrWHAUaISFdbMOta2Wq7lJFXu48fipu4pUNnpqlmjsWeUsC50N7XobZyPzxhQHL8lHIp5KQw/uoa5wa/XZDL8nbZSR6U+tBV/WhScObyUMFat6i3lxI2PjNGSBZ/8AWsfAnP8ArgX7syGxjt61sJj7JJeRnvsQCUNx1FZ1E9Z+Qv8AsAqgsNL/AHrPrOtm4k0cf5fjHYfgetS3wllKwinI2L5DkLMSw/iutl+CbPGEM96I2sLg96HqzLVcnI+AJ4rvWuRNrQnyMCqykFrHoKGYPOtbsz0BZTZhpXWUhY8Dn9lhdQVNLUozWzYviOoBNHIFFB1oybG3FT0rlYoTShgiIqSb+Iruwvvy2Lk472/miUiOrbJJplvbanVqPWMHYXcMCNu9dZDM4kpa7XuRSlwDb+rEEhKsVP2NUIJ16o8EWRTY6jpWNwSWt5JCJYuRsQCd63hkvENlImb2h6nes6lVafyLTLb3iFNya36wa5f1yMEqM5571nX8DM83a0LwcaTgwbQ321okpLnXhQPhlDsAujAb0FlBzhcMfGshYB31pdmkS31S+CyNkjOknFqRZN/AP9W+DQw8yVlssl7VJtjX8FGdUlDRTLNBIg9xfIdaQqWr4ZJ7VnHAkRY7KQdO1GrXRFmmRSzDEO/Jb6Deqa07oL6rMpjz0mTWMD/WlP13V+Rqy48nly442uwFq14toKmbngpXODLZVuO9IeEM9XH1+tZZx8lQfJbjuKJZP4ZPrVyIyAWQ8dAabTjyJvRJcksQaNgTISO1Ns0/giekKTRg87ciPp1qG9o8Ca6Sx74jamPX0oa7L5LaR5ZK8EtyLhCO9OWlX+xF2r2gjkI2kJDd7aVQuFwdo+lR+Myx/k2nSkXl+CbOzYvNmjueFmuLUeWTfk3/AJna3PgylzZ4pCrjwB0q/wCmrXBZniq8FMkon1SwtQVr18lDzScs5HCr7k3rbXgflfk5JiFjYGxFatIDvpzyKbEaOzNRLRMPG3Z8CngkHJiQVOwolZFqaSaQkzR6K5pnV/BNdPwh8Mo4lY2FvWlXr8srzpChnWyMqMrYtxO5pMKzZ6tcqqqk82eQGLE2G96bXI8/anZuAhkxTAe3v1vWOrXkLPGPJLkRjkTYD1pub4F+zaCcSBSFYi1HZSfO+xd2tCOiZfeHG7f6V3UBUi0FN2drFDrQeCjRqvEh/ttGCvGxtQ/XIu9HHJzG+X4uQNGFBf1pIVi24NGL5h5RYfkKQ/UVT0fX9NfJ7J+RlCf5EuDpcV1MVPB7lPUXWTKnzE36E1dWhFrl1Ul/x2VC6EMwH0qXarng8p62s4RpCxGh5KepqYsouqJ3w+QYBT9aatYKvXSScmXm4/tDyFV53nwI9q7a4M/9kRJxt4namWqeVsooV4csRQXaldWjfVq0ilp41tYEjuaxVZbaj8sIT8NVBYdhWdJGZ58SwllMq+K8W7HWsdYFdVZwKiM3Ictr60dkiz11Wqk7k4bP+LW7GsppAe11PIuHFlRvLzorXTFrdGxg80IUqAprz/YSaLstUvkdmQuDdLWtQYXUQwLUmzszGmV76mvRq0R9U2Syvc8SNRTaodascnY4pR5Lf6AUNrId6sNyPD5A1ZdLaXoUkL9jRWfApc5UYKQbk/aiecnnaUdUaMbx5ERQ22qZp1cmUrPBkZuJk47W4lozsQKsy0rYtrSqR//S2Jo5VmJJ5J3r9FrZNAQqMIxIVuoAYdaxWYOl3BLPjs24t602t4I9LKqJJ8FgQeXiOtMroIeimRZUoujEkag0XkOtXcZjfIy81B0P0ob5KC3DJJya8c5dwStxtUjpCK7Ndxyni9xpY7CgiUBpbqX+7AY7EgE9al6WTPM3tbRk0gBuFYH/AEp9RCpCJ3B1BIJ6dBTUbWvZwiE5GVHJxUCx7U51q0ez6vrVouToEsjeY5V3CRRNU+ATAnG51PYUSsSaauJJ5sePcIL/AM0aszz72b+RYmaIFQuvTSidZDrm78D0+SlAs2g+lA8kWWySUIbFlhyLNrQukEzqkVxu5NlGtJaXyKu03ATyMADIlrdaxL8G9eOAfchkQlrEVzTRFpZqR8GLAyAqbXpVtLIHPVwLyMfg2/0NHS8nQ7WIJku1nHIdxVNWX458ig3tNZAdetFEl7TbhhjJk5HkDas6IXtFShMuMMAdCaVajPG9huS2CSGZDGyb9RU9k68yKr/KiRb46QSWvpauejshG2rRXjy45VeZ1pDrb4B9etnDNFcfFmBKEBhU1tb18nu4OztBFlhomBV9R0qnB9kX+xWI4OxSmZda21epNSBc8KMCVHl3oqXaHw45MvL46hx96tz/AEQ+wmZqsAbhvEdt6ckR4Z8yybKB5hlv9abUudIcs8sHvFSx1+tc3BRjZJplafHmRbLbTrek20g9Omy8s5/04DX5jkPvWfbwMr7HZ+AP0nF7m/Ymt7oP7RM0JC2YAim1ZLraRLI6qeC6Ha9GmJu1Hk5inKjfUeJ6110mDg61K3KkXOpFLSB2bfgOF/cjsDwrLKGbklWsvyd/TSQFSbmu7wHW4UeG8eijlbvWO6N+7u4PEzK2q1yhhXaqi+CISICwIPcUizgke/4OyIyAgH+a5OROj4FpJxa/W9hRNSSJSwnmKm+ulYqlFqdUMTNUi1vregeQj62zvvqfQ13UZ0hDgGIFqBwDZp8HA0yvYi4auaTQm7UwN9ppAOSaUPZL5Co0hM3x8LEkAg0ddmHbRtkBjmiuvS+hp8pgtpVj5KobyCxWl24HYwgJ4rC5HGtrYRveRERS547mutJ5zbb/AMnp4jLGVDENW1cDOqSgndZ4yFdbqOtOlFl3WqQawFmLKgU9xS+5F9k28jRhyO1yN9Ca77Ei6mtaf5Yyb4orGrf296Gu/I+/sfyhBRYSPO5GulMTkVXtZyA2bISPG1q360d9SmR6ZcnVLjudaB5oormh0WYyPyTQ9qC2cqGZdQaKfJB0tILE9akt68Pgh0p2fAuTMYKeFiDR1yXyWev6cV5M/Ly8ngRa49KpzzrJTf1q9YIIM/IEvEKR9TT7ZqCf661cGjHNOT5WYW2pFqpDcaVdimCeYjj+A7mk2ovJXratamhjShgFa7HqTU2lY8Hi66zwXLHFIhAvfapHZpiXd24IZw0TEcBYdTTe3ZeTzPYtzCG4+Ymo2JO9A8GH6+TfLLlznGg8qQ/WTPQtl8HjmIbNJGNOorl67XhmUx/BLnHHmgLItyNqfjSycNir4WujGLMw4nxIr0q1SLPXxSROzsrWLE3OhpyUj2pYpj/nIlBKHY1q8cCbtK/AxXEEq8VJVjpeha7ITrZuyLkym9wD2tO9IefHkrrmqvyOOXihzyBB9KX9V/gU6Xvfg42RjSxkIdaxVsnyevj67rSGZ88iICGuapryylZNVM+V1a3QCqUhNc+ql+Q8cIxsmh6mg1cIp9RN25HurDaQgjp0qfJF/t6JIZHG7pZxyU9aZZw+Dy6XSX7YHsRo10FrVztI6ja5YM48L2uKOhF7VuDPewlBt4nSnHhaOLfsfHJGZNDtS2mJbacs1YVEqq2196ltaAa6S5Hy/GiVCygX7UFfYh8lK0nkxpfieMxI8GGu9WV3kXTX+h2NHLG1iw+tddpo9HK6RsoEbHsbNXnWlXk9as2pBj/J4/OJlVQL6rar8b8id6JUhnzsK5sM/ixFjVr6tHmZ2pVm/ifKTwECUFh3vUmmKt4Hqv2WhF7/ADnJdygqRetyeqvTVKSxOUy5UIKtdrb07NdGR60Ucnz2bBNFfVjbpaq5TPD9lqzhfAeDO7W5dO+lbZJIZnZVqb0MMM0O5DVHa7TN+12QZgdBZGvXd0/JRa3EMBYZA/InjW9kBnZTwN4yqL8bjvQyhzskpKY8hAg5gX60m1HPBM5uF7sJbcDtWdWZ1clscYcAjX6VNa0FudpKolVhwdQD0NTWlcofprxAmT4kM9yvIU1e5CPL09pVfB0/B4z30sfSl/8A9CyEP3LXsTt8S8Ab27ketU19tX8noZ69aQyaXBEiWOjgbU+u0MPO38mNmY8kfEMONqtpdPwR72mBuDIDJwG/eh0XAzDi0MvZucZRnIIqdKHMFeilRB//096VpLXKnietfoVUgLw+SeWQqv4m3cUyqky1IrIt5GIvcketGkefrywUkRkKsL1zTE0q7OCTI5IbovieppteT0VmqVlnYFDeQAvXWYGdpZdAkrHR7W6Ui7RR9tVLNGMrwsw8juamt54I76O4nIk4GwHj0o6KSv6eqJTllGIsWHpTvrkmtlLOrMsrC9101FY6winDNJyMfEk/IEgUFborvopEOkgBtcUxNANpKToB4eRrfk8/a8qEcLcvx0I610Ca0l8iG/ZVtSrA96NQyhKqGIY3HkgJrHKOdn8CnRke6ABa1Mm0tDLsfk1m5EUizFZ2724HOkpBBHJaFNF13WqggOOoYhQQSe+lNdzyNdH4GR5D48igjxNDanZG9eUkXvkLIRfY9elJrSD0VikTSxSpJcDkp9KbWyaGuEw0UAguo06WrG/wKtpzwMljRhyRR/FBWz+SbVzyyKZIWby8WA3FNq2Tf07Ej5LwSgRsSKa6Jrk3XOOWaKZseRDyvZtjUbyckTo9GCJgSAmpp6pB62GERI/FzJ0mAYW9KVtknU9j1c0rFuZKZIiwH3FR+surgt9vNRJnw++bFQeNXXggw61UsqUSBdBc0lxI6r7ckGY8gBLC4qrNL4PP3on4Msokt+MVj1INqomPkZ62fRS2RzRvEdQeJ9b01OTNXLOxNFe4B0rnI3KrkqiygrHhc+l6VaslyrHktx89U1lhsD1pN8p8MVD+GWHKwZl8AVJ6EVP1unyOrjZKWRZOM7ghbEdqopcG8JcmeYpY24voKpTTIb3lnlVg/idOtczE0mPVk15AetC0Za0DCkCryUXNDLMmzQwZUPbiw7ULox1c7MJJQzXWT7ULXAytYfgOUyFNw32rKwS+zZQehlYjS/0rrIDCqiWUAcx5gDtel+DLWl8EXCRX420ve9PlQLrFfJTHGGBG560puALaSzqwcW8tL1zvIp6/gp9hTa+3cUruFbQ4qPGdGv8AWubTBq5OSTshVjoBvXKkidFyimHJjKgh9bUq2b/AdKsYGEost+QoY6lOdIXPkkmiJbqDTq2JtHNgYSQLNoaKwWb4Cn9pgQdTWVk7SrMiVvbnBAIH0qmtZJq0i0jYnd1uFIB6ihhIPJLyxhZwWDISttzSrtfBL7evLGoSoWygA7msSOxp1rLH2cC/IBTWcFNFLkMyxGPi9yDXdXMnoZZOygzJQpNlGlU1HWr0XIlsNtwL+lGrk32SzscTA2N1PTXSsdht9VVGjj4qSR+VgepqW2sPg8//AKHZwhc2PwOx7CmVvJbRdVLHxoVX8QfQ0uzksraUdnx/cjBtb0FZS8M3fRVoiNvj+MxZRcCm/dJ4dt3bQrxomA8hYelLvZF+OqrUtaOPipG+1jU/Zk/sau0HrgsSLAjpXQIzq2wBl5MD6sAvS1E8q2Q21a1Bky0yLqzWfvQ1x6kLy5kUrmPW/IA6U3rI/OrZbH8goIOwt1pFsJKFm7WHpkh9LAg0t5wOdVRR8nOEasQDYNvWy2jKJkk0UUct2UMrdafWza4Mu2nCAnjx+WxsaKtrHaymSz47q90PJTTK3XyTaNTyA1lKtKQLbVvnwLl3soKPfjYgKdhQ9Gj065OVIlWgkNmYK4orSir1c3PgTMOLf4223tXVc+T2XSPJ4ywuhD6Eda1VaYGib4RFL7bsY1a/TSn1b8i7U6+RMMckMpJGl9BW6RZDsHDNGSa6XCmw3tU+dYM9hdheO2Qb2uFPem3SJcutZbKTC5TVSAetJVlI22iVZAZSgtfT1pqcnj+xpJKQjPY2sO1aeR/7STygQ8iBoetb5EaNuSjH+RKAA9Kz6ZKfX9ftA9flJLsEYknYX0rHgvk9H/nSTnwC+XMzXlsDWrNLwT/XWeDq5oGoUH6VzzLfX9dtyUQZbyLxHXS1Ta05PfwyVKSxhx2bjc2H1olaJPF9z2E2kZebiyQzsSbodaozurI8i/N3B2NI3Qcn07UVm0e36VYUwUpj4zQ2vqO9JlqxR7PsW6FMceKgHFgCKFuzPLtpe/8AghyInkLaix6imKyR5WrrVsjECRpZm170Ss2T1s+pbjzFEBHlasdZPR9an8yXx5PMXbxpDpAyO1oQtpJL2uLHrRqqHdFRfsbE8bLx9zXsaCyafgWptxAn3ERuLglToKOJXAUNcIPnjK2p4jvWNWFauyNLBnCHirc13GtR7UlcjcE3aCqTOAPkApHWkVwKNshUue+6uTp0plfXXyjz9MV5YMGfMToxVhXX9ev4N9fBF8XyAkHFjZ6lv63XleCq2YXASdNe9Z26i5VSHO+OEn5NcdrVVj7EE2lueEYU8C4+SCob7CvRrbtUr9XK3fswubnysd66PgucLk//1PpUinbwkBAtX3zslyhSvVMVNjBFI1KmjreRW121BBL4kgWt3qhEmi6rkCNXZSVJv6CtmB3p0USwZ4mA8jyFq2jH+xeeERJO8TfhpfemuqYiOlZk1omWSK6fl3qZ8MFNtBrJIb2OoobJIs9XJWYnKmnK3vt3rskpPS2zrBLHIXNjyJG9qoag8t2UlmPFEjhmYgHcGk3s2hF/YcwjZgSB1ID8h2NQaOy+B+Nm34JsmJEudxTsrNm7zEEMjIQSp+1UpCFQmEnGTjblemRwZ1hwOf22AZfEjoaBSHaeBJKKbliDR8gcnHlS2xa/Wuhku0j/AI2Uc7MOQpOq4EYXhwjZZYWW4a3cVHNkO2uySeBXN0Go2NNpZ/JJWsuWRSxubc9WXtVCa+BzaSk0MV4+FpASKn0Tngfnd2KiI7AobLSZfyZrb8nkgjNg7X9bVj0fwTrRzCAmx/bB4uCCdAaOl58oOHb4M7NwM6U8owLEdKpz2ovJYlnTlmXkYOav5rqKa96fB5fuezVjMBZo7LIvid6HhrgH0oL1/X93xUgna1Y+0HrZqztL8FUUBdrG/oan0vCPU9ay7HppJ4CV5cl/20GSrbkr9qIF4+cbEFCO96ffL9nkZZz8lIlB1U79KQ6l6p8EmSgZvM2WqM3xwS78OERcIFJ4hmJ/inyxNFb5FTYscjW4H6ijreDL2hxJJ/1cXMkFqP7SjPZ1CaCKAHW59a5NsK+l7IojMc0YAFiOtLtKZTjWFyHGCp4tp6nSgfPI+14RUgW3iwuKA872NW+AZVvbnZrdLUVWSR+CSWCJJA6niDuKbWzaBvZyE8UTIHQi43rE3IdU7CgkpFl/rRSiuiXycWJy1mQD1rmxvdVCjjMb3VyT1Fc3KJdNeS2OSNtGHFxSWmR3s7MYgW3jblQsKviAk9y9jY+lY4NrCOSCNtSCrDpXKSfRtsUXWOTkq3uNTRRKFatorDJJGD/d2FJaaF2fBRFKONiosO9KtUFS+BnNDbQAd7UPVlCrHLAfERgbnQ7Vq1Yju34JXQY53BF9Ken2KM6t8BjPlD3XxXrWfSoLLZKrlnf2wxNl17mh+oh+vtYS+UBKAVvTFnwNeUMYwSQ3AsaHlGaPkmlgY8rdBpR1siRQ2R44yowyg3A6GmXtWBT0rWrkr4yswWQ+PUVOongkole8ITO3tGw8lvpVFVJ6Vs2+AVyyTa442o/rPQpkqIrhQOnjck/xSbuGW4OKyxU8HCQctvSireVwQ+1q7XhE4mZGK8fA9TTOoHVUTkfJwbH5KdRS+ZJdW3UVjZO4F+Y70TzG+lhPkfLkZLqFYihrSqPR3rWtUvkswoo5oxe5eka2dWJpvxBRIqRD8tOopSbZN7N3YkMiCQ63BpyqyTHN9pFy5HskGxK73pip2Lr5woOv8igVWvpvasWJ3/O3EE4+TUt4/wA0z6R//P8AWikuJowFbmR0pcQye1e3BBMsyty1U32p1WmJtDfAxVyWW176bVk1RTTr4BjadCQ42rWk/A3JJ8IYPk3jlGpA6gULwTRrxm0st/ZLgMhOvekdI8j3RSC8rEi4uaJVJd4kYclvaJYLYfzQfXyJpn35IMvIlXWIXU1RSi+Rq9VN8+DJklme/uE3FUpJeCzDCq8fAhp8yJ7o5YdqKEy5ZVbGwy5UsnMeJG4pV6qIK81Sjk04RKw1v61O0kZfVeT00RB1UlTQ954HYVj+jOe0WR4G31qyimp53s2b0NBFaVLt9jU74Y5XVVwcJniUqmo61qhsHRJV5O42VKrcZR4mivRPweeomEaccqPHb+KkdWmFo5UE8wvcE2FOTg832H1RGUYMeDC5o0/yebXzLJsrElINzR1ug+HwiU4c1r63709XR6+Fq1qBI/sKC17jrWxJu02XA+P5CGeIgkhwNCaB0aYWWDgFcmQEqP8ASssj1fXwVVLK4ZFWxY2PpSuh3tbOIRSc1Nixt6Vn1nj6UjkF5Ynv/kuCNjWqrXwIWbdpaChXHS1/L19ay0s9DO1oS+CkQY0o8WPI7ClO9qkXt+w/BZBhAaMgI23pF9v2Sf8ATHCZFkxLDJZRYetHVu/k829XexHN7Mhs53p6TXga6uYR0QcAeB06UztJ6NXxB6CaVGIkUuAelZaq+A8Ul4LRNiydGVh0pLrZBqtr2/wQzyJFLzRG1p9VKge83XkcclZ4xurr0tQKnVg2pFQD5R3fUDc0XzwT1XbwDjzZEco9rRT1rtKJrkvwpWrmxsD3Hj5SEm9RcJwgr6K/jwTSSsgK7DpT1VMj0rJ6OfIVwyi4NZalWgsqVXJWsk5PIDWkuqNfWRkfyk8MihhfvS7etWyJNaJ2RpR/JRy6OoqK3quvgGuP9Hsr479iMtFWZ+z0cWL83Uwp8DMhuACbdK9Wm1LA6aVVT//V++niPI3A9DX1lL8EWVP6M2cBiVYX+lW0Y29evLIMiBFuQt161TSzZ57TvYiWWZGIRbITtT3VM9HLJUXPk85YtbQXrUDo0gHjR04kgD0rpPP0s24ErJ7Gi3I7UbUl/r4tjIcxmYlFANK0oex6+KopZRJ7jx+VBSEwd7LqZsr5EMnKMhQarST8nmLNNyxcXyXE/wCU3I711s/wS3pHg+h+J+RxpVsoAb1rz/Zxsir06tcstnZbEMAAelIzH3pJnOFLkWFWLwS3/kCTEjmBseLD1rVo0ZS0cvyRyYojJsxuO9OV5GO7gOGJ9nIIO1Da34Ir7LwgnxXZSFIFD3RNpdRBGj5GPP8AncX1pnVWRnr5p28FifLKjf5SdaXbCfBRrm24RTH8tAXADWB9KU/XYv8A52mey8qPdOvUVtM38h39d+WTQ/KxwN/kAKnvTLYSuBmPr2fgrh+ZxHtxvr6aUm/rWEb5WmCqH5cciAB/FJt6oj6evkveTHng1GtTVratj0s839ckbukcJ8yAO1UpNvwS2Vr1MjPzS6+Lag05YweV7OMeQ8Z4nAMhIIAFFDXgp9dQuCpZoIrXHIHqBrQurZbWtnBZE/ukBEt6mpdFC5Z7nrZqnl8jcmFAtzoeppeFmM9uzu+DKDRiSxk8TXoNOCXKnV+ByPCuqksRuTSrJsqorPyDMEl1ClqOkom0/wBiQx5Cv4gIPXWnSmidusiZVmL/AJkkdBR1gKFIvkwYBxcHuaKDn5HGPmviFIoJhjW4XJ5MOdSCsdvUVltEMy0X5HtDIbGRb+lLVl8Baar4FPGyPddF7UxOUQ635HAB4uQIJ6ig8MGZrImWJJEtex9aNWaCqiL2MiJ7XBQ9ab2TRVVpcBrD5cieRHrYVjZn2cjQHDAhRbqaETpdLlj/AGo3G9moOzRI7uzFmFgfL7WouwDvHgojJtsBbvS2GmMUxN9e4oXJzbSGCBb33B2oO5N9ksCTGMnja4rvsSEa6JHVwZEF1BtWfcmAtp8joInVzzNxagdk/Az17TbgKYPGt1JZTW1hlN6yif3WYMpLU3qkU4YpIVxS3kSfQ0csa7Qh6Rho/EbUt2hkrvPkAY8hYHW163ugVoqlH6qEci1j0pP2sRfZ2fAMicAN/raiTk5ptEk00w1Q06tEMeSqpZmZWfNGVJWxvrRvJQeb7OUItw/kOYuw31pf0QO9PCORssSZCqRdftRVt1PS4ok/kFMRYzbRh3Na9JE11d7FEEjxaIBx7UFqp+S5cLkKVo5BqCr1lU0IdGSykOOOhHpTEoFXXJJ7piJULdb7U3rIDqOxmyHbxiCg7mgskvkqwVKeWVyxtxuVuR1pVWgdr9mJV8mGXkhsnajarZcmVVUy4zpLF5/lSOjT4M15XAkBXHFVs1HyvIWGcLkVKkourC99qOrQ3SG4FCJS4DC1hRTwU0fV/wCAJfj1cEhgrVq1gk39iEdhjkxjdX5fXasdlYkWjuUHJka3JQwPal9F8HfWnZJCJBlMxCDiv9aYup6eedKLkmRpo5LMxY9b01pNGViR/uQiT/KBY/zQQ44F3bteKjY8xIpAFXkh70DzbQ95tOD2VMW1jBFxtXZ1jyZfBTySxZcyKVlPiaZai+B/r5KIQiXKWzAEt2okimvrtqCFsua+1+4pqqg3kqoapjlS/Lg/as8M5uKlGOJFW/IXHWhtBLW/Yt5TFQR1pEIocQaUeG00Pm2trioLX62LXulWEZmVgPGwYC/qRXoZ6Jnhb69nI/HhyJLKLACl6WSKVrSi58ly4bCMh0ue9I+xTwS29h6PgieNRNYiw9apVuAf9WOhtHuOQ9KC3It6MZKY3Gi2FBVNEeilyzNkVo5LDVT3p6cktl/UCJ5WuVDEU2tUX5esp5JTl5KGxYcaZ0TLPqqDK8M8RDgg965JpjrV60kTF8cbkx3YelFa5nr688lsWOV/OM2BFzSmyl7y+D2QPbYtGLrXU5XIvZcywTOjKdLMN7UXUmtVsKD2JjbjZ/U1lpQFbNFK4csbgDRT03pb0TQW3sKvBQsbI4N6Ta0nibbd7FSZbqw87eppbyX4GVzS5ZzIRZVLg+XetpwFWkmNk2jmXmbirK8rg29YagdFMvDToaF1HQ4gbHlRMNG1Gp0oXRnKrqpZbAsB8mFyw3pFmxvquzco9kQxOBZvsK2lmh+zfBMIeDHhe3S9N7T5J1bs+RSxG7czv0rXYp9WstpE0nuIdGNv7aYoY3WPBoYEk0kPFnN6n1qk5MrpWucfJVLAhjuzWYd6XW7kl0u2gU8IvFgbVr5Zmc2qHFkuR96G1EbCSkoujG5tfuaVyiG9nawxW420uO4rGpKa8I0MSWdfw1Xsai3pV+R1bVS5KpWWRdRxbvU9Kur/AESbKeT/1v0GN1lbgzWr6jSrqpQNIoyfNwTGOSm4Ot6f6+/bgm3bszLeGRyQp1Per1ZI3NVopYI+OufM+Q6Vv3/gQ/Y7WhE+ViH/APH1FNpoHpaOfky5T7El73HW9UrkXjk7Wk9dJ1PG1u1C+D3vXyVF+yW80DcVHjfWj4Y1qPJXBmz3KMPFqF5ok2amPyFKGkUgAadxXV4J7pJGZkY4YGws1PViNjPj8gQv5EEjpQ6KUUemnpbjwjcTLkmW52qBZwerr1R4Ir2LD73pkweHppLkascatcG9C2wO7kcwjIAKDUaml8/kTvd+EydsdeV10Aou5Ja/U7/iRQ29jrWKWBlS13JLkQh35Kp4nrtVFLQj1M81VmbPiSxS3PmjU+t00ZtqlbgauP5AqbaaXoewK0m0lqY0jJxY6W6Up3SH00VmSS/FefU3pi2Ha+wqKBUeBLFMNSR2rnqmeQ/YmxfFxDiwIbsaS5YHZ3sasR9zHsdKlsose5VquUfJN7jIGRUDa9adE8iKZSoZh5+YVltInA30tT+nHB43u5/1CHRZTcQRZgepouiKMckkXQu0sYAIW1KsoZ6WFFHJRDJkIy6lgO1JvWrTPRySbRRK80hvYldqmySLfY60X7ENBjGxI4kdaqVrHj3vZvgaLC9vJfSlMsXCc+QOElyUvamSvkkbS8i+N310Yd6P4JW/6OS8u9gN+IrajGlVSC+BDKOVmNtya5atA/dHJ6LCij/G57g1z0bEve12OUzxkBWstA4ZVVJLkoEbudSCCN6XKRvZSR5GIOjEHvTqaCdb8C4oyq2Op/3CjszMnKPFTccuu1dI+sI8+MCL2ue1YrmWvLJiUU2K2pvJkNIOwZPEi46UJJraeDyOyseSWB61zR1YXyEycgSNCPWskXZwh+OpYgE2NLu4BpoPbHZTvcHtS/sA11GRQFbMbkUu2kky1nwDPJwYMK6tJE2o7OTsWfLwswuvpXPBDcsUwFyG9zxBN+9N+tQX5YqvkaGLji9x1sKCI8DePADxgG6ixolYoSJ2a90sb/SmJfIvVQoOI00bEgaGtaTJZXI+PLI0Ya70m2c+CSy7OEOXJLWCqPrQvOB6zVFyM9p3QWYfSh7JMbSPwZ+axjW/EMAbaVTnyHtTiTJ+RluoIXS19qaqnl+1Q7gIkgUXtYb0VnCKvWv0SNGNnhFuV0vSWux0u7kP2xI2jb62FdMFuaVBi4oB1bXsaF6GW2drQjzI5NiNO4rk0OlUU/Ih8Yxvddu1GryR2vzIJxg5IBA0ru8C+02Ee/NjOBfS9M6KyHZ5dmM/7F2NiR9qz6kWfQkwPfEgsNa3rAnVKqKI2j4WI100pbTEy2iqKSG9zYW2pVkws5b4GkLM3G47ignqOcVfJ1cJGGpvWPZiLewxU2PBGbWNx3rVe1iLa9rOAC0atZ1sp60cP4GJOvCF8I+f+NtO9Gm45KM6uvLHh1Vb6GltFONHo5IshlLX4/xT6eChZcmbkcElV3JIJ/iqK8oY00+BkgiJDxynXYUKn5Qy8+YHxGTiGuGA03oLQLrZWYuTHQudTrXKx6Ff4AXGUXAuSOlde4WDdmZ2ZhSM10unpenZ34D2aTgjP7Cx8bnkO9OUSI0aWZR8fnvGGSUX9TQ3pJDnzKRtQfIwsgFwLVLbJyUujSNbCy00U3YHrUeuU8g6X6VNOLETKjKkix2qS+31s8N+yqp//wCjjfEiJhpp3rl7fYTb2W2jr4ckbAg3Q9a5bJr9np+vCcmfm4g5cibVXjpwZvZzwROBGNH0qhcgWmJAZ5eJ9vyNFC+Qa5qOTPmmmE1pL3HSnVqo4OywVr8Es82QdgFU0dUj11jWin5EmFpAWB1FHMCrXS5DgdkujsGHY1jRDa/dwdM0sRvG/FSeldCZZnkq1llOPLI7EtLyDdKXav6CzaTbgZKfCy6/Wsr5N1X88kjm48AC3UUwUqcckjuyycmHA30NMF3hcrwaWP8AJPx4s+ttKRbJEF6/ZbwKb5gX4lr61qwB/wCTqpZfDnY0qbeXSk2zsD1tYf7pBBt4HrWdS7LNIhzYDMoMZ1FNo48i9apeROLDI2+40NFayE57LyPfCZGDAmx3tS/tQnf2OTSxMQhQdT6mkaaF/pXlCs2PJiIZDxBosnVlO1UyZcjOuORup6011qLzzpIMQk9zcknvW2iB6sqcFSxe5dWBuOlLdoPO32+B2Oscb+N1a3Wl3bZNW1r2gfNkCSPgy696ClYZ6qw60RAySxg21BqhNMKqSoAMlk/IEX7VrpJBrzwh6z+4Nb2OxoHWDlVURo4hutg4sO9S6v8ARLfY0YZfbCsLFepFR3pIKbhMrknUp3Hep658lix4P//X+vGWyE8iLV9s8k0D9fazKYs/3VKE3FT2w6uUOeSS5EtLCgbkttd6eq2fyeNZXu3BPJkROvKMG4ptaNOGU4es0pZHlZpjYc2AFtjT885QeuHayhEsyJki5sdKdVupXWqzQEGDGLgAjj2rNNBuGzct/Aw4Kk2B36GuWkCt/Y5ETYphmBY+I6CmVv2RLfRu/AzwIupvQ8mWbbJ51ivcmx2plWxFpJo8aBZthdqO1nBb67deC5EZP+IfSkyvkLfWfIatMp8htXNI8yzXwVxSoSvIXHWkWTFXv+CtEikNl1PrU9rOvkm00jyG+LGVJZuNulAtW3wiZWd5gnEUSDQX63NPlsvyTVQlMfHyAI7VzkZLSF5McLR3Qa9ulbRueSe9W1LJLQhT7g5aaWpyn4CyVnwj0I8gEOnatt45PQyXXhncl8iwAXUbkVlVUn9vr8iOczeViCTWpI85Jf7BxKC4Yrfveukf6/NjRg9q9g1j/tqe8nqPRopOLe9lAB6mlfaFm+T5n5vF4yAjU7+lehnaUeV7qmyEYkzMoRbEjoKa6jMkohmhi5Dp+UfEd6VpWfk9L1aT8jv3yjCzadqRbOVB7Pr+tH9MoPyU3A8V0pdcFIHs5ppts6kvvp5gDuKK1er4IsqpeAozway24msakKz55C5kmwPE72roJWvgTI6t5bkG1MSgFVjk40sa2G9cqsDWQlLf2ue9qx/4E/o4syX8zqD0rXV/BudX8Di8dv8AcO1LhlVqvwcUuH0Xx6VriDaxUN0dkIJGmwrE1JLZ9mRvN7R3sdtacqyNrnCkoRkkAva560tpo6zlpIFoGJ8W0JrVcbVpCJ8Fu4J7UdNRd79nC8GcRPDL5obHY1RKaJrtTCKY8wW4utx60t5gLOeDz5MZXkBauVGdejgKDIU9PpQ2qydIvSQNDe9j0qZrkTZ9kAJZUTVuS0SohmeaVTpjWVLk62rO0GO08IRFBkjxRSR3NNdq/I7F1quRjpkIARuKxOrHWaY2LLkLAPYHagtmvgJJLk0UgaUXK3/9hUltFUYtkhE+KVN+V9e2tMprJHtdtiSmw4Gx60c/sVZ/AloGMo0NjTFdQbWFY97MglsgJNutd3Ucm3uu3JXHjZRsWSy970m2tPyWZ7Uop+Q58ECOwS5NDTaX5F6Xd0fO/KRZC3tGAu1X0dY8kXsVqlLZNC8sV2YDiaYkmDgp8Fa5PJRaxWu6QelXNVRRFkRBb8uDClWo2Alaw+OdchfDybvsKB06lWWapWX5CLPGwDXI/wBtDCfgl9i8so9uKVdrenrS+zqItcQcVR5AXtvR10C9ZNuSaf48TC2tyftTq6wepWyqiRvjmilBbUU1ayhWvs/1wGYzY8CBbp1oZ/JE32bk9zUEEny9a2B6Tf8AgOEr7lmNw21qy3gpz4cI9NJJDOrRHxIrKpNcnbVm6bCX5HJSS52J61jxq0R61rP6NOHIimIMtj61HejX+pC7TbgcMPFmNlYW9TQPa1fKGfY6vkGX4lUUsr6VtPan4HV1duYFxQIlwSDemWu2ehjZpQDNEnH1ra3Y+lW0ZubiKyHkQQelU56clFuEZz4yxLobi1UK0gWu2oAx2nHioPHreuvA/wBaiS5OZWZLFbiPKgokz0L+v2Us7i/I5MjC62J6WrNM0bStKclhSOa/uA8u9YpqRXvL4JMrDsujXF9LCnUuQ+zrwSpiukvkgKnYtTHbgRjdKxUmMnJbKDftS+xXfZqEU+77RtGSCBe16X1lcknu3ccmj8d81INHW3HqKk19VM8bHPtaTT/7pwRx81PQ1N/xVf6K7+qp5NTE+RXISxAX0qDb1nRyi7DJJE+djcgSLWO9O9fUZaqXJjZGA+oBBHavSpshNrokSFk0N1NPdpE/ZPB0we5uCT3NZ2goyhAZPxysgPUV1NeSy2nBlvhSRk21FVK6ZFbQBcWOSxcEHvW9gMdHMoa2LGsdkIPoaFW5K73bXIpMeZZPG/HrYUTsoCpeqZWI3INztS5NtfsxMka3FtDtc0SYOloUs6MKKQBX1J1BoXozyd/Ydn1Qmb4hhIGQECjWpXnqq+RE3xcgU9aJaJitN+7/AESwvk40oWRboaNwzFZTwbmPlqY7NrptU1qcl2dG1CFz5qFDbxI0olQRvlFZEwZX5WN+1a6HnZ08jG+QmCAHQX2ofqQOmKg1vjPkF4Ak39Km2xLPXUVNw4sGXj362rzvstnYp+yVCMPIwZoXIUHjXpU1VkbWKrkSUluCu49KOUKvZADJmSQFtATrXOiZ5u0SaEJgnIa+vfakWTqVerWHI+XDuhAP0pddYZ6V7yiezreN0+hNN4fKEXc8EU8LcrdDT62E2SQghksVO3SimROlpXIyHKlDWkSw6mhdF8E6SX+TUxc5FAHLkD/bUt8mxuWbuy1sqV0PAALfvUqzSse59Na058n/0NqH3mOguOt6/QrwVK1alcaSRG4PE9qU4ZD7G88IqWITrrqetJtbqKxaRI+K8BYIbX1pv2qyLMF28+CHIikP/IoOuhNU52XwHo14QgTrERyAtTesiOrtbg6ucBI/A+J6UDzlIrWPSQmyrqDZgR1rVQh0r8hSSJLGbk8ulYlDNdOJJG5IbAmnLkxV/II8iRIvK3Wt/wACJlwjzCIWOoI71nI2zaUlUORxIAa9LtWTz9rOzLY2Se97ciKna6iq+RJhKsbHQUatIE8gjIkDjh+XesdE/JO69rSymM5NwzHkrb0LVfgsxVZ48HWhcG7PZSdq7uvwNvol4QSj2ZbHyXuaCz7Ii10btBaIYpksVJFulTu7qw1b4In+I4k8QxBqlez+R9Neq5Ow/GcWuxIF6C/tfgk097ngvm+PiZBwYg21qP8A6WvKJfY9h28kk+JAiC7eQG9UZ6Wt8G51tZeCEheWhJqxeD1fXyg95FhwuGHWtGaubJGhjZGQ90lW4A3FSa0quUXYqqlEHyeMs3K44kDS9U43g8/2eLS/JhhExpvzCj+tVqbE2Ss7eCuLNj2uGU73pd6H0npes1yx3OEpyUKL9zSYcnpWT6jEZ+PlYp3ooPP1snwhXvNE/iOantRdeyNrTryNM67qhv2rFUXpWF5H4+VO35wWA0uaC+a/JFXrMzyHInMWUWub6UNXAyyVVyAcUlTRfYRX17SLVjG9iL0bUo2i5kJYy7DoDrQtwM7KpZBjoUJNwe9IvdyBns7gTOFJCtYiiqpKL0fyK94kjXy70fU3PL5BkVnU6A1tXBuzXgTHdCPSmPknqy+JvcQcWs3rU9lB17ccjB4n/Le/cUD58Cu0+CfKgV9UIPa9MpaPIiyjlkYxgDYjWn9w87C3xggva963vIrTRvhE0skkBuQONFCYrRQuC3EyGYeNj6Um9ELol4LYnQjibX9KTZM1uePg5dYmN7nWwFY+UI0s0uDSheOaMXNiO1SNNMd6tHYkymkU2Q3+1VZpPyer9CSliolEygsOLjfvRXt18EF9vwWY0ssDAe54setT6VVl4Fd/0aJyMdt2u1RfXdA3raz4EPlQgi50G4pixsKtm6/5DjkxJRddPrQut6+TqJpyxUyQq4IJI9KZR2ZrVpkJJIwONzxPetdX5Kq0fyNiijlUqJLUu93X4KM7eZRl/KYJUanmrHpVWO3Y832rOzMpvi5rsQt0I2q6u9UU4XrVCXw2gHkOvSmrTsNto7IfjRLKPOO4v+VLvaPkZnr1Xkrgx1ibw19KTbSfIi2zsymURsDyFjsLUqsrwdaX4JJH9php43p6UnKjmA4cg+4QLlW6GstTgtpRUbkq9vkgYAgik9oYF9P5k5Jjo6eRsa6t2mITdjJyE9may9etW0cofXLnkBVJP+RLjuK1v8Gu6mEG0MJ4lTxas7MqzlJNhPHIouNSNqxNE+2nZheykqkSjXvS7aNeDzd9/ipyOF4HuGDJ9a7smhVbdSwZSqy+opX1tj88na0spE8rR73B2pbokz2fXxr1JZA6t5AgHqKdVyiiEnx4GQsFcKzXU96CylSDe/MIomwMSZNd/SkU2tVjraWiDKk+LhXkOZtvarq7tky1t+BKY0Ytb73o734KvUTs1JzKwYZh4HzHpScLteT1fa1hEL4qxqCwIZe2lWd5IaWdlIn31U3DMddRRRJrq0pGe7HIpCElhratho8v2W7OD0UsjsEdDbua5pIDOqq1+RyxI1ip4EUDZttGuXyFkso4iyk9xvWVRNtV2abM6PMMGQVblwY07pKOzy6SzahyYeKtsD1qW1GE5tyaONkkMDHqp61LrSVyX+vTnkom+QljFtHU1Nnimy/bBRIr9uORSbcWFUfW0eLsuGcTIQ6styOta6MipRtnneN7cNDXJNeS+ufVSw/bvGQ416Gh7c8DE+yhGXlSLE/kl+l6ropRDvVyIcI4uosKYpRRnTpU6FjCAhbkda6XIdW7CjOQfE29KLqF0jljoyX+poHwamkh0mLdNQPSgV+STfbtwjPbwkB5WtpanLkkouZKQzlNDfWgaKLtQciIDFZdQax/okVvweyfjElF1HIHbvWV2jyc9IGY3wUbkKDxa3U1mnswj1/U9r8/gkzPhDisCz+4D0FMz9jv4JPa9t3cJQjPkVoH5AeBNPXImIQU3NkulmB71ySGuiYGJnGFuMh09K21JHUq46o28D5iWNhwZmW+xqTX11byVVzVVyb37MOXBybwf1rzlm87foB07LgyctuDngTers+UJ1zjyQSSRTpq3GRafWrTJcsXZ+CSHLy8eSxuyX3ptqVaLVWtUfR4HyUTpqPL1rztsGjObOEMyMlZdksR1oM6R8jb4dFLfIkRrOLAWYU126kLvzz5IcvEkj03+9OpomC+TIy5MlAbghaqokUV9eqU/JzDyJG/FmFZoj0PSzXlmimTmRABrmM1N0q2W7Wqqn//0dOLKKOLbGv0d5ygd3HBqQSRTpq1ialunVkStJxJXx5rA+B611qq9R+dItyVM8bre9yak5TPWzzcGXlFgDcm3Q1dm0C8zKyY2dgVNVVsOVFRSAiut+pphHfTs2MWWcEAgWrOqJ7JNwPALgX0N6DwbpdJDv14yNSC3pQd2S31b8Cxi8rm25ou4GNhUuOALWHL1olY72dXEHYo5CQpsB6UNrJHnW1SK8aP2pAd/SkXvJO9m7cGiUhdSWS1xuKnTa+SnNOz4MfLV4WZkF16VbTnyY8/IeJnSqnlHcb1l8k/kfhRNcMpbLR49QAb3Apf1tM7Wv8APAUbiUqeN6Xbg8+90n5L8eN0e5dlU62FTXun8G00l8IrGQFuLlhU9s5A1bYCzFjZQB/rWfVHknzyl8iJ5WDjk1hVFM0VfVycMUMqW53PrTFZ1+D0c6wvBN+pMj3/ALehp321aMeqqGmOGa6kFqD7PyLxfa8s8vvpKbkKL61r6tHoJqrO5eP7oJvf1rMr9ROkO0nz2d8aofcX9TXo568Dc00z0XxRlTxIBHagvrDPdp7CpTkph+FnjSzAMANzS3tVsXp7y6QGuJ7SeZJ7gUT0l8EmF3ZSEI0kFk8fShlode8eQlxHXTf1ru6PO29js4BE0sE1ma8Z360TqrICtUmXrkYhTkr69qmdLSZat7v9E0s6sDY6DSm1qFXGBLMnK4Fz0NMSZlk5ONO1wF0YaCu6C708D8HIyvcKMQbUralYGetWqtBZkY7SDkdG9KRndLgr0sn4Izjqt+Yv96oV5M7t8IHQ8ggtYVv+QI5bZOs7IbFfIHc0x1kiui7HyifzVfqKnvn+Cdv8GgnF/wASCLbVM+AnbkCfHHG//wC1bTQFuSVkYC4UEU9OTaKSWSGZxoCaarJGN1SEyYbPCQ63au+1TwSabSuCfHL48ihl8b9KJ/0hWb5L48qBZlBFg2tJtnZhWrZ2gZkZi2PHUX7VlMfyGvWdmTY2fOGK/wBt9qdfFQe36vr1zrz5NNcpWQAra1TPOGJ9m0/JG8/CQ2Um+pNNVJR5jzgd+w5UEi31oPrQfRQPg4S6bketBaUOzfIGTA3uAhuNbXRQL9i6TBhlkW+nK25rXVMVjX5Y45i2vx8hvag+pjXm2N90TISgII3vQder5KuqrWWeid41JJveuslYTRyv8nZcuNlAve3Sg+lknsVfg8pB0v4muagUuOApMTGkU31vWV1uihOz4RkyK2LLZT/j7b1dX+0FTNzyAJuRuGtrR9IG9OQzlcNJLlO4rPrnwNtT8Bv7DlGjN70K7LybonWAwFBBH5Ch5Ylt2cDBlyi6m2lC8kMeafB5nEouTxIrkoLKVVVILYsTDXU9K1aNE19XZky40gZ01t0pvdeQMIlyd/VJWwFnHQ1j1SG+z7CrSC3HwwYv8m/YVLfeXweX/wBLuoRHkRvFKOI5KTrem1coRasMKSGKVLkcSKKtmmWZVd3CM7KbLhQug5AVXXq3B7Xr+srVl/BzB+XyVSzqSKHXCrLssqtQvBcPkw6XfqetJ+mHwDbL+Q+Xu8CALGuiJEwlDKohx3BAakW5G95FzI1zxvY96OtgOvImGB2Yjjyt0rtr8FnpNJg5EUkbjgpF9zW4NNG+3abKWC2CswPNjtW/ZAVNEuEZ03xUsTkpbge9V02TRF7PspC1w7SXH5Ci+w8lau1jk0UnujXSiq1BS4Vjym4IYk61wKfkLIxUdA8bWIrK3afI3SzhEGZiySR3VrEU2toA3aVf2d+PbIVfbk81FZeBNNkq/s+hwuAUX0XteoN5PT9JuzKpPZ4Hgw+hqbGZ5L/db68kwaJWKtpfrVcP4Pn7ttixOIpdTyQ71vWUFnn1clZlgEfJTvSerka62vwgRkFtBciu6Fn1qlYJsyEkggE07Ox53tOWCihrqTYjSibB7fBz9WTUDX1rHoiz14ZDkY0qkk6EdqfWyB30XwMx5uBAZqGykivdt8F0cyuGAa5pLrANK+SLIYITca3p1VILzfhAftkITayiudAdK8Qg48uCTjxAbuaC1GiLVOq5NBXjCA7CkJNs3KlrnRlWUsgsRs1E6fk9n1vXlEOdmZEkWo1HXenZUSY+/q1VZMr3DIhVnue1UQee1PCQtciVCFt40XVFGWS4kTLxMt+B13okOVYt5DSeaE+F7djWNJnbQ+Da+P8AmJOPFhf7VHtgiz1cFA+bNSYWI4kVlM4J98pZmScUkJGt6pXKFuvQOQSFdPx6Ch4Jd7Is+OiEh3IcUna0IZ6Ok2LJseQEBpOIpNLKPBT7myXCQtZWjJdTcDrR9ZPKom22HPlxyRXUeQ6ihpRpnoL131l+TOzC8sWmlh1qjPhlX01rQzccZcRJUgrT7QwcOqRpDKJhAc/YUjpyHtzU/9LYyMPiATuNL1+i10PP9jZ8HMeRojodBXXUoL1KS+R000j2IF9KVRJHrPNINMllFih21NIvSWelnnx5Bce6bG/E9KOnAvRqoD4cYGg1p1Lnnexs2JEI1479RTexJV+ZFERo4LLqaPloTZtvgo4q3TQa6UuQL2m0HOSC442I610M1JgxMwI1/mtsjqJJBzxjjzIH1oFYh9rWfAEEy8rKL+lBap5nMnZctIyDa3paipi2VY+q7M7F8mPcAZLq1FbDjg9nL14aSF5Sh7lHIDdO1FR/kT7CS4+BEEORGxDS8kbYUbsn8CsrrwkOPsqLselA234F7aWfCFxZPBwsb3HrS7UnyeVesuDXx8gyAEk3GlItSCpQvAx5yrcQTfpegWcmPOXyI/7H257OCDffpTP+eUMrhDkpbLSUWTVu1AsuvkpeMKWNgJN+SWNLv/kW9PMFKIksdi1j2FIdnViO/Ar9UxsGj6b0xayuSnJ9eWeldQPNQVO5raL8MsVH/sJ46+HnGaZP58h5155JMv4mLI8oxY9abn7Lrwyx6deWSx4z4pta4qh3VyZ7PRlaZiMOB/ikPJrkK9fgcmPFKp43DUu12mPzt1rAswBFuybHejV5+SN6O3gS0tnIIHG+9MVeAa5w5OZEIYE2vpuK2loN2sBHhkpdR6a1ttOR2F/5AbHkjc2F1bpRK6aM00Us5JhtIAwuvfWtWkGPRJEs8MsOqmmVsmA13EHLnSQOAeXej6KIKFklya2NmSyx3a96kvkkxz6tcDDxcXYn1oVwD48E0re03JSLdutNryI145OyRF/LiCDWK0Hn7aKeD2PFKH0tbtWWuiSuidinnwIK73oIkpVW/wDBXFLI4s40pFqpeBk18IH2ApuDoelb9kiraQgCoQaN9qyWyG1nZwSzTqpF78TvTVQG2cE7PBrYX660ytWdlk2yOeQNx4+LL2qitYLll1SbKcTGMykGQ3oL6R8D8dl+ClfjHB8msKU/YRuntx4KI4zF/dyt0pVrdiJ6O3I4wLOCLAED6Urv1Fu0snfBlWw5AinLdDraqqPY6+02vTeus5R2Nn5Y6aUWUlbqet6XWhmlZ5OQxvJfiDwJ0FbayqdnatZGr8fZtuI62pb9lGW9mGVLiBDv4HekvaTfubZ4Y8YJC7eta9H8hvR1XImXHx1NwfLtWLS7PP1vazPSpLbQbDemUaKqUSROzsiklraU9JM9DDLiSTJlkJ0IYW1tT6VQzXNIlEsiOC6Dj6Uzqn4JsqTbgGcuxPFvE9KKsF21a0XJ5HCLo21Y1JDZuwyL5ANYJbl1oXl+R+Prxyw/2BzLOACa7pxwNVZs4KFAlW1wt9iKTZ9Rft+ws6wWQHHiUB7yEb2qe3e3j+TzKWvf9DEkw2fxRgx7mgdbpeRqrZfJ6ZgNVj4jq1AlPyQ7zZ+TmOHN+Iv1orQg8EibPkVLMws3UU7KkjV69tLcGYfkRztx5Ant0q1Y8HuYep0Q0qHhc3Nm6WpcxZHp0SWbIf1XiYMp5KdSDVPdMm+yFBbCsJUFkGovpSLSL+x24TOFijBYybWrfK5D6cpMNMyTjx5HkNKC2akpzyUHTmSEkFiDtY1n1oJ5KQY88rIdeJrNMpUD8cussrfMJA4+XpSqZwTbZ9rSdiyYuRLLxPrW2zcC+V4Ozssg0Glt62ig83avMsyHPtTC2oN71YlKE5ZtNN/J6WRDuAfpXVRR0fkQiEuSgJU7ijbAq12CMMoYcBZTuDXdkN10VFydng4WIuVO4FZW0kWtuzM6R3gl5Il17U1KRbpz5NfCmWZQRdD2qPesH03pVVKFkrQhAGU3/wB1JzTk72na3CM2XNQSFLaDrVlacSedfHpyylODrYgG+xNA+BF7SV4kAYcWHoLUjWxR62kDWxnhOmq9KGt1YDTTswJU95TqVK0VX1FXhEijgRYgnreneSZNsrimUNqo1pNq8HoUQjNRTrpr0FMyYOlDFkkSKTzF171WlJJ0c8DI8uNWuj2v0rHSfI2ub+SiWSN/M+V97UCTXAVk54IucIchVup6E02GIVHPJmZ2SYH5xXHpRdJXJPt67fk1fiPkVyYrS6m21K0pHgp9VJKEaUcTKwsboenakWtJ6uTVUdlxrRnjry2rq3OX/wCn+D5X5KHLx5w4BC1fSyaE651qMw8oSCz711kIo5Y90UkMpK23oZM2v1K48aOZABJZvpS3ZoRS8vwOj+PKWJY/agteT1c94Qb4sgN1Ova9crIXa/yd9n3VN0s461naCDfafDAZXUBbWsa5tEO90kXfHoed1360nR8D/Uv15ZoZan2+RUEVPm+YLL17cmRI013VRyiPSrFH/kf6+FaS35PY0aN+Pj3rrsL7mVtBxFvyW1KVjL3kiOMoksRoaf34Eu/VwOX46Bl8PFvWlvVoTt7TiD//09GfOKva+nrX6RXLgk2x/oZjOkpsLG9ZominBdSsQqtje1T9h1tG2WfoyNrcFCKiWqPStvWqOHEVACNLU6t5PL9jdsaFhlSw/IVjbqyarb8kLRpE7aD6GqVbshHNrNITOFc+Sgg7WplHAV1HgmVbfgCDTJ/IOS+WcYv38jWh2OiUIfIVjrJLrZ/A5HMi2W30pN+PJ529klz5FNCA4YAo3XtXUcivWo7Wk8Yj7t32NNnjg9hWStwMTHSOS5PgdAaF3lHPZyHPGsQuGBU9DQ1s2T6t2EMV3YePcUxIdnXqhKY3MlUJIOutFbSPIi2qr5JPZlxpiSDpsTQd1Y8rv2s2aeLlMwNjxJ1pdsyrKihtmljGPJjHM8XXrU15q+AqXk7Nixs1h5EHrW11aD0u55GrAijWykbWpb0b8C7a20cIF8kobMeQOlEspHLLqpBWY8xwew/20TpxyjOqr5NGJyyAta3U1HZc8Ds328HX/XYW4gg1leyPRdWkRloonst1H9Kph2RlaOqljjJZQyEGlqvMMzq7cks0bzX4jXrT6W6lFaVqRtgf5eQZlcdDtVC24JdN+1+BwkeGxIv60t1Vh0SjhzCx4307VyyGfSqKWc/XVr2FF3gld+WCY1As2/oa3sBLswIpJopLL5Ia21U0UZ1SCeR2AsOJFcqoXeqPQ5V7rpyG9ZbMRWjtaAcmSNx5Wv2raJo9D6oXBI0CPst709WgW7cwJR3hb8CPvRNSNooXkvhYyjRrHtU91AyrSAnjKC5sQdyaKtpPP9zXjgGOdlU8SCANqx0k8yJBGQvLltRLM3LOOSuOSM/QjelOrKFy/wBHVeSN9yVNc0mg6pSE8kvE+W/ShVULvVMQryEnkbj0o2khSheDkkQYCx+xrO0E2tgVwGddGIovuSKcbpIRPgsuz69qNbSD7G0/A7CiIF7aigteRfr6SUsZbeNz9aXwNskwPeIBuOLUXQx14FxfJSxyagMDvWv100ZnjDksbJbIQBbL10pSzVHyOvnWvnyK9vKAuV8epNF2r+Qe9UpHKoSO7C6mlWtL4JddW1CGQSa2Q8V7Uu1Y8il/Pkp5FCGc8lPWlKvbwFlV2ci5ZCG8CeO9qdSvHJ6yyVOWEgD7ufpS7Wj4PO017W4BlRAAeoNYrMm0bY2XJ4aWNrda2uUnrZes2JYR5CkW6UxN1Z6qqs6kkuDwF1/Hrb0p9dpPM11d2TriTe4VJujDSmvRQFS9aM7LiR8ACLEdayujkHTS14I2x1cFUJJ9aerx5KfWpHLImjkglBKjU/0pyasjb27WheCyP/KDzAOlxSnx4Gu6rwhLzOkqxx3XjW9U+WeZtXtddhqZcyNcuTrc3rHmmNtVL4L4PlIwQ0iC3+6pNMG/DINJb4ZdHlxyqQmt9ameLr5FLOJkT77wve516CnLNNFnp+t2f6E5LhzykvZqbmo8Ht/WqeCZ44ke41U05NtCr2bZ1soY8VlAIY/0pfTtYv8Apf1c/IByUkvzWwOlMVGia1Y8C4YPI+2x4mivbjk7Bw+QZi6PodRXVhoqdJtISPz/AB0ahaga+ChIlkAup5Dc0tuAFfwFLgmwKkG52oM9ORm20VCGKFNxofrWq/BLpq7ODkjuujqGFbVJ+DrJJcCJJZr2jXiv1ptar5EWzqnLFsOYBdR9aPwSWtLlHRGq68bqetY2L21aGIqiRSPEdbULfAmjhyNkZClwOQ+lAk5OVHdyQ5DtbxvbtT6oq+pJSyN8P32Nm8x0NN7wI7J2KsZJYSAy/elaNNHt4WmCqRy+x0Gmvep6ItulXl/AlsL3gQLH12p/2dT5/wBn2U2z0WOYVUlgQKx3kie7ak0ovHUWIIvpU9uS3MpUiWPY3FJa6sdXhErloybC46g09ciVSXyRTpzIZbA9qdVwbZJFMETsPJb37Uu9khldU3CDniUqPE0NLDtLQkzMycCJgfM37WqmujJU2/gzZsCNGuA31qit5GX0fg4plUWWMtaucDKpRyxTyFnu0RQ0SQtpLmQZ8RXTqCRXKxNpfs4McJmYWRyRm4k7UxQx+HVH0GH8zN7dpCP5qe+Kk9HomuDVxM3no+q9Kl1z/AzGiThEvyeP7q2TXsDTsbR5JfcS8Hz7YcnLS6OKr7EtbqlSmAyapI/l0oLMi117N8FmNKo0JsR1oGhvrVZckxtZW5/WlOp6PWVAT5C63Q8u4rFU7Sk8Ihf5CVHsfxv1pyzRDbBV5F5OdKw8NBXLNCNfXXl+Q8X5aZNzdetZbFMblilz8n0GHnwzQ2Oq2qDXJ1Z6ONJQiYrchCVG5ptBtqdVyQrOYpGBN17091lEeebdmE3yLDRLkGgWZe/XSUsE5aluRJv2o+h5e6m3AxM3mo7gihecCFkf/9QMqCVjdm1r9QoxnsXUwgsSd1axU6aXFdeovHll6ZhXQm/1qd0Kvrng04PkyFU7DsTUT9eWx21OEUHO9xuJsRQ1yhSSXxSsTlpUluhNqdCa5F9UmBL5qS4s3eirw+DISXBNKhMYKMQb2p1XzyT6cpCi8qsCDe24FHCBvBVGTJqQLAUl8E1rp24FTQgLc7UasJu+CJskxPyQ/j0rPr7Pk8t0elymD5H3fz61rxjwerhgq+AnldbMByQ9TXQjdoSNDEjScBSbg9BUmunUiv7CXBeP/r2NICCCe2tSP/6LQdfdbcInb/680TMqsQh2B1p3/wDRq1J2nuRwTNiS4s1xqCetZ9y0PI01elv0enhEx1AoquPAcKYROMQI/btT/tke9H4QUcntNobUXWUV40hSOmyUceLkv6UKza+Bm2bBT5BVA9zlbqaL6PwNwwaUlIbHnW8R5fXSlNWq+TrS3yIkjs+g4kdaNWE3c2GQGYaO14z1BodEn48nsejStVPyE8pjsI2uKFVnyWPOfIEucCOMn0vRUy/B18fwIi+REZ4WJToaZbGeTqYdVyPX5XHA5A+Q3pb9dk2uVhifJxSvxtv3oX67qiXP14uBlJKQSoBS/wDStysj1LUrSsgCKB1vcB+1HLR5/sbuwyCXiOLJf1FDes8ySYpv5OuilrqLVyZV/qEsLcbkDTa9Y7gVv2JsqWaI8lUEdabmkxzxlmfJNM0pZU0NPVVBVlhWjkYrxmPzuGG4rIaYV27LgmfLCNePS+mtMVJ8i1h8sJstnHdvpWKkB3zUDcaR+RuOP+tDdcCq2Use55xi5JPag8M87a3YlaJuRseJpiYmgh29gkyHTvRpT4D6t8I8nyKKAVIsa55FCxda8mji5yyJYEE+ppF8oYhVkeJFuRIB9aW6/gG3mETtmxRS2Vr3NqL6m0TXyafIUmWW1Xy/0oVkK+nkbDkTnUgAd6x0qNzrWQcmRCRrqKxVYj2ZbRzFdeWjWNdap2KgpkUk+LG9CmV2UAmKKRRy1brWqzRlW2SyYrLJ4AlT0pv2qOQNtVVyy2L2oWDMtjUl3a/CIr630twXHLieO66AikLFp8lDyissR7DPGeJ5CmK6XkCkKvJLbJjexsqnQ96ZNbCOGyuAFvBr8e9DfjlHq4NURUmNimM8b8trmprbXnkn39m90KMBRtwQTuaNaSiZPqKyYpo0LBtL30puTq2Wev6/fn9iJJC/5NrTaqD6J0VVCR2PIFjsPWttmQ6Ns8Z+QKrIPpauVI+AK4x5RHNJOr37aCn1qmJvVOwaZLs6hgO1Y6JGtJNDWxCSxT7WoFr+RzulKFN8cZF/yLqKL70vBLf2VVcBw/EEKGiFjS7e2vknr7U8s9P8c/v8uPlbaupun8ira9tJOHDupLIF0/rW/d+GbbbtwjPyMcrGdfEdKppYZWvWn7F4ubCgJS4Yb9q55t+TfWwvq5ZUM5HH5b0Fs4Po/W9aPgU8jWve69yaOtTPaaSgoiRZgFDamgs+vJG7rhMtm+FcoL+QtYVJn7Slno7e0mkkZjfHTRylOdgdgauWyakh03ScQeWPMxZr/mlc3W6Mzadi8qs4DEAW3AqVN1LXbngT+vjLJqdqb2bRNprbtCHI0Iay/wBaXZOA0rLyMyGUAe2fIdKXl+ynWjcSRSTkN/kBA6m1UVrPgzpHKHxLHKv+PWgbdfIm1pfIqbGUkkXDAdaZW4jbT5J0idTq3h1FMdkQLRIYIiBZW5ADrQO0kl7yzxyOI4nTS1aqFOWM8iP2ivqppnSS2uXWof7GIyWI4t3oelkxVqWaI/dtLYnkL7indeBWOX9FIMpIa54X60lwz211op+S4xwGLkCC29qRVtMV7OtrVJo5wxIZStjbSnOp8/8A+x4BS5QC46g1hr4cMuhxnVOYsoFItom4K8NO74+AWyZIpBYaGiVFZFdqQNdjIOXG/rQJRwE0qqSWWDH4XZSG3vTq2ckjdrLgRFLOhHttdexo7VT8jMaJKWaKSyTR2K2NTOqqw9XWPJ5cUEcmFz6Vz1IltPgXJhqw/wCMfxRLWPkDv+xLfGErceA/ijW6HZ6r/Jn5Xx0Ud+UgJ3FPrq38Cd9rPhImsQhAFyBvTUFnX+eRE0HvxEFLt6UatBZhSUZnsmKQqQV+tNng9Gil9R0GUY5QS7H67UDrKK7Pr4NJ5p5ApjOltzSq1SI9q1blkMxyOREgAPRhTlB5l61doRmZjTRusg0I3o0gb5LhlOFlpNoTxasaKcKwXqSD4vtSyuzgsjcyKORpbUAJryT5OCWN01FHW/5I99UnyKaAKDyBBG4rVaSZWd2TSK4TkosPTemIuzoq1l+Sz4qSdkKqx3pGyRb6dq1q2zUPvcBy0+tIUBWatyRSY8rSam6+lNVuDU65/wCR8eDC0d1JDDvQ92mS6eza/BLNhuHFzp3vTa3JdNFUX+pMnkjaX+tF3TOysm5Z/9X2VISdRa3Wv0/MftnBNDNMsoXoaZZKBWVErL9lLSNz1Sx70heD1OiTGwSF2KcbkaihsoUgtqeStP2UkBIFqCE0SaaVdixZpBc9R0pXVEt+WHKzui+JBoa8NjrVSqkStBJy8ibDpT1ZQTWup4+BTK0ZJtYHtrRpyRa3ls7A8j39vc0Nkl5Epqi58lnsSFDy+9I7on01T8GfJiBXN9b0+lxePAi0WO/K3IU3lormxb7+PJAp5XvsDSLVsmT7tqh3FzfZe67A1NbLv5PJzo9LGzhfLTSseO/ekaepVeT1csap8hzfKTG6nRh1oK+pVci9vXXlkks4lXU3cU6ufUn+qETwu4Y9xRWU8E65cIa04lsNraXrVn15LK5qnLHR4MTOAxNjvQvd/A2mzdkKycKGGa6jkvYUdNbWQelr2ueKxsLaBTuKOWi1/wAInQR47mzk+go5difFWvYXkZ5BuTp6UdMkWL1ocnVzL2C3IttagtQ9jDCEP4+4Ay/wKUuBtmnb9C8j49ns3PXoK3PWAtdV8IUMR28Wtfpend0iZ7IAxRq3GQWboaNN/BLpo/g8pVJNGsRrXPlAVTXLNzDkhyYODfl615utXS0rwbpq3WAHxo15XC6bE0a0bPLvo3MAJKY3UDhxPbeidJXyHlSGmx7xQyaoCr+tLVmvI3Ruzgm5EMVO46U1+Cz18vgnyWlIJDADtR5wXvNJSSgFlPHUiqHwT1/piHWRjYg2O9q1MqXWik8nx6k2Z7enWiehHb2ZtCRyXFaHVWIHQ711bpid9uA452j/ALeX/tasdZEVrKPPmEakaVyzFvKQDOZBoCL7UXWAs8kJkw53Qlh49zRK6RR9la1ESfGhYwQ16NaCns7L9C8eLJhbl/bWuyYnPRWZWksznY79aW0kObrVS/IyXHEsdwAGGt6DvBFtrxJ6CSWNOO7ChaTJFypZfhzGRSCvlSbVgZglAGSiSL5eLDa1FVwZZfgjhmMGSoJ8OtMtWUAlF0a65uNzsTYHrUtsrDNVbsUI+Osg4tdSN6U1aAW3VnMll/sfSl1TflEWybcsBON7u1wetMX6DxXPAbiDh4X71q7fJZdODkEjD8R96G6T8kfaQp0mZ1ZVZjvtpQq1UueDdHWpbjPxQ+/IsRAvY71JpaX/AAnYUtnaVVDYvkfjFfgzGTvbalP1d3yv5Cyy0b/B2XO+L5heBra+vulLZbj6GumiRm5eYjlkiGl9L1djV8Nn1mfoLKkMjkhkkBJsPWqa2SN0vWqJETKilABup61S3Vo8nvXtyVCQBvJeLd6V14OtLcI574kBQWZgdK3rHIFcvyTMZo5OTAACmKGhNoduCmP5MJoXF+wpVsJ+DrZOwTfLM4txPq1A/XSI/ZyVK8leD8gUAJbxPepL4diD1s3dz8D58q93Gx6iupj8Fy9eXwZ5yDJyUMTrVizVR9cVnXnyC8ZK2Ox3FarA/wC3BmP8Z5sSx4tsNqpWvB6fptUThHI8QYxDMOS/zXO3Yv8AvaXBTI8DRjiPqKBJpkt62ZN+6cd+RsFBpn19kTLF3tCNTE/+xnJj9tD5CoNPTStPwexX01Wn9eRWT8mG/Jf8inen54x48Hn7et8no8pchLX4tW2p1YzPNVryOxmmseK3I70vRIzNpnZgZCOYANdTjwFaK8hriMWFzZaF6cA11m8jniiiYEsSKTSzaKd9LWsoOSDGe6sbg1tHYDZuoqGKGGQ2Y26U29nZHnZ3s7DZ3Qan8e4oaJmbp+SKeSJDoCwp9atkd6MA8ZdVPFthRLgLDOWInwJGk/Ly6UdNVB6zsk4FD4+Z14l1BovtSFX9ivgBYDE/CbzHei7SuBFtW3CPNDDyJT+K5WfyMzTltluNCZ4uF+LDoaRe3VyUrVRyPTEaNDztp1vQPRN8E2vsymkSSCeKZeNuJ170xQ0eXZKj58scWLnReL99qCIMVe1oCg98EhmJ7Cuuke56ta1UIKdZrA6i3SspBu7QyCaTiUBsegob0XknSVuGA7zMeEgP1oqpeUNtWtVAKYuvk2nUVr0JlrzCCbHkiJZHPE1iun5A31Dhy2QEG7epobZST0o4j8nZPlJ0AtqtCvWqxy9RA/ve7GTy36UX1dWV4+ulUzsyFnXkCDaqqWgTrCRMiyCO9xyHSmShOf8ASOxs5NyeJFZZHo4VSFZEMzEniG9a2tkXVrWqkkmia1zGARvTKsVpafk9HO8fe3Y1rrImwXuPMDxX710QTVqvkTJjLKvGQ6+lb2F2054IP+uMWQADb1o+wVd+tjVx0CSDn5UqzM19hu3BpRcQ6gC6N2pNgu/XyFPCVHibChViHa0no4We5Y3B7CudoOxulyjkvxsZUhQfrWrUr+xxDJ8eCSE7aelHayYz1rdnBS0pO4LUlI9Z16oMSAKG4hT2tW9TzN7tjYpEdiCBQ2TQvNQxOV7S3NtulHSWJ1pazJTMhUgXv26UyC3LFqp//9bayfhJixCr4kaEiv0LP2qwZr7FXYypvj3hkHM8SvW1WV1VlwDS7bUFcfDIj4rbkNyetT2mrPUq4XawEUZhmIZRfvTG5R5j1drstR4WcK5F99KS00het2rQhxWLcX9TQSzm2lLKWTjHyQ3I6UlPmGFpZ2QP+ORfMWNFyvBN/gjyMQi/FrqelPpoKtaDPkkkgYGPQinKqt5I1m7uWdi+XmWbjJcqetZb118BWxXaEU+/E7E30PQ0HRoZnlNv0TSpAGYlri21MTZm1nLjwKJxolTkfEg3tQ27PwefrazSSBxwjBrPYE3FbVQb6tYTHw5E0MgZWJHUCtdFZFmdeZNCTMSeMHVHt2qdZdWM1z4k5BaQa6EddqC7jweVbSXCJ5I51kLAkgn7U2nVIblWual+Ry8bXOjClttsVZvS0IdB8i4ezDxvpestgoK8slVlM7iVLqT69KCi6vk9LPFJdn5IZHij1Zyn0qhJsHra7mCQyozlV8geppqXBbTL6/J58WIpyVyD11rVdya7uJgtxYQY77+tTa2hlOGnYEe9C/j+JreLDeEOeXS3WlVQ15yRTTzJ5FSV7iqa1T4EfWvIl5nltxOm+tMrWBOlKpyzxxZ2TkLX7itV0JvrWAsbLlgYcwbg2rL5qxJM+DQOe7ageJ7iplikbfJV5G2aWIGMhWHUCh4T5OSUcgJPk9fJh1rbVqP9fJNipZWeUacX6msqoqev9Sq0H7Ejxtc3NYrJMG+icpGfwmjk0PGx2quU0TVivLK+JeIkEhr9KTMMXe3ZP/JE7TxS2dSB0NPUNCbRUqEjSRcb2AG9LiGTtKxOV0/O9MkNcKYBGNuC3K9b3EPWeDyCWE6kEVzhg1cjuThdDoaCEFeICTj7flrehfngQm7KEQyROkpKXse9PT4GwqB8pCgJBvQ8C+LCJsyRDxtY96L60xW2XBRBOmRDcmzjS9Kahki5UI6jyRSeJuD1ouqaK86qo5yxNwbka0KCa5ghlyJBJ/kW4vTFRfAi2aTkpEpexUBbUPWPIyEuWPWaRPp6Ut1TF25csIZ4uyldPXelvEnvTljUkDx+DGuVY8lvr5KtOzDVpYdXFwaXdp+CT2Np8Dsb5JIm/wCLkD3qW/ru/wAwebSjbmeDSbPE8RCsENthU9fUh88lNfW7kJIl/wCUC+16uqungtyqs1x5EEpjyaC6k3piTujaUta0lgjE8yMFFtzSLOKtH0WTrlZMryfiAqCQLp1tUXr+1z1Kdva+zlGfPFJExsl0PevQzurL9iN7JEE2YIpgCtrbk1XXOUQPBu6OmT9oER/lQx08l2eSq5ZBeSDJsdxVPFqku1pvAwT82IOvpQ9YFuqTg8ceOQgqCp713Zo21+qJM6SfEiaSMs1jYjehsldHi+5/+qZf8f8AJJkQAyJxNrUDx6+Cr08Uq8FBSZluhJXtehlJ8nq5qtKyxBSRHDLcN1o5TPM207Wn4KseeZJQHsVbek3qmuBF7pWhGm2NjswPIWYbVKtLI9OjcpLxBNPhJH5acT3p1NpGu7t4I5YcYLc2F+op9bWG1VmoRj5WHDK7Lz9bGn10Z62Wf015XJLGn67DjyUg70/yJto3yzSMkM8YPK0nY0hJ1ZPs21I3HWE2u3Bx1FZdsmro2x0TyJJoSy7UFkmjatU5ZpCONoy1/IdKk7NMS7vRwhSZEgbi63WitRNcFGVFTn5LEWKZOP41O26sc79ay/IRhhReJ/muV2Rd76WM2Z1jkNvxquv9IZ9fSZCkKmIEHSur5FaKaiHV2Q6gr60xNSTpJkUazI/EAkE705w0NzSUIrYsxG/IClIp05YsO/5On3ooXwRSvKBlBdRwG2pra8BWqqqX5GR4crr4rc0FtUgXvX8lOPAY2vILeg3pd7yuCf8A6eeDQRYhut1PepLWf5J9dmv/ACeyIsSSOwsHUaWoaO6Ynpe3khBTnxI8hsarScSXeri5OcgstiprYlHp3fQuVEkh0W5FTuzTJezvwZ2UvF0cIQRuapzcyi106VTGcmkTkhu3UVkQ+RF/6ZIctoJLyoeNO+vsuBNqx4LEy8d4/E/akPKyZMs7WEyTxPqBxNqOtWi/D12uWIaAujAtoe1M7QyujSTJVxWiPg5I7Ux3nyMV+IEytKq6XpiSItkmgYUkc3Wwbrets0gcIbgEJOJCHawrpUFytWpfHG4jBDFhSG1IH2duRWRCu4G/ejpYG/iScYyttoRTO0E/2SyRoJopCV1X1o+yYq10pGcFvfQGskntZtgzvGrKzLcDc1iTA0TmQrwyWKGw7Gu5XkY26Ls/JfAVRQAQNaTbkT3duWVCRGBDailNMVduQkiBW6EgdhWdvyMyfWssoVGjF3XwPU0Dsn4G5vvbgmKBpSFHi1Mng9TGiz8jRDAtxfytQKzB9ja1nALRLLGRa7DrRdoYin+pIyzQtyA0pyaYdFPJ1o3yNLXvrWJ9Rt3WgyH4ssPJLH1obboTX25P/9f7Bfk3DgalfWvtn6yaPOeE2DnhgzY7lQDS1e2Tg9L1c+ZPncvFXDl5c+IOtepjp3Q32LWbhIW+RjzDyc36Wpiq0DXN1UwAggc3jYh19aJyvJJXta3JQmU/EKx1HWluiC1U8GhBKGQje9T3rDOduIAewYgk27CiXgB1jgTLKQAF2o61E60/JPIrMhYj70xOBHCrJBk8o25KotTa8gdPkOJkIDA2rmiujhBjHSZGBYknqKF3gktp5RHJ8bPcLqRrRfcia+1VAGNh5MQNg2h61y0TBx1TRbGZdmHlWOClNPhDZciVIwStvWgdUb7UVzCxJuet+R2GtJ6weVio5LxkOtwyDj0pLorPya697Ec2QyuLJe/XpVNM1B6GfrrNSzqxzStYOB1Fq1tIfm61cstxoEERVieQ0JvSb3cyVZ62uoJsuIA3VeVMztJXddKjFxEnUHj7ZtWPTqS/d2t+RE+G8SnyBWjpomUu38gYkvtEjkWU7gVmyks9KjDlySGsLkE3oKV4KNMuRiZkdrMpB9KF5s21XAYaOVCL/wA1sNMk1fSjOnBjdRZtfSt+1o8u+zYv2JIX/I8TRdk0Ltojv6wZtSST3Fd3AV4YYxmBCi+nSh7o16dmke9vIR7gFR9a7tVorTqmUY0Zd/I69qVq4Q3DRJlcuInG9tR2qamnwU6avygI0j4kLcHtR3bBxl+REsasDdbMDTqOCXawCh1BHS+1E4Z1PAE9pPFiL2sKKnAnZcwS+2wuRfj/AEpsm0arWT0uK3s8tx6VyvyZa/8AEk8crxLYjSjdZI6V7KQ2n0voO1YqlSz4AGUiJ5kkUTpIvo2uDkWTxcFPJTXOgLp14LGkEi3CG4HUUnrHyJvXs4RKuUpcx7Hpem9PkZTHnkTlScrBx9wK5L8E/tceCSGRFcqlwb9aYqv5A9bJzyOM+Re3TpW9UX1yq2LGTk8wCdDW9UMtWtTkz3fya43rIIt/9h2PPE0ZTW460DqxdE2uQzKwXxAuNd6xo3RQoHR5CytZgARoaW6wTx/RWvKOM+0dD1oHz5KLOaw/AqTIJjKyMWPW3QULp+CDZSuqFfs450DWI2B0ovrsdXK3gpidS48rfSiahHs4U6wiWfNkx3YByddL0yuasjX6zs3wHF85E5VZnHqNKF+vHgop6vKhFLfNwY7hlYlbUr/n7Lkrt6t72kqg/wDu2KB7LeQOx+tebr/8/teanr5f/LdM32HTfKxyDx8utqflg0Q7epLIMplyV1sh/rVVP5Npilz5Ml45seTnHMbA6Cq01ZQ0De3zAybIjnAaQ2fuOtdWvXhEtq/+yEpJHe6HyX+tE0S1Ts+Rn/YyWs2470P1IXrmoPPNPLC6C1m6ms6JMitnVpoh+OymxcowZDjj6UdqSuBmX8PqkfSrO6w8o7cTUbqm+Sy6XTkUcx1QMwuve1b9SZ5fSVIA+V4yj/H4nTkRXf8AP+zc/W/qWy85Se3zDW9aT05g96mTVAlljnhKli1+tBZOtijKkUI3wnLcQSRvemX2SrJX6lU7JMzsrGmSQsoJY/6VRjZdQ/Yt2uSztIzG/wCY9O1UUXBH7EN9ULbKkKi48hRKoF6JVQcUxfW9mrLIHKqSkohz8iFyGtw+tBbNMg9iLWhGlj/JHkOK3qa+MoqzxVEWO6y7sB6CkVTQ11gOGVAttyOtdarkl0s2iniZACn9TU7cOGU0ilZZyXEjdbMLN1tRV0a8E17u9uDPmxZYwQj2U9N6qpomFdrrBHGZAGVnLHtT3ArFKPAmR5UkBUkAdDRJJo61UnLKUz3XW3oaW8kasuzJ5M5mvrZfWmVzCeFc6yNimVo9XuRvQ2r+jz9byinHyXjYHl49hU96JkFrcmgMiDfflU/12Cpm2xE8jkjg2nam0ovkqp66dkiNsh+XaqFRFf1pMdCGlHINYigu4Cxa8h5EfOK5JD9LUNHDGauVJPizToWVCVI011otqprkf6GScuwyTNd0KynUUNMknwN9ii6io5p1uYluDTLVT8kuOafkVPM0hIffsKOlY8Ab1UwiWOOQkhDwHrTW0MxSouRzRTJHf879RS+ybK6RZCFzsmE6p/jOlzRPNMOmK8hHOdtV0rlmDfNJHGyVZTzBJ9KJUIL0b8E3uvHIGXRTuDvRxKG55qiksLiSMOq3brS4hi9X2H4czvyjIsenal6VS5NyjlFBAaMiRde9LXD4B1vxCJzGnLxGtNkTmmvJDlicFhawOxptINtmpM4yzK3FvsadCFuqQbMx0axHasBukFGY3j42sQelBZtEW2jg0IWCoAFBI70mwFrtVgvheCUgOvEmp7SvAtWaYc8b4wJje6Gto+/lFXRtALkF0tI5YdqJ0h8HtetiqU8cnQ+PoVbiexroYNuzabDZS5BuTbtWJwDeyqejSVCRc2+lc2mTqyHpHG+jG5G4pbs0b3+Bc3HHkDDQd6JTZEmrtex1M9A43N9jWPHg36mj/9D6OFouXg/LTW9ff3TjkjzVnbkfDkCFzpyU1NvXtU9f08m7QTZ5xMnkGUlraW2pnrO1UUexk04RhZMTJ+CWAr0qWkResLlkAlljflZh9qoaTJq1hjW+SIueBag6Bf8APIzE+XlZ1SxUE0NsUD9daeTbiHvG9zUr/km12XYKRVQDl96xNvwQ7XbgU00JjKg+uugolVycsWq8ipUEqDUG/ajTg6zSQuLCRSbi9a9WI+9vj4PQ80lKqOtBZr5JHeHyPk5hrm4PQVO3PCINrdrQgjJ4qdhR1pBXnmq1Q2HG9/8AHeuenXyUY2SYn5D46VYxoSeora7Jme5t2iqMdpGx3/H7VTWvYXnk7OF4Gw/IsJxzPga22Sjgp+tVtwax4Si0YBFTePIerm3Is/4X5MvFB0FEv6NyTtaUFHl4qm9zxPS1dalmex62Nq8j5cyD2LxgC1Lrm55A2ytessmgyXkB4kk+lMvRI70sUuWE6mWKz3uDWJw+C3jqKgw5BIQhYX7jStvdRyHTVV4fyWSYgP8AyJ5DqKRW8eAr6uzhE0qFWAAC02jkLZ9VyMVboT061vyeVtrw2dimjjOqk+tdarZHRWfIw5qfiV8T1NB9QnesIoiljeMAWBGxpTq0xVKuDy5LpKPEEdTWvNNDaZ/0MmmhbUDX12oaVaLrZtCwwBuDr2WiYedfgf78kkexW3U1N0SsekqJVn5ErIUJ4G5ptlPkDOnmSTLyJkfla6noKoxqmhW+SngGPPGgZbfWitkDnjInIyPLmvQdKOlOBe2cOTqZavDxYgHrXOkMRTKVApppPbYI5+nSjVVPIy2a6wScpSLORb0psISlVKEOjjJUgW1FA2b2ngnlgktxJNGrIfxWohYpEN0fie1E7Jnm307MoSTJBDPIeOxBoXVfBTl1rykMMYY8o96GY8ib25OPIZAFKnkKGIIteWTSgxyE7mm15K8cpsLXN4y8ZB4nQXo3Tgs+vqxrsfdBRbqaAl2aVpZ6WAE3O1thQ9iTXTmQoI4Ybs9ynYUPZvwLwtazcBTexInKPxolK8lN061liYpI0uzPcjcVyTZLjW1nMDx8qFjAtoNTWPIr0x65yyzHnGRDyRdW+1TqsPk83DOeWIf49Z5NbBun2py0gvxsuySJJEyMZ9GIAP8ASnSrI9nDPs5jkg+Q+TPAhUMjelDW0OD3cv8A5389rcGOMnMZvDGKnqTTmzqYUnmxZFh/K5AHutwjOpA7UhpssfsY5LjyaCfGQxoLueQtXZqDz/c9+1lwbuALtxB8SACaRqoRI95vyWGAROTYOp6mkq0oy13IufGxpL9CdrUyl2iXe7mEQyY0gBUKOI2Jp6uhdmkufJIcdo35o9vS1N7ST945gYzx2N15PbpQwya/a7/QhZZnbgV4DpeihIJUrTjyxGTiu8mlg4GjUVWBw7jsL5SSFf1521GgY0N8k+UUaKawWfuBl4rIDrtS/rE2x615Rx2a4seR7VqQ3LKWilFlaLUcR9daRZqT3qOqrAEM7RXXkbA1ulU+QsqNuAWz5TJoxFqQq9j0/pWVf2FLmTEBjTa0S4I3kpkjeJ5zyDa9r1SnCIrWqrSIlxJxYhvqKOtkI11R6KFkbytWtiftlwjjraQF/wASelcvBNa0W4LAtnHskkW2pU8cl788laZBi1kXT+tKdJ8Bv+nwEuXGG5Akqeld0cEmidZZt4WTjtBceJqDXOysJV7WqyoPG66NraprJpj/AFs+JZJMnj1+1U0tyZp4IjApfxurb1T245J3aD0mKG0c+Q2NctI8Cr6S4Qn9a5sNP/NF3LM30XIvI+MV4jYG9FXaGBptKMowy47MCpC1R2VjzNNJkZHnSJIFAPE9TQPNMR9S7clv7PJLg2I60PSGevhh/Mi1zJVkAOo6mtdFBVniuyE5GSwckLeipXgX7VVUu+OmLjUanpSdakeV0uEaLozLa3EDrU1XBVrZVqFFgMRyFz60GmyH+noibKx5o/7f6U/K6Yv2rpnMZmBAcWH0rdF+BWTjwLzIB7geP72osrcQzNuHIKYwdL7sN6J3hilpPCG+y/t25HtYbCku3J6+cKhM+GeNmu320pqvyc9Eqi1ximhUEdKZ2kg027OJBaBm/EW7it7AOyqgxhKyEA+QrPshgPXtwK9iSIEsfHsaLsmdW/Ejcf8ALkh1FDf9g525LYZBKwVtSetJsoOT/oVPC0bm9FS0oaqyyaSazhXW6mmKvHBmlYZDl4wJvFqN7U2tvyS7ceQBjMbF1sDpWu6E23S5Bjhjhm7qTtU9ruzPI01te5dP7TLyXwtW1TRc6tKRSTRKdZL26USq38DPXyte3gOT5C8QABIG9bXPk95+uq0U+SrHniePxUq+2tLtVpmNt1GtEJNCdR2oVaDm44Qv3ZIW0JAouqZHq+zKI8x3/FSw63pbzSO6KvLGqU9wchwJ3oWnAuf6OyQMdLgqeprFdGXskTT4qJYsxAHUUyujYvXRwoP/0bjkmKW4/Gv0l1lB4YPtJRBnQyGza30qHej+D3fVxdFJQkETyH23sO1bVtVUoh9jZq7kZJiKFBbX6UddDzL6uz4M+XGhcnsO9Uq7RmVXJDJgISeOhpq0KXpC5I3x2ikHL+lN7SeV7G3PBpfH/ImGULrY9DU+uXZEfLubL5GNOQGHl6VIqWqU2zconyMaNjtTaXYzW3UQMVEB4nb+2tejZ5m2ztwOgWBzxc8WpdrWXgSruYEZCmGclLsD1oXaVyQ+zbke0iyQ3YDmKGlICxy4k9Fd4yvC470b4+SmrSR6ESY84KksOw2rG1Zcg0c2LpJGlTyOtKrRJjlmrPgxc6Fg7Hjer82oKlmqmY8UpkAsLbmnSgG6p8l+AxiUu1732BqbS3bwR23dpg2oZ8aZPaZNW69amtS1eZPa9P13WvL/ANhR+NjYOoYcui0f3NQy37nDqB/1s4iZeItsKL7qybTVWUEEUGTE7LaxvpVFrJoZg0uB8c00b2ksB9NaB1TR2jUwiuPPZJBfVfXSk2xlEzpNy9pFmAK217VGk6uD0FVVUsXnfHI8YkU2cUXr7Q4Yv2NHbkyG9yJisjeN+leiofg863LhC2YSrZDb1ovAyyVK8+TjRco7NJYrWdv0edrpPwMxpliGpLAelDashetS12FJmOSGQWHWuWZ6H0KvLK4XjmTyOvak2TqwnZvhAGVYpLKCR6VvXsh9aNcs0sR1kSxBtUW668h4W7WgmnURSaKeLGmZ27Ip0/lf5OzRxsuh+go6Noj2mxG2KjX5roOtP7/gOt+lRcvxpCn27lT60ddvyS6az5JBjtE9iutO7Sjlf4GMkl9rC21CmgrtImZSp1GtMmSN8uDsUo90XuCOlc1wHVQy1xyS4F9KSjNrSZs3NQSoN709EnSKjok96K0g/ihbh8FNLJVhCWgmjIKglTRKyYtNN8ksk88curWolVMVXJWuMMzuSRZj9K2IPS6JAz4zyKCVANr6VyskK9jWqXAUXurHe+q9KW2meTbTvyNkyl9kctT1oekg/U7rgVjzK4ZS9wf7aZ1gsxr0rAcqtGh8bqK7yZb+uCAhWNkQqSaYuB9KfXXljWaOONhKbC29LvL8EXt62umkW/Ey40kQCvqNP5pDTSJvWbrXk0VcQuG0I2vQR2LfTydrSPbHhzrD8SdzU+mls0z6v0qKtk2TSfAxwSXFirEk0zHaa/s33Peta/VeCDJ+MUMWUWPQWqymsklteqBXgo4sLFdK0xtwUfrwZMJAuGAvpS3Z1YVLcSyOJsjDnBJPAd9KdZKyEVf9SbuJnY0x4SMNfWoNMrLlDrtpjJYovdARwRvXVs45EXlW5EThoXuTyU62plOUSbPtbgWJMNmsw0tr96JqyJLduwh8eIMfbO56GjVn8hVTXkjyonR7sdBsabVyF1m3BI0knujiTTIQ760rcgZMIkYErycV0wB7enXwXR4yPEvgFNthSu4lau8BxNjrdZG4kV1p+C7JW8I0cZsWRbBrEVLrK5PUx7cIiyFkGQAtwt761lLd0evXNZcv/YpaKKWG4S0nehpNbQI10dlMjsfBEsRDrcj1rb3hyQv2uIRFkYGTBJyhU8TvVFNVZckrslzYABv7yQet6MjvftbgQ8hjc2HMHvRpSc6QC7LINNDvatSg2mfyw4pWC3JsRQtDs/75K8edHHFzvSrVHO3VDGhjCnibm+lZ2Z5ml3bg7A2SisAfGhvDLfUpWCjEyMoeKgA9qVrSr5LKqqUMr/YmNhJp6ilKi+Cbbr8CZZnU3DEi9NrVM8/WvJxshyQdwa1UQXRV/orSISIGBsaQ7QxdtewShVYrI1xWNt+BFrNuEQZsEbqbd96fSzRLr/Clkq/HwyqSGsy0ddXIHrWdnL+AlwgsZ43Yg0T05Pf9ezdREmPO2tigHWjVkV9q0r2ZxsT/ABkmTl3rVc8bfd6PwSQ5QgnAVyoH8Ux0lG55ur5PoMfMZ0BMgII6VDbJL4Dt/b8FON8g0bcTfieppGuCsWY5dUVyZWLIti123pFcrVJPYpazhE7ANrYMKeuDapUUhNiiSPwPE9qxaQ+Rbv28mXJDNDNrrrqKrVlZD8af0ME04FgtL6o9O9UlA5JHdSGIU7AULqkRXacpEk0k8TC9mX6U+qTJ3RICWU8gy3F+hoq1MtnNif8AcZeRIIJ2o/rOWcJsojdZ8chhr360trqzcq/yZ7xywy3W9qemmhmVFMsUM3KjlBDEWO1F9aaO+qrsaUfyJluJRc/7qneMeCi1EvB6ZCxBBFq2rgi3skLIkCk9axtM8rbTscM6gKrgfWsdG/BNarcJEN0fJADbnYVqUCa1i4+aKVA3jcGm1aZ61adnBnkSMxstjTj2PWyVFLGGZY1AkP8AG9ZAy6to4Xg4mcGNlLVzoNrl18lEedPG1x+PrQvNMTpVeSr9pZkUt4nvS+kElqwpGKzqxtKOO+lC4fwLS7W8Cp8iQnwuzX3oq1RZbFVUs4ufKptMCAK15r4JtEvgrM+PNBcNt3pSq0wFm2pP/9KT90ZPgpN+9fpVuPB9Lh6yr5H4eO4kDM+nWu68Evte+quEb2PLDDIGGtxbWk2o2oPntNb6aSVNkqzAKbVOq8FtcOrSI+POVgTuaongFtUbPPjhfQ0SuRbatkWUi87A3O9Nqzz9Ku1jPmSf3QeopyaDitWaWK54hyLMNL0i4Vtu3KNYSiSJbAX71HasMm9i8oKOKGRvJSWO/Gk20aPLtsxyYMKyFxYH1pD9i1uCf7bWtwJz+MgIAJ01ttTMqPyw3jLlkkMRZSqqQartdLyyqtkq8sOODLhJ5m6HoKBXpbwBi1Zk8wm/3lR0tVFUvwWKiXwDj588MhVxyUnc71t8U0PpRVNNSuSCFAAI261M/wCDnEmRmYgj5WWz32NUVvJDq2yCCZEykSSyqTc03q44CwpF0jbiwlZlkx35213pFtY4sexr7EQvBfNAqp7w8ZANQampfmPgem9FKJl+QPG6tc9QabbLkqx9bjkRJMHkDG1z1FMpXg7VdXCOt+u2pPl0NcpQiLWcIkeduZTS1NVeJKa4qvkpgy4VUAXDX6Um2bkbdWskvg0I/kf8Z9wXXvUtsP64MWU14JZJcOUm4Bveqq1sjz3S1RYTDdLI3Fl6Vrdl5Ib2u/JLM6ppa9+tNqpArk3yxUExANwbetHapf61OtSkRJKhHKl9oY5v4JlWSLIF2JXsKY4tUZRqrk0REhFxfWppgzTR2ZzEyWgyeN/E1m+atQd69IvBpyZEUy261BjR1KPapyIPEpY2W3U1T4ZLROBEhxwSL8j/AEptZB27eBRyOOgFH0ELKfIJk5tyVbEdTWpQA6zYVI7kEbmjSQxUTIMgOGu2n0p9YM6L4JjOEe97t0vR9RF6tsoj+XkCcSgsNAaW8Ub9CVfI9Zvej3A+lC6wRtKDkLTQ3O6nvWNJnY17MCbJk4ixtrR1oip4JVRK8Uk1jbW+5piaQVetTsWHlK5sPpWPSoi/s1doHTcwu3FxS20Te1f+Q8VY5Yyrix70uWvBJ63PBNNg8JbEFlPU7U9acHoWv04AXCaNuShRftXfZIiuvZwdk/Y/E7dzRKC5qtK8nf8ADYe4AHHW9C5fgiva13wTZiYUgJDWJ0o12Qdq2SmDP+OzPZmeADQ7dKytPyT+tn/TTNyMF0UrcE/esfB9Hikqosx/kHwXV5mBSptcldQXZVduUay/J42UnNLW72qP6bU4FPB9myHNljKghrMtVYpi9smqyLOMmXDe1n7jvR9+rFrRKsk8ePmYo0vx70x2rYXXRdR82JFlJ5klt6Wruo5OPBIPjwrqwNgDTvs4BW/9T+C1QVA3160kDS7vY5LJd7FtPpeuquAN1DglKAzWBuG702eCLxY7JDKvS1utcrIbwxJYAEEczRwH1n9CrGRx48T2FbME+t1VjZYwguwtYb0l2nweXvo9LcBxS47Q3V/JdLUUNHp+njbrMeBc74gAdjyY9FrpaPa9X173crhE8UWTLKHQmJegB1oLuVyezl0zf5Zp/wCThaQFmH91JpVLwJ9jXtyV4ySGMAsABqay0SefrulWCrHjlia5PJTuaDRpo83LSXJRMgePxYgilUcMbZdjBzIpUkJAJ1616Gdk0cs0iSdMqRDZd+1MTSHUpV8mZKmUl7Hiw2BpyaYyyTUHMbPdZAsyg+tc6SY0q8I1cd8d20JpNpR5vsbOYNAxcRyABBFqT2kHP+uTiGcBgo9RQ2g9XDNKrkKOWYyAuqju1651UA2tVMvjS+vK9zpSG4IddpZ2SIk8SLqa6thdmkxMkUca6Ag+lGrNitbWsj0GY8Eg5L4nqa6+SshCRcJ4JRdl171N0sjodV+xcsmLLFxBs69q1UsmRaUtbyZzkJqt79dKrqi718etZH4+TKqfgbUF6JsvqlWnk0Y2x54Qrgch0qWytV8EtrOyhGXlYUYk8VIB3AqvPRxyMpXpyzPyPj4fzsbnvVFdGKelrW4JIsg4swBP+M9taY69kWUo04NdJoshBxJ/0qR1dWXtdUdjJRtdB61rUkVr8yVxzwqwCvcnpSbUbI9nZuClpWBDKtj6UrqUZZSLmVpCG4kt0NbV9UWVqnZE8sM/5WN77Uylkb7GlfgDiyv5X17UyZRN254OyNYGw2rEhbq7sjmnIB0N9qdWo9ZQpEMXeKxsO3emLhiml1AxZpYXs2qmtvVNGYJSPeQkb+tAkOvVQKkgaTyGp+lErQLdkuQoYWWxK3FZawp7Sx0pYJ46N0oCX2rfydil9xLPodqDr+Dz8q9vBDlw2kBubdDan1ZRddeDNnRo5eYNyp6UVeWIzp30hDB8rKUsX4/WmfWj6TH1FWswd/cxTYu126kV3VjVlZtQKllicH21uTsTQyejl6/VckDNmI5KqpUdqchN1VNhrly8RyQ3713Uk1Sa8lcOW1vI6HpQupHeGXYziTpf70uyG48FRKFFAbiw6ClpCvZu4QyTGWaPVtQKFXhg58mRkGTEXU2F6emmejl67dT/054sAwm4vf8A3EV+nSmevf2m1JQhkFyCGPc0XB4t7d7fobFJkmQByOJ7ChslA2rpRmxBitJqjWIqHS8Iprsu0sVJHJFJqSSKbVpo87a/azZVFL7g1A9aVasEbt2YjJxrsHUb0yl/yKu4cks2C1ybAk0S1Jdt+QoIXSysvjtWWugPtVUWjFQqApuO1S32jyTb+xCOgvCttQegpKXchpV3Ox5TXuw17GmrFfBZjl+A3mlmXSy967rWnkdqq0UvyI972gfIsb7CsWbu/BFnnbV/o4c7lfxI9TtVCwg9mnrqlQHli43c/wAbUSq/g1Ub8CJWiyFIisGA0Y6U2qdfI959Fz5JoczIx2AY+I05CjtmrCVVJT8lkoOUAYxe+7HekyqeRWrrXlk3/Rs8yu2gFySaxe2vgmz9r+00GsUmP4oSyncimyreT08+ebfJoxu5xzfUga8qi0hWR9D6eadCT2UYmxs3an9oHVfwSPlCKS0i311qitJXB526btwPXLxZD4DifWlOtkUY4WTlismBpTdCCQN63O0FV4ryxCxSxcSRpfU02UyLXbg2cSNHi1a4ttUWrhh56cQieXHRjZAbA2NOrcl0t15ZEYDHIeL2N9qerSiBNu3gJpVX8t76ViQdk2+Akl9QR2rnUaqxwdXLjUghSO96F0bG0zaUse2VA66C7UCo0ZbK1g8eWVmKnRQNqG9UkNyVVaA/YZpCQv3pbtwV5NVtI5vAAhiD9KCq+DdG7uTqoZPyOnass4NpZV8Cp/jmVgyXt3FNz245IvY3mxw40sfkTy061qumKV+74I5JJUY3FxTkkxlM0jnus2ljat6jXVJCyrWsVvRE1n8EeREpOi602rF9RJA42OnpRGXtwLilkS4jNjWtT5JFWeGV48zSG0lwxpdlHgqxiq4HyYhKaMe+mtCrha68QTNLLCNVP1o4TJNF/Jw578lBvY9az60hd8lRSWSo0iKRrpcGkWskQ+1ogMWRYhaQWtretVW0b6dHEjsrJFgQLoetdWhVpl8sjAe901W9OUB40S8jSDIvFjY9qE3S3Zkb4yOSrj7imK0BVt0X7C/63HZOP9w2vQ/YxL3tZwYXyHx80cvOMeQ9afVoZWE5ZfgfIZLQ+37bCQacgNKXqoPo/wD5+FbqW+EOMGSHBcl76+VBnD5LPb9itEq1LsCdwhBU6fxQbVlk3rf6ttlks0UmMeA8x0NKpVq36B2q3SWKxp5wtl0PanXqjzFFuPgtV8uQWkPiegpEVXg2zovB54imouDXK0lFPEkxkAJA8mpsCq0bf6A5TiQcyeB2FdCgZa1aeCkxlwSgGlBMeSS9pbbI8iSWIhxuDrTapMmefZyOEwnXyB17UPWC6tUvAg4wEmhIU7UfbgTfWGImQwm6tytXT2PL0bvYnkypuXkLod6YqIozwqmejwo5AQJCL6721rrWg9vG3RRBRi/HKgCg3bvSb2lyWr2XWkF+NFHE/kfLtQX5RItbWtCLjxmj8dBUy4Y7RqteRF0gGhue1P8A9jy79tOPg8me3Ih9B0rHkU1xVFCHrmKBobetKtmPpi4AmcZCkC7ab0VF1MvRVIOM0DdeHeqZVhDa8Bz4gn8l1FDW8B3uqckMvxETk6cWHWnLUhfsN2M6SPIxZPEkremppk7fa3JfjfIHgFP9aVbM9PLL+TWw5Ypr9GqbSrQx6RwOEkSPZk5X0oera8nm62s35GDMwww4ghh0oPrsC8r/ACWpIswBQj1FIdevkDWyXLDeEKgudDQK8snteUJfDjY6Hku+tMWrQt3cwgVxo3BVbi3SiejXkY9elefIIwlDHgSGrFq35E5WdnLPGO3i41ou0+Cm1p4Xg63hoRdTtauXI5r4JzkCNrg2pnSUOwwZ2X5KMoCdDWVxaY2/ruxF76SlgwLL0tT+sHY4qpFPBFzuqj73p1bOAtG6uSmCaJIr2se9LtVtnJ2dJLIsqGVQClxSbUaE0o5ETpEkoZSVHprTKttC9J7GjiSjgbOSCOtS61K8P6ngNMt4XsRyQ7GgtmrIdTPkKedHj5DWszq04B0y/kjbLUAjqKp+sT9TAM8bg3bX0rurQ9Z9UePtNHY2BHWtUpidG+pO8KcSF/LvTFYUk2oJvalDeVvQ02UHVpeBxhLR3BFx1oFaGFppwcjlIQjcjrXOvJK/DOplGy9vWudBdaQkxspMi+IvSvBH7NvgnSVYHHujTvTOsrgzCjng5mZHJbxsCh/mipT8ld/XSUsyGin9266q3SqFAz1qVq5Y79PGZWLAc+1D2aPUrra/C8ErY5U+MIt3opkq7dKy3yaONhwyR2YBSBSbNpgv2m1wKysMRtoNLb0dLyTbXa8kzY8/CyAMD1pnZE1It5IMnFyke+oHpRqyHbXpVQiv4vOKEJIpuKC9ZJM7Sas2bBxBAANJVGMfr2uyf/tgCVTVv6Vl1B6/p/8Az58+BU0OTmL/AJBodiKXn5PU20zyrCP/1CbJ4r5t5WG9fp1alO6lcHIMiJhcrf1FFarPNrKRUrIw8OmwNLaZjn5LsXOkTcW139Kn1yTKcKTyFl5IZg2rX3ocqQjvYyh8GeM14HJsbVS800QPPqmXRfKRsoU6ip7YEm1IQZy1NxwuOlL+ogtT5bKMeP3m0PEW2qXXZVIdN1MBZDyQnisfL1oc8+/LZlcXdy2Ikmdrf7+1V1zS/wAFyyUfo9jwvKSZDYjoKy2ir4OrqlxU9kK6GyKT3J2rKw+WBesuWDFjTFiTYA7GmfZVFPruswheREi2Dk+p2FMrZ/Bdo2kkhACMeMZ+vKmcryWZU+us28k8qCKS+jHqb6UxOUJU3vJO2Q5kKsgKHai6pIVulRjE+QTHUbqOlTa0djxPY7NGzDOs8QKyXG1qRXLp8Hoeh6ySloVJGVk0kBXtanpyvBe+beB6RcsdvLW9R62//RH03p/zi/8AJDNGY5ASeV6qpaUdaZUEOaoaUEkKlU5Pgm3SraSjFwMUm/uc79KDS7jwLz9mzt4LRjxR6oL2pKs2K01tewuXi/EObA7ijrwJ04gLHgCt43I3oNbSin1rx5PSncBrW3FFVE2i7WZBksha4OtPogb0jkKCKOeOzasK61mmJyvIuTBkVrxg/etWi+Rz0S5ZXFhCVSHcBgNqVbSPCNrvMwgP1WiOo5A7Gi7pnPWFJRAeLX4k96XfkDN8mhHMhsfxB0PepLUfgpmF2LDgh05L5KetTfdDhh/coE/qSRX6jvTftVhFtoq2MPNU/K4PesUNkV32B4s26ixrZgtxqkiLIw+XcHtT89RrcEjY8g07bEVQroTa6F8GuASb+tFJPawx8D3ASosaFawBbaWSS4TjxK3INNWiE30UEv6rxy7aHpRd5JnpNh6p/wD9ABbrWT+Cmto8DjGDZYnPr0oZ/I+76r+gJcQ6c9V61qv+Ca2kuRE0HAWKhk6V3aSPa7s4ELmHjxXSx61jz/JM858liHmpN73Fq3wejkoR51stmsUttXSM0txAEUsSBgot9a11bFVrZydLxTEePkNzWpND606iMiSOCTz0U1qTYnWtr24EHJx/cur8hRqrH1xtV+DmQIpFun9a2smrN2sBiLJFKBbwbfWuvyj2c7qiSNO+OzjkDcfxSUmkSezrZ2kvxMeCQ8Q3HvU+tmhvr6NeSgYeHEG5GzdDS/ss/Ajb2NLyl4Jm/VVdB5+nWnLsIwyu1BHkZc7C0FwV0saZWq+T0V6tUl2PDPyB4zm5HQViyXwP0qohBrlqd0GuxrXQl6HJZ1ay8th0rq1A1pECTlugO/bSj6JnZYTyTZGQWQk7HajqihYJIki+QaA76djTHSRNs3BYPlkIUm1qX9RJfFtonnzAW8U070daG09WHyTxu8j2Bse1E0aqpOChHmjcXXie9qFpMos0jU/ZDxAjRx2qfrDHukqRkLyytfiAR1NBdJIPJVVg/eljbjfTrQqqZ2sfIXCZmJsCD1NbKSFV69oFPFexbQjtRJnaXjwVQRrIoVQLga3pF20yql+tZYZxvbN/9K7vKIvsd7CZDIWsV5LTKxAN0kwXkEdv7fStSkTomxblnPJW3olwLpRTJn5OMS5J1A7U+tgLNdj0XxwkBAsrdDWW0guptCgFEfEmXmSddaJvshNtXKg0TJFI6sCQKRDSBvxaR36sBk5ciQaDu4Avs+wF/wBWS6aqTXR3RFbte5fD8krgBhYGkXwjwFslSpbDBE5uGtpfWpraNfBLno0wZDwLDkNK2qkymTvaWStmKNbkN3p6yLFi0pHxyRZEdj+dLdXRhZVkRNHMB4agdKbWy+SyElLOR4scos51rrXa8DctPwJb4sqRpyU9TRrdM7T2eqA/SaEkHVT0FF9iYrKzbJM5GdboOBFNzZReiiWSDFyDH+QI73pvdSEtKqoj2po11la1FKZubSrMHXMvAWkJrVAnWGvBbgZGSPzJYHaka0THYuqUI0jcgb//AI1Kh+jSSRyX9gRCw03sKyrXYaqLqkZ05mLbcfrVVIMtWqOKk5/GwNFKE3sm4OO+QujrrWpITpDDjyJA17aVjqhDSdjkk7Ea6D0rlUbXJVX7Ee5IovETbqDRwvkG6SXIa3k12PWsfBLKOFnTpcVsJi7KREmVN+SXAG4reiE2yXllEEiSLzJ5A6EULUB4qeUcyEVACo8eorquSjVMRDkgXAH80bqIzzbKoRFLYBfLvSrto9b1qxAnKxWRrlrDoKLO0oz2L9rQhUT+1MAwJU9aOylGV4ZdKnuRkhbg9TSquBO1uzI1hmSQA/ge1NbUAd60GyQY9vK5+tLd38Hl+57Fm+DiYmFLcBghArlayC9JWmWKyPjMcI12uTtW/a5PqPWVrJ8EsUEKGzfYCufJf9jShD3klCj2jxA0saKqRD7LUc+T/9Wk4wkQck5HvX6YrQbrtwRDFljdgh0B2p3ZMkpZTydWYIfNipHasaGZ0dnJRBmWI3ZT1pVqSX0r1UstZri66g96WlAjZzyyfIjUjlemVZ53sX4k9CiHdRYdRQWseVfZtlcK3UhDrUul48kG20LkAS5WPNcXtQZ51tyxHr5JuWXHNmlSxsvqd6P6ao9f6qpABrX1H1rLE2lpcIXHky3IUhR3ovqSXJuedaKX5KhKroQWu/akOrkXabs4uQ0cg5EAdKas00eh6+ENBzo+ToHUDtWUap8HputKctciG+Pxwt2IuNwDTVs34J37F7uUTvBBsFuD0pisxtrOlefJPl4YABtwFulctTyfY1l/kiki8AFHurfX0ArU5f4IkuzSDxZngay3CnpTrVTR9L6mfwOOS7S72FD1hFtcV3grhzQo4E8+RqG+fa0r4Pfrn1oUGNHYE2AraSkQ+xp1Ycvx+O6EPbUUVdWvB42/sWu+CP28XEblckDSwp/Z2QWK0s+D0uVC63UkLQ1q5PR+l0r+yeRldPA7dTTq8PkRak+TmPnWFmbVaHTMdlmwnyFZ73371ta8A3p1YbRY0sd21e3Sslpnl762txUj5TQygIhA702E0bWiouWXR5E0sZ2uO9JdUmA1VyeSSVSOYFj1Fc0glFayXKUKWY3Ua0hzJPpdvhBBMZ1PEEHvWN2RVjNa9mOTCAi5LqppT15OW/apTizTY4tYtF/pSdc63/yCrJovZopYuSnXtUiVqvkyybRHKl0OhB6VTW3I/DLglRsjZf60+yqUJVrXkORMiwNr+tBV1NfVkMjzK2i/zVdUmiS6UgOOep0IolwTXfPAEXuWIDWHpXWgWrKql+RjAkEW17mgJNHJNI6CQctvSmKrF9H24DAidxxHia3leSv/AFcsZJDYXWgVgdLtuQPd4xsCvMVvWWLrTsmQ5XNvICy2p1YQd6KiMnKvCSwIYCnVUiPrbH4nyMLqAND1ANa82X5ZNKWVrNjcjc2J70tqwuyta0IW4idzZiR6USlFWWbTJDk/rTb3U9+1M6ygbZu1xks8OQB7jACsVWin6+vghnx8dLsrXHSmJsxdrMmX3NgdL0RbSqoufI5ZpI2B341kCNrSzUgykyIxZuJG4NIdYE1rzLKIMgwNvfXe9Dashcs1Y8jGnTz1e2hqR0tV8GWl8IF8YyAGMWArHpHDLvWqqqWQZEMsTE30vVFLJoPRy2wo+Mg8lsD161z4EWvyAYQrcS3h0tRdpOr/ACLyBGoDIx9a2r+Gb0tdyyY5Ei2uLqetH1kbaqqikQq6XA0PWgmGDfRJE2R8fAYyxNz2plbsh12tHAmPFjaMC1E7CqauBq4hcFFt6XrHaCil/hmdLDl4+QSoOnamJpk93XsaMORPOihgAwFLdUhi6l+PBIw0ANh+RpF7JFmWibj8CTDkqxuTvsK3smVZutFJSkZK7EN3NDMEWuvZwMjyuEoD3P02obUlcG1ryHNaRtCFH1oacIPRKvI2CXGjHmw07UNqt+CZ3vdlUbxSiyAlaTZND6V6LkRkYhGo0+lNpoI0tIAx/dibW9upou8MCt00yMY7xFba66indkxav4AmVxJ2uftW1fADU2hCzlNHKC2q7XFF0lDen9cBTzLL10rK1gPTNJnISoI5NausR21NCCaFVPI8wKRarYhO1pgNxBKPHY96FN1HP/8AOsvyInwY/bHtMeQFzrRLV/JJto2uTuLlOi2dtR0rrUkP16SpK/f5C/fvS+sHoKiqpOS4qyRf+1r6V1dIYM9lCM8D5CJ/DRRvVD6NFOSpRS/JdHJkuhtbl1pFq1TNfWwAkyYnBZb3ooq0DpatVwaMeWjoA9S2yafBBZO74PS+xKl0JHe9CnZOGepjk61lks2BzjNhyBp1dYZv2SY8+PlY5Nj4VbW6sbSqZM8rBDu/pRpcjXSUIMt0IdbegpkCOvEIDHz5om4oLqT1rr0TG4YJeTRGZlyaDQj0qV0SPQWVZGR52ehs/wCNB9dWMvWiRTxecXFrgbGsnqR2dZI2gy1Y6216U/tViFaq5OcplNmBPrRQibWybCBb3ASLg79Kz4FqFZFXsMW28D2pXYbpqqs42JGL2FvrWq7Ir6tiFjKMRrvRzIuj5OSwvy1FlNarIdayqTSRGLy3XrRJySNtiYZuDcQvielG6lmGfSvJcIwycrXB6UqTLX7MnPx/uSXW9vSj+yDaaqjHwYz4soYeQO4oLW7IbXZ2sXvFHkLdrC9ITdR97JEbY0Ud7jl2NOV2yTvawCSqLqNjWtDY615CMgBHHQjqaxo872GemkWaMBtGHasrWGT1znkgaRIZDxtyv1p3we36frWb/RZDLFLpKQSegqa1X5PdnqutRn6Qka8a2rlePJPfVVfLEz4c6C17U6l0yDfVM//W0GE5c8D4dq/SU1HJPq61fJwwnjya4PcVqsJxfZySS4wBOmh6mmKxfXjgFeMbAEXFb5Bvdt/osjkBW17DpSmhWtoQZWIrxPSgs2jyPb2aUAwpGshXlv0pTszy1ZycLe1kaNZaS13ZHb+7wUTWks6tT6Vg9WmcBQKWaz9Ky9vwFbXmEBNDIr7kKdftRUaCpVV/yTO11PFuJ70cAXTYMWcwe19tCaJ5DaZ9eWa0UEGTGDqW61Pa7oy+mnWsjjgCMXANqWtpF33tdglIQTcaUUsorNUDPFGEvGbd9a6tn8kfsWbUsT7RniYBgTXdkmQJp+TJfCy4sj/0/G3+tVU0qwsHXsOTFcOSBoe9E7o93O6R6eBAwLsRfXTagenB7Pp5u1k0gTJGhBGqDS9BnSUWe3o1z+DRieExjiwY+tC6tM8fW1rCzlFOS9jpROnyBl6/ZwSvms91ZNKJUPTWCzr+wmgjeINGbNvY1naHyDLsiQw5oc2VWFP7VgU7VkHlMjXkiCkncV0JhSkuGUOiMvLrQ1lEu12+ERl5kYFO9OhMQqKqljjJJKNzzHShhICyTYhZp4pAeJ9e1E0mhbg0BmMYeTLoO1J+vkH6+/gV+7Ew5BiNbEUXQfXLrWS7GkT2yVe96RdciXd2UfBRDPlRiwPJO1LtSrG0pVVgauVk8bgeJ3BoHnWRd1WtTQxJFdLAHnapNqwwsXKg65yFNiaWurPRpSqUCH5crkn7VRXwTX5tCPHIlQeJ+xrOiY5ZJiJSZdxrTqfyS6JTwZ7qyPY7X3qpOUS24YKzbi/HXSudSOylnXyLmxN7VyoH9cCWIktxuTeiiBcRyzpLoeQG1ZwwbuXwUHN/xkvoLbDvQLLngppjPgmWYyAhDZCN6b1gdnnWi5EOXRTdri+xookja7/BBmJ7yaA262p1OD0qYrOib8mUkS4s1xexOtMbkh01s2aqwxTgOkmtBMF2LjmBBM2LIT+SbGi4YyOZGNHFlL47mhmAuKiH+NZGbiSe1ErhrWWJ/UyCCt/sa3sh6vWqgWfdgcFht/FF5JNbyy6Nf2V8FUMKW3BP2UilSbHk5cAVO9q2UxmPLH++nLVbH1rIKL1cwiiGRzZlPEdSKCyCTVVLNPHyp0UWNydTepNKJsqpVdZZaksE3/Ig5GldXXwS7Xc8CmwH5txPh0Api1UE9LqrYnJxSmtiCN62ukluadnJCyuCddKenI67SUAtIkZHMcgewokpId7N+CmHgyXiOh6UFv2KmFyeaNGUhlubV0iLWcQhONCnuceQX0NbaxHTR9oHSRxxyhuRP0rE20VttOQMmGN7MGvptXVbRPblz8C8bFBlFza/8VttODsdZuirHxyspsxYE7mgvaUejTVUls1ooomjtpy71JazTF21dyaVUU+WtuoptXIWdGuRUiJMgsLd7VqbTLa16pN+Rb44tot/rRqwF9HZilTi19Ap3FG2Ltp1RpYyjgGRgO4qa755JntNZZoxwrLHrvUlr9WZTSVJH+rkROV4XSqPtq1Mg0sq8CZIJUb8bKT1o1dMU7KRLqL+ev0FMT/A2qjklyMYaMgHA7k0ylyn/VSwB8fyHhqSNDW/bHkmv7HZwTCGWOQq4Nxtej7J+CK15cIfjSjVTv1FDZDKvrU0f1o5Ig0bAMOhqf7GnyYru/L8IkkE5Uj+7fSnKA86KzIFkyVcD29zvTmlA19aLybOKoIs+txUd3+BV9+76rwVoHsLCy0pwU5xWsvyG2OZU8D5+tCtOr5Bnt5JrPFNeQce9qbKa4CteHwUl+Sai6jXSlRyTWXZiOMZ8lNu4pkvwU4V6rsy2DGRorgi/XWpb6NWKK7u1YFtFJE+xKGjVlZBppC5oXkjay3+tFW6TGVSVWZr4q2I4+Xbaq1cX2bUEEmNMsllUW6inqyaMUJoU2AzMDtRdxy0UocsU0LA8iR2FLbTRX3llsf+ZQD/AFpDXUy10CuMySnS4PY0btKJnrDHGIdtfU0KsT3vLFOLNrp9NqNEt3yd9lWIZdQdxXdoBd45G8PbsUY2PQ0EyK1u3yP93HZTzIVhS+tl4BrW1vBLKEkB4Gxp1ZXkeqdK8gJIyoVlvoN61qfBLPYU8YlQhRcbmiTjyNhUrz5OLiKEv1A1vWPQl03bRVBjwlAOVtKXa7HZaNVFyxyYsoYENGdKJNWQFn/UlccCym6ahqVa8eSullVwC0PtuQL6dK1WlFClsjlEhJAFgaamimmaqpZI8Zja99PWnJyQexpLDYGVfEC/Q0K4JUpZE+RPE3F9gaaqot9f102eLhySVHqaBnv55qotQl7pe/etO0v1XJdBmyxgaH71ls0zzNX2NI52NPFdrBxpaplm6sTbNs//17HTJjvYm3av0tNM8/Wysw8bLygvB0DKep3ob518op9fKqXkazRnVlsKFJjbcci/ZiIsNj3o+zJXdpcnWxglmGg30rO8k99WxTBXIGvKhbPL1s7WJcp5YZCx003FbCaE7V/B2Of3Ud7kW0F6ylIM9bJc2KsYq0RsfLp9a27gqd4qx0DtyI5ciO9KgTjXmWVtHK6EkfS9CmkyxQzMnZA9nFvptVNUzVRrkTeAnxOh3oufkByuWaGBmJjNZnAUa1Nrm7/ApWtZm7FNJJxaMrLG24BqG1UvP8svzrWsN8AZGMljyUqCdjRZ6P4HXbjggycZFiYobfeqaXbfIi02TkxHy8nGclG2O9V/XWy5JbZJJtlkOfkSgF2FjralfTVeAsMazIR+SMElpF8K15JqT1sPUdrwheRmYeQNd+wqWis7fo+vrg8co+RPtwmLjbxtVqlM8fbRtClIhPKNtulMfPkRlV2fITSSykMCb32pMfB6VKVopCdWKnkuu162vAnS3Y5i5PtPxPmNrUV6SpFqZgZNKC/IHgO1ZVcQLtTq5HLH7kfgbnpQtwye1u3BJMZY3/G9NrDD6IAOZVIIVWB2oogju05OH3Y5FYiw9K3hgtqUzrSRXPJrk9KyGJ62taEJu4BKtdD0oj0aVWdGOigdodADehdlJI9U6no4poCCynj6VzaYuuijg04mb27hjbtU9lyUJ8B85uHjtbShhSIaVjuP8hOkiqSb9qHTFNMqyyVYNlZ2dTca26V5dqdT0c6K1mZ0s0ySniTqdqupVOojWiqyqJhNESBZhvek3XWwPb+WJfHZr67fanK8EvdIkliZT1+9PrYi0tySkIW13pnJMk5G+3G7jt1FC7NBaaQxcuMYZOQJ4ntXK8k97y5PfsmPRhyVt61ZyFlk2/8AIyMxTBhbQ9K5yj1K/wD51a+RXGOAPYXU1suxHXtdslmkjbYA06qgrpj1UsKP2vEGwJ6Ghcku2lr2S+CbJ+OSdjpftairpBP3iwjHgGNLxY2t0NMduyLML2syxlgmUhrG/QUvlFbcIlbE9o3iOnamK0+RVLOz5OF53I46HqK7gs61Xk8XdZP8kdvWujgl3tzww54o54dACf61icMxV4MVpZsKflfxHSnQmZTNu3BXH8lHKeINuXQ0LoXVw68BPD7hurA3rk4O0uqnlMsQt2713DE/7GxiZquqcwAalvnBVe3CSLYrNNxGt6Xbwedtp1tBYVljZuX49KRKaNou1mGQ7HbQ9KUmetxVE8mKg1ZdDvT63ILaNvgkyMLHA5Rvx/8AU06mj+SbbSzFfruo5o3jaj7IDvwOhjEw8T52sQaC1oF1vLMrLWTHybtfSqKNWRtMv64HL8gssZA0Yd6z64ZRpnxyHDJHJCwB8x3oWnJEpsoJjJLy3IK6WpiqinDOua7fJdiZMoNgugGt6TeiFtq1i2LPhDWa6/6Um2TK88mhskmO9grDie9KrKL1k1EikCRPcNcGm+UR66O1oKlCSEdqU5QFrdQZcSOxHG162ujJb3bEovtxtY6XpjcsykurHY+S6sAra9qXfNMfWqRYuXMxs2/ap3lVCLVTsBLk2PkhI6mirn+GY8ueBcpx5AD+JttR17IodXVHv1YXS176bV32NMRps2oJfaEL6HRe1N7diNNtiZlWUgk60SfUDR9eQhi4siHSzjqKH7LJivtsxuNAiEqGuNtay12yzG78BthqW5lrCs+0c9uvKFzYQZLRsL9O9bXXnkjl3fJng58E4spYetU/w0VVVEzVx8maSIhhxYVLeiTH0Ssjhy54nUsCVPUV311shrzVYHvkQSgk+R60tUaE6UbcImabjy18O1O6jaZdathoA0F1t60LcWCpzQCOf9ZiTcg1t6dkUYUfJWcxWQMH07VOsoYzTPhcDUdnQ8dRS7KGFlVQZ+Qs4arKNQC61RLLyJHNbEdadX9CGpfBOzuNwD2o4QxVgpiaOaLQWYd6VZNMfT/UAK6t/wCBRcMCYDOVKunC1Z0Qh5ps4cxW30rlmdfOATLCXsD9qJJkuqaZyRghGpUd65KRTq2wXynHUOprVRDVjLFxzLISL/8A8TROsFFUqIbpGpIvah8kWlnYXI+zKeQ7GiSN6Qjr8CoflwPUCh5Jd7t+A4HDSso89KCxL/7wOM0cB/yC1ulZ1dvBVXO1vB2TKxpgFDCx6GurRopvi6pSDFEUcNG5Nu21bZyuTM7S+S4s7/n+XakQkX8eQZViQAtER0vW1l+GK9i9vhk0zYMikcN9L0yquvkhdL/kzciP2JA6HwvprVNXKKcMnaxLLOsjWsCelEuD2s/X6hR4ckpuB9qF2gdf2K1Q44ssY2+1arJnl7b9g0BbjySsYqrXAxfjibldL66mheoWnsKqhH//0PopokWQKVLa1+gVs2jyer7JCHSNGvxIUmmJtotpVyC4VQdAVPetXJm9oTR0NDxFwNetZDIbNtBrFGyNxa/pQuzA7OGZeVG8b8gDYd6cmmRX45PTrHLDyBIa21BazQje/wDMg4+HH+sOVw29bW7gL17voA8EkbJwJ1o3dRyM0uklJVGrAG5PMamg8m5J24QyLNyeXF1PHa9E8q/B62WVaL9nJoY5rcSQe1crdfIj2L9eWI9lY0Iawt/NcrOx59Xa5LIY+TIw8GH5U+qPVyy6Jt/KND4eSJIlIluAb2BtbtU202+CWvsXvwfSRZsc+NxkXkLb7mvK0ydLSj1fR9f7DBypJopCI9UPQmvVzSsuSi2CXkxs33W52sGOw3qqqR5m+as2vgjxPnDC5jyR5KdCBRWx/Az1fTbcVLcnI/cAaEHhUTs56n2vq+rTCna3kYuJIISSPoRRVhMVt7PdMTDPLG/Fr8TuDVLqmjyPNhizR+4RcAHXWghtDo6GikCPAGQ69xU7tFjlo3WRMiNx3P3ok+RtFxJA5ZJQB/NULlAOsPka0qhCSOTDrWJQA6u/jwRjOlVhxDAdzRuqYVcVRSzQR5pU1ILdKXCRJter4RK87QzgSrv1FNiVwedv/LhfJemUsqcCBxte53pLpDkKuULnyStBGSONuVqZ2Y6k1UsfHiEpY66UDuTb+1xAcKS491J8DQtqxHW8op5TR2sOSt6UuEzrQy6FOcd2TQ9qRa0PhleNpUJkc6tETYsqk6U6rkqrnCF5IkZA6bjc1tHDhlfRQmOxM2Vb3ck22tU2+SZ6WNFD4LPdTKUNcq460Nauh5vsWUjMS6kjlc3rteSOmnkoddfXtS6sXd8wSzSOD5KLW3p1aomtRTJI0aubg8T607tBO31AF0YAkW71jckelygzwiMhtR3pao25G5Y2uRTGB0uj/aqayj18cXWstE6StE/48l70x1kTzax55wDa4t2NcqltcelQrYxW+nI7WNZ/RDte1+F4EN7bNY2FtjReEJu+iAeb2fxYt6VyrPkVjg7uWKyD+xdghB70yvB7lMq0UiYJpIH4ugKE73orKSO9psVCeEnRSQdaXDKc8mjjSAKGC29a1IVdcTIxSmVHa9moX/LFZr5fkmfHaB7cuV+lMVpRRWbOCWVVkJEqD6mjQy0V4QqT4iJ+DISp/pXdw37Dqk2Kkx8jFbfmBRJpk22ndl+LmxSjjMtjb60u1WvBtU5hFCNHy8LAdL0LDs3XyG2UyOvA3YdqHpJHbJ3upLl+RnEg9zyU23pH1KOD13lVOEaUWfGGF/xNTfS4Ee5aOEaA9lgDuGqZyjz72aQvJw8bhyKi1HnraYF9rNcGcceIclRgv1qpXfyZWfDMvLL40vO9wDutVUiyK6YxycyfayYhIjnlbYiupNXBW6cTBnHHNuQY3Han9iT7JERtIshsW1O1q1pA0iss0EAZTy8W9d6Uxdr9nCASSdJL25IN61pBY1Sc/JZyjkUELr1vSXwetlT5Y1dBcrYDTehgZrf4RxcxVexF0PWidJR5+lenLNCCSAi6Pv0Jqe6fyQWtZ+S1fOPyXkD/AHb0h8MLBduTOmhljY8CCh6Gqa2T8ldaJeSfnMj6EXvtTITF2SbgdF8lIsgEqjTrQ2xUcC3RJ8FwyUkXxIJNTdGmNrnxLOSQco7kWPcVtbcnWtK4JY52ja1rinOkkdlydkyrOw0KkViz4Mtl1kRkWki5JcEdqOvDEdJRFDlTIxBOl96a80zMs0UjIvICpPKhdeCuy6mjDJ7kdmNjUtlD4JXbtwgWbg4uPvRJShtaxyeeJpxZH8htWKyr5BaTtAiNcuKaz6jrTW6tcFdLVT4LDJyWzWFtbGk9YHdZZIxhMllJBO4FN5gflm05Yp8Y3ItdSKJXCtabQQmTJxvFeRW/2pvFijPFRDCbJy+o5A9e1CqopvWlalWPN4jmCb9qG1SR37cLwVRZLxk2Y8SdqnvTsPpSE2UO/uR3FvrQVUMReskEzsp01P0qqov6wP8AHMgLCzit5TNXgWqMpPFvtaibkOrGh2J10NDAm7TYZL6cluNr0PBijyDJje4LjSiV4BvolySyxvG1yBbvTauSO7lydMj8LEclrIRVlkmiVi5B4nSmFCqqqWHjs4NnF+xFZb9HmvTtbgojfUXIKnQg0DQDaqpK0WAKRprtSW2yZ2tbgRLEGDKQPQ0dXAaUJoyMiXIw5w6XI9Keqq3kCmHa0sqbOM68mjuT/urFnB7TyVVweDObcUA+ldCItLJvyNgmyklK7qdaG1atG1VUzTjygIgZAQR23qZ588DobrKHNkwTxkLyuB1FL6urH5YPyzDyF9uX/GSxPQ1dVyhbzbtHwLAke4kUACtLq9aqENWODQ8NR6UPIjfdpeS2GURWsoPpSr1k8fbR24k0w0U4/wCOzWqVp1+Tn5hMSMfzsulH9nAt6Ko+PFBYcwb96U9fwLW024P/0fpMmZGmBV9DX32dX1E3x63lk0l0bQ8gT1p1eQrr4PELIh5bGu8Emt/hC1xlK2TWtekeSO2sIZHAY/7iPSgd5EfZPAGUgdT1YVyYnYzJ5Y1tGdDtetumyDdNwiiPJiV+IIIA3onRwV9HXgoaaB2BB/AdKR1s2TuttL/4DxpElvxUFu5prr1PT9XPr5PSCUnja1qJNIr0aoufJyT8FuBdd6Fcsgc3c/gTCkUhYOQAT96ZLXgbhw2cyMCAxkq19DvWrVlG+zVeTMXHyMX8ELKwuCKarJoZ/wDJ9f7XH5BxflPk4pCG8I+gFBpjW59fllnjWF5NCWcyKGVdbbmszrB53tQRHJZW4yp68hVHX8HirObcE80ODPJyMZ5dzWy0j1/WytRyaEMft49kUAHYCpHHY9V6O9PISS5Aj8lJG162yUi6KvUhyYmMnInTtT624gUqpOREhjCa3NHUXpNh2JnSxgIgJHS9L0onyPzyUJMuGXM+hFIVEOtSqEZYkk/AWYUzNwBbNTLIoCysQ6m99+lPakQ9I8FbNCRbQ0NUyL2LsZjxsJAL8RWWfBJTSLDpcQSEWPK3U0CvB5+uve4Ixk9wAnXr2ou/BXbV1gsTBjsGX7kUl6sRb2HZk0weKUBSSCaNNNCNfPIXPJ/FRyvrciuipqzq3AiTPzIdJvwNGs6vwPvlVV4K/jvl4EuOZYdqTtg2O9T17MvkzsTIi3sfUVNXO1Wek/XaqSl+SlYvvTX55Kc8+tZsNxUjJ8vy60vRM57NIYYvba4OlErSjy9L8jUcDXnqO1C0Jqm3wMaVnAIOtqBVgfpVJAyJI6i1vWiq0ie8cGZlSPGx5aG+9VUUkmlJZJPmPvuvpR1zQC9fsz2NkrKeJY2OljW2rB6eVVmipYRF+IBU73pfaQNNG+CeV35W0tvTEh2HrpcsU8cbgFR59aKraGb3b4JfZlDG5sKZKJuyqjklvauL8r71i5JFV6csWBmSJodPSi4R6WazpUckWXGoMhuh1tQymLetbcInnmCNcqQP5o0hbzjkrgyYTDyGvqBtS3VyNom1Id0kQcG5HoKzwBdcQTpl+xMVc2PajdZQGeLdoRV78OQ2luQ2paTRbouhxoFkBVhZu9b2gitcDiI/Hle2gFbMgNuz5OTKjEBhauQVvJE2IxJaI/Smdin11HL8iJWmikXkdt6JD717WUAfvukgOoXvXdTL5JOTVSUySAi7EjekRCKdrKrKTLJG4DG4tQqqZ5XtWlwaeLnIOKO+lqn0y+UL6ttJFByIzGwRzSerkupj/PJnSHk5PNiapXCMzz58C3KspABNqJKA9QI/11WzEhqJyT2vZVB0jN4zcVvnyRVq35JsmRAvIkgjtRpMzSjt4OY2bHJ4hAT3O9c6NBZZteQZpJAbAH/xW1RfXBVXI6KZuIJAFqC1eS5RWpdjmKUWJBFKumhFbxyKycQKDxbxPSipcg9jQSOMR8Qbjc0zyKSdnA/F+Wmgbi0hMZ/tNK0wVvg9DLBVXgufNikF1G9Irm0MvjBI2UOX429aeqEix5EzZSsb8b376UdanWy+R0WVIsRKqAO9BaikZ1Tr5K8bOn9sE+S9aTfJSBSlWgJXLPyIHH0o6qESuqVpBljRkul/vXVfIOjbUsmEkkYspN/WmQmL68QIkkmZ72+1qNJIJZ1qOjDupstmA0oHAp27MXFlSRErICD6midE/A3HKeEOk+WPEBTcj+2gWKH7evCGw/KyGQOFCaW0obYKBOeK7SWftvILixt1pX1pDfrUnSVlI8xe2oND4LY6LwE2NGvlt6isV2ZSzvbggyGmjm8CWU/6U2rTqX5+uu/JI8szE6MwJplUh96oFpJ0UK62jNHVJk27SR2HJEdwrXB6Vt6yJxyb8lsWbEygOCDU7zcjtJS4K4p0K+DH6Cl3q5F0q45OTIHTU+VdRwzL+CX2uB0Bv0NP7SLqxiKxJN7W7ULFu6lhGOQ2It6mslCnZIYsL8NQD3FC7KQu6gCSLioYHTqKKtpF2fAp15qQR96NOAEgIcbkCpbToK61ivPTrUCTFMJIC3Boq3kl30b4J4ncSWJ0vRtENYqyh4VYHT1FqX2A2v8AA2FHCqCBYfzQtoyt0kigpHwva5Hely5OU2J8nEMsdwqm9NpeGWZpJSS/osiXZLj60z7ExtdnbhGfk+9A5ZPFOwN6dWGG80uQovlVMdypLdzWPMVXF2UyaOPky5EQWIBT671Peqq+T0ss61qpOgZcUl2YkdbVnDQ7tWYR10aY8kUcx/NbVwT6NIZFhrIPK4bqDWW0gmt7MByYbqttu1YtEyLXaRZVUYF9AOtc3+CPXR/BoY8sZAKMbUi1X8jsE1/TOSZiQyCx+prlk7CdM7WsEvycImUknifWsfruB2frvuj/0tH3X0ttX6Qqo3dyWKnuqGDAm2oFJnqI10QAxGD9SD3onqoPM29hIckUsZPAaUh3VvJ5/ftYFpgHKsLsDRqnHA50jgIp750BSgd1QRroqsiyPj053Yajoa7LV2ckWU6Xkzsn21ZgFsRVyk9G9XzIGDKCzKdL9KxqBeT6ybOAg91SttKnvbgZ695ui3JiR92APpSa2aHb2drQiGbHks3AcvrVNbIZCSgz5TPBIGMdwe3eqKpNeR+eaXhgZOW7wkIhRiLA9K2tFJRb1068uReHHnsVMrmRdgo2FDqq/B63pWzyooRpJhQBry316W2pXdxwT6+1a1+PB7IhMP8Ax6rW0tPkXvMckU0JlHJTY22pytAXr5r/AGYiKBltyYEHcNRWsOz07NJDvwWysfoKn8s9hKKAxyTopTncHZa26XkHKiaFSQySHUEfSmUYvfStUeXE4ni5v6Xo3YhWjtaAJAE/u4W2oZL86M97rSKOLcSNzQRyPaSUsepIQNcMwrUuYJtL9lJwxyzKfAWo5SI5rVNzyJbGhCA/i19Rej7M832fYtZDknjhkW7XFv60Lq2IatP/AIKcSeGVzY/YUq1WibBNWbZRLBGGDDagVmFro3aTkSlCbFwhrW5GYL5Yqd3DC6kr3NakT+x5kfjuHfip3G1DZQM9ev8AUsHLwJXQgry0raaosbTMtMOaGb8OPS5qh3TRVjdJwXobm35MP4qdo9GSkXXUaX3ApSQNrTyEskiMCDoelb1TRFrZNjzmoykMnlQfVHyJeTt8k/7DMSApW/amdRyzWdR4n48SFOm5NB1FOrvZCpM5uVlIv2oq5oK2CXkTkSNKDoCaZSsE9805Mx48gG4i5D0qhNBZ0r+Sc5M8TX4FSD2ouqZjomyyP5AyWuGJO9LecFFMVMlHAOeRuBbalzCKO024I51mU2UEr0NOq0xOiS8iHyJ1WxA/80SqiW1EwImD6SHcVrRuf8qEGjpEt1l6241jUiX2txA1ctXDb0PUqrl1qzziB47deorVKYm0tE6wmF7B+IP9popkoo44gD9maMkKAbda1pG54dnyKyFlyhyI4sP7qFOD1K50op+SKTGyk8lbyHUGmponvdWORfOZ0B4zC6jrWOiZL/zVblFa/O40lrtZuxoegOnq2RSMyOaxWRW9KzrBzzj4CjlEbm+o7Cua4Dzq3YKVIpbMBasTaKIhyZ8yJDJZ9UJ0picoh9m7+DRSVBYx6CwpcA6Nt8lEkiTKPLyA6d6BKDfrl/8AgQkeVyDKSw2NE2hudqrk0Y0yoxy4nXqanbqyzvW/C8AS5DiS7XLXtYbUVa8HXol4CDM7G5CL1rohEW2latsqjwsc6k3J1uaVbVnka+za7hHZMaLj4gA961XZRSYM3Jx7aa69aorYfZda8kKYxEwKfemO3ArBzdNlbw+5o2p7Clpwena8s8uHNrwG9d2RmuyXAyL3IWu6XFY4ZMry+GHmZ8Ai5KOBG43oaUcjH6lrVkzX+SDWNifpTesFfr+nEMQuWDJoh16mijga85tHwUHJz7WAHC3SlqqY/SudFye/WzpU5IxBNa7JOBFbZqssBcfLjI9xjfpejlEFt63tCXAwPloOJe4O1qyEx1+tawVYU+YvJC117UvSqE4dOT0zzpdlJ+lbVJi9aqB+PkyOAGaxFDaqJeGzs5Zrm4VgdzWLgzaKqQvcUR3LajcisgksnZEz5sYXkj+Q3o60KsPVar2aBMks8fMIGPethJwehhlVVkmyYZSoZrA+lHVge1oohHIshoypI5ehrXWROdfBbDkOz+JKr2G1KtXgrzolYrBlDA2uDvSoUA7XUlkIfjqxUH+Kn0fJV60RIZQCxPkD1NAmUSyeX2vcHAgn/bTqTArRNNSLkxfcsCP5o63gnvdNpEwwGjl1Ipn2SjnvzBQsItY6mgbB7yw439slQKGykdVSNMjWuP60CRmkQeDg6Ecm/pRQIsDDPdyvCwrbV48klmqTL5LYpFUjiv15Um1Z8k1U72R58hS44gC+4FZWnBd9XUH81ZbWPai8AJTJKU3BQ3psnUOAujbbVvDBsxrFpBqKBcCtGlyTNhRmTlc3ovtZ5d927cHZIpV/AXG1cmvkY48sWXkQX29DRwmaqyh8MiutjsaCygrxrCOm8YsJBbteu8jYduIFCzkgm/pei8FWVVVCcjARl0X+aOugGunBmtge23kvie1PV5F56fCHYxRCeDWI2vQX5LMOz8mhzeRA17kb2qdKGUXaS/Z7yPnE1nG60X6Z5u15DTPkVgJFt/7ULyXwSOiHS/JRxoWY8gKBYti9MLNcCZc7ByOJWwPUUVcrVFaYWUBQTxI/G9h2tXWq2h2dXMDJkjkF76VlW0UKvJnyIqOLbXqhOSmlWuT/09qNI0kHLYbiv0RttHnaat2HpNjRm8Y1O4tS3Wz8iLdvLOZGWOFy4XsKGuX6I75N/BMuepP5j1F6d9MfA7L14+ORySY+RryAYUnRuhN7W3UYWSIW5a1PWtrv9Hm0ztq/0Kdg5JLbVXSvXwetlkq8Iz85A6EhNtSafTgPSkIykcBSRoQaOCGqcSaHx/yBTVhoNzQvKSv1c/n5NJM+JzeMXNKeLXkuzwcyyfJz3U3vxF9qbTJFK9VJSTyZLOmj8lPpRqkBXzSUj4FEkPkvP1NBZwyet+yPES458G03tXcW8lirKj4DTJlkXzHW96x0S8B5Zr4OTTnYak9KytR2mfZkcj5PIhY9e52pqgo+utVEk0cswcLKoN6LSI4D9TJSoHM1rhR96TU9HRSci2uFN+9FEsTpp1qWJ5xcbgH1Fc+GeQ33YhhxkBO9a3wU407WCbCOQfLbpSaWjk9DbetP5Xk6mHGl1I0703seff2GNEEag+1qfWsn8idLvryGYZSvLQaa2FZ2RP3RFPEChJW5GulOqySGyKUwlANQwpqkZar6yKxJvayQC1gay6kgd+tjdhkQPuWHepbJsVezteClpwmhF1oFWStZwgG9mY6vYDpXcr4I7z28COMUMl0Pj3FM5a5KKyuWaMLRyRf8hv61NeU/Bb6tHd+DJzkcyXFyL1VlaUeo8lnywsdorDlZW6110xSu7MoMyKm19aUqyxt6vqKkyOS2tr0FGqwDXGEI5ZJIsLDrR8BvrRS/I0++UNjr/FYoJ9GmpY/FMzr56rtS9El4MwtXyLy4OJuhsKLK0h+w4AjDMpGn1o2S1aEzR5UJDBvE9KKrTNivknlhlkBN7X60xNI5KolElha/uafSicM3un4RbDNIVubuO+1ItUqySSk9MzW0/iiqifWsks8DyjxGtulHW0GXhKCF0yIWuVJpqaYtJNge4rHVCW3+9dBRTP8AYJeaxCi3pWh2qkuT3uTgW46713ANc1bgGadnsTHdh2rKotvmklyDHIL6hh3WuZ2al8DlmVgeCN9KGBll+WKMtj4qVPUUaRHep4qsxAkUMp9K4Ve6p4GH/wCuYsy8kPGh+yAK+7aSOb4GSE3jdvtRK6Y5e128nI48iKXjJIVB71r8FC1U8IuixZ2/CXkKBuDntWYgnn/YicxzDmveiUNHle3ZO0LgrhFnBB8CNqxgW1/o0Uhi4BlvSm2GtH1kMERjxcqe1Z5OpV2+CrFzQ49tzc+tI0z+UejlTqoKWigmUWAUilptCttGvJLJj+3fW9+9OVpPJ1u7uBMORaUhjpsBROomihmhzRgoA33PpSYZ6Co+BOZICpsQO1Hmjts55Zm+4wIJ0UmnwBjTrz8lEUgJ8Ft3NA0Ofnk5k54hub69qytJG19S13PwQT5c8wupJBo0oPRz9alFLPR4MrxEtYA6+tb2hnW9irUI7HglDqdu+lb2kTb2YQ+PB5DzjG+9Da5Pjt8yMkh9rS/H0NZVybtd2Z1JX4lI9WGlc1+RekKsMKCR2PDIWusvwSZQnCCyIYlPgR9KGjfyH7LbcAI915BdRvaiaG4VisjEX3orIPL1oXwxN7SoZKkeQk9mUb6GmNpon71ViuePmLNv3FLqzdX2cETjiSHvx9aah2VBLNCEsmpolJTarVOR2PM0Zsy+BobKQqfhHJ8mAqRfX1rq1Yq2FmQvmotvEG3WmKoz/naQ/HzwHFyFB60NqHKvJanyAXTmWFLeYt4u1oKl+SlAt/b61M802ewsK0qaGPIJQvJtO1Ta16pmZubKCXLjWOW8d7d6fg5ryK9ltOWeglYkDnqe9MuiLNS/ByWQhtT13rqozVQOheJgNRcUF00Zim2ek9sa2uaxSWdXBwWYWC77VvgWxTRz8tuK0aaAtateSecSKLq1iOt6ZWDztVPLKMLLmkIElyNr0vSiS4HeqqpyVSIQwMYpVXxyN3tzyGguPLQnrWMXW3BwqyfieQ9a2ZE2YRjMo0FqyYBlCHjlS/ltRppk2tpJlypBIA+tF9aIq0UjzkNewBI7UPQe8+QJBLIOISx70ahFDrWqhsUsU6MA19aJtMdm0OWDl+SBut6B2H/ZHyNGJEVvax9DQ/YwHs4O8VjUglj9ayZEqbsjyCjGwUk06pUsoJ1U8rMAPQ0bZRnx4HJwH93H6aihZ17uAih5AobnvXSQaW5OlebBJVt61kx4AbVRsWAhBB1B6b0FtQP+gnn+NWN/EbGiW0k2mzGiKNHUsbX6mu7Nj6WbagoVF5EA3U9aW2W04YMmN5WPkK2tzdtIcH//1PpTj4/Pya/0r73vY8J3s7cCcl0iHgNDTKJvyN0zcSxUqRTw+QAI2NHVurG1XWkicf42NrlbEiu09mPJ5+nutJnZFkh2ise9T1/ty2eUk9HLY+Jkkj5NuKZEeD0/XrK4EuRHLvcHU05KUXKkMGWJHJs5FxtWd2ib2dYMyTDijUE9TrRUu2efm7MmLRwyfl4HpVdU4PawydV4KsbIVW8W8aC1Sqijya8MGNkw3VrvbWpLWtVhfa7cEsuC1ig36U5aIXe8/wAkEK5UUvAFrdqdaGgsFVOCz3/Eqy+YO1K6ll6yoQIygPzsK51H44whv6wyByjkIbfSg7dfId9EnEHGWVRqCzDrWpoBLuydjdhzFvWu8noUSopLIsF2UMgBU9aU7peRGnsoa2GiqQbAjtW10Ib6PRx8GTlyy4zkprT00+C/D1eOz8HMWTKkcScbg9xXXqogL7KVfBpoJmHLjb0pPC4I9NV5KP1y6AnQHcCg7wxFdF5Ftjoja3FGrShGujbOpLLExFiyHaudUwK15Jcl31ISynemUSG/UqKZJ3hjdbrv1FH2ZFtd24MzMitIG429aYmR68MfizT8fFtL9axpB5JeWbWNOjxWYAtU16uSik6cIy85/bnJ1436VRmpRUvX6OSd8uXgQp07mmKiGfQn58h4fyEqkX1AO5pemaZ6fr5rOkm4ssOVBcAcxUnV0YjRu/JMuNKGHiLdTTnZCa3VSn2ICtma59KT2aKa2tYhyQIJAVuV603O3ZFFqOUK/ZvIBysD02pirwS6V/oMyWN7k/1rkhOh6HKWN7NIbdqHSsod6uTnwMyMkMNGuDQ51gZ7NCRcqSFrheS091TIa5dnA1s6RlFkv9aBZodrlVJKTkeTKGIdRxPSidESqqXg7yQghbcugrDK0fyHHPIoKvYCsdUVUoog5KolF1fy7VlXAbUfBMy5C3N+J7im8EV2rMF/clXy3HU1y4HpVSJjFIjWIHEijmTuyQZjSwI0NdIm13ZnhCxJNwQNKxsqyarydaNQLhReuTM0s7MJMdXuW8fQCsbG006oL9UREN0ru0k9tm2FJjQuSbAadKxWaMVn2M7JgkjIZTp2FNq5E6sHGzZUNgpPcGudQssl4KWz25AMCAelD1KXgphASyxSNd10FakzN/48DoCkR5xHTe1ZbnyRW0fllsow8uMll4t3pH9VINbWbbEw4UF7dOhovsYvPazYZIx0IU8l9a3yejWjdeQ2ZJowygAjrQ8pnpZZ9aSw8aAuvIEEj+ay7gCu/wAlaLMtuMZ03NLbX5JN9V8sYyRNGWckt2oU3PBNnNlwZkyoswK7drVRWWjFR9x62OvPj/QUDPVp/gVkyRKlvyPcVtfI76bWMt5SH1fxqhIRqlT4Hw5FmFm070LqKzpzLND9XGyIzxN3I3qXs6s9bu4gnbBdAVB30FNV0KvrKgREkkcxUkn60x8ol01VXBdHNEoIZLtS3Vnm7XtbhFiS3XQBRfpSXUpxolUOXAXJS5by3FCtOrH/AGJIzpoJ4dQCSKorZMju+7FM5kN28SKNKChVVORpx5GAK6jvQ9kL01TcjceJVJB3NBewpauzhC51nifnFsDtRVaa5O0SqpGxvlSgMUuKBqqIclW1pkDITJIvxK0VWj1aUqlLEfpTyL5EkHuKJ3SKcLVIcn4mVGDLytvpTKaID2vZUwMxYZwLMrEHvXWaAw0QU3x4lBsmtCrnoVsqqWRP8QwGjWO9qarkWns9nAj9bIQ2K37GilBVuhsKZnI+NhQWaKsOils1cSMvGA4POkWUOTNPZ78Itx45I5hc2S24qfbmpV67SsVsiSI1rtruaGn8wQexp2bInjeM3AsB1p6aZ1V0rL8h2aSPx3rvDJ7f15AgSe5B071t4G53rRGiuNEY/wDITe3SpezT4Dts2uAFCwnw1X1pj/ollvyOktIN7elBXgzQjyIbfiL06tifQRDZHBI07UduUbh5kuEhYWHkOwpHWBun7CjmKGxW1ZasiqqQy4bY69BWJQDpwoDiZtjvQ2ROn8HpFLgjQHtXJwLtBmTqUfz+1UV58E/WXwGD7o8Tr0rvBVVL5PMckjQ2I0rl1CitmcMs5Ue4Nutaqr4KWqpcBqzixB0PesaF2ZSjqV8VW/elNAPk86kgEqfqKxMtxooJp8diwNvoabSw29lIC4hfRr66Cid4BWySk8sP67BXF1O1c7dvBDps7MePacaWHHUWpfKE1TbFyXKnUkjrRI7Q5BkzqbLqOtZaifkRWq+Rk+WC9iu+9ZXIO2E2FkxSKOQ66GjhosrXqgo7xtpYrWPkNP5LUMclg1lPc0i0rwR7a8n/1foY1VZLFuK+tff2bg8HvDLpMGDIhHFgTbrU9drVfJRfR9VJPDgIEKMbEdKO+78kb9ltQQSCWByFe2u1bxfyjyrLsxwkaQeTbDat6peEPVU3COQAxy8bXRtdKZbwW52VDQbAhmi0bgamfsOr8SFp7EVJZ8FY0HIhhtcb1tNndnnu1tGZeRHoyi4TpXoZ8Hp+viqKX5JJfjcWbHYvfkv921OWjTPQrrbo4EwfGmMgobodCa16iF7UvkqxP2YJCsYLX2oLw1yUevEuSuT3HYO3i4GgpdYQWjTtwKZ5BKC4uo60aSgGtUrSG6Y8imwCt1vQJtMtc1rLHx4ETxty4k9KXbVpm13bTSJWklxpNEBXvTWlZDccpctgPkSs17gXoUkehXKtVIawrKlmF29a1OGTezvChDMOd41MYa9j+NZpVPk8/FdvIySe7a2UmlxCPRxw5CbBMyErxN9jQZ3h8jfc9hJdEQCPJgchmPEdqslWPItdVRpYkqkceWttjU+lSTv2ZUsZUDle3cUluR3eFCOyRIy3Xyrq2aFWbF+yHA7ii7QHW0IM4avGeQtQ/bDBe3ZGPmfHzY0geNroasz1VkItZTJn5y5HEkDkNxpTqwKtnWzM+LIljuHS1M6oLOifCKcfIkEtgTY9Ky1eD1sM60LZP88RDLqKUuGPamTOcFG/HanrkGILMVopoeDKARSrynIWdpUSFCs0D3jb7Vloa5OraXA85jCW0pI9BtQdFHB31zeEMj+Q1AC3W9KtnJdnj18j54Pfjup1trSsrQxu9lWpnT4RQgsCbdRVtbyeXfQC7KujG1adWs8sZFDHJupJHWgs2V/b0qVfrJGB0FCrEV9XdksiMCeOqmmJjK1VVycEa3uSA3atkj11drQjtuenToetZ4NokhVvak01+tF5Rqm1ihSJrg6HpS3wVppSEI2jGov610yI792JZZ/cuR40aagU+tXCOoUNgyWPrXMGWgnhjkWykK1Cm0FVTyyEc4JSH1HSneULXNuCmOXnYIg170DRQlHlnWimOwtWJo5up6NiAQ29cxdf6PFwRZ72710BxC4BS2oVjrWsxfyufIOTFop5VtWA69mjNnxpPc5AG3pTFYqzqkwWxOR5HkPWuTKL7KeBciSRa35L1vRIg3vPJRjyxizBfrQWPN0u2WxGBmKs1r7W2pVpXgn0u0+qAbIiglKMTYUSq2inD17J8lUc2LMAFIuRqDQtNHow6rkrx8WMxkA+PYUq1+Tq7NqBAGRjyH2mIF6ZxZcioS8lUeXO9w7EHtsKU6JEzrW1jqZRiazgEVzpI6mfwiD5HPhtaP8AL0o81B6eH/zXEsyxmzuRvxprRdTKtSmJmP5Hip+5rOovfZUQU2FgvHqzX70SszyL63iRaYUSjRzw6WrXYbho38FWK7xtaMFl9aVdSWK35LQHkG1mHel+BdrIjyveV9RoOop1Igi0qnaSSSdrXT8gdQaYkY8uJZdg5RYWfQ+lJvQ56KIRs407KOhXuakvSQKcg5C8ifIa6gVtGHaqqTPhB1PjY23pq0gTbTiBERmReN78elG4YivK5CDsHDEgGsgNRXkvVC6MDZrjS1Tt8kul+9oXgzUkmhkKlmA9BVHVNDPXzVUXCT3YSvMlraaUlqGelTPsogjYzQyf5eRXoelOUNcDbNVUIJ8hGRhfXpesVDzdaNyLSQMB5EW7UTRRhTqpLv1y0XJOtI7w+SlX7GXPFIjkte21VVsmhPEyhLra5BJHrRIJVk5HJIq6roetc0g6pNHhJMslwLr2rGk0UZ0VXJoY8weJuhFTXr/SK6cUb+RuPkDRTvvrW3oeck2yxWiyIipWxpLTqzbeCNseWNj7Zt2FO7pg0j5ADShjzJFFCgHhsohyGVrcCV70q1JGPjyykIG/E260EwIveAmiCAFjcdaxWkTe7jg5Iy28dVI3raoXar+ScKjA3NhTJZtP5QxFC7WtQtg9nZnbnXTlWDoVUdvHp4hW9azkk0s2wkmc6WuOhrHVGVqkv2eeThqQPXWu6yJ1nwgchIpx4gX6VtG6jOkGcwlhe4AFutUKGHnSWLfIyOZ1olRFqyrU6MprWkXXvXdPwJ0XHBVDNHMlhow6Uq1WhVVxyeRjGx1sPWtakLOssrimJNtAD16Ui1T0apLgIwsw3JBru0E2miSB4e0tmJI6VsyQ3s7cI67xyKFcbbGsSa8HOvwiYRNy/wAZFN7fkZRqvkCT3I3AbvqBWqGJtyyd55I8jT8W6Uaomgq4ruFJJG7Bide1ck0UXXPB4uFTuNxetg3rwNXIjCgsBb0oHVidW2uCiNsaUXuT26Ul9kSOzP/Wd+9kEm/Tav0360eZbOstmr8fnsVCubEaXqTXL8E/bs+A8nNeJtToaGuSaE7ZdUJfIjmU6+Vcs3Uj+uCfnIuu4psKBqSpWS+CW5W6gVNZSJT7WHvksja6r2FD9cjL15Djmw5YiC/A9qzper/Jb6eFuswRZEMQ1SQNrpVVbP5Q3WUg8fDD+LWsR1oNNoEv2UuESv8AG5ELMi34k3ApldqtC87Kqc+RkKTggLcN1JrrNFObTakY0b+5dwT6isVlHBVK7QhLwMZQDyCdaNX4GOyrY7P8bxBZBz660NNvyUW0d3+ESXycdgz8ih6DamuLIpxS8ofxjmUkBjy9KTazqX415Jjgcv7ilj1plL/IHs+z1UIL22jGjFrbGmTJ5js7sBZ0v5HhY61lkU+vk54GqVlU8SG13pMcno2t9dG35HxrKljy4jtWuGeU9E+QMuVva1t9aPOvJJrnKkhTMmQ+IFu9OdExSzVVLNjD+QLRgSMCKj0x54Bou3CG/uR+4QGAWh+twM0p08lML4zJpIAfSk2Vk/BHNnxB4yqFKqwau6/krxw45IMjIZAQdV2FU0pJPtnJHOySoQAeQp1U0csoUGHk4knIkD6iq62RT6+aRGyTq3+MlXHpRyekqp+RozPlYhycXX6UvrVlCpnEoYvyRkXzjse9b0gmtkn8nsbLVZj61tqyhSXVmjHkob2saS6h55tnnb3SCEINB4La1VOWNSExkFgABWTIF9p8GjHIOFunpU7ryLs3YTKyOpBBpteBDpCJ/wBQ8vHQetH3NreGLZTFJYk0S5QvSzdoGRz8iVtYetDao6lOq58hMIBp1rlIje1nwK4w+7fkNqOXBNWexywDAoCR1rhlE3YVIHLE2rUUwq8nA7RWJW/e1bEirOfBXBkxMhuDrS7UZlU0uAZGQ2sbVqRPesDooo5wATqKC1nUStOQv18ZQRtIKztYdV3sIkhSVb8QTRq0GpwpFDBsbqwX0ovsOrrLPP70Yva/rWqGFaGeuJEJ4G9Z4H5161AGLzXUkDtWuxud0TPFJC901WjTTE3tNuRqszjgy/SsaKEkkCqtHIAw8fWt8oTe8Mc0Ntx4nY0KsLveEDN8dFJEbC7Vi0gm02cQZaYpjlKnQetM7EVNP6gXMH0KMSwO1Giimfhspmw8rJTmI7MBqbUKske52ziZJ4sXJhYMfEii7JkF/aV7cGng/JyxShXsVOmtK0yTRqSrya5fFmjLKQG+tTJWTE2VrSQyTMhuAOPc05VDyxjk46SZSWUcF6mlXv1Pe9LCtf6fLM/I+Okja4BajysmWezvAMSoBaReAp7PMWjiUOCx2HtMB6GuPN30b8lKQCVeJb00oHaDK3Jv1J4mPtgkHv2FF3TK87KqljoUnuLjiRqaxtCNN6o2sKCKRhckm1R63aQinsO2iQOX8a/O63tetz2UDbXStyZuR8Q4PNRe+pqiuyFX3l/ogMUmPIG4EDrTZTJr6fs28B45IwdydxUuiaH+vaVJXLjwsl72YCk1u0x2l2yQyFP7yTToknrWVMCvfh5eQ4mj6sU6tDv8DR2H5dL0tyT62fWDsYmR9CLVziAs4qNaaQqRxUn0oVVDcMOzli/8pBYIfttWuD1qJVr5D1eIB7Cs8Pgls+3gzsghZNLD1NUV8GWp15Y3GaHjrqT1FDaSZ6Wa4NHFlcArGeSmptaryy71aL5Jcr3VJDC4voTTc4YGtV4Qh4PcXQjkNbUxWg61orAjhIoINqOUNwomJdsnlYDSt4LFWqcsP/8A0wAvxuD0AoeGFeydXAaZTPxbjxYaXIrnQnrRLkoiyZI5fLVTQWomhTjtwXrkQuDb8rb0jo0DerBZOZBADGtTgFQuWeMbRtciwvqK5ORN79mN5pfkOvQUMMFp2Z33vcQrb0ArOsMfXOKyxfsTFrKeI7UXZCrXrIHB0k4utwetFKa4E3t/UBR8uXG177VjDpCGhl5WOjUMAaNtgSAcrsAVrUZVQxF/bkvGLrR+VyDZTbk9ObsCU5A6nWur/kO1efID8gAyJYGiQxVlyLDcrhlJoh2VVIqXHdluvjaiVjtbpIFYiVsb3HWtkj7yDy9pr/3Ct8nVTZQGWZdbhu3SlxBfVKlZLcXFS9yeJA76Um9ya3tNsq1jOhpPkk0s7MYQZUvx17mhXDDqkqikgkII6A0bugKXS/8AAJxHDHibA132oXbSbATwErfUkbmjrYalPJn5IMbK35A1RTkoWctMnlBZ/HYijQ+6SYSY4kjKk+Q10rnaGdW8qCVRIgKsTRvkltaVByPL4txDnl0rnSRSy/J//9dM6zxLbgbjqa/UZTPM2hU/ZTgSq5HME9bbUu/6JM7w+DRyHRRbiOP/AJpCTZvszZk1yWJhI06UaX5E0pzyJych+IXlZuoouh2+cpIGOeexJYkCt6oPKtUjQxy+RG3tmzeppNoq+Tk025HQ4peMiU2PcUNrw+D1M9lnnwG+BH+veOS7Cg+5zyiDXe1qcoj/AG8jHbXUDcinLKthOWK/2ZdB8nFNx5HyHep74NeBd6tsqWaIlf7rb2pfRorxyaaFTTRJJfla/Q0ytW0XVxaZPLlWkHmCtNrTgHTL+oHiUEX5XDUvqVx1Q0YbOlifFtqU9YYxaqtTkOIYXsCWG9qzXTsij17tuCfLF3/G5p2L4A1p/RGPcVrtYDoKo4gQodoR5sMTEEC7HpS+56Kusqj1xlhXyWxHau7SedtvbVwvAXNJFsBdh0NZDTC6woFzREr5J9qKtgdbcQjOyIEseJse1U1sTWTjkTDBkBxZri9FZqCj17VqUyxMQSzanpS6szbTs5Fx/txtf+w7UT6sHLquTUx5H43AH0qW6Q6j7MVkgspJ/gUdBV6z4M2TI9qUKykg9jVCUo5YO10iabKVpet+1HWvBVfLq4PDJcOQwAB2Jreol1/ooSZZIihIYH0pTUMprSKkT4oD2IBFOVhPbrwKfADNcMV9K3uAtf6ORH2JeJuR3NdZSiyjacs0ocpBxCuCe1JdBW0uEXxzxuLSKCKS6teAbccIfEqcCUsB2NLt55Czbjk4ZIraanvWpMVerfAuSUHUAg0SQapCkTOGexHiQN96OrgJUXkGKNZNHOo61tnAp68hvjjx1uO9YrCr6eBRxIw9yTbvRdwKXbsAqSRS6Hkhom00GrRYpZOa6Dh0vS04NvZJScXHKqRfmDWuwmluxK3KJtW0/wBtH5HKsI6ciNlsQATXdRGlXAMc0qPpbjWuqYrGi7SWLeS5vZqU+CttCpJVj3PkKJKRVqNgpmR31Fa6HLNoezRyC4sD9aBJo7ThQMiPJbaa70NjquEc4eyxIFwe9dMm0lsTkWNm46dhR1O0UchLCGUFdBXOwCvPIM2KzajeurcC9pYmX3xFxZb8dqJRJukdTkcp2NwbVrROlLM7MR+Ydb3HemVF2okGF91AyqOVdI6v9DI5c2NfEXHW5rGqssu6KgLPOvmy81O61qSJsc03wT5M8G/Exnt0oqpllsbf5O42VMSRFYjastUqxzqv9g3ac2Bbz/271igaq1ZZijLH/LfjU+iTLqaVqoRotG0sJ4EC3WlJ9WS3srS2ZsnxoYEkktVS0Id/Z61hCz8eQt1YgjYUX2HnPeTqSZUJta9q5pMdVVSk2cNocmOzEK4FrVJpNWI03b8DHxxyuo/ihVyS15YMH+Gflew6itt/SH4SrSaLzx3BDb71NWjKtatsmlfkDa9OqhN6KqI58UODdTbvRrSCDW/IvFBxmsl7db0dv6XJZ6qb8lrH3E1AuaSuGelaEhDK0bE8bLamppkbfa3BNkxq+qaPR1cCvZfVHEYJYSC5HasfPgibd3CH/tQOOIuGHeh6NFVMLN8ng7FbhRfvWwejSkVg6cmYAqCPpWdEOtmogBHdr3Fa1BmVUhOZGvHzH2FHmxHs2b8Eccrx3FrLfS9NiSXOvlmlhZgXVbE9hU+ucluFZZY0wmB5LqOlKVeoveFMCmbHjf8AHXrRctCaZ3veCabKg92wTy7mjpVweq8HVpC3zVVyeGh62o604F7ZtvyPhykyIeK3DetLtXq5NrnFYZM0DBrOA19rU1WJ9NEuEM9gG1za2wNZ2MVpZ4NxYg7d6yJD5GLmxJYA+VY82xWlLMcc1iDcXU0CzC+pIWJ7C6/xROp1M+B0WXyABHE21tQPM61TpmIbyOld1JtOB3uK9iBptS4gRHMjBDG9iDYjah7NGqzbAlg5G4JNtCBRVsMs4cgrjrvyb6GtdzPsFsPbfU+NEuRPLsdb23TxNzWKUx7q4OJjlhYnStd4GVulwL9n2n6kUXaUd2PSsAOhPauSE6JsV5Ob8fsDReAM6psUcX3OlidLUfeByukEuKyDiaF3B19jiCjH4xs1ySel6XZtkX2NtwaN1kQELr3qeGmN+A4oZWSx0t2oLXSZy0SUAATRNcKSDuT2rW1YnbkaZ4+XJxtQdH8GNOeB68JYzwQa7XFLc1fLLfXpFW2yPJ+OcxnxFUZ7qSmtk6mRmYkqhW4H1tVlNEzNrpVTPQROkgNtCNRW2smhed5sT5uK/vgqrENuDR0uoN9iypZCv+sEhay2bpW/bBN982g//9DZzIWlj0FiNyRX6F3VT533dEkIxcFh5EC++1qxayRetfsx2RHEV8zb0FMq38Hp2nyQNGsUnKM2XrTk58gVmZZ2YY8gBP5AUKkXo7WfBPHlJExFrqaN0bO6NDIctY5uSAres+uVyN9fJpyzUjzonBDnjcUh5NeCxZuzZMM+zmJPIetM+r5OXrw4sBMjufwPrbYUSaQGrUwiBjLBPr5L0pqhiaUm5UM+QaqCnSgeaPax9deWUrkJLq+/rSujQ+3ngExY4fkH5HtRJuDztdLWtwUrnrEAoA16GlvKQ75totTOd4xpoO1S2ySZVjgon8DIpjzDcrA73oNKcQOzX9SDl8A4YDU9a315agD3E0xQhSUkWFyd6c7NE2b6gZOHkRcWjHj6V2WlXwxntapxJ2OGVxc6H1rbWSBxtXyJaMwyKTr3tRp9kK10clinGkUciQaS+yBTs2RZeOii4W49KfndsG6ZNCZCAqAC3fem2j5BpFVz5GMrWtx8tr0KZ12C8AawZj6XrVYdMKAcfHeJjxYEfWuvZMbjf4GMjvcD/ShmCisLlks3xs1yzEaelMWq8BZ6V5ZBl4Ukfkov60+l0xW155FiETxjl+a9q1uGFi+JFiCZAQrEVspj1ZRyCxmUgjUjvWqCTZpsNJ1cjmQGvawrmjs6xyUPixy21+lLVmii2kciZPi/bdWD6HtRLSRNvYmw2EtExB8lNZblHVs7WLI2DfiftSWiz/VQEHIJuLiugn8sYzxsoGx6ihSchXTgMe2VJvrtWci7WcChHyk3/ijngmVlVhmMrfWw6CskDt2Ym5uQykr3oh1UqoJcSNiCpPe1c7tEt9m3A9UBS3LXaxoG+QbXbR1UYXDCwPUVjY7ICfGikUFQL9TXVu0Uy+DKnx0ikNwaqraUR7XbcI9FkRDTjc1zqzK1Y8zsDdBYUEF2ePPImfMmUFgBp1tRVqgr4pyxaZySWEqb/wBwFF0jwIdI8McAN4ibdqH/ACBZyxizZIGhsKx1RqrUfFM7eLGluobaqhrzRxjXW9CqtkO8tDIcmPQMQB60NqMVHVQU8YXB4tely0FVNcsVLEvEgE3NGrA2lrkgkjljkuRdfQU5NMGUgZo/cQnX71ycC7P5FYsIF7DY1rsZhcraEMp6G2tB2Gbahw4BZLKt79TWPWB3q3Uck+V8ZCEvKRcdKOmrfgrts+sokGNiRm4BCmm9mw8rX8sqihxhZkXTqTvS22atLXsULIq6gXU9KVEldnCKELBfFbCltSzm+tQZCzB7DbQW70a4PIvDbJES78QbW3LU1snlJ8jXjCjQBj1NAmFpZ2FRkpKrGtfgld4fBppKHAIY3qd1gJL5GCOMtc7+tZLH5tzJTFFjk6qPrSbWsOWtnYTlokWqkm/Sjzs7IR7bYljK6XtxAo6pJk2dKxIMcMysG/JDveidky3CymRwCIdFFyaByzfY1fgqEQlU3FwfpSXbqdjwZnyOG6G6KSKpy0TXJP7VpfJNHBLKG/tZe9N7pA+u1LJpQ0Mg5Jc9xTU5R6da+B8ckbgXa1ulLsoLMayxWRI8fkgvRUUjb5zyAmRkSqV461zqkFnnWqgmmmykPE3ptUmS71q+BDgyrZpDftRrgFJJQkHgqyyEBie1ZfwdXWOC8SZAIsTfqKVCFtJsY8c5JckWpVrJKD0/Tzq27EkrTC77etNol4D0hyzqlp49vIDet8MnlQFjwS3IL2IrrNCfvSKD7i2G5FBwRaf0wxOjfnoazr+CmtI8HTEkg38ayWgnaOQZPjYg3Llp6VtdWJtu3YJMeNBxJJHasdmFS7swf11N+NxW9hl9OqGwxsD5EAWobMg+2WOk4HS4LCgUi9mwkey/jrWNC6rsEk8gYXGnpWOqH51SGSSKt2JIPahSO0Tb4ODIik0LajtW9GjVSDhxg+oN67vApXlizFxOxuKLsHe/A/H1NmFLu4Efb1LWw43XxYXqdatBVu7Ec2FxJuu/WqK6ybbQiCmGQrw3OlOmUDXgNhMCCqaDrWKDXC+TnvSKdrWHWsdUyXRSw45Y5ALqORGtC6tA0RXDEp02pN7wbfeOCuIPGSUFwdL0htW8i8+XL+QZZJ2LLbbYUVKVRZTCqM2eaSM2cWuarrVPwFfOFC+R2L8pGpEbk26Gg09dvlDXm0lU1YsqKRD1FQ2yaYzrCgXMIHTiAT9aOvZMi1q7PqZz84ptBYDbS9V1hoKtIscy3eRAwXYb11KpAeyl5JoRys1rMO1GI9bzJ//R+qy0KLob6V9nV92fFap6MkjMxawFxVirVI9H1cq1PSwgN57dqJX/AAO2vLhC+MCsLi4NY3YlvazaSAfGhaW0fXcUau0uRymrhkOXghWJI4mm10nwL0u24QMa45Fg/lajlluFbWcQL4u5su460cns51VK8+QSJA/mhBHWtlEO2inyUQ5xS/IErta1LeckSrLbDZ8d7Mq/zWJNDc83ww3gg9vle5rFZyevNunAr9jHhFmW60XVs2udmiZ5klRvYBFtiBRpNeTqY9U3byA8rAAMtjtc70SQd/ElUE8kSEXIU7Ui9U2VZV/ktxZxIgu+x60nSkMynC8FczmwsQQN70rKoj3HypASV1JsunpTHWSSleZKxOrpxueXakfXDkX7H9cHVZ7WbxHpXNKeAqJVqekVStxr611WS3m7EeDXBUX70zkroutTzBlUAkcfStXkVblEjKFlJRxb+tNTlciKqb8gtJIymzhWrVVIes1EsW2QzDi35DtRKpRXLiRKZPtvfa9E6SgqUfkq/dewIsVNK+tDfqTOJmq10ubmueYyuXAtlWVCrEb7UxcEej+CRoDDJop4ntTFaUMpwE8LNHdQQR3rFaGMdlBJwu1rX706SVObCZMccvw21vWqw21upVAAqgE3O9BYUru7g7KzBgANulZUfeqR2LHMp1HE/WstaDc9FUJsd4m/I6DpQqyaH2tLg5zVgLtYjvvWsKtTnJCbXJrkgdrQiqAoUNuvSgsuSWtnEs9IrowZdBWpyS3csoRRIOTa0t8Bq6XgMRxcSGOhrG2Jtdk0yPE6tGbDvTKtNcgOsQ2MV23dLg/3Cha/BtYb4CYW15adBWSX51B4hhva3aumBpFkwuz3Go63p9LcEzS7SzNkxWVybEg9qcrB0fIyEMh1vp0oWPd54RVZZY7MoX0pfhma260j5J3xLG67dqYrEfePJz23jBdWH0rZkLP+ji5EzG2tqzqijrWpRBzLa2Nt6GxG7p2KCgK3+9BIrW8nEkx72bcVzTJn2bLoWDAe3pfqaTZR5HL9h8njY3YGhhMVZyzjukiamxvvXRAjXhHY8XmpCsDbpQvSCf7PglOE8Tm4Nib6U2uiaHYMAtKjajxvqTROGDdyy7DlWTxW/Lrak6KC71q8wwp44uJEgH3rqN/BTq2+ETMMaMroGBFMXZi7d7NJCliDPeLbtRO3HJdklmuRwhKABgBc70PaQHo7Dfdhsy8xyFBDGXVnwTNIS10axBpqRHdKvkSwZmF96Ii+Qv2SoINrbWrOkhOk8kmTkWJ8dOlMrQG2EDcX5SIIvM7dBQXyfwB0ccGvifL4/GzLyXv1qS/r2+GHnjYrjnglW8aW7GlOlk+WVY5NKWxeXMOHmALdaLOv4E+zWVJKuQIlNiCh707pIiucVZbhhJY787jsDrSNG0xvrWEZUYSQcdV633pmblB6VfZSLinmiY8QSpor1TRX6+SbJ8vNluLnXtTKZIn9nBWtCIBnTFiSdCdaf9aRR6vrVopGGeNl/I3rFWB9qOxyPkw0APrWWKaRSpQ0ThARt1pafJ17yhTI6sWQAetHIWa5lkswkc6HX1pteCfSJJzG7aEBWHWjkW7JCJJJ4JAw/kUUJiln2shj/KZANzoOhoOiL16tW+CjF+Qd47bmkXzm0np1zVM4KA8UilWFjtathoiv+CYs0T+JsD0pvkktwOWWdhdbCw1oWkSvr5HKXc33brQvg2kNnJIfLyNjXVY/bRLwVQDjxBBal2I1d3skBLMquALi/etqpQ/XOIQ7HX3GsaC7hGUuquDs0XtkgNauraRW9mwI3B/LcdqJonoHMqEAgXNDVs7Vs7ixySIVF0PasvZIHG9Um2OTGyY99RegelWBbZMr/WLoGtf7Un7IY5aKBLY4QE2sKNXkyjdnCInkkVj7fTY09JfJSs1RcjUlZ0ufE3tehaSIb2TUhq1jck8R1oIkRX+rT+CuCVDHcSfalXTnwX+vV2XgW8zFrXv96JU4M1qkz3FXbzXfrWNteCHS/wDQTRIp0a/pQ9mwbWbYt4lmXQWbXejVupi4RG+LPGbobAbmnLSvyc7qqlhRZUkRuxD0t5qxNnR6WK4vk3YamwU7etC/XSPTywVUUNk6hgVAG/elrMspjNkZ/wAgySLyDA2qjHjgfrl1XaCON4GNifMdKe0yGbNmljS3txHH1FTaVH1Yz38qGXkSCh2vQdK2RJdJ24H/ALKTqORCN6C9L+t1/YVqKq/LEyRAqyq3M7AUat+SPRz5J4MaVJLMLL0rtNqpcEmns1pwj//S3Tno7ENqNNTX6B9MHzemfUqgUMLoR9qU3Hk3EGeGYgkC460Vb1G26r/Jmzhon5E2UVTXkV15k5LlK2scnkO1Es48oo+n5YDB5iA5131reECkuxMfjpfd5JY0z7VHJfTaufLLkxzE3J7XFId58E3se07PgpZo5o/7VPcb0tJpgZZzyzGnEmO5HLmhNWVhjK5nFLlracSdAK0sqknBSEmdQgS4/wB1KbS5PTXVJJsX+uyOVmsy2uBWq0rgy2kSkdgMCxm3hbcVtpIse1pb5DlxcbJjHtkmQChrd1fPgfpZwkw8fDKALIxLDpQ3v8oZTftCQLD2Zdr9da6ZRRSjb/QUmatlJXW+9dTMT7NHaAD8sykqp/mt+pM3/lhcjF+SjYhnNiNyK55NeCO2bduPgtj+QjeO6nlSLZNMOuLZNJmyo+3j1FMWaaGLBV5DaWLfa/c1iqxeibfHg77627/eu6nKjs4IZJpll8EsO9PrVNA2yrV8sZHI7EK4oWoOqk3CBlextbWuqUunIk+a6Cxo0deK1Hxxr7Y5G7AUqz5GYN2RO2YsbAWsRppTFSTdKNKWOiyombT8t650Z5lpmTSSNZU03FTNwzO8uBMkRA0oq2KFxWSF8clri4JNUKxOrRyDIjAG430vWpg2fZkpEik2Pj6UZbhmqo44v5BjfrXI3RyegypY5AT+J3vXWomhGa/qTQeRZLFAbHep6qD0LVg4MJZblRxPeud4OeyryCcKVdCbdKP7EeZffsxbu8ANtR0olDGqn8yEs8zpYkkHYCsdUmLVKxACZE6OOJP3onVMDSKoviyHYHlakWohedU2KmzEVeLjTvRVodtk+oWPMOI9tvsay1fyBlT8lJdXUckJb02pMQz1aVivDFBJtfCw6UcoBNKeRUkLdt6YrCbWEvisT2PrRq4q+kcHRjEnWs7hV0g9JjFbeOgrlYHXSRbovH/UUSZiTYlIVVt9KJsorbqgvbAew1v2rpJdL8ncdR7jgqaGzJPshss/XHAX1G1qV3OekJCzBF7ljv6UXZiuz7QMQhTYbVjKaI7It1N65DLcIR7/ALduewrLKfB5W7b8FmPlLILx9dzSnnHkDLOOWUCWO3m9j2oHV/A6G+EifIu3S6dzTaKA1mqKX5BxHMTkpoDXXUrkr9DN2t2Y2R/eVuWx61lVB6vVVTZnyQrC1+fh0qhWkndmuYHniYwYnsR1FB88nXmORyxPKFBP80u1oKMmuBRw3LaakmiV0ZpukCyiFySADetmTxttHe36DGRzIGl/Ss6QDXPkXLdka1tDajRVWnDZHkwu30OmlNqwrQZjQTxyWQaE7mm9kJtZLyVwrIpuxvptQNoozuvCLsX5VY4SvIqR0pN8pZV63rt0ljJc5cqGyE87UNc+rC1wSrySJK6jg4a5705o83VyuqKMLOME19h2pemfZGZV5hGy2bh5KAkcH7mo65Wo/wBFOmVn4J2yuJIRrjuaZ0ksp6/Vc+STJeKW19+9OomgHnySHFVlJHkPTSm9jFfgEQcSLi3rW9gvshSXY8MYtyYLfqKTaz+Cb73ZmgkKlLN5A7GpbWhlGD7Ez47qTxFwdqYryVTBI+O5axXanqyggvddoRO/FZGDL5dKYvAu0uzBkhSRbHRularQU0UIX/191udbVjuW5acAoEjaxQrbrWxJtrvzJSjY5vb+aFpiLWaTYyXESSPxbUDSsV4ZNe8okRZ42KvqvQ0xtMleiUluNyvoNO9KubndLllWQgRQwHIdTSqOQd27NQTe8eVweC+lMdSz18VTlnMmJZY+SMWZeldRw4HXU8sjx8nJhkFxdR3p1qJokok7SXtlmUqLWJ70hUgH3IrDZVDhc738T9aVbWDzP+jkqXHXhYsAe9JejFvV2FqTCTxNxRNT5AfgthnlYcbbjSkWogs6KzgBsnJUkAACjWdWenXCtUArTlidCOoNa0oH41qmyecuF2C+gptIJ/YaSJ/dKAAA8t70fWSDo2oBj+QWRODX9waXovpgsw9aKnYWcE9RWWSPRySqoCla+oJBNckQ+y+D0ckxI4m5rGkeckmylX5aubW6ilx+Bq5fAtnZbkMTbYmtgTpwmytCJ4ADq1tan8MRRfZCMnLx2ifkSQL7VdnZNHpZ59fAtXA0OoJvejaLcqS4GRl2ktYnkdKXbwenWK8fke2OW8Sv9aCtoIvc3TcImbFg94hrq3pTe7g82+tq2hFOOhU8eZtS7s169FHyXfqxyx6sWIF6Q9XVnPXrWfkPGVYyFCa+tKu3b5PN+21nLZRMLi6+J9KXX9ha8Iy5s3h4sTcHenVw7cnn19d2Z//Toe6q1ydK/SvJ87o3aSn435NlCjTiaVpjKNxr1rL8mwmQTcqQFPepHn+Q60lyxORjGYWOoptL9RySqZk+Ice5QCxqmunYFt28+BCyT+5ewstM6oPKle0/gOSWcNeM2O9ulD1XyZ7MNlmPkGeO2Rv1pFq9f9RFGo4GJGkOqLdT965tvyUZTEsJ8T9lCOKjTr3rFp1ZRlHyZDfHZEUwF7D0qtapobnou6GtFmRPcSWj7UCdWj0W6u3g5KYpIyW1bqRW1TTM2cV4ExxIFIAJudb0bYrFtV5+QJJXgIaPQ36VqSfkzSrfLLMf5CXld7WP80m+Sgbjmnbgpd4ZxtZqnqmmXXXSoIw1Kgghh2pr0g86mne36FZGMi6sth3rc7DfY1fwTjGgBJAvfcmndmSq9g4UjB4ode16C7ZXlPyOeMK3mBY9zQUfAr2dZtCC9qItxtcHaulnOzXBxIJ0figBHSstdNDcYnkkyjkxScmb7U/OGhG6TtwchzHuOWg9a21AaUSNELDlR6aOO1Stuj/RUmZ2U4hbjchutqppyhd82/IzEmjewvY9TS9Ksqz/AJQ/IwopkIU0Od2if2dTLkSSAkWsB1qpNMgh2G43yHFgeTfagvnJVhl8ly5ZkQhdD60npDGaVSryAXmUgHbvRwiHqm0KeQ3s58fWiSHKkHLw99DXcjLSgJWjUeOtzWo5ZtkRcs2oBFNGZ5qpZAhYA8+PYUpm6b/gtin4aHX1NKtWSSzGMwZQdPtvWJC6U+Q1jieMgDX1oZaZ2mjfAkY4B0Goo+wtXhHp8Vib3rq3EaX7WhARoVcA0TfBVm4hHcuJWiIbpWUtyM1TaM+IKr2vanW8G4JyWJLKg0fTpSXVF1kmoGrlOVHIm/es6IRZKBgmdlAvftQ9YJbJAO8gcctqJJCrpJhqpJ0rGzHZI8ZVB4PcGs6/KNVHZk8hQHU6elMRR1hHhjwyr1BruzQtXbJnilV/E6jamJpk1n2sSyZU6S/5Lfai6qCfWtU5Rq48wkivekWUGJ8SMCox1NmA3FDyZnLcnGjIbQknsa1Mps4KI0WRLEWalNwxNtJUEGXA3Ij8vSm1soJdIXLAxY5UNiSP/UVzsmLyv8FbMoFyPv1rEi5KFJ6eQiG41BrqrkZXHsiWGWS1iRxplqo9T16Vzp+yyNWZO6mlPyc7qAMrGUpY7VtL8mXcIzp2OPooLelPr/Qf1Oy5HYvyU7NYrYAdaC+SgdnnVMq/YkYKb79KDqked7NkecPNGQw42O9coTEUqkiCRZoG5KOQp6aZta/LKsWb3rpYKT3pd6xyMlKUNXHdvBrC1A7omtqvBPkYbAttp1rVpJDrp2sC2OpS9xtRqx63rV/kS2CNlre57Kv1qLOJkxHlFpRqyfkg12VnyImyMlT/AJW19KNVXwTLJN8C1yQ5HlZq3qPrn1RoY8hIBLcrUm6H5cly5HMAG3H0qfoUtJKWcbHKrcWC7k9aNWJLX+PkVEy8iquDejsIr5hhSjgPKzqaGvIGznhCfci2AIvtRwxlM2kVYb5CSFUYsvSk61TXJZm6pwzQDTMPJbVNCR1nWSGb3FbkDVVYZF05kRMyyjs4o68B1zlkwlKmx3FMgZZRwWY0kcg4sPvSL1a5G0cKDuThK48Tf0rqaBWtHLIzA0ZtxNu1PVpJb6SNhmAT8dOp3oLV5AopUiJZHDCw8TRpEeqSKIJnG48TtQWqjs0mygZGvFjZTS+pYqQMEeIR4i53oZsE7WgL3Yo78V1rOrZzrZyTuscxJAAPbamKUKquoqZFAuhsR0rpPM9vR3YyDPZQvI+mtDbJCFXiTQGUjAHgfQ0n62vkcqQpkajI6MCQD260tpyTVTsxSSypKoGi96Y6Jo9T1MVVpsfJc3OvcmgqWX8gwyBWvv8AWttWRDtCKZlx5otuLDek1dqsk1baM+WJFcDQH1qmtnAeGTtZEGTh8n5XtfqtPppwelayqFjqygAsd9zXXZPr7HWsmmMYNGCAG9akenJ5Ou/YV7JU329KJWkDM8I32A+9FKK6wlBPO5iBDGiiSP2JfCDwfkjG6gi6nqaG+EoL18oNLKjxchNd2GlT52tVnt1zfwYUmLPBOVUCRdxV6urIozqlaPB73slJULLYAHQVyqmmHq6pplSu8nFl0PegaSPP4s02IkIkkN/zXciiShCVXtefwTPlmOU2JJHTpTOkoHWnLbNXD+Shljs3i3Wo9cmmQ6NtFIyhcBDrSvq/ICyjllJd5FsT/FLVUmNVVZmN8hjSDy4G196uyuh7oqVk/9TQyMZySriwtX6RS6+Dw1CcIyXvjylRot6oXJ3VtwWQfIOG4k3UjShtki5ZqqL4/kQqHWkWxli64u4GRncraAi1bTKB+uCqoJ45QzHQ+tMagj/1TKHjjkxiytxcdaSm5J+b1M95pEBAJb1qlVRZjhxyNxszMZOIa3a9DbOpSq0SHR57xi0oJYHcUFs0/AzLLjgKbNjaUOW0ttWUz4gdbHraYKcf2pDZzdSOtK0lLgLKzVhWTiY8Lgp+JNyaPPRtcitHe90vgkmYqTxPJb02vJS84J8h2dePG1+tFXyPtko5EYqtzsTt0o9PBuNocF7P7Yvbf1pNamezZ28D8SZ3/CxPQUGtYE41S4GzLKw8hQ0hHbtPhEdi5K34a05uDvXz5lksp/Wk5g8tftR15QerbfBSvySzpYDyFL+uGCsPlnhmqmr7XovrE2q/JoQ5RdA0WinrUulY8lHr5JuWZ/yMrgEkFmNPxG6evKMlsyYbr9qq6i1ikirGysjldQRSdKqB+NKtyUTCefbQ+tDnCM9m9K8sbiYtm8217Cuvbg85ezyWSL7RBUk/WlVcnXmzJZ1Mo8tPpTKuBlM0jPXCcHQm1PdjfuVUVwqYmAbUGlvkj02drD2f/bt2NBA2tBcsTOxtqN62tim0VFe2R/8AFHIrtIwKg43W9CG7PiATjRSBr3ArezA016VZ2CFYvxFx/uNda0kOd7WfI5ypW4sbdTQIp68SciZQPE3Na0C24HwOG3NvpS7IjtpBUMjHTRzfvSuln4E9b2ZxpcZnIU2B6VqrZIes3VyzywxEgHTs1c7MytnIx8VTcEhr7UC0K1ZtwZk2IySG6XU6C1VVvKGVfUZHCL6C1qFsN6S4CeAbkVisK00/B5Ra3HfpWsT5OTGRgLjUV1UjL1QozEEE6elF1MVZcjw8bm5HTrQNNFNK8ycMMTpZWAftXdmmJ20cQdiiCAl20rrWnwT10cQgZIwwuouO9amd/qpZDmwqF23IFGrEHs2bAWR4ksNj0o+sjaU/kpjyWYXI37UDoPpRFaM0wuo4kUm0VEb6JFEN0mUOpI6mk3crgktpFkPyxAb8OtKorPyBpS17cmYPcEp002BquqQ31812ByFmaE+0LmmVank9f669ORUSZTgJICo63orNLlF3r9FAhoFha5fkL0atIj2dn/qkXY+WOYUWt60m9OAWurUlsssRi0OtTpNMqzxdzMzgpYGwIFUYMs9ldYJYyyu1k37098nnXt1mWWwlZIxewYUm3DPMd5KBEXUi9zvpQO0FGZPNjSlO1txTK3UjW0qkBBjYG5uD0p3klvZwVrnxIys9/wD20pNs2/BNpWzfA958eRiyPcMPxNBWjXkLLBu3gUVUAMD43o5PXooSgf8AsKu+q9NKDoD7Vn4RSnsTIQI9qW5q/JCpXzyTv8fjyXAIW24o1q0NpZpmZlfEQoSQw+1UU2bDttY7hfHktxDXB2vXaacFGHsJcF5+MmVbAXPS1IWqGaeymhkGM1yJDbpxrLX/AAKpvzIqXASOTnHRV1lck1tW7BABwRcAiufA/KsksihFufIU1ORkcSNxmlBBRdDsaC6RlLKZbNOIvu4vepbJfAXdPwcmxmkF1IFdXSDU0iJ/jZxyZfL6U77l4DwurNsz5sTKJvw1qit0DrrWvyUYeNIWHK/rQaWQivsKTUWLieIFr7VLIemkvkXNiTOCbbUddEhFr1RImFKrEC1j0pr0Ri1S4ETY8qtxcaHrRKyZHrZNwgI3KHuKJofjWWUOPcNth3oFwejeKnhA6NcObV3aRf2SylEW3K+vrS2wNNZGjHjkXoD3FA7tEem3VCZcFOO9iK1as853bI2gjKG2pFOVmNrMchxPKsFg1rdDWNJsOv8AVQI8oc7Ekn0o3QpyygtjyYNOROlJdGP5+DQgmhfS+hqa9Wjm2vIz2FBupFqHv+SN3bYuRWU6G96OrTHqsiCrMSHXTvRz+CykUR79OMgFLm3Qmu+x/JJvu2LmWKMDnYDtWS34PK9nS1nCCTKCHjHqpGld9U+QqYtuGd/bZv7db6VzzSC0qqosjyYv/wCwcelIeb+AaJtyhWZDiTKWW16PN2T5GVytZnz7M4YxrbkCbWr0UkWYYRwyyHNyAqiQWA3NItmm+D3K1qqorVonIZQTfe9Lhrgj0tzI2SOAAF10oau3wQbaWs+CeR/ajvHaw70yql8jccH1l/BNI8hl58Lhh0pqSiBipVWmRb47TAFRxa+xrndVPM9nZSIjbJgnKslwK2FYnxqrXKmypr3AHoKHoijSqbLMH5HIuQRYDSk6YVNxpVNlmVI02OQBc+tJpXqxvsUSof/V3p1eRza1tNa/QqQkeX0rV8mdk/FiRiSb/Sn12gW9obYlvjljHjcijWsm/c7csdi4srLx0AOutDe6RXhqqrnyOl+PKtcEGgWwj2vZPR47EFWIA6mgeh5j15OiMQiw8xRpyW41aXJ5o5JIm9qHW1d2SfLLMaKy5Zk5AzUkHOEgA2uKpq6tcMp6UTUMYkE7XI1Q96F2RS9K1GS42OI25HzFZWzkTtraycHYMiNSFQ2JFrGsvUdjRrl/I8l2azg2pa8D2lVgSKsYudhraiTOpV3ZPJJE63B4kCiqmhmqaQqNkBuDcjSmMlzTKWT3ALjl6UuvAXs6KqhDMUOjXWMras0holxt++S5m91dCQRvU/8AqWUomyFk9uW7m4NPTlGt/wBQjs2MkwFvK/QVlbwFZ8pGfJ8bk8z7eg/2im/YoHZ2rPJnyY2RGxDEg06rQu90+EPw5cyHRnYoaXpVMpx6pGkJVliKk3PWkKsM3TwRSx46ggrY96pTZ51+zQWPIirvehupG5T1KZZJXUe2bUNUkI9iPLAinmje7iidUyKi7WlGgucskduFzbepnSGejlhK8iBJMb3GnamQjLOtEDd10A33FEefblimkcSWIuPSjS4OVEmUQzQkjmLX7Uu1WUVbTHOyK108gelBWYMvVt8incH+y2tEkGqAKpe4VgvatbNlIBpJo2ALgg9hRJJkO7TYaSK3f71jRudeqKo4EkQgeRpTtAf2SoAfClBB48V62olqhOu9aKTiYzxseLXHSs7yQVvLllAEf94170Ln4KVZhs8HGwHl0oUmZZWalnUmZDZl5JWOsh5UljP20U/+tB9ZfXJyDJPHINwNa2tWjL0gWES5Ib+KZLFVb5O8e9yD1rJF2sC0RGqmi7GJgSvxAbfpXJBOrsTzqHHIHiD2plXBSqJIXjwDkAWax60V2YtoG+xFFLcG9+9B2bR5+mtr3/QYeEMSa5pnOV4K40DoCn496RZx5J7acci5cWF1sW5MDWK7kidrXf6JnxYx9qf9jKbaNIPHx19u3WhtcymsVPPFPEQ8Tbbigdk/JJpdPllayvKvJ2Cm2tKVUvAeNFZzAuWTiOQ8qakVXUKRSyi50Bo+oz1ceQJ8vitgv8UVaHpaYxXkoxvcyBr+NtL70vSKm53rT/IGR8YrW0saKmwl6cmfkY8kLqRqoPSn1smOXLTZXimZlsfw3tU2qUnr42rVNj5sW6gr96zO0EPu78CXxTcHcEa6U1XPI01lyQlziyHS6k9abHZClVwa+DMZlvHGL9bVJpWPLG5NTyx8qm92WxOhoasdbjkz8rFcXItx6U+l0R6NeCJ40tqRcbimyBZuBkUUZA4L5etc2/k9HCUlIwQlb8ht0oexTbSFCGN4G7EAAX+9CuSHWztbgBcpCBxktvet6DsceqloJchQSdWJ3rnQPPNtyclZGF2IAPauSaF7uOELSR4mPD8e5onWfIGVPyWR/JmwCnyG+lJeI94z5GDMjJBkG/W1D9b+AVR/AqaReQ4m46CjqgvqhiZEJIdRa+liaJMrqoF8GHINb6UUidbrwgYpzAfNrr0rbV7Eal+DSx8/HdQouT6ipr5MqzxtHI4ZcAoPrYelLRA6DIU3GwNL0odjSJRHnrIwLR6Wp+LXyI2olyyFXnilLM/jppVDSaJE1LaRrQzpIgJAPY1JajTHV55Ol3N16VkIKtUTSF1ceOl96aogTZLsIlYl/JLj60dUL6/1JOEhD/jbXamSynNOo5jGhBC3XrQKWMu23IxGUi3HxNC0YjgC8ioa1aBZwCZpImsbBe9c6pnnbPkoSSOUHS9LdXU6q6qRbYpCsYxvW1v+TMl2fJmyCZXs63F7VUoPRpVUQL4r35JatVze6bGQXvxfehsc9YL4n4AWX6UmykVLY5MtlexXSlvPgPPKbDP2yWGwofrH3okVoUlUXYetIc1Yq2kKQPZRQzRjWt7t+Tz03aWyWfGaQgEb06l0jnCaJY8OcSFBrbamvWsGrVJwwZmkgI12OorIVibSbsoGVEVBfYjWs6NeD0M82lwCY1N+LXXtXO0HqeplHkxsyCeOYPGN6rpdNDVmraIUM/ISW0g8dtK1Zpod7TrXhGriSo66ORek3UHkX1Lo1jMZVmJN9zSG3IqrbUBSQ4xibqwoVa0lulrLOBaBTCBexHajfkkz5qjKy2yIZA6MQAetPSTXJ526S5LMdkyIA5aznek+GLw5UgzY7hQwBPqKOt0UWtwDC0sctwDY961pNG5wnLNH9t+PEix7ip3mhuteD//W1crKKsDqo61+j0pKI9so5BXMJGhBHU1zyPPdJfJ0ztewsetd0DWcuAUzF5eYsRWvPjga69UVmRXj8bj1pHVp8kWkvlkZkIkbrbpTq0Owx/o8uXL+KoNe9a6Lyy69K0ryzQwpJh/bx71PrVBepDci/kIMgScweSHpW4XUR8lutaq0kUELOpTiwsdulUWtHIml4UfJzJxBa6AX63rqaFqTalkkkYjIcqDr0picjKzd8eDrZr9NewrFQfbKWNiCZMR5Kb0m0qxXRqlBE2Eqm3TtT6XIddWegwl5A2IB77UVrkNvag0osPbidB1qa2h5+nsu1g2j4NyB02N6yZLcFH9MckIUlwd6Ta3wXY27NiMhItGbWm5t+DtW0uDw9tTyiNq6z45Nxo7WliGkk5liNO4oklA9VSfBLKUL7G9tzT6+Ca1W7C/a5CzE6a6VjZZSKqATGF/478ut61MJy/JPKsxGouaZUm1aSDxwgFmXWtsIWjfCK0e6kcbdjS4It9JlDY4OY+vU0NrQZjaEOigdLhWBFKtZM9BXVa8jGUgXNj3rkyG9uwl1ZmsoFvSjTg2FXliJ4QpBa/qRR1sZaz8nDAtwVbSu7D1aORqwsNjtQ9jneWG0HP8AIn6UKsPdo4ROQsRuNhuKYuSezYMjQzKLNYjptWpNCXR/IpQUbVrii8i9L8wW4uVxIBNh6Uq9BMwXSOGX8uQPSkJCNuRKsimzUUMUpH8ceRCBoaCbJlWdbMRKqAdLja1Mqx0OwuFpuRBN1O1FZIfhVJjGA5XA+tLRb8i5FjPK35Cjq2L1b5QMcyIdQQOtE6ySuR3uf7CQKDr+Rdqhe89tRfvWdQ885FvYi/8ArRIc1wC6xiMFvK/btXJuTbN9eBPNRoGt2pkEqq2wAxZ7tqOhrYFWaT4Hoim4G9A2T2u3wLTKkjBS+x2Nc6JiunHIwTMdRoazqja0SRx8hGXi1ywruhjzbEf9h7R6H0rXlIq+bgo/7OGZLbGlrBpgL12xKuzqet+t6d1g9X1slWosSzlSiuAB0NE0gdFVLlDYopiV6g7mhs0U4WrVJjp8aaI8rDgaXW6aF+97CHwz8CAKG1ZJappGgJWkUHT61K6wV4ZpuWR5MT2PHXWn0sit0TFRo5ty0J9KJsdbRVqWRrKyWB27UptJnlaaK3kQQxDKx8h3oxOVOzgzstefjaxqmjGb1VUK+My54J+I0BNZpRWRN6qTvybT5MpNyRxIqatEelrWqYj2/dBAJv2NHMEUrwZmXHwvpqDVFHJjo4OpnpEAzAW9a55yWY4Wu+A5flg4uONjWVxKtvWSX7YMWXBkRWcWN9a10dXwJyz61n5BeFAPD+K1WGKY5OIjDUjipG9c2GrpI6sfJAF1N966SF2lchezKbCs7IpzaSlnlimibkG062rm0wVdXt+gywFjJdl6k1kfgd/gayoV5RnpegTjyHVOz5AEmRxHJbgHethSNfVIBwurAHl1o0Q3lsQ0nLxYkdaJIJUhBxMwbwJY0NvBVmueR5ZiBzBv60CRm10lwXYLEG17ik7KSfPQsfiRakIl9m3wTtjo6+S/emK7RFWziEJCGIeB8et6ZM+S/KsV5GLkuo1sQKF0TGKgDzSufFdO9qJVSF2pWr5FFbgc7gg0U/gmdvwNkww4DKfGhWkDraRyEmERcDXvWPUW9pcBDDUvqbGsegxa8iponja/TvRVsmK0tzIphFKLbmiUolcyBEvByoa1ztWWcib3bcFiM1+t6Bo9DCiSOZGPI+oG4ra3SN2spEJAwHFhYCjdxNtYQ5YICNLcqX2sJpa1me9kMN9RsBW9iyjPLiz8rAfeud0V52qme9pbWkXUda7t+CfbZvhD0mx0XRbkd6XalmS372Q1c5V0ICg9qD6Q6YQhE2Yt7gbbGmVyOfrskk+VAkDEkDY01euK/wCf+uwOVIjgNe4btRUrA76oJ7RKnkOtMll2NW68DsdgNY769DStF+T0chhildjyHjQ9kb3rSSbK+OiI216GnU0Z5murvYxmyZcWQoWIUHS1U9UzKYFWN8oX0W96XbMrywS5ZoxfI3iPPe+1JeUM763dQif/ALNFPhfemfVIu3ruteRWXmB0IOhOorHTg8X3qcQg8CYhFudDQNcE+TiiRrRSPJFwB0pFkkxsKOfIuXHdgAxsB1o1dIbKqpOsjxWK+S6VyaYX+zln/9f6fI+P92I7G9feU3hkF9exgyYWRBMQDyTfSvQrorIRWy7cnY8d2IPIofWutdIYtUhjRoqjTkw3NA7Nke+jsMXJKOutu6mhdJBVOZZTGiSkl9zrpS22vA7K0Ns7Jj4xAP4svahV7SI00tdnoXRCAjkltgaKybXJ6frZtLleS0v7gCtpbqanSgp2akgYzxu9iSAdKpSTQj1sV2bZyYq6g8fI96ynDPV0rFQY8FJNyNelbfSAc9fhEmR8a0Ml01WmZ69kOtpyMx0dbgddq68C637MKeRkYe4lwdL11KyuCX27c8ClyYgSpOnQUTozzPrbcCj8iqklCQe1EsvyUY+q/LLYchZ4ASLnrSbU6stj+YQyN2VDv9KVopZd69P5YvIDPDcaEUVXFglmrIiSGUHkxJ+lNs0OpZeEC02ShuBdfWiSTAvWqONLJIB46+lFECVRLlhATXF9B61nATslyPEHLW33FBMAvTkRLA52JNNrYj1ukJXHkVtrHvRuyJLapcBmRo28vK9DEkt12cIbHlB5AosulDakI9HHJUfJSDZfLT1FLg3S/A2Nk2Nyp2oWmTS0GWsxVbAHpahgVfzyG7BoyCARWJQx2dJ5M/IKx3t0/wBafVyVrNwTrlS3sNvWjdUHTNV8+R6T8rEE36igdTY+WE0RbfQHpXJk97pCjiKCSFBHrR9xKuxZxEbXUVvcltszgxiCQrWvW9gVfnkM+7GbFrgdaHhnaWljFl9xSEbyHU0PWDqU+WGqcTdnN/4rGy2j/CCUxcrb3rHJrmYOAMkugPE1r5Q3NKrkcQVIOtjrYUorSlgKR7pDmwtpejjgh20/qEMRIWbiGDHtQtsjtdzA0QKym3iR3oe8G1twcVPb0YXv1rm5KMnKOSRLwJvY1ytyPSlQTFCU489Kanybo4rBO0Spcm7aaWpiciFZpCo5F0AB071rR58OTpklv4mwBroRtkqqX5H2DkE6G1LkntaWcZCLWN7b0SY+lfEk8sDEkqT9KYrD5S5Jnxm/uG+xrexM7yyYxSo10JtTEx+aQ+LKZWF6F1K3wilp00cppfW1L6nn3Tbkqiz49EF/pQWzZQ83VclrTySxW0C0jqkyXbqlLHQqgAJZWv0pbbZNS7uyuO4FltYbClWPZwrCHxrHMtjZGpVm6s16QhbgQkKRyHQ0a/og1s7MTNle03IAEdVo65yjVgz3JMhPcQC/UVsOrhlOVIRFmiIx8yLFdCRT6SSbzblGZaMSc4zf0qhTHIFE6s1oZEdBzX+KmsmvBRa7fgAycXPFjx6VvWTMMf6lkudaVCV/Lb7U3PhltseCBfj1cEMbnpTbXLsLwoRLNiPE/jr6UytpA10li4zOjWtrROBNYbKP2plYc1N6DqhuqS8Dly/HU6dQaF0E/WIOfFY8SQQaPoxawaTbK4stZIbofIClukMOmcoX+zkKt9dO9b1QymNVU7+zLJGQdT1rOqTG/XVVHYpAuWJN+1DdHUvxwPE+QsRH9t9NKDqmxPWvVtgD35L8SFsN6Jwgc61XkSVlJ8iG70fAFrKR8aSqbrt6CgbQdbJsORiwIJNxtQ1QO3gLFLrIAbgHvWX8Ey0VWXtO0R0HJTU/TsSbzZhe8ZWHC4HUdKxUjyPpkqeT0uLIUBO19TXV0UlNrpIWMe22x6mj7nVv+Rf/APojcgbUX8sku02zqyMV/wAlrGsj8CaxHARkaP8AHVN67rIy64ChzUAJ4EE0FsmLxybljRkRzAcV1Heh6OpUs+q5PNEzW5EAdq5WRNpoiV8WRWNrW3pn2KCa11XyDHAhHJxYjqKFXZNhZ2fYrji4nxbkDsKx2/J6SuclkMTgMtgOtcqygdVLOGVJlNjeuVWhPUnBWM329KZEjcqtjFyoVlUHY9qx0bQ90bskvBR7gZgUvY9KXH5KLJV5YvIx258hoKKl1BNo5sJMfkLqCD1NHJic2UHfYDkryB9BXd4K3brwc/T0Plb0rfsFPWZJJsYKpBbQ67U2t5FS7C45FMRjJuRtcUTXMjqVbrB0ScU6EVkcl9KfyMhmUfloLdKC9RtOChcl+BCg2tS3RSDTLt5M6fLmvYjaqK1QS9etVPySZMYmFyLX3ptXANklyR/qvG949LUztICvLKIFmLanX1oLQUrStVJdHhh1uVFz1pT0g8jf2uzhEWfG0S7i1GuSHavZIkxc0W4r00regqtIXJrYvyUaFS6+NKtk34NrRt8Gi3ykLXVRyB2pH0MZti6+S1G91AVAUWpTXUdRKqln/9D6VZpQfD8T3NffOq+SPql5FTG5PM2Pair+iDRS4RJNMF/JdB1p1am/U0S5GRGykxmxvTK0a8m2xcSzgZGQn+7vXMRdu3C8FOPmmPUroKXbOQs6SdbLRpSLWDC9as4RT9PTllsWLjywqy3SRRuKRbSyf6KM9W6pjA/FLEksO4oWOxo78kb5D87bU1V4LaYqofF3U6Xt1rFCO0sm4XwJA4uCGIv0o3yjc+OSiRZWjPFtRtSqtJh3iyIRI8Ug93r1qmE1wI8eB00yPFrYgd6ClYYjTPsY8+Tj+5oNepG1VVq4Cr69q8sNRGVBDAg1zOlvhALky4z6myE1lqqyKcci6D5CXYaqepqZ5J8l1qJKC6GaNgQ/XtSL1a5MqvhEsyMrngxA+lMraRqqqIU8bsl6dVwyXSyiRZbhprf0oxUNjVPuoL6MOpoHwwpUBQrIp0YkX6VtoEfYhzKC3UGhTItbTYnl5Btbeho0IjmSaSAyC97WG1MVoKM0q8/IsxOhFhcbaVsjnb5KI8gqLEaetA6gWUjBPyUFdu9Z1MrSFLOHKZSOQJU9q7oZTLtaTqTudAtkPrQupfSiqhtkKG4F+5ofkGzbEvAC+xt3FGrcA2tDOL/iPEa0T5Jb2b8lBkZgNBy9KXEA2SCSKc72+lY7IkvrWYRwwNyPI/au7k7ukwHQIoN7EVqchUTakAok48Vu1FMDvHkQIXjlHjaj7JoztNoK4m5MUlT6G9KsvlFtOOEz3txkixA9K6WZVuZYXIqK6JDiUWwzRSReVgamvVplFZ6kmTArkkG/0p9LQTW4bZIo4SqV0amvlEUu10UDJdWuxDA0HRMo6KYRQk0ZHF726GlOr+CitfhBhXDHjZlPehlQNbScAzYrE3ICj0oqXJ9NFPAkwMqnS4pnYR3ky8j/ABycjcC+9UV5EuvXk68ilfBvWsgVpVvyCJWZQWkt6Cuj9HZ0X4GpITsxrmh9uCpFRgeTWNqS2TXu24RPISGtuAKYkdXOBbQLJ5KbdxRK0FVXHImXHCrc6j0olaQbXdvBPHkoCYyth60fUKmTXkodlMYINrbGgg2/iRq5L+xYHlehdZZM696gJmzIQACa10Rf63rJJFmN8jlK2xA9aVfJMrda+C1PlJA3kv3FJeCE/Sp4PZHyBmjsrWa+lZTOGOXqJVliYsiRhaSmuq+Cfhvg7DkfryXtdG6XrL07IzKjbFZMwMjAGyt0os68Hb5qjaJUkRH2070xps8lttl2NkkrYHQ0m1Cn1cp8nJHu3UGtSPUplAccDyKdenWsdkhNtU3ADRcSNTet7SVU4SYqXG9yIkbiiraGIb7Ge2M6yanSnqwL0SY9YQ6cWINtr0EwA7yLMOPcePkN62WU0dlyKfDHEkAWNGrC+8iI45oGtey96JtMOllED2aUbnlelopaXhHYpieQJCkVrQiz8ofESL6kg9hQsHtCK0WVoSADprrSm0mZWHWBId0cm5BtRwmcl5YxHWZPI2IoWoEUU8nIVkVvFiwveutAdLKRr8bi2jUKEb2bYImfnY62rXVEl4TK1vIQOh70p8BtpcjliZWBBJ9KW7AX1NKEArquh6VLd/sOt+xx8cMp4i3pXLSPI5OKtskaCRASw5Cnq6ZCn3ZLIsg2GnanVaKeqqgo+BjYMLHahtMkzu7ykd/X5jQbdq7vBbk1SoIAxX5Addb61zfdEO2trM0UaHIS9rHvUtpoL0v1QRx1466ik/Y2zznd6PgjkiMbEKLoaso5R6GOXXgUXKgMvIW3FNiSxV4DLpkxEAEN60EOrHUpxLMy00MxF7CqZVkSvm0D1Yv4sNe9C1BVVJHDiq9mBsRppXd4O+yFJTE8sAGtx60qyViXS7uy79nFmTzPlbpU/wBdqvgfTOz8EMkfK4UgjpVKY/OioufIKqVkUggEb2rW+Ce+k2Q73ir6i996DrKBa5PPLEpPO3E7GuVX8BUzbfHgjniRZgy2KtTqWbRQ11aGDHgIsy6+lB2Y62jiEMXDQqeLbdAKF6B56Nk82NIi8gSNdzRVum4L6RWkipIBIt1azW3FMraBWtxcUCutmYch1o7WggWrsJbGkDGx0oldBVslyzhg433vat7CtNHZwKgzHjcqwuo0tWukkdaw/wBj8iOPJhsgt1oat1fI906Vl+TBaE42QVsCv1pkyzy3Zu4+Kfy4MPGi6l2dOvJZ7qKoKHQ0DQvdtqWbPx+YwiXl5Iak0zkDL+kf/9G9MtJCOLHbav0rpArZQ4OTZDIwvc+tdWsiLZHlygx4tYKe9d0gHpyJyceA+SPYnWjrZ/Ivez8EPvvAx5kslH1knzz7Pg8s6yEmNjftRdYL659VyUGccFvq6ig6iNE9GkhkPy+Svgo1oL41PVw9OvhjY/lpC5ZzxYdDS3iogqWKXjwi33IJxc6uegpKTqZafgTaZJGsWC7WpvDQNUpYSszXFrMO9ZAF7JFcfvCPzHjSbRJnddeDrRQyKQF5Ed65WaJ1LZDNhgX5DQU5aFmXj/Bn5OEpXkoBqilxG2kkoxshNkutMdkzsrVS8jWiZI7uulL7cl+f9LgD9wKB1HQCudRqybHYueGkAAIvS9KcDaUh8mos0hXa96nVEhOsWYlpnBKlb/anKpLeqO81NrrbvWpC7HAI1v2ruWBLSYSSsmzAL6VrrJI0M91ZFuPyoYgDqJkHkL7UaOsoYDrYX39K1MYlwcBWSPYgjoK7wzkpQngGWx0I70cmu3WoxI2RLaEULYNH2Qp2I0J+wrS/POEcBvaz2PY1xt3CKccp+LtfrQXQqtm+BhZN1Nu96xIRpMyzh4Np/WuJ7soihATkPx79aXaxJfeRiDi29A3JMnLOPcmx0PpWoJUlwJkYoxBW470xKS5Z8wSPJGWuCY2G1NSYLq0MWKOci7nmKF2gGtv68Be26swa9xXSVVctgSlhYoNRuK2pQ68HVaR1s1qxqA1EDcURglGXU9jQaT5Oro0FkI0RLJe1tqyjnyJ25JgZ2NxETbSm8L5Jcq1TmQhiZVwWFgelqz7KjL70Xgux8GRk/LXe1qRfVJh47phrFOpGgI9aHsmdpqh6iM6Pegc/BPa7b4EyxEcuJNt9KOthtKRMmfkY4ljKEa9KpraBd/BmjGfVGBHrTuyE0umyc48yEi9+1HKH0aSHY8kgYqxOnpQWgj00m0IrjkDOnc73pbUHVXWH+SiSBS1ybD0oVYZ2/qRXAora6UUyanww0gSaMW39Kx2gPJwuSHL+LY30OnUU2uqHK5myJkY6lSbr602Uw7Q6gRZkiCxN17VrqK6JKDUx8lX420+opVqlKUQMkaaNwbFlOt6FQ0NdFJ39hi3YHe9C1wV5YrsC8w4+H5d66q5G7r+eQIc+SK5kTkpP5UdqSeVWk+Cn9mMkFBf60vqVOnRDJpEZASvkKyqgh9ibGbLMyyEWFjtTlUhtnDK8JmJvysR0FBdFXrtI1VjWVAf7utTTDKL6SuCfhkRytxJKnpRtpozGqVm2PBcqQRYig+R2jUAWmUElfG9zRcMQmkmLkSOQ6Dca9KJNoS1ySNAqtZjY9Kb2G0bCZPHse9YmNb4EN76iwW4NFwdWigW3IqS4/kUQSiOB0UgstxcDfSgaN7TBxlh5llvdulapgRZuQleQXSxA6GuhA2jwU42TKvS67a0q9ExmNUuR9wwJNgDQeBOlo8CmhjjYkdaNWbOpKUA+6yN2HYVsSb1gMyRuRbcUMNCrpyTzMoluTYd6NeCbbixZj5UfDXW2xpN6Mms2+TRjyVdP8drjtUzz55NrnPkZBNMdr6dKy9KorXWlS9GkEf4i3WpLJNip7CDIliHJt6U1VfwFSnWoEuNE6XjbXsaOujT5QGlnHJB+uFaz3IPaqFefBuHngAZAhfx/E73onTsg9U/kY8uJKl7+R3pfWyJdZVQopI0U3e/a1LsnZkCdruEeMmo4MWHamKkLkvzxVEkNScl+JQ3HU0Lp+xllzEjJYuWtxftQ1tBQkRSKYzyU2Pan1cj1XgmlhWZgzEk+lNVoJr3SfAcUPE26bChtcB6jmYohAAuOlBEi9JdRio88XlZR/WglVfA7BVSFx4VvxPLvR21Lcb/AuU+0bjS3SjryZs3EnVlZhyUfes6okzom5AmEtuVriirA/SEh0WMZYtTS7XhjMbrrBNkYzIASNBqSaZS8g+xpxJTGIrAk2uLkUu0mUdrMWcr2XNj41zp2R6OWDXkeJffi0F7b0lV62KtEq1gUYW/2caerHm66fsQcYJIWvoaZ3lEtbwxphkKAptQ9lPJzsn5JJ8aQjko23ptboOzSUkn6JabW470f2QQ23XccYzEl9SNqHtId9G6yZ+dipIGZSLrrpR1cErUT+QUwvehDKwDL0ovsgP75QM+LIsNtLit7SHe81F4fyLwf45DyF9hWvOR2OcVP/9L0XiVL9NNK/UH+jz7auzUFuQyNGDGSLDrSqeeS2+f8yxEePPLcMBp/caN2SJvtrUIwpAbuOVtKHs7eCR3tpbgkmVjIwUERttem18FqzrnMnosINcr4sKx6El/Z5Gx4fLS9iKx3LPS8yxU2J7L8iSSdr11byev2fx4KIYFmWxsG3oLPqB9s8HiskJXiDcHU1yhjG+E2UJPIRqdb3pbqgeqYD5jxSAut1PWjrSUQ+1w+DXxcxJYxYXG5qPTNpm51hAPLDE4ZOu4okm1DCpnaZY9IoZ4zyG/akXs6tFOVuHBmZGB7RuCSn02q6msnn6aApFJHYh+SnUg1rsmT9+ziOCs4kU0Q5rflUltGme/69oqoMvI+HMbeF7HbSqqbyOWnwRGF4n0byFPlNC3aWVQ5E3+4/eluiNbRSSsgFzY/WgSgns5ZxY2J0v8AWikmvpyPWBSPMb0LsIvt8I4I41exN1NbLaEO7TCGN5kxW41nf8md+vLCfEmFuQHHqaFaIF6rydGKFBuQy13eQ1o2IaLgfBdKYrT5GVUeRUkjLvHpRJfsX07PyJMxB0XStgvyy6jVXHkU2PFxrQ8oO92+DskKkA7n0rq2E3u+BaRlX00om5NraBgiDbn7Vkk+mkDI7qLEabA0LZ52mvyNjHEkK1xQMQn8HizKb3PrXQFAyPIVwAN6F0gfjn8sYVU/kNaxMe3+CebHjY/8epplbP8AIm9n+SJoJEdShK23tTVZMZlCgb5Ac2brQlSfykUERkBxqDuaXyHZuz4J5gLXT+lHV8lCpFeSfnZha/KmQcqyx4yDcBxQdBHsWlwgY8v9eX8jwO9banZHmWrz+i9My9rHQ9TvSHmJ0rDLsZozYhrmp7plOLaRQ8YYXuKUrQb5ZDNzXS1/6VTWGU0yhcnI5eYsG4N2rnWBkcciGZAx0PMHemJMgvLZLKCWGuu9qbUCtBbRcrkrY963sZe/4JFZlmN9R1ooIqL+5GmU2HAAAVqr+Squfyw/dstyde9Z1Hqso8ci4tuK7qFesILHyAh0HEVlqyLzrBYzKy3vyU0pKCrOkuTPycXmCAosafW4VoRlS4BR+S6Gm/YQ7bwXw8YyhYch1oLchfY21BpSTRSxDioWpkmmezli4l+SWTDMg6Wre/J6WbVK/skaEQXuLjaqK8nm+zs7HAGGiglD0ohdKqq5GmJyh4DjahT5C0uuvJ5VmMZUvqNxXcSITUeCSdTa+5o0Q7OSz4z/ACNbY9RStHArPaHBrxj2pADprU75RRbSC9YjIh42BqV2h8jceZkmlSWNrkXHU06rTRu1l8BqyupFhWNQzqrginjjHkl9OlOo2b1fkEY4kGouP61vaDlopB/TK3Fjx6Gt+yTnqH+u6DkrXHY1neQbaSEMKORQWAsd6x6NGLaFCFD48Rv4seJovtlAfdB58TQ8L8h1rlf8m1tPLJpldTdmJYdKZVhPljcdUktuD60NnB1tY4RXHAGa3MfalWuSvXkp/QVrglQfrrSvtH/bLgnmwwLaWHem10CtpHJP+sok8Dy70ffjkT9jmWLycUkAkX71tbiNtOJAgxnQ6KSvY1jumS56dmORWVuSAr3ArW+OT0K26qWWRSuANyvXpSLVTEL+rDUy3STiA1j0oXmmj0K5KvkqRoWUljr2NJafwSXu7cIIxxSL/j3G+tqzs15OlpciPwax0+9N8hZqORWTirIpIItRU0g67M2SP2gAdhuRT05I9G7QhGPO6TlVLEHa9G6cG5UVXyWrkOG1HG1LdUMvwWQZXuHwPkNxU9s48is6TaWViRCbsPL1pXV/B6NatvjwBNGjrcEfSipZoZrwoRntyDWCGw2aqePyefdJeWcEjqbMbEd6yJEtFJmjK3IGo3pfRyNrm9HCJP2nDlUsR2FO6KD08sFRcjMfI89+J6i1ZenBuSm0jMooBd15A9aDNMX7CdnC8GeMkRNa54/TaqeknZ4wg2y7C4YMD0NCqGaZyFBniOxZbqeoob5SO9fKFwNnyElhIQk3rKUh8g3w7cGa2Rlhrcdja9O6o9HLClEUBBKoJfzHSleCm94XA/HldRa+32rr1TIbXkcZpSDY3PahVUQ6pJBrwdSGWzihcoml24QKzcHAbVa11lBR1KOSsviLdTSnx5EbWhckrqEJZxdb9KKvPggyq25BlZShCpyQ01IvdIXPkysxEjcsi2QjW1PrLXIrSrXL/AjGf/HyWxUnWtqhXqUnlgymQniBcX2pig9B0S8k82D5cl8Wou4Oux//0xjmiElrkD1r9RdWednR9pNOMQMLAhjU7lDPZ2f+qFPmCFwtrjratWciM/WbcsUxd3JvdW2FMXBXFc5D/VDoOhFA7wR77yTPG6N4Ese1MXPkXlSXLOpltE13AB9a61JPYwynx4NBJoMiIqwVjbS1Turq5Kb+OqIhPHFJxKWIO9OalAY5WXyV/srILLr6GkqkDta8hJG5a5W165sU9VXwLyoW4WC3FHSxJopXIvGkQaXIO1boin1k3yWBFOt73pC4G6XlwvAUEjQE3c2PSh0qrG5eGDNnzpdRZ1PemVyTI9PXT4M6X5J45P8AIh4ntTlmoHY+mp48FOH8qbWUEqe9I0xlnorNKsF7fIRugHUbipfrhh09dvlmZLKpY8V1q6i4EXpyASzW0t3okBZpI8FIHjqfWtBniWeSV1Ygg3rWiF8sYJrsL7dqzqZZQOUc7WNhQPgmtbk605gbVbr3rOvYTersx37xZbBbqaD6h/0pI6k6nfx9a51DzpAMksa/3XB61qTGfW2RyuCbDUU1D88uvk9HjxuCSLHtXOzRl9m+EGIACdvtWdhf2QM4aWttQyY3wd9km4ttXdgLaQLlSOLW4+1FVtk13Z8i7zFhwtx7GtcfJLfqnyHFIbHkLEGhaAz55Clsy+JNxW14LOkKWBG0kZuoub1rSYFF3f6K0nlkH+QD7Ul1S8FDVZhCMhxcWJFulMojL5wcWa6sAde1a6nUz7OBEkjkEFRY0SRf9arWAYH3Um3pXaIZ61TsjOq3UXrK+R1lKOI/IXK2NE0S2t+Drxq3cH+lcmSa3g4cSYiwII9a77EQ31R2OGZWs21Y7Jilomy+CKQC4axpNrIqromWQzTjRmuKReqKMKoKfy1B1oc3BZqoEGENv4nvTewjsRyrJGbEchfenVaZLZTyc8TqRrWiNL/g91t/aelYTtwSSxAudLetMqzMqw5YkPw03F9aOB7TKo41ciy3U60DcDu8OD02GwF9hXLQC+kiDdL2PIdqNcjcqTyFFkTKCosFPSstVM9GlFWvIwtcXH5fWsgj0fZwZnyEz8b2sQabWpPphxJKud05FSO9G6lvrerL5RfjZRl8f6mk2rB7KSRoQymMLyFxSXSRGl5CniEl+IGutbS0Hn7NKQBi3TexFF35F0vKkW8EvCwOoolZBaWXXkOOA2uw1rHYm+6fAqfH7jQ1ysS6WM5S8E/iSNdKalIvKvPJsQ/JxyJxZv8AKO4pFsYf6K3k7l2L8lIGHIWv1pGmCaK60VVwXTusiBwbHqKRRNOANq8C4nx3TkDZh0NFZWTgz162akCSFSCdwd7UVbB6W+CPXHkOpZT03p/+yEVU2CGaQxW/L0ND9Z1suYCOUpGqEfTauVBiyhE5ldSeBJ9KPqn5OWcHGzCQOQIYVqzAtlI7HyxISoPl2NBbODq05g9MEYAkAEb21rqyds+qJ2PD8SW9LWpi5EUpxLOxzKxIK8W9Kx1MpWWUpK5YXGncUt1RbVKvI7gWFhdh/wC1BMCNL/kA3QgkWW9dMkGl/kbKylfHUH0pTJfYZzFRWa2o9Ky1oFY26ljYqrrbkp6AUr7mxumzGR4RINiAvY1j2gq9Wyqm2N/66EjR/Kl/9L/BuvtWucigRTxksbHeuto/gTXZ1KI4MTkRe1Kel4Dpe3bkKbAgYX0YVlPYsUu7MzNiigBPElfSrsbuxSsrNSYmUsjluAuDqKvpC8mLKtZbIcdpVl4shFqO0M8x2Tv5NESCTtfsaS1AejjllOJaNuWgNJt/Qv1272/RpiP3RyJBPpU7t1Pao0uELaJbgjToaJWFext1Ui5IkN+DeQ6VtbP5R5iq7vkhyl5atoTVVHBW6whEMEhuqtcUd7I9D00q+fIqXnA4ZQQaOsNHexaXJXjZTjV1Fm6jelXovgTmk3wOlddOqHvS6oqdIJpMRWU8WBB6U1aC0yObAlUAnam10RttVB6DHdBYXYb66V1rJh004gbFETsSO4NBaw3Kw18cSAWby7UCtA7S4ccGguOJHUVjsL+0HiEJHG5vuaKZJbWcMcJEZTpY96BpkV5sejme9m1Fa6oPOqr/AJGcVcaD+aCYEaWjz5BacREKRYHc1jpJHqnZwGrmRuI1Qiu69SqlK5+QJcbhqG4jqKOt5DTnlkGXIsakMeSnS9OpWQHi7MwVklimKpcxk3AqpVUDqZrJQzQN78je/YUpsRtp2fB3JP8Aj5FDYHesSMvX+ZP/1HZPxRkZip1Ntq/Ta7QT5WUmYrT4+QVkvxBp/DRlf60HHOVhx0/80KqV3y61llMLuUNrWA0oLHl6aJj4siZZF8QVNKdUySlVa6F5k8yyEqulMpVQesvVSYtVjycezrxf+tY262PUxr1pBJ7MkLgo5FNlM53hSzQhQzWvq/0pNuAFdNnTBIr3YFQe1cmoE77pGhjTxJEvuMSOtJvVt8HnUdrw0PnfGkjvGTSqdk4ZdXJxLI1w0uSTvTncKuscI8YZo1PAkjpXdkw01ASmUWDLp60MJjrNJJDFjWTTiNTvXNwSq02gjzfjtTaQ67Cty2k9Oz6rwRDGnjPixNqe7KDM2rMoQy38hbpeplWS/S6quBnFb01eDybWdrBe2HG9q2YE30GCFONg21DLF2u2TuODXN/tTVyJSZwvc+NdArTg6ps1je1cLT5GWktbdaHg2qTBfkFPFr+grUUVrKBjyJdmtb6V1qoblRSddgehIoUii/8AKHIMYre4VvWsckemlmdU2ewKkE6G9c/AqqhnnmlibQLa+4rlVM61F5GtJzUNQpQbfwdKFiOgNZMCrWUo40CLfS57mt7CNdG+CSb3Y2vaw6GjUEekIbAzEqAB96FoPJJND5Yivr6ChraSjRy4QhGXUbHtTIGZ1hHAkrHxaulFOSVeWcluv5C7DetqZebvgQrMWJIsKJ+Cr180hczSMtoz5Vy8lf1qJsIRclDcjXvRuAa2XwVrIeHm1rDSl9eQdrSoQIm1sNu9FBBp/KKOd0GlzQQQaOUcGQqsQUN+9Y6Nkrq2/ISyAsbHWs6m1pzB39meNtNR61vRMvzxQ5MqVjqLUq1EellmkWRzxMg56EUp0afArWzt4OmRToP5roEWrC5AkW62okya/JHIVQ3P49acuSWyYt5gy3hub1qrHkbnh/7WIpZuMl2BB605VGfXyD+xGdbC1d1Ym6aKIclQBxNA6AVq/kqE3NdTag6wVZ5k8mKXvbVT1o1cvziqE+wqdSPU0faQNdXAQBDDUMKwUvIvMg5xXstr1tLcm6LiSRviY28h+VH9hdjrCBixjFJY30rW5Rlt3JoRyoFANqU6nXbga7KUJW5sNhQonsmzmPMhXYg1tqsVSXwPebqBcba0tVEe04H4vtuCjaGl3lENdI4CmxFt47GsrobPyyGT4xibhQetNrsgaaTYQcBlJJHG38037EW/ckaGNb2F5Alh1pFnybjZ3RSsiMN+J60p1ZY/Ejcf4+NrtyuT2oNNmgMvYjhHpsPJi1Qm1bTWr8nWumuScrMw13vqKZKBrAp8dDJ5b+lGruDOzd+Af1pQ1lNgdiTW90HfRLyG+BkHr9xQrWpj1qTS4Mynza9NromZbVfCFxwcZASxuPtRO3AumjkrFnFr2t2pPgXtcIxxceIa7D71ybB5a5JwAr+Y0J170Z1X1LYowQDHt2pNnHkK2n5Heywa5BAFKd0S7bw5GoIuOg+pNKbckMu3LJ8tW9vkj69qZVr5N0rFZYODl2ktILUu9J8EWSdr8Fs2UD4g+PS1ZXKD0749VyNheLhctY+tDZP8BVbiEEJob2Da971nSw6mTXkmmyJInve63p1c1ZC7ZcjFzI5TbkQ3pQ/U6laygcJJj+LaDvS3VFudK/ITwmWOxIYmgrbqxut11gzZ4JYj+IsBtVlbpo8f2NCEQiSS9uJO4plbQefh/tJPlI0DEjUU6v8AQ+9Xe0Coc48bMnKmfUel6+HSkfJo4ebIyjgCv1qfTJfJbRKlZZY+Q97EXbekrNHm7172gWc0i7FdBRfUOx9efAqWVZ0BF/UUyterG2zSQESFW5JcdK2znyMxcuTmSQV8z/NdRfgD2OeESKVAsAWHenMZlTrUoEqcAu9+lK68lDTaATIjRipUjsRROrYro24PNkLcgFhfvXdTPqlkk0uRHJcXZe5ptUmhzyqmFHkyhgTt1obUQylUnJWkkZsdb23pbq0Ls3Z8HTM5HhpbrWKpmlVVc+RhKuvEueY71ngmsp4IzPxezj707qCqdQxNY/4xes6/kXavyw2luwJFv/0oVUU6yyefI8gRqOtHWpl845YxcqRbFB4+tC80/Jn1y5ZZHkGWOzEa70l0hlOdEyWXC5kq2qd6bXSBl9FmiUfFxBrBra9aG/sPwfO+z7lrWgoEEaScTqveu7thqz7BSw/4WCgWJra25Kkpryf/1dafIVHsoUqOtfo1ayjs/W68szMhHllDJxAO9UVcI3POtbdmSzYCsDZbOKYriPa9hvgRA00TFN+lr1rhnmdk+CqNsoyi2w6ULSgp9elFaTQEcjJc2BNJlIttdWOhCtrgm+lwKFuSzJwpBmweR0a3p61tdIEbazaPg5hx5MMjB/x2BorurRJTddnBdLaROI1PQ0hcCvYfEC4oGsAxorWHes0kPjhjWM8ySDtS7WcldLuy4JXYxE8dV6U2vJ1q9UylJgVAvrSbqBvr592kQZk0qScr6Xp2KTRR7NFXwcgy5WPg1jW6VSQr1sU3yOnyuYHMjkOtIxpB6HsV44J0yAwtoW7U265Bxz61/Y4O0ikBeJoUoYGzUAcbg3/IdqayVPgUWdH9KNcoQ1yH7nlvYVkGtchhQxsTcGskQ7ck8sLITxJt0tTFaSez8yCJX2Ym30rYBVUNifUeRIPehaDTgrREZdNSaS3A6jb4ENjuX7fSiVihWVRgjkUC+3aslE+usnjFCGHNa2WKtdqEjrRQXHEglelYrM6zc/4GMivHY6HpWJwztL8BxKVSzAcR1NC3LEK8o7z4kcRXQC18sJW5NYjX1oWiazlicyIsh5W9AKKjBuuCIO8LgjYU6JNzrLkr94uTxO9L6wXqimWA2kgJB9TRLwcl/R3mAdDrWQPrX5YLK7Due9bI2lUKSCQm17+lbayKM2kH7TobWA71iaM007OARGGGxJrZBThHv1Fb8xpXdhN9o8C8iCJOJXxo62bIdbWs0CjHQXuK1iWweYBb1PWsgQ15GJNGwuLXFZ1Y7HNj1ZJVtbyHWhag9BKEUw47sniLmlWskx1dFAIBRrSG1jsK3z4AT/Az9iJXHIG16Ho2ifbs7BvlQq+/iaxZuAL5tMnmnxeVnN1NMrWwp5Wkn97HDWjbTsKZD+RtcrTyJnV3J5DxO1qKrgLVqnjySmBFBAvbsaLsQKzZxGSM9qLyOyq7MbHkn3LA3oXXg9BU6mhjzSMLXAPak3qgE0zk8sd/8i8q2tX8AWo2+CaT2Cbxnh/60an5GOrXk6GvEVa166ORWjmsD1ta7DS1AyhOFwBJGjEFVvWpi1w5Z5YUN14AH1rnY1WdnEgAzLdRa/ai4YVoS5DxllbU+JBobNEeeiXI2RJACRuaBNMm1t2JTlSxvcKdNyKYqJg1yUlkfyb8Bza+m3WlWxXwdbOfB0ZbflrYiuWaCyxSFZE11vEDyPeirX8jNs4ryP8Aj+csYDniR0pekLwM9a1a1hFy46+23Ignpaku/IS0d00if3ZoG5R6LTOqtww1RJGnj5izxAE3b1qPTLqzc6dkT5MEl+Vr07O6CvCJxG5uQBem9kLo5ETSsDYrqOoplUbpSA4c2VRYihtkmLVJHnIEqaoBpvS1SGa6JIlMSNvoenWmy0ZkoIpVkjl2PGn1hoyy/qRqO9xso3vQtI1tSGoHO1+Q6mgbJtL/ANFEbtE4KNp1pVl28kuluzgrfJllXyPj6UlZqvg29ar/ACIFwxUE8T3pnhA8UXI8xIY/EkmpndtwR7aPRwZskLmXQm5q3OEi308lRyxgElyCbEbVraH3t3sFBkRhwstzc1lqOOA6SvBa0UDG8eh7UhWt8lFm5FSxXUhqOtjLuECQ8S3JWw7Vsph4V7cjEypyfDUUu2aPTrnWvLKMfLIIBXypd8jzd7y4G5E6zRkWswpdM+rPP9inBkSzNA3LoNaspn2A9T1XdkU0wywbWvVNa9T1VjWhOmP7cg5g+tMd5Evbngvh9lWADWB6Ui0s53bf6KZIJW8wSF6MKWrLwOq1Mk/sTAFRdr/3Gj7Isq60pz8ivclx2/yG6+go4VvBHdy+CzGyoXU2Jv00pOlGh3r5uGLnVWvcXFFVhNQTmKMiwcj/ANRTOzCrL+Dv6r6dvSs7jb6oEwOu5tfa9b2QpW+Qbx9rsOprRlKtnJecy2XQ1leB9kkuSf2MgAim9kJtdRA3GmswWTcdBQ3rxwLrbktMiBh0FJSYnWXY40qLLe1x3rVVtBqjTkCUxEjt1rapiNU5BvGGuhrefknu27HTcmzbdxXDeKI5NjDieJIHQ2rlcm1vIIjKqNeRrZkKk3hAiaZX8Uv2AreqaPTrStfkpGRIwHIcGPSk2qjx/d0T4QgZa+4zSbdKCuX4PJxybs2js7QS2ZdzTqpryems2uWMxmxvbZXaxJ0Bobdp4Opa15S/J//W0IFjbRRoe9fpFpQ22rb5OSYlm0tcdaKtyX2Nupz2J3BAtXdkjz62q3LMjMxpoZwyjXrT1ZMTtZSVQSXFyvl6ULQ3PnwWxurj8SpHelNQehVRU0cdC8HiwJB2qa7iwVdO1f8AyBJAytdgR/pRVumTb6/gFY3IuDpWyifKEpYRF7WIBtXB0q72I5XlRjre+9qYoZ61MklAMTTXsTdTWWSKqdaqDsrMi6kH0NFVE1693+hcM9zYk/albI9b08uqkTmK5Fkf7GmZODNM+z5RnRLOHuW2p9+Tc3WvJpK6Oo08+t6REGWbsw1SN7HRWHWsUgaaQO9oj+6/etTI9NPkcgRVNyCaFk9W7Cp7lb8dBRV8huqSkUsa2PYamjkQ7yCCA3j41ot8csZ7ngQdTWQJVZJ3WQ7fie9GoDSSFiTgRztY9tKKJA5+CyCV7+Fip2pN6lVIopZcF5gXF2pMwKveeDjQSMLhLDvWqyB7JciZIJQAfWjVkZKYt+d7rYnrRIOxz914SvuIGHpWfXPgl2rMQypMzHa6yKOJ260t5teAqZNeDheHaPSth/IraV5CjkF9evWgdSOvLkY7YzeNte5rErD3W1nBFJAshIA0709Wgakq+TiYzo1rEjvXO6YxaSw2jJXre9YmPXg57YU6rXTIfZ2cIB2kW/Eadq5QW0zQEeQwYEaGjdRXXsx/JpTrpelRAbhMWG/XlAY3B9KZHZEetnJYBDKLg70nlCGxb4sLDi779qJXfwL7tvwZsmP7UjAMSOl6erSJltwIlWVgSuopigfnRLlknGWNzuPSj4ZXRJFmNkHkDe3Qg0FqidLwbWJNY6N9qj0qZRyyqaOKTytrSK2a4KLuCaXEJ1AuKdXQmvolydfF5Qg3XTtXLTkKluykjfGBNmN6crjO0CP1OEmo07UfeULtrDHGO0Y1tbpQTyQ66dhMkRtf1oqs6i4EHEe5Ki4pndFmdlU8YSutvIV3YHTR2cIfFIzcTxItuaCyGpqimS/9VZI+VzftSPshm10nknfHj1slmpiszLWbJ2RxoyCx6jejTBbSRXDjck8tRSrXOrtPCFzwrxtqhHUUVbFTUVERma+hvbr1o7QdikuWDLkFG2161qrJN7XIcWYFN9LGhtQi6lXvRSJe9j3pfVo3rCkB8UNEWU1qvyBW0oieCSNr7g05WTGdkPgSYrp9hQWaGZ2qlyU/rO4AtZh1pTukTa7KzgGGDKhl4kE361tr1aMe1a8G1i4kzDzGh7VDprX4KvV2rPArJwTFflcqdqZnt2Ga6Twj2HDJGwZRdD0rtbpoRlsphGiGgccWuh+lSNWXjkO7bEyYgIuvmKOuv5HYqOWZ+XiqR+JU97VVnoFaWZ3styID/wA1V2O7KvwMSN06Nbv0oW0xFtJKUC8SfzHpS2FnLJ8hVdTZSv1plODr1hCEQjRjpajbFVsJd2jYEDxrYEaccvyUQzqD5rcelKdfwT0TnjyOGTe3tmyk1n1/koplHLAfMkRwWHjbeseaZJqptJ2DKlIPtkWO4FZ9SXk3DJJSypBzYEMQ43FC3A12m0ICTHldeRXfr1tRVukUZ9aomlxpVYMLjW+tMV0zLXTZZBPKDoATvSb1Q+qV7Qeyc0FfJLGupkU29eRUMyFijJ4tsTR2q/MlFV0USWRwC44afSkO35J9/YjgargNruO9A0ecpbk9M8bDQ6npW1qxqxd7GbJiyTBha9+lUd0j2fXrXOplHBeCfQMpG/aqvtTR4/s+zNoKeXjrveggREnppxCwLISLb1qrJU8m+EGvyzcPH8e1A8VJ6OfqqtJZTHnpIBbQ21pbygVanZgzoZV/3X7UVXBjqvBDHIcaazm47U5rshlZT4NASROvJRekQ0dbwUY+Mj2JFr9qXe8Eld5fB2TF4fixFZXSQrW/JxsUyxi+46132QyjKyiSX9ALJcm57U37ZRr35GmFLDQKRQqxlrvyA0Q160SsKTlk0sSq/JSPpTa24Ms3I1OLi72FA+AXpHJYuEjxizAgCkvWGEtuCaT45lOluPamLZCnryRnGaOQg/idxTu8oT9kOR9lRRY+NLbEbaOCm6FB5XBpak6tW+RUeNJzPDVTRu6jkpysq+ShYgpIv5DpSnaReuru4XglyWBsxQg9xReDz/YcIT+sWhPHT60yjgZ6lIrLJnjKg2N2FOTkrc24I2kkDDmo4XpiR6GOdc1Pyf/XR7uVBONyttq/UoVkHr1qzRGc7gdDSfrSPP8AZSbGx5ADFmewFA6EtVy2kdmbDnCknXuKX/SIPYdpORwYwUFLlhRq1vkq9ZW6yyiOON08jxbtQuzTLKXbR6OOaEkx7GubT8j6tRAxsmVhwa1wLmhWaXIrXNeBByWjTy27UfSWZXL+ThmJHILdT2ruvwX5ZqlZKeHOIaWH9aS3DKM/Ek3Ax/T1psydSbMjy3UoQQde1crcnqY+vFZJ4GCaht6O6Dq2x7l2IIF6CiN1aRNIQr6aHtaqKkl0VQRrIAzaEUu3AP3fga8ItofKsqxV7cHg04UrvWwhDiwIeRW1rYkJwkVxyqFGx7ilOpHtaeAm9pgSbAV3IFU6pgSYqSRExWLDqDRK8PkU7NrkSsRvruNKNs37DzROux07VysjExTY6unkPtRdoMVuA4YmQgR2A2saG1vyBrt+TXxhcgnt0qO7E017WGkkA2a1u9AOrSRZT3gATrRT1H1hInkwmBvsOtNrqhVtZZPJhoxsGvemLQXa7bFrhyRy2BuvaieiaCvulaBk0cim4A+1AmmS7WlgEPcAtp2FGoDqkhkUi6lrmhaDzluTsknVLi1cq/k15/LBhzkJtJoR3rrZP4OwybYwzctUsQTQqv5Kr1VVyOiWNhdzr2FBZsHOz+CgQRvExQi9Jd2rKSmlm6uSJ8WzeQ+4qhXkFW6nlhK2Ava+9a7APQ7NiRyJoSGHU1ldGhG2jfBNw4i1iel6bMnJ/wAhJLxvpt1NY6gKsiMmXlqNWFHSof0ELZCM9geD07qMecBhjILOQfWsiDnBJPCY2JAsb6Wo05EXcluDkTXs2xpelUHSyRu488bJY71DejTGqbC5HJUqNqJIH6/yKhksGU6g0dkNpxVh+3yA0v8AShmCa9xc5Casp+lFXkn0TfglnlsNNulNrU62UI5FNERYnXtXOrBSfgoiaJtANb9aByjVIMsQV+TaAVqtJztzwBJOFTwIA66VqrPkasW1LGYmaLW5XNDpmOzrxBS5VyCdj2pa4M0fU40MIGrX7V3Zkd72u4QgO0UttSvSmNSi3DOGNnKyW8QCaXTgt1UCBAAeXK3pTXYmpeXwIy40brc+lHRsXtPkg4WuACDTpELhcj8drqUY2PSgsArTwNhfLjB9s6X60LVX5NoqxDCmnmZf8h19BWKq+DtKVjgFcgqtwLWrXUHrwCflclFvw5KdyKz6KmV9aqr2b5Gj5l9PA2PU0q3rIi1xnmTd+G+ZRxwdxy7VD7Hq/KQ71qxwa2V7EsRupBI0aosu1WX+wnXMzv1MmJrxkMPrVq1rZckuEeATm5aNxMfkO9F9NH8lSxq35GJ8jLzAKa+lLfrqPJRpnWq8lqomSgJBjapnZ0f5EVuv8mdnfGEXIs1WY+ymL0sZ9spDxC8R2NVfyxdUm/ycDOTYji3ptWwi6qVUedpF0cArXJJ+CTZy4QF4WX8Qvc3vW8oDmqk5LiI0d0Iveg+xzyeftq7AR45MgDDTbTaj7jM7w0NfCmiDMv4dKH7kxmmyhnVwvfhHPW29B90PglWqjgkbG9i/AkXOgp6vPkem1XkdG0nK5BN9LihaRtWlyWx5DItidN9aTaiZt/EFSPjTKLuvI9DSItX4Ozq38CGx2jlDIbrtptTleVyX4Vi0gz4odhyP5a11NIR6Ol4aSELAyy8b3HSm91BDrt/UFNyrC+lKiSa9u1pOZBPHlztfatp/gqrnxMCkaNtGJLCismiik1RUgRNV3FKcsRvq4FT8JNWG1bRNHkKrbkhnxrreMDU1TW/5KkoXJ1sJZUF21ttXfZBfXTjgA/FoYjx3Fd93I7T2YoHBgSR62upFdbVMir7MlX65AWw4g0ruVUt4bE5PxiyAm9z0oqbQFfX8Ey4LxqQC32pr0TEa+x/MBQTTYzgasPWstVWRPjWWXn5BXtZTy/pU6xgvfr9n+gYsx+RDNvsLVts0G6JcIa0qSDyWxHUUKq14EWUHnWI7KC3euTZl5A4nkQ1rdKKTVwxEsaWtxF/Sjq2C02QyBka3Kw9KeuTNFHBVhZUYurXPrStKMHOShpxpwFz1uaBU/IFs3xJNkZILarbvR0zAvjLIMrLIU2IUU+uZtvX4OQ/Jw+0A78iOgrnk54GUxt14HQ/KITaK+mwobY/kz6GvI3/slWRfc06E0Dy44J96dYgoky4Jl4q3rSFk0+TzrYu1uQIXQoRflY601pnperm2oIcuH/JyViAfvT6W4PSpmquSSbEI2ctfamVsbpfs4SP/0NKbCQSWLaW3NfpFdOCDbZ2uRZEJia6jkD1p1bSK1YyOJHHkNfShdoAekKEIkjZJOvG9d2Ib25LI14w3hbketDMvk9DCjsuRLZ8sTXcX+lH9aZasUlwUxfLobBiF+tKtiNz9Ztk2V8qokuouO4o6ZcBa+rDDhy4MmEq1gR3rrUdWZWkVg6TxS0b/APxWLzyPdZryhmPlyx6N5etBfNMNVUQVi86m51PSp7vqVerRSQZuIQlrkVnr6S5PX14rCM1IZVbxO1WtyTKyqUxzSIRztasdVBPPa0hyKJBdTr/NbTgRtb4Bx3dX4kfejupJKvkv5IRqNanSgO82cCW0fewNGvBz4D9vUW/k1yZJ7Go1YSCLgChdiO2pWsOOU816b2pLs54Dpe1vBJJG0RJj0HSnK0+Rlawm2I91ho2xpnUUqHmkjK6NauSYy6aqejdQ3jd/9KyyI9LPwUc4n2XyGxpTTI7TZwcXKMTAG9q15yi7HHwij9kyqbDbal9IPS+tUqHBLIujDTvXWqmQ9pY8Ssbg7HvSnUC0IB0hvc2uKJNk97NeDoZCdLEdqGGISbtLFThP7R9aZSR3Rtksqrup12FNTGXkEBzpxt60XgdWKo8xCXv/ADWeTHLPRhG1K3vXORuKg84FrBeNag7r8nESVDf+0VzaYVbJFUGQFUqaTeksppWKscJoZQAGs3rQdWibWUjp4Jud9q5Syfli5GsRfUUVUEqQJZo+2na9GpBdW7QRzsDsASKdUspjCElJWNyQFtRygm6oTNhhjyGjdxRK5PfSWBGrCwbcdaJsQ7jnjDIARcigkXZ9uCaxR9Rp0owq+S6B3vobjtSro9DOEPMjLqwPHrQRIcfg4uTFG+zFD0tXOjaI920XwSwsAV8anvVo861n8lgx4Z4zqLkUj7HVjMm3yZ+T8OrJ49OtU09kZbWKmenxzxuddPWnPZMj/wCiWPQIj6g370LbZzu2yqQCWMcN+opdeHyXUzhSyWTFZlIt9RTlcrq1BnhHx5blfHrTplC625KP3uGnE8T3oPrkHWgwZCuNDQ9ICyxhBq5Yi5071jRRRf0gpJFRr3+9DVSjvZbH46JIN7k9qC7aJaXjg5k4y22tatpcXtclkwbryS1MWpJ9kkUkE0bEheXamqyYcobj5TCyyrxobU/AWVZfB2dtT7R09a6q/I3akcM9CBMlnHFr6mubgVWySPPjOsbKjb613efIOl5rDM/KGTEBfyU9qbWGA6Vgp+IMjyWYFT6HWlaNAY7JWhH1MOa8cYRjyHW+9ebfBNyVbvuipHjnX/E5STtSLJ08qUP9fL8kOdHmoQz62G9U43o+EXqlPKJ/cmkj8BaRfWndUn+iTaH5G4OdnI4Vrb631pe2NGiavRGwZS4HMA3rz1SPAOv9OESSsgl81IU1TROOAFn1twDJiRS/hY/TetWrr5G306+SaX4og3J8exptfaQi3sCjhxRoTxv9K37XZkr1tcjkcqp4jjbvT61MWcVlh42RyAJ1pd6kyZc06frjlSHRzwHon0hAQS8ieIsDWukeQMqQOlihnHEISw61is6/JTb9shMWRC4ABA+lP7VsLbUoc3+WPQeQ0IrFwyutOCZV4sQUsR1prfBb61ORkT5CmxJ4Ha9ZZVZU3WqL45ItAwuR1qa1X8E+2rGkRs2mn0palECTdv2QZk/sm6Jyvpc1TnXt5Z6Gfpuz5J5MpZVFxr2FMrSGeppkklVClaRm24gbmmOCTfSua/ZYjLCodWJHW9IaduDyNb2uMGVC6tYX02ofraGY4OGLsXIU2QdBR+DrNJpDocSQki2nel21QyuyR2SJI1IY6isrZvwDd2soRE+YieKNdu16es58js/Vcch/voCA5sfWs+osvlCUFEWQh7EHtS7UZNfyDJJExIF79RWqrJbZtskyY7k26DSnUsenjlBOEdGDFrCj8j3deSyGL3dt+9KtaCT7VITY0gIBJN+orFdBdkCbxP5HfYVvlAub3heDrTgyeQsKxV4DvWLcHnjBa6fid65W4GLhyyOeJVJJ0FPqyS7drEZyFhe9iy03rKGUycyO/bDoGXxoOkMY6QpYwBZo7ltbUPhi6ueSbIwQ6AW2pldA7XhEX/WcW8N+wpv2Crex8BNCyMGYEGsmQO/Z8AZTmVNLhhsa2qgLXNJSybHyJVksTpsa1pEihOTVxZjE55fid7Uq9ZRb665LGlh03AO96UqsZvKDXHgmHixB9KF3aFVu0pZ//9HQnnYte1q/Sa1JdM1XlnlPuoFJF9zXPhkF3LglZpI5fFrDrTITRjqk+T3/ACasxIN9qFeROFPs0IzJJjudWMZ3Ap0Jn0eOSog/cRgfb0Y9Dqa6IMtXtwEuN72sgC2oGyuuizUocfhiVHCQn0rFtBFp7fZk6/HzxT8dwelMeiaOpsu0FgxJwfxpPdFFtU2djWQEow4mss15NzhuD0crLJYkg1Pt/ShHs+tn1UsvcNJELXY71HT+bQPs01JmzRtH5FLGvTo0zy72nwFFF7qnkth3rrOGD9iooRw45ibwcn0o1aSS123yLMvFrlSD3ooFVo2x6ZMpNgNPpS3VFPVV8j1jZt9B60MwS6aI8QyLcWNd5PMvbtyEuYFsCmvWsecgfW7PyVYs4kBCn/8AiaVpWCmsVUFgRWW3AGkNx8gduz8kWTjcv7ALVRS/7GpdFJN+siagj1BFM7tkmuzZxolJ8b29NBXdiZ2EuGifly06CjXIedZclCOk1tuVA00enmo5GxrxNiNO9A+TLaSwdFYjXXrRCPBQjk/3UpoRewyRC0dwL97UNXDOrWVJDd435EED+KfwzKrkemTAwsTc0Do0N6sW7rzspsN70SQNqQ+TxyDGQT5A9AK7pIt1ljGyoWHknie4oFm/yP8AqfwAq47P4HfoDRNsZWU4PTKgNxrauq2M6u1iYmUPcXCn+KbxA5VSY+Mi/lYn0pbQbtzCPSheYsnTSuq+BOibscjmjZTHI3EjYVrq/KBhvhDA0bCwP3oYYTmOSeQsjX0Ipi5Dyz+ThMbqDbWuSaYe1oR0w8l7jtXduSbtwIeJgbC9qYrC2+ScqwfVibUUklrS4QRJR+VtDXeRscguynpp6VqQ2mcDISApN+PoaGw/JuxTHKrqAdSaU6wM0t1qHJCeOtj6ViseTtpICNIFIA0rYQvNJj8fImU2Xp3oL0RbSqSgqOYxAD6HvSfqXwI1qn4IsiYq1ybjvTqUErGGRzzFhdW27U+tIKq4JKWPx5uSrrZ6C9R9f6gp95g59xgR0pfX8DGps0kTZHBwSutMpwY6dUTSIkkdmNiKanDOqpJ0BVSA2gomPz8MbEJDY8rD1obDK2VVJWIwyWOtLmCXS/YnSSWGQcSQBvajaTQFax5LlyvcS7a3FJdIEac+BHvNG3jfj2NH1kR0hBtOjL/7UHViNE3wFGY5PyQXGxNc5Qyj6KZKJPjBIl1sulLW8MP7ezMiaLJxpCDqL1XVqyCpVNinzJOXEiiVEPvipONkloWBFiKzoTaUlNIy0zp4cscWIBNM+tA54KllJvRfKZFgePPrSHii9YqzLYPmihDPGyn6Um/rzwVrGFwzfgnhzsa4PS2teTejyuO46GTmYGVDLyiY8e9q9HLatlyQWdZlk0ORLFN/ke5B7Ud6qy4R5Ot+1+FwbuPMJRoCG/3W0qDSnUrpCGPBmk2BV17daBaZr9G2tRPkU8cqDkVKH02pisrcTJO7duUC2RZLsvIda76+eBdqyuBaLHLdULAn+2jbdfIKiihgnCezck5Dpfelv2F8Mh19ifBIYBHpxAPYU6jkHGrg8Sqi0gAo3L8D7NvhBwBHcDnxUbCl3t1+ORX2dHHyXLJ7LXGo9KndXfyYk7OWFkOk6qQLMKLOnQvph4bIZIJkYsHHeq63T+CvKqtaEiWQmUEjR6cuD1K0VayLjyWQ8JgdKK1J5RDraPHk0Yzjz4/KO91qV9q25FZp2UslMvBgQSLb3p3WUV+vi25YTSRzact6Wk0ev16KRX6ScrK+vUU37OCPXePJyRTEw5G4Olq5OfB4u+jvaQ4jCWtsD3rHJ2acwd/VcsfaO/Wu+xfJYrKqhijDNG5Mx2Nb3TXB52u8v+SyD5ARuAASDSb4dvIWOLtbkfNlwymzLc0uubqj2cvV/oxs5I/dI9u3YircbN1LNKQ/IqMR8SHGo2vTHPwQ7at8Ipx3x3AUNxI6Cl3TQjPs2Lmn9uQ3J1Ol6KtZQ9Yt2GnIWSMmxv0NL6wy7p/IsSKU81070cc8ElnxwJSaSKUe0eSk0bqmuSbqk5ZsQTu6XZte1R3okZVq74QrIJLmy8vWtp4PQWSqSSRzNubW6Cn1aAs6oZEzolybEdDWWSYlW7gmVZSAbX7VyrBjr1gBsVDcFhc7KKJXAd/gWcWQRt4gjtRd1JtbqCZI5YyQot0tTG0w6QlyN5yhgsmgoYXwBo1MIVJOsbi5Nh2reskV6Ns7JkRsLgXHcVqrBXXHqpYEuJHKt0Nm6Vyu0Be8/wCDKnhkils50OxFOTkk/wBr8D4GkdSFOo20rLI9ekUrz5L4o/dh1/Je9Kbhkum0oqx34DqLdKXZSKzmx//S1sjFjYWuSd6/RqXaI/Y0bM54TFIGLEL2p6tJLW0cjWaLqfyFDyIv2vbgjVmjyP8AGTw7WpscHo+rkqNSWNCJY7HW+tKThl+luIRL+uEl1AUdTTe0oRfXqzSxooCCoszHW5qe7Yj7bWcHh7ySW47dtq7ho5RMHZJH5BgAGFckjfr7WO/uMw81AYd6H64K6ZT4J58lPcsRdunGufg9X1vW5n4PMpWzhdeh60vPxyWbW7OF4LIcuQJYpcgdKn+tdpO1S6wdf/Kmq2P80+vDPN0aVRSFom1HJeoNOtyiGn9WOuyNqgt6CsU/IVkK9sk6gW7HejkGrSCWJgfEW9AKyQL6chnklyQR9dazyRa3nhHWdHQWH/zXJQd0hQIaMHW2t6OTG48BcWVg66dzWSDe8F+PNKRYnS+hqe9UHSEi73EZbOov3FT9WnwBo2/BLL7F2vfXa1Nr2JujkgmPG9jp61RVG0ylksl3X/GLnanLjyejXNVryCkk8DAsNK1pMCzTfBbDnY8q2cWbvSLZteDq0aQfuLsutt6yCfX9jIzHItj4t3FA5RPVjo2ljU8XJ+ooLJPyh9FKFyNFKbS3v3FHVOvgN16eBX6sIa6Nf0ou7+TFe0yzrxKpuRoa5WbE66Nvg6jqW4gePpWNB50h8gPAoYqbsDtRKxZMCGi4MCfG1GrSYm5GB0/tPJjQtFdKv5FOmQXAKX+9FVqANrVrwUxY5DAkAHagtcn+7tbgZJjFrHa32FBW4driZcNCwZrX70ddAu8OUKeHhsb0atISmzgBzzG2tdUr1apU6otpe9aeda0j4kkOqm1qCzQjum4CaKYjU1isgHapE8MvNgaarInUSwHiawuLGiTKl4FyREC3XvRJlHwDDBY6tf0NbawS16qEWxqosCf4pFmQbauzhBzgbjtvesqdapMVmABU01QHnVJSGkpVwWG+9C6yjZm3A8Txlu1B1YFqts7IElUi1cpRRnmZ+RjNx8NKfWw63iCeL3I5PIm1G+TqW54KlnXtr3NLdR6rCDeWJo9G4kb0KTTM6NokkmiA1Op601JjVm1WQY3UjS9j1rWhTcIpSKJl63pbbRNpq4HoOD2OooXyZR8yM/XRtV3ND3aFu7bJeM0UlgbD6UyU0BaF5HBTIvkTc0EwJtYQ8Tq24AFF2FXuqoswo0fRW5MO1T3uyRaO9oK1SQNYgg+tDKg9TFKYJ8rHkYE21HpTKXSKFVGXPG+xHkNqpTF6MnVOTcWUi/VaOQM2k5JM/wCPZW5Jfku162t5Fa37WDxc3IijsRqBW2qmep6mKuh/788sY1tQKiku0zpShr/BfITREK78kO4qX2sVZfs8/PVNwjelnjdLiQm/9tQUo0/An2VC8Gc/AOWMYOu7GnpN/J4EO1oTKsb5Ca4CgAdqXf16/Jdnml5L/wDslAHOMhvQ1K/Wb8MHWjtwmUR5+JOvAni3Y0m3r3o5+BqxaUCJsJWbxam13jyhWl+vBHMpgHO1yNDY01W78Hn6WdvAj/spiOIUhe5pi9Wq5YyvrVqpfkYjJJbYN1NZaUA38HJMWIsSzcidtaz7n4SMvq1wiGSUQyEKAw6U6mbfLF0xcyylJRLELaN6VvSGeljnNeT0mRNjeb3KVqor8Isrn9j/AJ8HIvk4JgRwIPeutg6/J6OHrdEeZ8Z14obONa1KyYvZWS5EyrFMtnNn70ysrwRJN8kKS5eExCm6E051rdFnrYpo7JmxTGxHl67UtVaPbz9bojyyxIwPKw9KJVcEvtaNsuGViBgxvc9aU87Hi+w73vCOvNjTHhfj2O5rFW1eQHk6vqSx8Em4sxYX0ptm4FWu6uDUjnjUWAFSWo2Ks7WYqeSKUELq1FSjXkPP1m2ZsxyRKB09KrrEHs541q0NRJWIJvvSbQenSyQ0pyBBHFunKurwef7m0yLkxYmPlfkeq0xXZB9jQtMT22LAbbGtekhetZ2seyAzr+PkBuayjg9S1UkAkc3t+Z09K1tSc9EqcAmGVdAxKnpR9kJpBK6SqfEm46UxNEejVnA747IyS5U9+u9L1ooG+v1rJthnIuVsTUMJFF7JsVPHyQlTZxTKPkVdSiVEJsH07GnN/g2llVQjjQIranToa5WZJro3aEMZUIuCNKxMKzhHgJBGeNjXOJCzS6ywB0vYMOtaJs5ZyYRsdRc9DW1kKyckkkTuCLAimJpHZVXlkzwFU8dPpTFYZtp/PI/FMgU8z40FoIFpPg9NBHINQDfrWduoGl/rrPyW4mJg+3fQOo6d6mtrdsmr7GlxrLBw8V171tZ+SrKj6yxUSMRbiRrvRtlWEJH/09XLyXvopBtX6PnRCNMERTNI8V+QHp1pySTEPNNQjKbMljmAJNh3p/RG/SquStPkFYXVAG60t5jVi/LZUucrAaWI3FA8yn6uD0wEy8jtXV4JrcsmVpIJAyE2pjSaOr5llX7kgPIOTfcUr60MWSbmAhlSHVhcHrWOqHZ5qeBMwlc2UkKd70PY9fLKtFLPRQmPqeY+9C/yMejtwUJI7EAm31pfU20IsjUyIQD13pT4Yq2iS5PCEx/iTempyeZrpISxqzESDWub/Ah3jhBmNV2saxORd7M80HPbQ97VytATt1QAjljtrdfSi7JkVtEHxicXsb+prJaAlnDFDYHjr3ruzNdnADukZ8rFfSiSbAVW2JfJ4uRGgK0SpPkzTKHyymKaORASeLb2pbq0xlFwMWe2luQPWhdBirBxym6mx9a1SBarESRq5YbkD7Xo04KKV6yTSwSxj/19KZWyZv8AsSSRyO1lbiTsDTU0g79a+T0cciNaZTbuK5tPwJeyXgqEYKFom17Glz+SZ2dvIEeY8UoWQ29a15prgWqcmlBk3exbkDtU16cD1wx8sEUuoPE96XW7R1rRyTPBHGCQ3Jh2pqu2Kta1kdjnVvGTUDasdGvApLngYAoPiotWDqLnkY45KLeJ70C4KYmBDxi/mOQPWmK34GJ88AhEjccV0PWtmUG22wcmZg29bSqgTtSbSLhzmU2db0Vsp8A0z/BSZVlUAmwNK6wWVziCV7q3EG9qbXk21fydRGkO2tZZwOyhM80fcaX1IrUyXbSWL9tQx43NFJK7OZZ3H5oxvfWstDJFflla5HHr96U6Sd1bFTTK5uBr3NHWkDK4E7WOhBPqKYihIB41ABtf60SZt7C3HE7b0SAYhJpPcZSPHvW9UBnRJtj1bxIv/NC0ddyN0KgXsaE1+EBzC6Fbg6XrYBSPMYzsACK5SMrRhJK4PT7VjRZnVIGR1seVz9K1Iy1X8EjsOWhJHqKajK0gJuLL4rrWFVKT5FrH7hIAN/WubgfVpeTpwJCt+QB6CuV0Tb+yo4PJj5CXFr1rsmQLRWFPO8b2N1N6JKQr0hSWw5XJCN2pToDEhpkSK4LCy1jqgISGSzhluBc9aBUEaZyIOYBuCPSj+s5ZcSEZ1kF7W0oXWCTYHGZopVkW4BOtqCJRLh5k3YckFgQeQPcVNbM9WleZKeBcEi1u1KmB9YM3Lw7ttb1NVU14J9bdWZ8kHAWW/IdhT62kTROxBmvJ1JHpTqJFd8kkFhY8OQh8AG71mlmj0/St1qBL8bLGxEbE+lEtE1yI9r2U3DGYOJKJbSkgemlBfRRwefX20nFTejlSOMIhue9R2q2+TvYvayUgNGZdb3be5rpVSWVRHlkMFg+3cV3Xt4CzTfJSWhlUFfsb0ENFdasH3F6DyB3reodk0hq5kmtzZT/NA8kIrmnaSDLfIXyia+vU0/Otfk6+NUuRP7DyL/kcA+lH0S8Imsk/CFY+eiS8W8tbA0N82yN1aZdJkI2hIAApdc4HrLryIyFB0Qjbem0/Y36+ZYqKTJiSzHTuKN1qynGqahDzHPLp7nIHWxpcpHu1VM1ECUx2RvJSB17Ux2TJrbwWFYOJMRHMUlN/JP8A1o5ZJLM4YHQHtTq1Qaylg8nkNt77ChfCPTxzSZyTCMn5eJHahpcp33VUJbHWLRjeqFaTxttXY8kJLAg3ToK52E0tDOFZRITH42reI5Ns1VtvyF5MVLb9aWzytL9rSVxSojjmTx23oHVvwOpLtwMeeBJLrcA9elCqtrk9THB9pZPmZDo3IEEEaWrc0og9OvrJuRWPnzKw5Jde9HbJMDSFwmaCSQ5PUhh0NKadTytLTaCXIlaElQSLdqbWvYG+TZ7HyFlGrnl2NZekFONelfBpwRxvGQdO99amu2mD9si5MZQCASaKtzL2cQdSNgvmulc7L4Fq88Iz8sGNgyg271RnyLvSCUzsWJTQ9zTOo2uSquTTwcyWSMCQjTrUuuaT4G5w1wUPxJuCDS6jNOBEjqq7HSmVUsS6PrIq/MAg3WmeBNUk5OGF7+I0ruyOtdSNhDapsaG35M7cQcYkHziv61y/TAqo5kGZYSLgca2rY28i1hkueNip60TsjFZLyC8bqv4gW610pkW15EJyXUWYGiEU4Q2cI8d/x4i5HS9LlifYtIGLw4EKdaKGUelm2uRhkZALtp2rYktup4Q2LJa91OnahtQ7OnJ//9TWMnuqQT5AV+jKsAaxyTJBNsyXB6012RPnZVXnlkvyHxzSr4jUbWo89BtoS5MtVlhPFhqO9USmHRzyWwy3W/Ea0poK1wxM0YII09a6JF1pwDJllbKxuh9K5VGfR8CXyUH4gn6V0F2eDJ1zctXsgYj1rrJMqzwrXll8Gc7KBItiNTSXnAxrs+B0eRI8lkYj0oHXgJpUfJVH7rbgAigtCFUabk6kssTatpfat6poRo5YbZjBtFNbXPgj3pyN/ZEiq2x9KzpAl1hINZomtb70PVoFpqGxolVT4kn0oepNebMCSaS+mx6VtaoG2aRxDe99K1iZhDlROO9xtYUttg0bsKliAJuLLvR1sUP+RLxoG0trRpslu27f5A8Fa1rjvReS3OrR5pQr2vYVyUoO1YY2OSMsL+QobJiqy7BuwW9hoTQpSOdQQ9zZutbAxLqLaKNjpckUXZnn66Ns8YQ4KliLV3aBNrnExypup/mud5OpcVkwry8tSaOtg7ceD0drKFNiK5jKvxJWFdk0fUdKTwmNlM4Gl/u29a2EKvZIUyb8NT/5o0/yBWsLk7Hkuo4sCPWsdCjLOeRyTAi5kuO1Ldf0U1r+Ed90cTZrDvXdQWutWyhYlZVPINpS3aAK2mBGTjllJAvajzuFtbgQmM56fzTHdCsrJs88M6EHjoD/AErFZM9JtJB2vr/NcuBF7S5GQ+JuN/WhtyJtpCKlu2hAsaS+CR2SFy4/A3BWtV5JdbtuETyKT1p1WFSsCwinQmikooA68T6UScjzihifSubBdkjpAHrXC3zyzkkBZb7/AErlYYnKIZcdw1zpTlYDspFK24vr60R1VIS5VrK2461nQZ0Gh+ZsdB0rIgG0IdHGoGpBoGzc7Nh8Qp0F6GSpS2dCKx1G/SukG1uYQuXHANwTp0olc2vNhBjPeiksdutSjGEBBJB5dzQXk8y+9nJoRwQOljv6VNa7TINN2+EcbFUaA7US0YzGfklzcL3oiLWddqbnpDKdH/JBBjSpuvpTndMnruisY5bS9Ld4MvqkG2JIFudBQrRGLRRIt8UcNPIGiVzXfgzZrwXNjajblHn7NwPxsy1hbxPeg+szDHk0IslyviunQ0Loj2M80lyymDLlQ7m9KvmmMVU+BkmeZRZ01HWgrh18E1sE2S+7JJJZF16U7qkuTq5pW5F5ODNMpDx697UVNUvkfa9fgggx8nEmFxyW/SnWsrI6myqXtLaYgpobb1NbweX7+v8AbhjSI2HkLW7UNU0BhTqp+RyrEVHEiw3rG2OtZ/PkHkhayC1utdD+RfVu3J1pJB4mPkp70SqvyXVzS+QAfEGxW1aymi61kbHdgSjAsOlBb9ktrdmEupAlFu9qx8eA6tVXAcmJHwYpue9AtHPIjTR3MvISMbjWq6NmVo0jFz2MUylL8RVFVIN8f6TZTDlQsV91zbsay1X8DuXZQg58mOFrp5ofWsVW/JQ8LWfJyD5D/IOVyh3FbbPgdTNVZt4UsEv4A3qLWrR32N25HyQLL4hzcUFbQA3zyITCaMk8v5o3rIeWkgmCJvGU2PpW9n5Q+jfhCjjlGBiNwNBW9p8llXClj7MV13FAuCbfTtIDxhxZluD1o1aCDS8eCZ8SxuhNuwpq0/Jyv1rLCZZFS9r30vQppkt7duSUO6k+PJe5o0pJsqdmBKylNWt2piPZzy60ksxFR0C8rg96Ro2ivG0lbfGEqCNVPepqa8lfse0q1gWvxtiQLk9ulPex5C3drEE8WZBNpsDsKfW1bIZSlU5Y15HlS5YK3UGgSgbdJ8kzJIGuoG+4piaA1sqotwpsmxF9KTrWoHrdXLZTLLMtzYm/al0qgt0mex8meQAN4jua6+aQFFWlf2UrB7y2Vg1Ld+oilpfJnZWL7bbXqjO8jLNtiIY8gOR/YelHdqCr1+tSkCwF2sBvSztdPkrVI2jJDX01vSm2mJ7OxL7LI546r2FN7SI7JHQHU/8Agmu4FNywmlQMLjXvWJBOrkItyYDl4msiBqqk5BaEKRzfkp6VytIOmnMJHA6RMbi61rTZM5bPO8TnS4DdKyGhGvAhhChH/rsKJSxVa2s4M7L+SReQBO+o+lPpiUr0nEsXh/IQEcgPLreitmyr1cXBYvtzqPIXPRaDlDL2hQgQJIW8QbX61vDBX7P/1dX3wgF1Fm6iv0frJFZN/wDk9+2C4Ut4nQV318BrJVcsOZEKFkY3HWhq3PIyHaW/gzM7Fb2zJx5A1RS/MDqU7LgxHyJYmHEWF6pSk22SSLIsxXXz6i9BasDccuz4ETiZ1FgStZV8l7rWlZZ2KMoLlvtW2Bpd28DGkkcFUXWgQ90S8hYyT+6PcGldZJoWtqp8FrkKfAeVKXg5p2csbjmZjctxPY0NkgXpVFqY7PoPy7ml9oItNkNbGYMOXbXtWK/BFrtNkGmMjG1r1juD9sHWw41HkOIGxFYtH8C7bP4B9uNWsh5drVstmKfkJo76E2ArFYVvpHBwBVBtqK6ZJHZsoxpEKEXB9KVdMp9SjYMvEkqRa9HUouuYIJ8chw1iU7CqK24Mr/smL9r0sDrY1vYenJ4sikcwLGugVpZtnVaFWuNr1zTOomiuNYnQkG59aS20w+zaYZhjkW6aOtYrNPky9m0RtK6OQ62tTlWfBDZRyGZUtcafWh6sU6tnllD6De1d1goyzBdGk0tt1ok4C1skcTGKqbNb1rncTW8jFl9oi68h3oXWSlJwE0yS+P4msVWgXTrywHQKCQbEbUScmVTuxbZB05JcHrWqpdXOEFGATdeveusb36rkoGOGiKnfpSu8MmenZQCiTR2DA2HWts0ynGIQUksg1UnWsrVAbKRC5Eqya39KY6JoHLJJlLzsQLeXpSa1Lb0QnnqTsL02CW7gIEdSCP60JLewxXAOl6Fom0sUWVgPE3pUsGssQ4IYjja1NRRWnMExNyRcL0po5LryMRCRY2YULYDuA4KnyFh2rU5FtwEFLRkroKyeQqKRYd1uAaOExsAGSPkA5rYfwJ6t2hEmTEOfJfxplHwUKvVijilm8T9qPud3TYtVlifz2rpTJb6S+C2P2ivKluSnNuOCqJY5IzY/xSrSmOrZqoD4pUo8cn1BrVf4YjTTxwVR4zSg2P2pVrwU5aJAyYTxi5GnetrqmTex7EnIcSNgeR3rLas8r72+EEsUiNZDe1Z2T8hZ+eSlBKRZv60Dj4LqNI8zFQdbg10SK05JG1e3T0pq4JmlU7a3kpII9KGZEtzyUrcp5LyFA/JRXwKdX42G3SjTRrSSIMrFDo1yNaJXPP0vPggbHCAEAkCqq2Lcf5rJbjMQgte9LsizP+oRSjSu1gLEdaW4RTZ1oPggl9y0psGpd9FHB52nsqrheWUyY6xuGiH3FJrefIpt2tyM9yV0IdSbVnVJ8FmdFEkWTjFrGNShGt2p9bx5FbWS8kciP7y83BI1P2rpl8Hk2t30KoODtxJFZZtFbvzA328cAltBtpQp2GUdkpEO8MMvgeQO1MVW1yFTK1rHcjIZiP7R1tW0pB6muSokEkjCPlfkvc1zRNpeKjMebC3J8uoFKtW4j1qXswJ8iDkQpse1HSjK7YWdoJxkFmvyJFN6BqiTAmRWP/zW1YFlzBnZ6RD/AJNb0+k/AnerbSRmNLiI5ubgU5JlGWV1yUxzYLx+Js1C05KWr9TnNNkINu1bAvq15CxPlmx5Rc2F9qG+XZAUyacm3/3GPwEkY8jUn0Pwxr9a1ufgox/lIZxY/nSr4uo3H15cfALxyztopHrWqyRU3TPlh/pSpHq9rdqFaJsD7e/wTPLPHqpLA96eqpiNKqBZzJmbiToOgolmhDzrXkZ7icN7Eb0MMlvNhMmW0KajmholnIF8pqTrlF+QVdDR9IHet66qm2OGOssOoAboRQ9oZWr9lCAxknhcBxyXoaK8NBU0VUbkEz+2ADpfrUFqKRej78fsmmzclJrADQ7im1zq0HX1aqwMuSZt1A71tKdRulEmIGLI2oAtvemO6FfYqoCSLjcMR6WokyS9nZiY8iSJrIPuaJ1TKc8+teS8ZBkUcrX7CkdICvDiD0crCS2nEd6114Irf7Qd/biVrkkDrxoXm2VZZOq7DpfZkj5Rm/13oKtp8jOjt5MueWeKT8dOpqqqTQ95qoxXeWM32PahiGJbUHI5Ghe1yQdxWtdgRv7aqxBNgaH6yW2bbZxsqFmB3HpXKjOebTGr7cmxt1NC5R3yH7Sgi5uDWdjrXbZ6RIeJIvcdaxNmXbiT0EKSAre5Nde8Eq1jgnyYPbbxOoo6WkHq2+SQ3fQmxp3g9H1MkuWQ5uAoT3OpNMpcL2dW1wIgxYje7a2v6UbsB6+jfCOR5Jik4nxt/dWusmdeeTUx8t5IyCwIvSLUSYtwk2f/1lYvyf7KLsB2r9RtnBqpWqTKfcVVBIO+9BAiHdyU4+cnFgGvfpal2z5GdXDRZG/uIQ40NIuofBVhVKrMvL+PjcERjU1VTT8kd7NuCHGxQJeBU321pt3wVY6dOGXHBdSF5WBG1KV0dpt2skTPCI3tck1zvKPR9bMknXJR7x6UdGmg9Ynk5GuVJIObcaNxBOr0VuC7HTibEk+ppTQvXeWWRywg2GjdzQOrItrtKWasTAoG0b6VNZHn20nkqQJLHsARSXNWZVyhD+LW2+lMXKNfHI5OJHkCR3oHINXLFzQkEFNB6UVLfkO7gUSSNdaIi0sdVmA4lfGsaE+B8MUIBIFietLtZno+rMMGX2u9jteirIzSYB3HidO9EZSv5FfrsTrrfqaLua9Ejn6CtYGxINb90E9t/g6MCyNpuaz7uTa6yoFjGZeugou8lS061DVWW9tvSsbkCr8tiZ1vuNe5o6sj2Z6LHRgQQCelY7sXTRsJccgX/EDTSudx60hfs61xov8ANYT2UvkWZVVrOpai6/gpyzZ142ceAsvauTgrcVUsTLA0YDaijVpJr37cj8XiykM1796Xcb67kY+KbC2o7UKuM01SR1IigsVFj1rnaSN6duAveK6WH1rOslOWRw5dtDr9azoW0xEPKzP4bUxVhAXouwPCUsDy+oopUG0jsM9pjrqKBMdpohbxFOtwaNWkivaQQLkAGxrW4JdtFUo42GpuaVMkVrdh8QYgG+1A2VZM9KHJN10PWurBdWqXJK6LfU/0pqYi7ZxPcB8SAPWtcC00vIUh4rdzWLnwZblcAwZTceKoSp6mutmP9fJVrLfJ14yx5D+K1ODNLJHI8QuwB09TXW0gVXZVCfD9vS4t3NYtJNto2TMoifSxBpicinMiJ+PPYfSjqY6QzsEh4MpW+uldZFeFf5Y6JrnxFj2obIYnHLHAurDQE+tA+SPS0sux5mAvxAv2qe9EanwVGRHjIZeR9an6tPgl1lqEQslm00Hanp8E6io6MHowvQsPPljLWcE/xWfBYnzwcmicjlx09K2tkddpIjl8PLYimLk8+82YK5I2uK10BtWEaEEZaMEAEHrU1rpDK6JVH/rgLqQRbakvWXwItq34I5MZXYoielzT6Wjls3KkPkzsj490ktysTVddk0U3vzAuOExyWZjamu0osytDCkyDjygprQ9Oy5F+wm3L8FuPkjIZTJ4kVLanXwecmu3BWs8SEqZLi9LdG/gqpSzfgaJYCN9+tC62RRpNKwdyUx2jJJvppago7SS6K1vBjMkchI26VdSaisM+vL8kTAxSGw61QuR1KuZZbA0UiEPoKVaV4LfXTsyLIxJEflE5Me+lOron5LlFeWOjjmZSB260LaQjXZN8nL5Cr7bghe9d/PkTbqq/sFAIiWuLHrWvkt9LN8sVPLDfnyuT1NbVPwXvNrknR2vdW8Ka0R1STljEEwYFTcHe9C4EXup5GZGIJh5G7DpWVvBrsQSfExuDcW9RTVqHTYjb4OS9o5CR22ovtRRX2UvKEPgZ0D3UXHejV0xb1rZycLy384zcmxNaZdr4ZpYcZ4eNiLdaTdja6yoK8VPK97H0pdza69Ua8U0gWykm3SpXVCL/ANvkcckCxdTek9PwXUz448CMiGSUcoyABrTqWjhiNHWql/BI8JUBmBv1IpyseZpr25PGFeF1kuT0NcrfoOk9fAmSNjGQaNPkNx1ERxupsCeJo2wO8cfkZHPHGeIYk7WoXVsqzo4D/e4trb0rPrFfT2sNjznMnidBS758F3r+uu3J6bJl91WB+t6zOqiB+1F2R05Ck3a+tEqEe/6D98BtGNvWs6iLU5OOyyncAnrXJQdavUGZQq3bW1bVnXlrg7DmR8bBb2rrUZ1M3HIqTJBlvw021olXg6uMWkaZYLXNgOwoEmVWrZ8IBMllNo/w711qyU55Kq5PZGYnAhjc9q6lAdcXbkij+TZG48Txp7zknrhDGyZMjaqBY7UNam65oX7imSz6GijgVbh8BLkpHuLrXOsk1k2xifJwJJYdRQPJtG/RZPkpX5SAkAgk0DxZzwchn5SD27W/pQ/S5Ot69upMvySF+UdwdrUz6vyIw9b+uzOT52QdlFdXNFd/XqAmXkW/4gO5FE6L8jFSqr5Gf45oWWQG7bUPKfBPVd5S8GNPh5UTFkNl6XqhWTLMKVpWWQ5GPkte45EdRTE0FbqSR/IZWHLZlPHqDWtSR75p+D//18UwvjMSjAAHav1eZJrXcNG18fM2RDYi5qfRQxuFkqyN/TZQDysDrWdzFpJRGwjiN5Ta21Jvyz08Kt18Ekk8pN0bS2lqckhayScskkyZA4O7d6aqoS8pcjP25ncXa1u1LdUkW5Y17Jj0HPUn11pKRVrpCKBFDLCbGzr1rZaZ5t7uyZM6SAnqRtTpFVSOxpkSG3EC3fSsbSAvpWvPyVCOCw5L5217Uptnl77WuyjGlKngGHE9KC9Tq8eSyJJVa5bip7UmzQ2t1VFLxpYcrn1pSsxVrOzEpZWNibGjfIVFBQWQLdvIDtS4c8GXbt4I8iZUe4Wy06tGyW+TmQVyVJsSB6VzzApm3YrgKMe4OlKumeri+pyaGJSASARraupZszSW4/AsNGt76GmNMFJs8zMQDfQbV0CbcgCUlhuDW9RXXlHVmZSbgnrWOqY+lApnVk5L03rKKHBRbPgQuRGBqSD60x0YmyYMsgkFkNya1VjyS6U+CQTTpLYDQ03qmg6UrUb+1KujmwofrTNdEEuQzN0IrHRIymakL2RIdNe4rO0FDtDg9aaNSBcLW8MGzTR4u5jCsOQPeshSJ0hVgOFYVPkPsKG0sd68hPPGini32NcqNm3o2KGSTYhrii6HUySGXD246mg8F+dfyKkjKN5jatq58FVnHCJZZyt7Gw7U+tRP1fJ6KQuOQbXausoOqMMspFuRNqFJGawkPhdmVgV22obIgdk5EysoYC1q1I8/WWwo54zdTpXOjCpQfjyFG/Lx7UFqyPz4NFCroAbWqVqGUNwkKlwjbkp060VdiW+nyL/V463670X2yT/ZI4YSSABjy+tA9oHPaDsfxYDWvb0rH7INPZ5OPhPG2tiK5bKwrTbs4QLJC1uWhHaiTaCpK5OtDEy2JuK5XaKU2RT4kI1DXtVFdGLtZsnlx1I3APSmKxtmDFCCtj4+ta7FGVoqEiBDa/Id6xuSe122MuLakUDFXsVwe4yeNh2pNo+TqNM7/nDXYXH8VjdQNL1XgYLMLcbEUsk8g8pY3B46HqaNJNFVKpFCurb2NLagf+kdd2EZA2rFXkG6/klkid0J43FNrZITVJIhkxrakHtYUx6kW2v4LMSRli4h7KOhpN6z8G0fHJXB+0T/AIxyB60m3ReQs3WeT00WZyBsQaKlqFedKzJn5n7PIc1II61Xmq/BSsquxE3uSGxuLdTpT+EPu65qWUrgwyw+J/yDcmpr7tM8b2fbdlAtIZIzblcrpR1aak31K/LKI1e+ugrm0ekrpDS2OALilxZidHawa5EeiroD3rOj+RqyfCZm5srRNzU3W/Sqc6yZbCORD5MT27nemKjRtcW7IkDyo53KMb+lMhM9XHNZorjymVTbVaW6E239At8iySAhNPrW/VIr6IcyVLkLOB5Wa21KdeoFM+94FGIubEcvpXOx7uSVVAjIxEH5+PoaPOx3s6tKESBI0Ngbj0p8yeZezShlEZLKOJ2oGTL+vI7hM40JBoZSKpqkJLzwOeQuvWihMXaEPMqsLpZrbihgF1bYqR+W412Aokg60lmfk47S3UGx6WptbQPrRLyZy4/yGNKStyKZKYb1pU1MXMygAWAJG4pVqImmtvBqY2fchuJU9amvnwNxz7WLrrNpyue1SqVyepq1X+UAQ0LMDfiacuTyt7y2hZyCFsUuvei6EDpweZ4Sq3U6jpXJMrrRqqETlVS4NvSmV8nOj6kkjSl7g3UCmJIPPOqcv8HYuDgKNZPWufAUuzgVkQMJbsLDuK2lpRTdqr4DhhAN0JoLOR+d4UstWGOZNbhh1pTbqwe8kU8U6AjcA6U+tkxVog5DLNcgqCOl962yQhRP7HftQkAOOLDag6MXaln4CkniksoNx1oUmj0Fj1SkgYwwy6vYH1p/lCkrdvB05EJf/kuO16xJwFajT8DA2MBcEkdqByU5UszjOzoeBKrehXko6pLk77PKxYi+571q4F6aihAFk139abPB5ttP6KIn4PYr/wDFA0T3u3YdN+u4BHiwG1DWUddPycjw45RZ5LVzu0IW8fA3/qMXRuVyval/exGnuXs+Pge2BESCmh2FYtWNezXLGn4sSIQEsbfkaD74Y3/ohEi/ENGdfId70370xOW8uEdnw4hrci3Q11bsq31Y6HH5xEIRfpQWvDJK6dlBO0U8bfhyPemKyZVSEoka0ImhPMcWHSg7Qx3aawjPyMV0YMo061RW8ib2+SLKwMeZWvYue9ErMi00dnCP/9BGZHHyJAuSK/UqNkm1XMEUeZJiSGxPHtRuqaHev68/4Ko/lsp/7AwPXtS3mi7P1qJxJQuTID5qGB7UnrJ6TVaVhAysiKxF1vTETfW2QzZF/wADt1NMRv0/k5HN15C9Y0N8IsTIDR66MO1B1hi2pUnYsqRGtqdb0TqmS2SXBXHlK29wTQOhLrwigOdGYXHU0EHmXtzJ0shF11NZDFdX5Z3mg1AAO1ZDNcmhjvI6WH49KRdJM7svBQlyOJalMemqo5yMTAMOS962OyFpNsB5ZFNgPA1qqmUvNVRPkIrL67702rZNvyoJUTnfSzDc02YCwXVSNikaE3S511vQWU+SrGru5Y6WcyAllsT1pdKQVb1S4R6MyFbgXvROCNNMUZDG55Xa+woolAqsuETSZbAgqpGtMVAbYwpZZDOZUuwIpNqwx2NV5O2IAsSTXDLuKwHHAkl+YF6G12vBB9svgRkYZUq6HSmU0nyY7RDYt1I2OvSiTAjszhYFgGW9cFq44Q6GFWOigUFrQBTSPI79d1IKn+KDuhlLSwXEguDqO1EoGOELC621tWyTV/uxxo5F1GoNamj0qpJHjByS7re+9d2hmPTjgSY416tbtRy2dSWMSVgPE6DtS7o9DDOfJ6T/ACC4J5UC4LOssjfHZx/7Cqa2gm20SUARwZEbXLeJPaidkxGeiXI8FgRahJPY05H47TAnTTrpS7wee9EpKfZWRbkWNJ7QTVtLkQ0BU3Cga701WGSOg5Xs1rH0oLQHWyLVXioKkGp2/wAh6acFSM/HUXB60iyUkyasIdXG1iKbWA1VIUsxQ2J17UTpItqRv7N9De4ofrKFn1QRUuOQY/SsTgW2gWhktvRK6GVagW3NG1FxRqGUJCmIYEA70aA6ks8bWvy19BTas1oRFO3HjexHejdQ6Uiv7BvdjbetZPo44Gear5AGg4ZNZzwh0GQBYgWtQWoMooQ8zs5AXekuqXkl3hPkdA7iXi6E362pdko4YGSTvA2aJ2BBBt0rq2SPShLgQqEOAb+tNduAe8QPCmO3JvE70l2nwT7azwgzPBED/ep7UH12t+hSpa3+DPyZyxJjGlUZ5R5AXrpPkg/YkhbzXQnenXSjgXvZUrwbXx/ycKA8ybdNK86/rWt4Eetnazk1o8zHyI7L+XQ1K8LUfJ7vreq2uTM+Rx52BIJ020q/19KnqPKtamQ8MbxguWDg/Sre7XjweH7G7sp+BEMxjchmJF9KFU7Hn40d7SUtOp1UEHrRqh6tcjq5LlLsdB061zopKMMu3JHPkC90JB7GnVr+R1sY8hx/JPoH6aULxRtMfkbKwmjOniRQpQxjojN/Q5E8ZLCqPsNy0VVLQyHHmhcJIeSHqaG1k/BPp7M2HtiqDv40CucrQBLixcTY3PpRK7M0u2gcXCZz5C1juN6694HetsqePJoxwGLVSSL7VNa0ldNHdydyovc1Ka9CazK0B+w15M2SBlIuo+1VKx42uks7jMY5iu61luRVObQWe5yAsLWpcFNuEMlhWaH1oa2hh5qVJjTwtDN43F6rraUPtw+RsaOR/k262oW/wYtF8DJcOEgOhIPc0Ku/B2mr8imUWIUhn7Vsnn6N2fIAhEjAsOB2NqLtA1XVYSKsf42VmNnuN9aVpqoPR9batPPksGM0Ti2rW1tSeyaG32drSLyPfDG4/mjpECdUpJbyg2Y3U9qbwT5UVrQgX98EXF0O1bWCra1VwVxYqvb/AGnfrSneCW/sS4BlwAhbzt2FbXWQu7c8E/6xJ5Aajc0zsMxfyG8XuIPIX9aFOBtn2YAay+RBYbW0rWhtZaOxy62YkVlkHVdUOdYHHix59qGsom3s2TsJQ2q8RtqN6YoEUSXIidYwLtv2Irex6HrYuzkjneeQAKAi+mldXyeq860UvyTx4cjN56r/ADTpILeykxj/AByLqptXKwl7NspxYOH52499zSr8lWevHBTDZTxjPJepNA+QHaPIZuhJIGvrWolu+zhCZmkkPilrUdeBd6JfIkc33uGB2FGIpHkbxaxupFCDvrwMileFw3Hx6mgspPMvaWaGLkQSlgDvvU96tGU/mWzRgx8RlXkTcdalvpeeCe3sXsWJJjKtr/8Amkut2OpW7UsBsWKR7obk60S1aXJVn/LgkzMN0U80BHc0/LVPwzd7yoRLiy46uo5FftpTr1tAHq1tKHTKW/4TyJoKuPJZpWPIMJkV7SLW2hrgDuphA5KjnYWUEX1raPgzWsODHyPYST16kVXWRKztJ//RtzPio2YcDc1+lZ7fkk00hqSU/DT2IZOQPUimfeirDasEsfxphl/yaLvRvSVwNy9hu3BcqwlAqMB3tSeZKNLuOR/6MUkepuaTbRplON31kzcj49Y2NlvVVLyLvo/LPR4UbqPEX+la7QTW9hvgYuL7fTSs7Sa9eDrQxam9mHWuTJbXbAdrJvc+lEifXwFj5E7j2jcetZaqXJMlWq58j/aa1+RDUHYF34D4Oi8mI49zQtoVfTjgs+NmBfiH5CkaoRjb+uTRmSQ/gp160itl8np9UuWT/wCa9rXI703gZnVNyzz47yDzuPSsrdILfZJcHBgqVsb/AFrfuPPtu3wJaMxseK/c0xORudflhwxyMfEWJob2Rdi0jsnOP815VlYfgHV9vAsSEHTr0o4BpRJBFC6cjv6VkwzlbiREwcR3QA0dfPIl07CEmlDWuSf9o2o3VFiqqKCv3ZQuq0rqhGkW4RMuWwk4m6360z6+BSzVStZecVr3tSnWGKsuyOLGX7ACudoAeiqeaKx0OlD2JNb8jEkiDgXF+tY6sPKlm1Iwkhx5koe1ZHHgvShrg86kmym4NamdflwZ0j5WPKeqHvT0q2RueVZKEyWYeW3WgdIKXVPhC/2OHLifGi6yCs54BbIRwAa5VgspjEC1vyPAmsfJaoouSuIWFzp3NLfkVbSEFIAb2sfWtqeffyAsakWJomxdr9UdGPbYaULueVrtyeV3Q8LaGsaTJ+suDq5Fjxa46VvQqpTqgmdEHIkEUMNirtwNingYW3FC6WOzq1yOEkY/AUt1b8m3Tt5DjncHVjbtWPNBJKqKC0ZF7EmlQzobFSQpINrEa0ytmgqVlk0nuoPx+9NrDHX5QMU0wBs1ga21Kia1TkeuZIo8vIUt5JjlmmPMscqXG/alqrqyh1hSTlEC3It9KamxOabJ3sfxuKahjrHkTJBqH43Io1cVe/4FMj6lRb0rU0Rv+mKWR2Uq1xbejhIbWqSOLyG2tabUVLnvjyqzWC36UDy7EG1Ha/BbH8o8pDIfHvQ/86Rfn69acvyamLK01rG5661LpVVC7qeQpYXVuVyB1oa3TEP+rcEGXKFbckd6qzqVWxjkmWR7cQSRTGkH1Va8grJNG3lqprGkyBtO3BH8hkx28WP09ax0ZB7lHI7DykMXFmN+l6P64PR9DB9S/Fynjk0a/YUrTNNHs8UR9Fi50M0PGSyvtevH19e1bSvBJrZ3rCMv5WBVBKm4O1W4WbR5W+TSgxnWMi5axFX0kZ6+bg5y8TbW/Wjg9GteD0EUjgqL1l2kWYOtawBkYTlb9QfvRU0Rl9FBMYWjBN+K0ztJnbgpxZltYtcdqXepmbAlkaNvBTxPWtqpB0pHkW08xII1A3ouqJuimR6Sta7DfoaB1GWagfHJGwI4gHrQNNCYb4k5FMqyEcSL1zrwHjRyy2KRuJsN6Rep6OdVAWQ54eYuKHNfg3dSuDHy5uLnifGraV4IL4w5ZH7jNqSQe4psQLqlRT8l8ORaIC/I96S68mUo7jFzXBA202FA6I9fH10hORNIxvYadDvTKVSJvYqnYRBl2biw0O9HahPHVGljvCUIOtTWTkmTtbgB8eOWTxsh71qu0hdr9bfkTJiyIbhxYa3o1dM5OX4HY2ceQQ2v1NDfLg9HLOIbNESgkE6juKmdeB0TeEJyWLXtsRRZ8DXlzBiTNkwyHUsp/pVtYaGLJUUHjlMwsWPGtVCXaqfAuP5I48tixtvWvKUJrg3YvX5eCeEqSQ4qd5OrL8/VcEbzuSTGTftTkh1cVVciP3Y01kkKsNx0o+pyys1whqfJYDaaM3e9A6ML6b+BgYSm8Z4AdtaxKPIvWyr55HrHIhDDz9dqyUzzrX+y0AyZkzDgQPqa5US5LaetVeTkcMbseZv9KXZs9St/rqUfq4sMfIqCvcmuTbcHk+x7N7Js6IIWUlLFD0FF2fyQ0s15A/X4iyJf613f8lGadnDZPJDOLl/x6BRW9kz08+tVwLMEgPJQbeugo00T7apFuJEkgCsBzHal3cEX3/A+TFXcAXPQ0CuI00bEnFlCk8dPQUfdA5NMindox5ISKalIrZT4A99ZDpp6VvWBXSDsOSkfLUhqC1WyS0uS6LPdlADUv6kirD10lLHjMF+LEk9hQ/WX/WPhynD3jNiOhNLtmo5AVe1ik5/vRlJt/SlLHq5QzTJJcEkaY7SEAWI705uyRJWzoXwiGN/yCjapbuzRPpta1yp4FkAK2t3pSvHkfV9eX5Al+Ljm4nQm2pra+y6jVtNkzJzPhVTyOov0q3P2pFX3bfB//9L6Cfi6/wCNrV+g048nn7L8gRZDIxUm+mt621JQ7DKbEWYlyW43vTc7Hp54qqIpOYOgC/Sn1OupcFeM7MABe9T3qV9klA2UW/L+K2h5/s3nwLi4lvFaNkKcPkrXGVwRa7f0pLvAT1ngnl+OlNxbT0pldkE9VVEr4fAiwN6YtJIddmxbI/K6mxHStTJ/LCGRJtxsw713VDnRMF8iRfyjDj1rei/Jl6LwmIXMljlDonEX2Wt+tNci6Zpctn0eL8rNxjLLdSO1QaeuuSt1TaZopJBIeQ0brfSpbVsuDOXaELllYgo23QijrX5B0okiNnlB8O3Wnqq+TfWwTcslkzSrASi/enLP8Ff0y1HgBfkYo2/Lj6VrybDrjYbLmLIDxe4PegrnA7TGF4Ee+FGi8j1pvUmvVtFEE6kWY8Qf7aXaohv4QbxQm/lYUKsxymqFyRKFBT+golb8irNtSw4Y2ca6/WhtaAKaLyelxC1jYb/euWkE2uvyNxsJmBsbEdKXfZIVT2DkmOYZLtqDuK5advAt3bfAuZI5DZbgdqOra8jFWHLENH7LB+HIbWpqt2KsU7Wk42aYjz4kJ1Fas54Kb5xyUwfJxs3jYAjqKTfBiHm0+SqWKHIjuGF7aik1s6sqpUzHxGicsCXHaq1pKDpbkU8R5a0XYqzXIkx+YvfTpWp8FFrQymOV06ADtQOqI97mtiiGeMBxrUmk1fBMtnHA3/rQxPG1qD/ojyJt7EMQ+IIiAVA9aP7ZPP8AY3Z5lAt6VleSelW2TyIXYEdKdXgopVJk88MgYWG9NrZDdrJBpFcaqLmgdyZ6duPgL2HIPEcTXd0OVkkNihmBBOooHerFrRNlHsjQ9DSbaC9ty7HWNRYtpUt7N/BlLt8DTCpXlGL0Ku04ZblWKyyebGuux+9Pppya3KM848qtbS1VLRMGrSOnHlAJvcVyuiqjUHrEIdwa75HL+lBOTkXsx8e1MSQ6K0R0I1q6SLS8nefh+RFt6xoj0fBzwNmQjl1vXKfkzOj+SWZZXDWGtOrCH9Ukycgj8jZhRyDZ8CpIIpCpcg3ruzRNa8RA6HGSP8TpQ20ZttmlyaGMWjcFdRtYVNeGuRddOZZqKrcOT7dqlbXweh6tZ5RJnYpkTwXTvT8dI8l2lUlyZLo0RPX0q1OSDS3ZwJ95+YBBINF1QtUVSfLUNcrYH1oPLPM1/ux2CKR0FmJcdAKc2ke96kKqQ79iWFhz8RQ9Uxmv9Pgvxc25FjyBpF8wUoLndZ0IG+1qnVerE6V7MzDjnmVO1VduAeyoFHBHG6jT1vWO7Yv7LNpFIeC5sOJHY0tpluVLNiMie1wF69aOtSp4NuDGz/kJFNhHf1p+aR6C9BR5Mn/s80NdEsRVHVMyvq0r5Y5fnMkMonGlZ9SIfapX4NLHy4HHKx1pdqs8yG3BSeUi8QpsNjQeBzSov2ComjbkulbwwM4blhrksjAuLg70LpI/POXwMHyCp/cd9qW85PUz9dwdk+Rurcm09aGucMc8JkzsrOQa8SarpQ832MWxK5aSiwPH0ousEX1S4Fc5kOj6epreD08clVeBwzEVeRfypfXkstV9ZKYJo8pQQw5Deua6nk2vHJyWF1HIDS9Z2PO30+SnH4FDdiGoLBYtwC+akGShexWs+ttCb52eigrEkOS54WAPSgh1Rfll1tyTZMX67iRlLAdBTK2lQUUra9uBUfzBjfxVgnY11spRfT1uvLK1+SMgHQelJ+ob9Sqp+Q3RJ1sGubbVybqIiWY0sMsUuwKk7XqxNNEN2ux54g2pXUeldMDqKXwLWyvZLk9rVjfB6Wdfz4CkTJLX5+2Kyvg29qpyMb4KXIi5F+ROtL+2GEvaqlwiOL41opSGiuR2qjsmiB+23byPWZoHsPEE6isiUQe1Y1cV2lYFRyB3vtU+ihBeqknLKBjIW80saX2hFK0drcMJlCN4R3FDTlcs32tP2PWGBksyC56GhdmmQ30bUfBM2HNHcwkL6U1aJ+QatKvI2GHKUqXUFTvQXtWOCjHSsqClcWHqfI9KT3Yeu7fC8CsnFKjy/HfamU0kmbnwZbtNHJygHH1qpJNcg1olzYpjzFKj3bs460t5/gVZO/C4Q6OYspu1x2oHUbSqrURPCGBAJPpTK2gRfhELYdgSu/YUxXklV+3BDKkok4seI7UxQE1VOB0cMjDR7EVzseli1+Dk07xjUnkOorkky22co7Bms4BB8qy1TcMV5Hft5W5GlCqIDfqhqfIgE8jrQvI8jSjbcFkfyWO7C7D6Up5NHfU0zQizxG4Ct49qnvjIOqcwamN8hG5AbS9Raeu14NypyDmewUZuVra2rce0wU1wcNwf/9PXlieOYqW+1fo1bJqSa3N/AFvO5O9c/BbmuvJUMP3IQQ1/SkfZFh32zUjmxWBsReqK3kW7RyMxoY/91iOlZezF12bY54FIItcnagrYTreSRo3R7bW2ApyaZG3LgdFkShtVNu9BaiGJJMq9xnBK0nqkL1aEzLIRtajq0SwvJDLG0T8wOQ6in1cgJSwJAsoDKOJ62NEuCqOqkD22VbklgfSumRFX25JZ3ljuALqewpiSYVs1HJofGThk4s9mHQ0jVC/t4g38KESKOYJv1rz9bx4HevtB3Ib2jxVayi7csprg72mxEzZDk8Ra1UJJF1aUoufgWcNnIVhvuaP7IQK0XZEc3w3GQ6chTKbyht/YhwEuEAl9rVv2cibbuxwxMRZDc1vb8ibOfJNyljls33vTOGgYUwWpOrKL696S6wM0YfuWut/E0MCNOEdhco1luayynyRNlYnS456a1LdP4PP9nTmEXY0sYJZACDprUt6v5J85mWVj9eXTivPtSYtX54K86tkeVjIH0UKarz0bQ+1XKQgwFjxNjTu8Ho5xVQR5fxjqCeV1PSn57ph30lQjO4iOUXsABbtVHlCqy7luPk4qkld7UjSlj0cKXs/0LlyTeytodqKtRywgT7xJ/wBaLqOrSOQ+IkUkEhhXeCe95lgSRsAOpo0yLe8oownkDWJ4gdKVqkTLRLhGlHkONeVqltmgIXkHKmZ131rc6JCb4zyyRJiPyFwetOdDKoYG5G67UL4Os1UZMimG+tx1FLq3Im82RGHkQ3F+NP6pmZ0Q1Zptu9BaqM1dUinHd1G/L0pFkmT0cjXklKgsLL2FBWi+Dei+ABKb+JsDprTen5PRxyVVLKsczW8Dcjek6dfkZa6iGVQzP+MguamvReUTynwgZhDyN0N6KnaPJl00EII5IvHxYdKx6Or5K8P9eSN8ZlJAGvqKpWqZVRwhUkW10BNHW37F7X/Yh47E+FxTVb9k/lkkoJ02HbanVMdUhcalDdTc0TcmVchSTyg2bb02rFVB3qkKkeNlJtr3okmItVkks+PdQH8h0tR9bE96W4DOQtxqVrOhzzdrQAPkmjl4hiRWvFMK2E2g3Pj8xpUCtYXqLfKPB7nrqtKwWFSrWZvEjSkJyuANLTYy86JVe42PWrcrSie9I5M6aEFL+4b76VQrfons5XgyzJxNiSfrTIhEll1Rs4JjaMFDxI7Ui8lvqS1yHkY3uITo3qa6t4LW1BDwaCQa6DoKdMoWm3aByfITKbhTxoHkmUVxXkXkfIO408SKKuSQrX10vIszPLxL3HrRdYHZZpQ/kFcpMeS4NvUmsdZRZnlazDf5KDJXxbX0qd1acHrYer0XawP6rbl/A9SKbV8CNt03wR5WJ7ZDqWZDuRT6Wk8/e8E0+IjRFxIfoaNWPO10dlwgPjJ7P7TyXBOmlZZEeV+vwbPuSRN4ksKVCYy67PkaMl30Ca0PSB6ySXkNEZ9GGtDZwW+tVSck+LmOqJrS1qvk9X7F4E/oyAH3FNHWyF+x7SrWEEMKGSIgJ5etM7tM8j7HZeTEysd4J9DxqhWlD8MZsLk5yk8nt2tQo9a/WnhDosCOWMDUnvesmGR+373ShRg4UmPLZblb0NtEz5d+27Wg1PcT8XGlJhgtO1gQl7hRa9HJ6OSVK8iZsSIlWK3Yda1XYi+jbkfiyRQzjkSL9KC6bRtbWtoki6WaBmsPIH+lTJM+gpi6ogysdCdNjT87jrKBKmKKwfameRU2s+DseWFZvb0FutDasjM8omSHMzJQ2rhR9KfSqJtcEvgXDmC9vdLXrbVDpn1Xg0oDjTC/KzDek2TR32MeYcYJoDISetCmyP2NbNR4LsVV1Ci2lgKRobS8uCLPgyORZRp3p2V0a8615+TKy0mZdhcdaoq0R+xESUfFZrxsFddNtKDWkoH1uWaq/Jf5LIl79TUzylHpVw68tlL5CSRkt4n0pdaQS6V7NsmLWQFCx9TTfnk7KkqWJaTKsQHNjRpIN0r+D2O8ynymdvQ11qr8GdkvCRemWVTVb+tIeck91KHS5EcgsGJJG1KpVpllsutSSfBeSM2NrbWp9dUmR6XUQQR+7FJx4/UmnuGhFOXAxpX5HiNO9YkWuiXkFpZGjsDZhvW9VJLeqaJUyplbe+uxo+iE5Ypsjzp5Gk5C1+1MpVQUX9ddgcfMlY2cDXtXWqXetkpKJTzHYdTQVK92qoDHhC/ibkmisySmjiBkpZCCQeNYhHsW/BwmM3YD61vJJzywuULWKmxG9ZyG5XLLMWVSQC5vSbIld3axoxc1YFGJFJtD8lHZKDVfGmkh5Kbi2t685aJWhnsK9VQ//9T6r5bDBk5Bbg9RX2/p7zWA759XJm8SFKqNu9XSC+VyMikcJvxt1pdqqR1IVBzcJY9NWFCpqyfRyhMSlHJ4ix0ptnKJHp1kttHwuTe3ap5cgS2TSrjkg9abV2FW7I8uPju4Ic37VjvZIDTZplHsCNtFJHelPSSTTZtjmWMpobW6GlpuRudHdwZeViGS5uFHeraaQWpKiMyWGOAHVie4qhWdhNna/AgZTA8WZgp2vTOgboqIpv0NnU9LUmxDtbs4QEJj5PxFjes5EUnlF2N8pJAeLt49KXpgmj2v/n+p2ZRLmjKFkkPLoBU9KdWfQ3xVFyKjny0BHtkkHc1S6VfyePq1b5K1y5mILqFt23pDzS8BKla8oKaYqFbjcHqaylZFb18R8nYzDNcAC/UV1pqBXjgnyccoQ67CmZ3ng635ESRliG4UxOAW1Mnv0ueqkr6V32Qc9kuQvYMZF9azvJFts7MfFGHI46CkWvHkjtrzyC8Uga17+tYrLyStqZZ3E92OQKQSL3NBo0xf2cwbePLG9gyWbuN6jvVrwz0cU58jpIoHKlrgjvS1eyHXu00zzwqgOgK96KujY6ib5EvHGyHjr6GmKzT5HpNoysr47HmYkgcquz2aQ3JNW4Mo4zY8hUfjtVXfsj1M/wCUNdEdLkAWoE4YyzhSdjgBTxtp2rXaGSabcDI0dSRxt3rG0SW0SHGFGjvy1HQUvu5Ib6NoQpWKYG1x1o3LROp7FoMUmxK3pMNFlUBLEym9iw70VbSFdyyUMgfyO3SmOSS9nXwUoyt+OlItx5JL2/JdHjho+Qa4I1pD15GZX7EU2DKtyrXW+1UV2QfZJEp95HtbSicWIbtWsOxskhip0160vSoDcGskEMsYJYn6VL9lqvwWY24k5L8MWHKJz9K2vupcNFv3JkscWTDIQ4a9+lOtetlwR22TZeo5EFgwI61K3H4DeiryUy4spQFDf60mu1Z5ClW5Fp7kZ8117imWi3hlef4Q331bR1070r648B6xRSNGJFItxalfe6sgWzsyWf45xcqKpz9pfI5XS5Ipvj2N9LVVT2EA9JZC+DIjiw0+lUrZNG/YkG2FyGtxWLaAlpLIJsF9QLhaorqgndVXJKcAcxZTfqa37pILbO9kIlxmR+WpF+tOraSyj+SXNgnX/LHa3WmUaKHVR2Zo/ETNIoDaPekbJG02nhG4vuueL6Do1QOF4L3atf8AJzIwy0LIzXHQ1tNeZRPpeasw8qKWFfxuu3Kr6WTF1pFZZkZcbyKeFrjanojvVfI34bIyEPEpa3Wh0SaDw0ql5Po4+Dx+TX9KicpldXK4JZliWTS9/pTatwFWjbES4xkvxex3ttRK8Ho5VU+DFz1zYJAR5DrYVTm00FrlW1kSj5DIOhNvStski31/UqeMEs55PIQPWlrkvtpTNcIrxIoMcXD8yNxbStaPOt7N9OPguTIeTxA32B2oOoF0qLkoRXvxcA+lZJ4vs7drQhbfHxTI6r4v0F637Ghedoq0z5v5DCnxZORJ30tVFbJiaLs+EFH8tPbi19NjRdEepX10ylPl7i/LyFC6IKvrdn4KYvm4la5Nm770q2cnoU9Zo08f5qYcWGqGp3gmDrStUa0eXDkqQbA0h5uh5lqzaDKyvcilaz3Tt6VTVpoqx9dJy0SSFC3L2ud9y1MRSq8zJxcYSi6gKewFF2gi39hJSedxhlC/4mgt/Xg+f9q9tGoHw5cMz8o9BS1m15J8MX35OoXaSxHIGmOEWKKssWJuPiLEUp2Gdp8iJpLeLb+lGkFXF2cEErI8wJvoad8HqYY9bJlsUyDRT/NTOp6jly2XRLjTJZ/y70pzXwR7bWfCGj4vDkNieRobbWSBpvZOCKXAWFiAvjTq6dh6u6qWKysDHlh5WAI6mjpdpwI21fWSeHBxnSyoC46imWu0RU3s1LYf6EyWIi4jv0rPsT+Rlt0l5KUCBP8AITde1A/0Sq7v4GwZgWUWF/rQ3zlFFadXyaTiOdB5b9KkrNWHo/kyc7GiQkMl/WrM7tnm7drWhGWYohJqbAVRPBb69XQuiliFgDf6mlOrHa2s/JbCIWU73I3vSbSgM27cAISt1sWB2rXzyM8KA1cgkFR2ArmiazBlYDZa6ptcm3BJLLI2jNxW+wpiR6FMq0Q5JUUeJuwoeovazuwlzcgXJuo9a55oj+tC3lWVwzWW3WiVYQLqs3K8lCR3UceLKaW2L7y+RLhUfXQ0a5BhuxBko4ckfjTqstyxVOSWSMEcuN/SjTBnu5ECNlcMAQB0om5KqNVK1dWQA/1pcGWbsJMvtSC23pRxIt1goMwdDz1HSg6k11Pgl987KNBvajg2ufWsvyGhj72Y9zWOSa7bcHIsgLJYk6VzqLShmvifINxsNhrU98kaq8Ns+p+HzY54uDDU143uYurlFXr3lQf/1fqp/loJEsRe3avsscGmetv6r8mRk5sav4qa9POraJLes0zuNmxyrxaMiuvm05FP+V5LMdX19vQdqXdr5Iu6lyLlM8bXOo6g0VYZHpDfA6DJYi3tix13oL0/YyFWvLK44hJ/aAanteCC+3IuZHiYHhcelbWyt8k1+Wc/akvYXUVqyQ6mKnk7FOlyJDW2o/gvzXROB8mMsi3jN1pddGvINrR5IpPjdCXUsD0FPrv+AM7z4MbOx4kFgnEjrVlLNg7zBKPd0KvamcE6hKWLF1lNgeZ3NclJuNO1i+LHM58hcnvSdLQfXes65rgpGPl49jGFVe9ArVfArXZXcsU2RmpL/wAgK9RTFSrXghvWnbwUxzRSActG62pbq0bZtIq4CWGytqNgaTPWxteayyJZJIJrk2PUVQ6qyJqLtfgrOS0lww8T1FJVIH7qteD0cHNLcm+1da8HnvVJDoMQg2vc+tJvsQ29iXAybHAF5Dp2FLWv4E7bfgBItCFNh2Nan+ROS/JFmu8RDA7aVRSqY2+fEk8WRN7wcEkeld9aZPjmrXLxmTq6vsp7V31ViD2ela+C+P5B9ywYetS29dMX9fexbDnJKtiADUt8HVnoUy4Amhje7LcdwKKt2uGV0XVEfs2fQErVLvKBycWkVl4AcXA3rcdy29oJosQFSjLtVFr8yTvfiBYxpYz4Gwo+6ZG9EvIz22/vNjQ9l8Emmk+D0ckiXAF1NY6piOEjuj/Ws8A1Q2ONxYHUVjsiqlgmVgd/HtWJjG0uSDJiiDEkb06tmQatyIdgtit7UUfkTZfLKsDOmg5C10O16XpirD8KKGXx/IB7gAA71Nb14AeUuCCbL8rhfqafXEneMcsQMrHILNYEGs+uzfBGqWu+CyL5cx2VCONc/UT8nsV9WK8l+N883GzqCO9S6egn4YVcOBj/ACPu24gDregr6qr5Jn6ykVJ8jJsdGHWmr1kMt68jcX5iXjxJDUvT0q+SquFa05NLFy4ZTaQWNQbY2r4FUt/XBRLhxOPBhqOlTV9m1fKE+zs3wJTEeLZyaf8AerfBnrueIOSTMgILWNHXNP4LvpleCJvkCklpB4nraql60rglvlD4OvmQNotrihWFkT6ZOYO+6jAGwPe1aqNFeGUKSHN4Jc99hVWUsDXN28GLLme3LyOq1bTGRePrTbgTPnMxPGzoeltadXI9OvqKSVppDGVKaGmdUdeqaiTPhzpcfK/uAvtTHmmheeXWxvp8/Hfiw1Heo36p6Gvrsvg+fxHVVbruKnt6lplC361oQyTJw5orACzdDWVpdMVbGyryfP58Kq5MVhavQzc+SVYueTFhyZIMsiQ2BprSJnVVvCPpsHMVlA2B61Lpmejnwi8CJ10OoG9IbaGVlipRxGig261icnq4ZwpZBlwvLew8T1FPpaChUScvyZDY2OjEOp//ACNUdpHJ2ShCpmjTiUUsPSjpyBsnCk7iyISbIdehrbolo4nkuspsT4npQeDzvd3fhFSlmAOlqWefKXI0JGQSg86GX8jsau7M/NxJZgwcr6Xp1LJFvWq4RjTfGurfjYdxtT1Ydncmf451fU2B7CumS6miT4DXHUaW17kVyO39hpGphkmIow22IoLLkipp2Q/HkeOW4BUeppeilDPXr/UsvLl76AhutT1RXq0g0xFKXGp7UTvyefpv/Ipo1jOmjdqJ2k8PfR2cIDMiV4lLrpsDXK0eBe760UCMPBBY+223Su+z8ifV1h8hTCSFwbm47Ua5KLLsymPJZgG5EUDqXevl2ZLkygSX39aOq4PTrhDkWyhiG5C1FI2vk6zwxLyIHrrQpSN1dmuCnFyoJiVV9e1DerRIk0+TQxm8ipOo0FI0XB2VuWyybHjliOpDAbVNnd1sO1vNZJVx43hKHftVDs05IfsbqZo5wSlE01qnyiN/z5NWFXmFmYmpb2VSfXdTCD/SkQ6gFDuaH7UxueiopGD45ZFJjI5Deh++PJq2nyGkBTir6eorHeeUP+3wJycNmJUksh2tR00NqkmZE/x8SuRZr1XXRsO+jXB79OJit4zba4ru4Gm7Ucj8fGELHiSynYUF7yhmOj5KDKqEEJYjvS+si9E7PydOWGOsa131/sB5x8j09iVGuADSrt1LvUo3JFPixm/b0p2d2O30aUCAUiPggNv7jTYkjStZ8sF3d9bX/wBK5KB6oqomcnY79aaiTVhRZEg0VrWrHVG50UcjHZ5Ddn1ofBRSinwKkMoup8gdjWqB10vBFzljOo0NOhMQqpKB0UiSArfy7Ghag6qmUcA4t/k26EVwdX+DkgBWyj7neuQu6nyTNAWseTC1HIyjVUJmiePW7WrUxWj7MSr2YEDT61pP8hmVi+hrIFWquw6PIyI7m2lY0ma0nwjW+K+cKTKGJGv2qfbBNDcc4skj/9bQwsbInjDIDsNa/QrxTye1r7dG/JU3xGQ63YFSOpoa71R5nte9WqkbjfEPG+rcvWuv7SaPAv7/AGsWx4yoSQSDSHpJldWwsnASePkt+XqaHPfq4ZRfSKySri+03ku3rTnr28Hn33dnCOq8iyaBrelqx1UAJJPkdMOcVze/YmhpwyumcqSIwTk+KaDbWqO6H59V8hwwStIAyWJ3N6C+iS8idvZqnCZowRzopUaCpL3qyV6p8FKDox/mkt/gqxXwiD5P42CZSRv2qrDey8new2fNz/FyqQqHrXpV2TJ62XCZEcXNR7gEkHrTlarK/X62sWrNOljJ97Urqj321HBUrc473JvSohnNpVFtEDY2II60xM87S/MjkjNrihdhF9TTxEumgHreo9XyblrKByPjnLc+N71tN14GW1VEFH8fIRe1retDb2EeZt7ibCCSw32IoXZWI7XmWMT3GVm42pfCF0hJs7xZgBb7k0FrpCtLodBgsxPX1oH7CQz19FMk+f8AHSLCRam09lMP2NP5MiLGyImFtVNW0tVoH1YSll0MMhjsQLHvS7XUlP2p8DP0QdmsfrXfcX536oZHiZCgeQ/mgtrVl2GiYGRNkQtqbDrrQZqtj1nmokGDPkYeOtz1pumKPPpmm+S5HM0floRUjr1Y+zUQvgnKOsm+hqlNNHl6XSseZ0txYiuSZLdN8CJGv+NjTEo8g2pHkW0bm19BW9kKdkBxaNzpeimTF5KYZkcdQe1LtRopzUKR3TS4vSzrORE0PJtRejV4I9rpMmeBUW1HW7ZPVO7gSpQnjy8qdEF1awoPIR74uL2He1a/AdeLE+aJY0umx3F6KiT8i75yuTIbHyWJYXIbpVNXVDfXVKlWPjZAI5rZT60FtF8Ba+3VuEaMEYiJubqel6RZyAtX8FUcsVvFwCvS9KdWFjm7MGSWRzcG/wBxRVqkVWokwospFOoAYb6ihvRsg2s7OEWw53axvU9sDqZwUnPAH5cSOl6T9A1YOwyH5SQkjkD96Xp6lfwV5+ul5KZPcmS4UG/Wp6xVwWqlYMnIjy1bi/4dNRXp52o1webdVkjMjpKb2C+pp/VNE/X+h8WaENgQL9b0u2MlDo4gpMzSx2JVtN6SqKrOtSqRAcMkm4UqapWgnFpCGwYhyCsL/UUxaspra1nBmzploT5LxvtVFXVm2VaoRPhHIUMCOQtRq8C1ZTI0/FSyDkGAtptQ/akegvYVrSKk+NyI2B5W/wDatromM09hLktxsfIUgFgR3vS7WRLb2U2HLALG4BbesVibWzagxvlMPnaVU8ttNadW0EGrj+pKcBZlRb6D1NZZplfraK7K/wBmWKQ62Ha9LdU0ezjhyObP5RAMB/NS9P6PYrhFAQ0kgulx2Ao3wBVKZFSfHSTSf5AfrR004F7exWj4BPxLIpC6j1pq1R5O/tz5FJAscm2tMdpJVo5PS8CQSP4oSP2LORojZhZTa1ZIzJJvkCH9iKW4UuD3rbQ0W5RP4HyKWN3TegqHpZLwLbBjYHU2PSiWgH2QD+hAQAb3Wt+xjaa2cEGdjImiDam0tIPsTEsVizqoKsLN06Vtkd6mbsdkltq54jsKDyevTNVXBRBlQ8fEm471zoS6O13B0/KSxmwBA7muWaZLviqoMfIh1YlbjvWfWeU8fLOvnlscLcWXpQ/UT64zUkx/kTHKSLBTpe9F9Rvq+vDbZY06Tp4sCT61yrBVakARR5KHQgrXWaPU9OtUgZ2k9twtiTpQO0NHrY4KybfgyZIcnmQzkCnV5C0vSihIphxWeIAvc9jXPhkz3lE0gmge4vvrbQUxQya/Bq/H52UwuliRqRak6UXyBTq2bUWVmSxAFbX0vULzqrFN+iqLKZoktYEd701OsENnSrAezOFcAOOtEeN7V5sPw5pQ42IvYWqfSDzHok5Z9HAkMiAPv2rzb3snwU00dgHxzE7MgW3YGjrp2XJVhRuzbJ5pVdbEcSKdWsM9KmMKRMbS6WYW+tMskDSG+RU8HuSeZ+woqXhCPZ1VbcALAIza1x0F6LvJ59bOzHRhZBx4BWHrQWbXyenhXwpJMjFbmeQH806mnBS2k+CRoHDeI/rT1ZCrW5KIMWYXYroet6n0umenhrWteBkkG19q6tiXbTmRQx4FNma/pTOzJ1pYP9aIjwOlD3YdLNuWZ2XgcjdXIPaqKaGWtz4JVhjGjP5CmNhZ2b+AhAx2Y29aFssVlVDPZkTW4I9d66UJtp2YDxFgbJtvc1qYptImELgkoljRyZWyScsekWQwAZSRQtoZW1QDjyJJ5rxWtVk0I12SY1VjUWsWoQE2BLHceKFgelamMaheTMfFkUk+2wH0pqsTVsl8iwoD+K6+tcKU3vAuWbJBPjoaJJHoUwquRQLmVW5EajStKaxRyf/X0fgP/sEuKFhkAKDQaV+ie16i05+Txc5t8n1P/c4sijko1ryP+K68MH2cX4QC5MLNoBx7Ct+my8kNc+vLKkxonFxGNeu9JezXyUU0/Z32FUBdARXfY2Fa7aglkxR7h5C696dXXjgT2i3BNPgf3Rg7/Sn03/J0uzAaJTEQbhhTVZyewuMxKhhEShYmjb55EU5rLJWyHDksxFugFMWa/BCqTZsZFlxlhymKHsb1ls3+BqrD8GlGiuQ1ywtvtUlm0ehnfryMbCx2Fy2v1oFvZEum9rMyc/F9t/8AHqANdatx0lci7Z88kP67yJfc1T3SL/SookBvjZW0YXB21rlqj0dfZrVQh0Pxsyjii3H1obbL5FV9hW4bJ5cOdXINwf8AbTK6Jol32SGxxlBqDftehdpIXo78IpxJ0PiQQ/8ASlaUZRR9amxE/KL8QSOxvUFlD8k+unZRJNIXUk217XptUiVUgFwzw3C2N9710wxOlk6h40RfQsQe1K01gn+5LhA5KNDY3La6dqyn9iuruwo82cC4uB2FM/56nqev66gHJ+QyChut1Pejp69JHaevWJIfcZluBrVCqiemc8Ev7OQL6212pyzqX4YVSGpmvexOvWheaLqY9mGuShccw9/6Uu1HHB6VM4aSgryIBPESO1Q4W62PR9m/Wn7M1IciAjghsNya9R2rbyeMrpVls1cTKVLGUb71FrlPgSruz4HynEm1UkHtQU71EaVtXkR7cQex26XpvZwS9n2AkKKw42rnMEftXa4KopMRl81Bt1qa1b/BLR2t4Ge1jSKfbQGuVrLyyqiaXL5EKFTxMVvWmuX8nJtLyUoI2jta46dKTZtMJ361kB8cWNrD6b1y0khdnZyIbCx5LXJv6mnrWyLsm6wyHIw4YJQ1rj61RTR2QU2dpEyR4sjG/j63pidkU0T7Ek+MkZID81Pc02t2wtrtuIIWaGNTctenJNgZ52dYI/3QslrsVPej6GfT1LFa9rEkHWhKUvgZHCvK9rk+tC2V5WjwMaBmOhI+hoVY290iZ8Nw9yTf60fc86+vPA1SEYBiQfQ1j5HpttJFqPjuNSSw70hpovqnA5EU+Si3Qa0LZlrmniZbxxsL3A9ah3zTaHYV7piMjOikuCCT9adnm0JfrfJmTRKZAzg27Xqyr4I72h8BiCMqSFH3ND2YNtWk2XQYyiLmp23ANItpzAjPV6CZYC6niGv9aNWgvzqq1lkyYvCT/Ip13N6a7yuAaaTbgVkxYwccr/Stra0EvuaW7QjiRY4YmMEX9a1t/JP2svJZjs6qQNRfrSrpFXr14YOZIgQcwGv0FdmueCjXNtKDO/ZVH0uq9Beqesi65NFAKTg/63pfKMb5M3Mx5EPBX0PQGmqyZDvDhNE2Pj5KSlWJ4Hre9G2oPS9HqnBY2HLe58h6mkqx7j0SL8eGMx2YEG2tqnf+wWm76wirHjCgcW0HSh05Ja6cFIyeDC6370P18Hk+w3awcksUgBA4971latC70jlk8mKrm4/mmK8E1tIZNJhIr6sbUS0bIraO94Qvn7UlgbimxKPRpSCiMq4velvgZU6wsbXvXIK/IJYjatDpSSZp29ywFHHBZXJV5YGXGWi5XAvsK2jhibr7Hx4Mn2JS+g16GntluSrRFkOIkiAOLtSm4Z2vsyoQJ+OVXJCtyG16LuTfc+Rs2G8kQJTWsrdIRtsmpkhXDnRiOhO1M7oh+6qR2f46VLMoJB3FctEdbVCJPiGI5lGIPQVq0RX62q+DPnwsvHPONW49jTFZMrtavlmn8ZNlSqFKWNJ1SKPWvR/Jsw4DleXEknpUbtyX29lKvHgXPhujgGK4O9PpdR5PG9jXtdKRQiRZR/jYenSing62jTSkfNhpPoE4saCt4Fb6w4nlmd7EmM/4H17U+VYP1+KzJpYvyKBR7lgP9tT3y/A2G/BU+ZCxBXQUFc2T70acsmyfac8uNzbejrKPL1nsZbZqwSKqsVKnYGitnJ52mVm0jdxflFKgu2lJvh+D2fXw/BdFk/sIQn83qXSvVns+riqptiGDJcMCacuTtLcMFYDIpKMV9L1rtDFVuqUlgSxSKoIJ5Dc3o6tM8jW/2ORNwzixIb1NMH1rED4QiShmue+tKvLUDqaPtwWtBhS2IJGmtjU6teo93tMkUuGsUt+RZT61TXSUQa6N2LoP1ym5PpU95kszdmjk0aMpA26V1LMK6IikakC/1qhNk9mxiPjLuKFqw2vY5kJjuLqQPvXUbR105Iv1Mdn1N2+tO7sH7GnCGiDFU2bT0BoezBtpZuEdaCAj8T9b1ysxjs0hbYcVrgG/1ou7E21YPtAbi162RHdsIMV/HasgdSv5FzMDq1yO1akI2f4HRFONwtl6XoWBW3yUK44WVRfvS2gXNvJHkqWuD/Sm0CWaRktjMswZVvfenqx2P+6OtBC5u3K46Vsst00cwgWxIiLqLnpeudmTb7NI/9DyYUkieLcSPtX6d3SPH9e9aVll2HHkxjgx5EdaVparF6ewrOC6LLCgh2tbpU1s58Etpt4LcX5hIyPM8bbUjT0+yKMPXfk0U+UhcBg1gehqS3qNG2ycnP8AtIVkIJ5A9qx+nZol+izsNjnx5z4niaF52p5Ks8+r5GPgKykmxBHSgr7MMf8AdPgzZMdoTxjb1saurorcsGyisMleJ+XJiLnfSmqy+CG1k3wdfEWTiyqGYdRXLWOA+/KHRSSw3uOu29BeqsNteUaERgn3Wx7nSo79qB0tDPZHxkL3Irs/aaCto72Mv9J42ZR/FX/cmpK8n1rB5lZQOYOlbM+CbXSSrGY6ECp9EJpcdPFjy25IL96TW1q/InezbI5PjYSCLA9rVVX2GhmdmlBHNhSxkcNewFUV2T8jLXUHcefMhJDXQeovQ3pS37E16stWcSrYqGJ/utU7zj5O6zwSyIFbW4t1FG7cEm944XwBFLPGxKgsrbGhWdbeRHrZK1pZ6bImB42uDT1nU9HTJV4OxZZQ2tp1rXlJVnl8HZ8iN0KkHX+KytGhm2cKDOM3BiF1t0qpU4O9f1xEmTMfxW3ejVUehn6ybEE5PvBmXiveiUQVXtSr4NKASMAb796mvCCrdRJsxoDENLN6V5r4sMvr3RDle9xZV8SKtzjgj0zSTkitNbUXPen8SHmlWoD5hj3uKJZyZplJ2PMWYWYG3euecEOsZqfkoHsch5aW2qd9meHre17nYshI2NtU6g1rzbKMc3XllEeVY3i0FBbP8jekcsuhV8hfMgDtUl7qngme1UxiYojPG5I7ClPZ2J3q7OBOQ6xG3tt9b0/Ovb5LsvWb+SR8+JJV5R3H1qhYtryOvk+ySY90gy47p4t2oE7UfI5/zWWSn4tVYljf0pq9iQc9m3wTT4cai51tTaaNmza74MvKgQklALncGqqWKrLpXkkn+Md05gcfUUa1RDfdPkfgY04UcvIbXoLaJgZewrM0Fw4uWoK3pT0Za93XwUDEXiQvlS/sEvR2I8nFyQ9wLCm0vUz+Zk8mHJKnkPMdTWvRIpwumCITG45V3aUVabR4LYlhG5pVmxNbWb4K4cYsCUI4mo9r8pM9f1bKqZNJhsLhRrveqKaLyTexrCgnZJPxY696cmjy72QuWN18S+h2ok5Ov+EheL7qlgshYHpW6JFXqVVVEeRkrZg0W460FOrK9q0Sg7FFlu3JiRRWtVEL2onwdysWcpyv/NZS6I9bp8kxBCA31piFZrspGROfcZeRFZZcHp0XVtFUkYMYIF9Lkmk1fI/RykiCVYT+Q/pVCklu2lwKj4o+g8CaJ8iauOWFkRJcODpvagViLe7bkditBE45i6ncWoby0VelW1rlUscUhHt6X2vSaWfye/p/C5ChjKgq5Fuldd/KJ879nCEPP7bWUXFFVSUWz6rkFc1A+xv36Uz6+Dyb0dr/AKKvf9wX5DXal9YB1jwhT5zwnUmw6WrfqViDTJti3+Shkbya1zRLFop9f02nIidlNyuvbWmVLHm24I4s11cqSQD0pjpJqzVS39g8bm4FL6mdZDRpWsY1PHuaCxXhSq5Z5o3BudL961Mn9nWXCGJALFSy2NBawyluqgXLgw3BuSfSirditdmFHCyeUetu9c7fkg0245NGNuSqGjubb1O/0wFaY5FvENRawolYGzI2gYEaXHWj7nn2tLPOSFCBdfWtgdeswhXvhGsDxPUHamdT1M8GkkT5U2PIpVzqeooqJoo1ydawiLHDwyFsd+Sn+3rTbQ1yBl/PDN/CzJGQDiQw3qLTNSUXsmoKpve9xXceI3tS6REEPsXqrSg5cdZIw6WB7msreHDFK3HZiZIUZbg2dR0olaBuFXpaTNzEdkNydKozfJ6rzSqZw4r/AGa9SaeCpVfI4ZMVrMR9BWdWSbSzzMZBo1hXRBO6qvLIMnFh5hjuetcrNs8217Xv+huFKEYIxuporqUe56q6rk2cSQRNdNR2qXSsltbs1o2GTCQw4+tR2XR8CqtQ2RT4pgfwkv6GqKX7LlE+1nZxHBI+RKHAJLX7bU9VUArFST5EsyOrgFhRVSaO0zTskgos93HVSDtWPMdXNVRoQZERF2azdhSLUZjbYbNCz+O57msSaRJdPtLHY5VGAZ9DQaKRqv1+C2WGHiHXyqal3MMY22pI5F2ZI/rpVKf5YhVlzJO7SI1yniaNJMp6peAiFdLrY+lZ4Z3wTPHKsgIUW+lNTUE2l0nJRFjCQHoaXa8C6a8nXwylirX7iuWkm67BJEnVqx2ZK9HZgtEORsdLb1qYdVDAGKT/AMdr963v+RzvChiZMdSSrXB70auTaXFJjtGeNyRuDRO0gq/EDkjkZQFOooW0PyjiRM8eR3NFVobq6olMEvLkelMVkKzsk+Dhhcm/St7HX0SDEETRki4YUt3Z519XaT//0aRM3tD1O9fpfU8OtP5Fplt7xCm5Nb9YNcv65GCVGc896zr+BmebtaF4ONJwYNob7a0SUlzrwoHwyh2AXRgN6Cyg5wuGPjWQsA760uzSJb6pfBZGyRnSTi1Ism/gH+rfBoYeZKy2WS9qk2xr+CjOqShoplmgkQe4vkOtIVLV8Mk9qzjgSIsdlIOnajVroizTIpZhiHfkt9BvVNad0F9VmUx56TJrGB/rSn67q/I1ZceTy5ccbXYC1a8W0FTNzwUrnBlsq3HekPCGerj6/Wss4+SoPktx3FEsn8Mn1q5EZALIeOgNNpx5E3okuSWINGwJkJHam2afwRPSFJoweduRH061De0eBNdJY98RtTHr6UNdl8ltI8sleCW5FwhHenLSr/Yi7V7QRyEbSEhu9tKoXC4O0fSo/GZY/wAm06Ui8vwTZ2bF5s0dzws1xajyyb8m/wDM7W58GUubPFIVceAOlX/TVrgszxVeCmSUT6pYWoK16+Sh5pOWcjhV9yb1trwPyvyckxCxsDYitWkB3055FNiNHZmolomHjbs+BTwSDkxIKnYUSsi1NJNISZo9Fc0zq/gmun4Q+GUcSsbC3rSr1+WV50hQzrZGVGVsW4nc0mFZs9WuVVVSebPIDFibDe9NrkeftTs3AQyYpgPb363rHVryFnjHklyIxyJsB603N8C/ZtBOJApCsRajspPnfYu7WhHRMvvDjdv9K7qAqRaCm7O1ih1oPBRo1XiQ/wBtowV42NqH65F3o45OY3y/FyBowoL+tJCsW3BoxfMPKLD8hSH6iqej6/pr5PZPyMoT/IlwdLiupip4Pcp6i6yZU+Ym/Qmrq0Itcuqkv+OyoXQhmA+lS7Vc8HlPW1nCNIWI0PJT1NTFlF1RO+HyDAKfrTVrBV66STky83H9oeQqvO8+BHtXbXBn/siJONvE7Uy1TytlFCvDliKC7Urq0b6tWkUtPGtrAkdzWKrLbUflhCfhqoLDsKzpIzPPiWEsplXxXi3Y61jrArqrOBURm5DltfWjskWeuq1UncnDZ/xa3Y1lNID2up5Fw4sqN5edFa6Ytbo2MHmhClQFNef7CTRdlql8jsyFwbpa1qDC6iGBak2dmY0yvfU16NWiPqmyWV7niRqKbVDrVjk7HFKPJb/QChtZDvVhuR4fIGrLpbS9CkhfsaKz4FLnKjBSDcn7UTzk87SjqjRjePIiKG21TNOrkylZ4MjNxMnHa3EtGdiBVmWlbFtaVSE8MkyHQgWopUFVOruFeVH1c37VkJops1ILNdvMUSR5u9uYR2OWNHC20PU0Nk2efpLcBzcXSw1bpWJQDevEHcXFmdgrr9712l0kep6ulaQi18Vkbje1hpep6XUSW66drQBHivKBcm4Nde8FGN1VHMn4xrXtqK3HVC/c9lQJj+LkZb8SPrTnsjyF7SgNcL27XbUUL0kRf2GyhsSOaMnjy7ig+xphYt2ZmzYkafjHb61RW8np0T/JIwlBPFdutHKKVVVXIh5pFbzXrvTEjz9fPBZA7MgGpU96XZBqyrUuhxwEBuTfpSLW5Drt/Iz2Cx1U1naCXvyOGASLgD60H2jL+xCGHGYDQg+lD9iI9dezJpFJFmHH6UxMTbhBwrpdWIt61lmFnYcJHG2p9aW0hG1hJyArjl466iuWZNllymKzoecnONhb0p2bhcnsY4pWlkj4LyeTEgimLSD0VqlyA/xiueOtwN6JawT7ezzyJPxzREOoNwelF9qZE/Y7f4NHEXJ5XuADSLupv31Us1IY1K8ZHOtSXv8AhEGvsN8JFQgxypRTrbrSe9vLLsq2iGSDFkVyCNPSn20TR6XrtUR1vjrrtp61i2M09ginwIweIAJqiurAo2/Jk5Hx68iCApqqugGuvVAxYvtmx8gdqx3k8zT2HZwhUsCs/ECzDaiqza1hwFGiEhXWzDrWtlqu5SRV7uPH4qbuKVDZ6apZo7FnlLAudDe16G2cj88YUBy/JRyKeSkMP7qGucGv12Qy/J22UkelPrQVf1oUnDm8lDBWreot5cSNj4zRkgWf/WsfAnP+uBfuzIbGO3rWwmPskl5Ge+xAJQ3HUVnUT1n5C/7AKoLDS/3rPrOtm4k0cf5fjHYfgetS3wllKwinI2L5DkLMSw/iutl+CbPGEM96I2sLg96HqzLVcnI+AJ4rvWuRNrQnyMCqykFrHoKGYPOtbsz0BZTZhpXWUhY8Dn9lhdQVNLUozWzYviOoBNHIFFB1oybG3FT0rlYoTShgiIqSb+Iruwvvy2Lk472/miUiOrbJJplvbanVqPWMHYXcMCNu9dZDM4kpa7XuRSlwDb+rEEhKsVP2NUIJ16o8EWRTY6jpWNwSWt5JCJYuRsQCd63hkvENn//Se6zxkK63Uda/TZR493WqQawFmLKgU9xS+5F9k28jRhyO1yN9Ca77Ei6mtaf5Yyb4orGrf296Gu/I+/sfyhBRYSPO5GulMTkVXtZyA2bISPG1q360d9SmR6ZcnVLjudaB5oormh0WYyPyTQ9qC2cqGZdQaKfJB0tILE9akt68Pgh0p2fAuTMYKeFiDR1yXyWev6cV5M/Ly8ngRa49KpzzrJTf1q9YIIM/IEvEKR9TT7ZqCf661cGjHNOT5WYW2pFqpDcaVdimCeYjj+A7mk2ovJXratamhjShgFa7HqTU2lY8Hi66zwXLHFIhAvfapHZpiXd24IZw0TEcBYdTTe3ZeTzPYtzCG4+Ymo2JO9A8GH6+TfLLlznGg8qQ/WTPQtl8HjmIbNJGNOorl67XhmUx/BLnHHmgLItyNqfjSycNir4WujGLMw4nxIr0q1SLPXxSROzsrWLE3OhpyUj2pYpj/nIlBKHY1q8cCbtK/AxXEEq8VJVjpeha7ITrZuyLkym9wD2tO9IefHkrrmqvyOOXihzyBB9KX9V/gU6Xvfg42RjSxkIdaxVsnyevj67rSGZ88iICGuapryylZNVM+V1a3QCqUhNc+ql+Q8cIxsmh6mg1cIp9RN25HurDaQgjp0qfJF/t6JIZHG7pZxyU9aZZw+Dy6XSX7YHsRo10FrVztI6ja5YM48L2uKOhF7VuDPewlBt4nSnHhaOLfsfHJGZNDtS2mJbacs1YVEqq2196ltaAa6S5Hy/GiVCygX7UFfYh8lK0nkxpfieMxI8GGu9WV3kXTX+h2NHLG1iw+tddpo9HK6RsoEbHsbNXnWlXk9as2pBj/J4/OJlVQL6rar8b8id6JUhnzsK5sM/ixFjVr6tHmZ2pVm/ifKTwECUFh3vUmmKt4Hqv2WhF7/Ocl3KCpF63J6q9NUpLE5TLlQgq12tvTs10ZHrRRyfPZsE0V9WNulqrlM8P2WrOF8B4M7tbl076VtkkhmdlWpvQwwzQ7kNUdrtM37XZBmB0Fka9d3T8lFrcQwFhkD8ieNb2QGdlPA3jKovxuO9DKHOySkpjyECDmBfrSbUc8Ezm4XuwltwO1Z1ZnVyWxxhwCNfpU1rQW52kqiVWHB1APQ1NaVyh+mvECZPiQz3K8hTV7kI8vT2lV8HT8HjPfSx9KX//AELIQ/ctexO3xLwBvbuR61TX21fyehnr1pDJpcESJY6OBtT67Qw87fyY2ZjyR8Qw42q2l0/BHvaYG4MgMnAb96HRcDMOLQy9m5xlGcgip0ocwV6KVEEc0cqzEk8k70+tk0PhUYRiQrdQAw61iswdLuCWfHZtxb1ptbwR6WVUST4LAg8vEdaZXQQ9FMiypRdGJI1BovIdau4zG+Rl5qDofpQ3yUFuGSTk145y7glbjapHSEV2a7jlPF7jSx2FBEoDS3Uv92Ax2JAJ61L0smeZva2jJpADcKwP+lPqIVIRO4OoJBPToKaja17OEQnIyo5OKgWPanOtWj2fV9atFydAlkbzHKu4SKJqnwCYE43Op7CiViTTVxJPNjx7hBf+aNWZ597N/IsTNECoXXppROsh1zd+B6fJSgWbQfSgeSLLZJKENiyw5Fm1oXSCZ1SK43cmyjWktL5FXabgJ5GABkS1utYl+DevHAPuQyIS1iK5poi0s1I+DFgZAVNr0q2lkDnq4F5GPwbf6GjpeTodrEEyXazjkO4qmrL8c+RQb2msgOvWiiS9ptwwxkycjyBtWdEL2ipQmXGGAOhNKtRnjew3JbBJDMhjZN+oqeydeZFV/lRIt8dIJLX0tXPR2QjbVorx5ccqvM60h1t8A+vWzhmiuPizAlCAwqa2t6+T3cHZ2giyw0TAq+o6VTg+yL/YrEcHYpTMutbavUmpAueFGBKjy70VLtD4ccmXl8dQ4+9W5/oh9hMzVYA3DeI7b05Ijwz5lk2UDzDLf602pc6Q5Z5YPeKljr9a5uCjGyTTK0+PMi2W2nW9JtpB6dNl5Zz/AKcBr8xyH3rPt4GV9js/AH6Ti9zfsTW90H9omaEhbMARTasl1tIlkdVPBdDtejTE3ajycxTlRvqPE9a66TBwdalblSLnUilpA7NvwHC/uR2B4VllDNySrWX5O/ppICpNzXd4DrcKPDePRRyt3rHdG/d3cHiZlbVa5QwrtVRfBEJEBYEHuKRZwSPf8HZEZAQD/NcnInR8C0k4tfrewompJEpYTzFTfXSsVSi1OqGJmqRa31vQPIR9bZ331Poa7qM6QhwDEC1A4Bs0+DgaZXsRcNXNJoTdqYG+00gHJNKHsl8hUaQmb4+FiSAQaOuzDto2yAxzRXXpfQ0+UwW0qx8lUN5BYrS7cDsYQE8VhcjjW1sI3vIiIpc8dzXWk85tt/5PTxGWMqGIatq4GdUlB//T0izgsGQlbbmv0O7XwfLe3ryxqEqFsoAO5rEjsadayx9nAvyAU1nBTRS5DMsRj4vcg13VzJ6GWTsoMyUKTZRpVNR1q9FyJbDbcC/pRq5N9ks7HEwNjdT010rHYbfVVRo4+KkkflYHqaltrD4PP/6HZwhc2PwOx7CmVvJbRdVLHxoVX8QfQ0uzksraUdnx/cjBtb0FZS8M3fRVoiNvj+MxZRcCm/dJ4dt3bQrxomA8hYelLvZF+OqrUtaOPipG+1jU/Zk/sau0HrgsSLAjpXQIzq2wBl5MD6sAvS1E8q2Q21a1Bky0yLqzWfvQ1x6kLy5kUrmPW/IA6U3rI/OrZbH8goIOwt1pFsJKFm7WHpkh9LAg0t5wOdVRR8nOEasQDYNvWy2jKJkk0UUct2UMrdafWza4Mu2nCAnjx+WxsaKtrHaymSz47q90PJTTK3XyTaNTyA1lKtKQLbVvnwLl3soKPfjYgKdhQ9Gj065OVIlWgkNmYK4orSir1c3PgTMOLf4223tXVc+T2XSPJ4ywuhD6Eda1VaYGib4RFL7bsY1a/TSn1b8i7U6+RMMckMpJGl9BW6RZDsHDNGSa6XCmw3tU+dYM9hdheO2Qb2uFPem3SJcutZbKTC5TVSAetJVlI22iVZAZSgtfT1pqcnj+xpJKQjPY2sO1aeR/7STygQ8iBoetb5EaNuSjH+RKAA9Kz6ZKfX9ftA9flJLsEYknYX0rHgvk9H/nSTnwC+XMzXlsDWrNLwT/AF1ng6uaBqFB+lc8y31/XbclEGW8i8R10tU2tOT38MlSksYcdm43Nh9aJWiTxfc9hNpGXm4skM7Em6HWqM7qyPIvzdwdjSN0HJ9O1FZtHt+lWFMFKY+M0Nr6jvSZasUez7FuhTHHioBxYAihbszy7aXv/ghyInkLaix6imKyR5WrrVsjECRpZm170Ss2T1s+pbjzFEBHlasdZPR9an8yXx5PMXbxpDpAyO1oQtpJL2uLHrRqqHdFRfsbE8bLx9zXsaCyafgWptxAn3ERuLglToKOJXAUNcIPnjK2p4jvWNWFauyNLBnCHirc13GtR7UlcjcE3aCqTOAPkApHWkVwKNshUue+6uTp0plfXXyjz9MV5YMGfMToxVhXX9ev4N9fBF8XyAkHFjZ6lv63XleCq2YXASdNe9Z26i5VSHO+OEn5NcdrVVj7EE2lueEYU8C4+SCob7CvRrbtUr9XK3fswubnysd66PgucLkdK0lrlTxPWgqkdeHyTyyFV/E27imVUmWpFZFvIxF7kj1o0jz9eWCkiMhVheuaYmlXZwSZHJDdF8T1NNryeis1Sss7AobyAF66zAztLLoElY6Pa3SkXaKPtqpZoxleFmHkdzU1vPBHfR3E5EnA2A8elHRSV/T1RKcsoxFiw9Kd9ck1spZ1ZllYXuumorHWEU4ZpORj4kn5AkCgrdFd9FIh0kANrimJoBtJSdAPDyNb8nn7XlQjhbl+OhHWugTWkvkQ37KtqVYHvRqGUJVQxDG48kBNY5Rzs/gU6Mj3QALWpk2loZdj8ms3IikWYrO3e3A50lIII5LQpouu61UEBx1DEKCCT30prueRro/AyPIfHkUEeJobU7I3ryki98hZCL7Hr0pNaQeisUiaWKVJLgclPpTa2TQ1wmGigEF1GnS1Y3+BVtOeBksaMOSKP4oK2fyTaueWRTJCzeXiwG4ptWyb+nYkfJeCUCNiRTXRNcm65xyzRTNjyIeV7NsajeTkidHowRMCQE1NPVIPWwwiJH4uZOkwDC3pStsk6nsermlYtzJTJEWA+4qP1l1cFvt5qJM+H3zYqDxq68EGHWqllSiQLoLmkuJHVfbkgzHkAJYXFVZpfB5+9E/BllElvxisepBtVEx8jPWz6KWyOaN4jqDxPrempyZq5Z2Jor3AOlc5G5VclUWUFY8Ln0vSrVkuVY8luPnqmssNgetJvlPhiofwyw5WDMvgCpPQip+t0+R1cbJSyLJxncELYjtVFLg3hLkzzFLG3F9BVKaZDe8s8qsH8Tp1rmYmkx6smvID1oWjLWgYUgVeSi5oZZk2aGDKh7cWHahdGOrnZhJKGa6yfaha4GVrD8BymQpuG+1ZWCX2bKD0MrEaX+ldZAYVUSygDmPMAdr0vwZa0vgi4SK/G2l73p8qBdYr5KY4wwI3PWlNwBbSWdWDi3lpeud5FPX8FPsKbX27ildwraHFR4zo1/rXNpg1cnJJ2Qqx0A3rlSROi5RTDkxlQQ+tqVbN/gOlWMDCUWW/IUMdSnOkLnySTREt1Bp1bE2jmwMJIFm0NFYLN8BT+0wIOprKydpVmRK3tzggED6VTWsk1aRaRsTu63CkA9RQwkHkl5Z//9TX4yswWQ+PUV9+ong+Nole8ITO3tGw8lvpVFVJ6Vs2+AVyyTa442o/rPQpkqIrhQOnjck/xSbuGW4OKyxU8HCQctvSireVwQ+1q7XhE4mZGK8fA9TTOoHVUTkfJwbH5KdRS+ZJdW3UVjZO4F+Y70TzG+lhPkfLkZLqFYihrSqPR3rWtUvkswoo5oxe5eka2dWJpvxBRIqRD8tOopSbZN7N3YkMiCQ63BpyqyTHN9pFy5HskGxK73pip2Lr5woOv8igVWvpvasWJ3/O3EE4+TUt4/zTPpH/APP9aKS4mjAVuZHSlxDJ7V7cEEyzK3LVTfanVaYm0N8DFXJZbXvptWTVFNOvgGNp0JDjataT8Dcknwhg+TeOUakDqBQvBNGvGbSy39kuAyE696R0jyPdFILysSLi5olUl3iRhyW9olgth/NB9fImmffkgy8iVdYhdTVFKL5Gr1U3z4MmSWZ7+4TcVSkl4LMMKrx8CGnzInujlh2ooTLllVsbDLlSycx4kbilXqogrzVKOTThErDW/rU7SRl9V5PTREHVSVND3ngdhWP6M57RZHgbfWrKKannezZvQ0EVpUu32NTvhjldVXBwmeJSqajrWqGwdElXk7jZUqtxlHiaK9E/B56iYRpxyo8dv4qR1aYWjlQTzC9wTYU5ODzfYfVEZRgx4MLmjT/J5tfMsmysSUg3NHW6D4fCJThzWvrfvT1dHr4WrWoEj+woLXuOtbEm7TZcD4/kIZ4iCSHA0JoHRphZYOAVyZASo/0rLI9X18FVSyuGRVsWNj6Urod7WziEUnNTYsbelZ9Z4+lI5BeWJ7/5LgjY1qq18CFm3aWgoVx0tfy9fWstLPQztaEvgpEGNKPFjyOwpTvapF7fsPwWQYQGjICNt6Rfb9kn/THCZFkxLDJZRYetHVu/k829XexHN7Mhs53p6TXga6uYR0QcAeB06UztJ6NXxB6CaVGIkUuAelZaq+A8Ul4LRNiydGVh0pLrZBqtr2/wQzyJFLzRG1p9VKge83XkcclZ4xurr0tQKnVg2pFQD5R3fUDc0XzwT1XbwDjzZEco9rRT1rtKJrkvwpWrmxsD3Hj5SEm9RcJwgr6K/jwTSSsgK7DpT1VMj0rJ6OfIVwyi4NZalWgsqVXJWsk5PIDWkuqNfWRkfyk8MihhfvS7etWyJNaJ2RpR/JRy6OoqK3quvgGuP9Hsr479iMtFWZ+z0cWL83Uwp8DMhuACbdK9Wm1LA6aVVRqRTt4SAgWoXZLlDleqYqbGCKRqVNHW8itrtqCCXxJAtbvVCJNF1XIEauykqTf0FbMDvToolgzxMB5HkLVtGP8AYvPCIkneJvw0vvTXVMRHSsya0TLJFdPy71M+GCm2g1kkN7HUUNkkWerkrMTlTTlb32712SUnpbZ1gljkLmx5Eje1UNQeW7KSzHiiRwzMQDuDSb2bQi/sOYRswJA6kB+Q7GoNHZfA/Gzb8E2TEiXO4p2Vmzd5iCGRkIJU/aqUhCoTCTjJxtyvTI4M6w4HP7bAMviR0NApDtPAklFNyxBo+QOTjypbYtfrXQyXaR/xso52YchSdVwIwvDhGyywstw1u4qObIdtdkk8CuboNRsabSz+SStZcsiljc256svaqE18Dm0lJoYrx8LSAkVPonPA/O7sVER2BQ2Wky/kzW35PJBGbB2v62rHo/gnWjmEBNj+2DxcEE6A0dLz5QcO3wZ2bgZ0p5RgWI6VTntReSxLOnLMvIwc1fzXUU170+Dy/c9mrGYCzR2WRfE70PDXAPpQXr+v7vipBO1qx9oPWzVnaX4KooC7WN/Q1PpeEep61l2PTSTwEry5L/toMlW3JX7UQLx842IKEd70++X7PIyzn5KRKDqp36Uh1L1T4JMlAzeZstUZvjgl34cIi4QKTxDMT/FPliaK3yKmxY5GtwP1FHW8GXtDiST/AKuLmSC1H9pRns6hNBFADrc+tcm2FfS9kURmOaMACxHWl2lMpxrC5DjBU8W09TpQPnkfa8IqQLbxYXFAed7GrfAMq3tzs1ulqKrJI/BJLBEkgdTxB3FNrZtA3s5CeKJkDoRcb1ibkOqdhQSUiy/1opRXRL5OLE5azIB61zY3uqhRxmN7q5J6iublEumvJbHJG2jDi4pLTI72dmMQLbxtyoWFXxASe5exsfSscG1hHJBG2pBVh0rlJPo22KLrHJyVb3GpoolCtW0VhkkjB/u7CktNC7PgoilHGxUWHelWqCpfAzmhtoAO9qHqyhVjlgPiIwNzodq1asR3b8EroMc7gi+lPT7FGdW+Axnyh7r4r1rPpUFlslVyzv7YYmy69zQ/UQ/X2sJfKAlAK3piz4GvKGMYJIbgWNDyjNHyTSwMeVug0o62RIobI8cZUYZQbgdDTL2rAp6VrVyf/9XRw/kOYuw31r9E+iD5r08I5GyxJkKpF1+1FW3U9LiiT+QUxFjNtGHc1r0kTXV3sUQSPFogHHtQWqn5LlwuQpWjkGoKvWVTQh0ZLKQ446EelMSgVdcknumIlQt1vtTesgOo7GbIdvGIKDuaCyS+SrBUp5ZXLG3G5W5HWlVaB2v2YlXyYZeSGydqNqtlyZVVTLjOksXn+VI6NPgzXlcCQFccVWzUfK8hYZwuRUqSi6sL32o6tDdIbgUIlLgMLWFFPBTR9X/gCX49XBIYK1atYJN/YhHYY5MY3V+X12rHZWJFo7lByZGtyUMD2pfRfB31p2SQiQZTMQg4r/WmLqennnSi5JkaaOSzMWPW9NaTRlYkf7kIk/ygWP8ANBDjgXdu14qNjzEikAVeSHvQPNtD3m04PZUxbWMEXG1dnWPJl8FPJLFlzIpWU+JplqL4H+vkohCJcpbMAS3aiSKa+u2oIWy5r7X7imqqDeSqhqmOVL8uD9qzwzm4qUY4kVb8hcdaG0Etb9i3lMVBHWkQihxBpR4bTQ+ba2uKgtfrYte6VYRmZWA8bBgL+pFehnomeFvr2cj8eHIksosAKXpZIpWtKLnyXLhsIyHS570j7FPBLb2Ho+CJ41E1iLD1qlW4B/1Y6G0e45D0oLci3oxkpjcaLYUFU0R6KXLM2RWjksNVPenpyS2X9QInla5UMRTa1Rfl6ynklOXkobFhxpnRMs+qoMrwzxEOCD3rkmmOtXrSRMXxxuTHdh6UVrmevrzyWxY5X84zYEXNKbKXvL4PZA9ti0YutdTlci9lzLBM6Mp0sw3tRdSa1WwoPYmNuNn9TWWlAVs0UrhyxuANFPTelvRNBbewq8FCxsjg3pNrSeJtt3sVJlurDzt6mlvJfgZXNLlnMhFlUuD5d62nAVaSY2TaOZeZuKsryuDb1hqB0Uy8NOhoXUdDiBseVEw0bUanShdGcquqllsCwHyYXLDekWbG+q7Nyj2RDE4Fm+wraWaH7N8Ewh4MeF7dL03tPknVuz5FLEbtzO/Stdin1ay2kTSe4h0Y2/tpihjdY8GhgSTSQ8Wc3qfWqTkyula5x8lUsCGO7NZh3pdbuSXS7aBTwi8WBtWvlmZzaocWS5H3obURsJKSi6Mbm1+5pXKIb2drDFbjbS47isakprwjQxJZ1/DVexqLelX5HVtVLkqlZZF1HFu9T0q6v9EmynkRPEeRuB6GnUvwV5U/ozZwGJVhf6VbRjb168sgyIEW5C3XrVNLNnntO9iJZZkYhFshO1PdUz0cslRc+Tzli1tBetQOjSAeNHTiSAPSuk8/SzbgSsnsaLcjtRtSX+vi2MhzGZiUUA0rSh7Hr4qillEnuPH5UFITB3supmyvkQycoyFBqtJPyeYs03LFxfJcT/lNyO9dbP8ABLekeD6H4n5HGlWygBvWvP8AZxsir06tcstnZbEMAAelIzH3pJnOFLkWFWLwS3/kCTEjmBseLD1rVo0ZS0cvyRyYojJsxuO9OV5GO7gOGJ9nIIO1Da34Ir7LwgnxXZSFIFD3RNpdRBGj5GPP+dxfWmdVZGevmnbwWJ8sqN/lJ1pdsJ8FGubbhFMfy0BcANYH0pT9di/+dpnsvKj3Tr1FbTN/Id/Xflk0PyscDf5ACp70y2ErgZj69n4K4fmcR7cb6+mlJv61hG+Vpgqh+XHIgAfxSbeqI+nr5L3kx54NRrU1a2rY9LPN/XJG7pHCfMgDtVKTb8Etla9TIz80uvi2oNOWMHlezjHkPGeJwDISCABRQ14KfXULgqWaCK1xyB6ga0Lq2W1rZwWRP7pARLepqXRQuWe562ap5fI3JhQLc6HqaXhZjPbs7vgyg0YksZPE16DTglyp1fgcjwrqpLEbk0qybKqKz8gzBJdQpajpKJtP9iQx5Cv4gIPXWnSmidusiZVmL/mSR0FHWAoUi+TBgHFwe5ooOfkcY+a+IUigmGNbhcnkw51IKx29RWW0QzLRfke0MhsZFv6UtWXwFpqvgU8bI910XtTE5RDrfkcAHi5AgnqKDwwZmsiZYkkS17H1o1ZoKqIvYyIntcFD1pvZNFVWlwGsPlyJ5EethWNmfZyNAcMCFFupoROl0uWP9qNxvZqDs0SO7sxZhYHy+1qLsA7x4KIybbAW70thpjFMTfXuKFyc20hggW99wdqDuTfZLAkxjJ42uK77EhGuiR1cGRBdQbVn3JgLafI6CJ1c8zcWoHZPwM9e024CmDxrdSWU1tYZTeson91mDKS1N6pFOGKSFcUt5En0NHLGu0IekYaPxG1LdoZK7z5AGPIWB1tet7oFaKpR+qhHItY9KT9rEX2dnwDInADf62ok5OabRJNNMNUNOrRDHkqqWZmVnzRlSVsb60byUHm+zlCP/9ZuAiSBRe1hvX6XZwjwfWv0SNGNnhFuV0vSWux0u7kP2xI2jb62FdMFuaVBi4oB1bXsaF6GW2drQjzI5NiNO4rk0OlUU/Ih8Yxvddu1GryR2vzIJxg5IBA0ru8C+02Ee/NjOBfS9M6KyHZ5dmM/7F2NiR9qz6kWfQkwPfEgsNa3rAnVKqKI2j4WI100pbTEy2iqKSG9zYW2pVkws5b4GkLM3G47ignqOcVfJ1cJGGpvWPZiLewxU2PBGbWNx3rVe1iLa9rOAC0atZ1sp60cP4GJOvCF8I+f+NtO9Gm45KM6uvLHh1Vb6GltFONHo5IshlLX4/xT6eChZcmbkcElV3JIJ/iqK8oY00+BkgiJDxynXYUKn5Qy8+YHxGTiGuGA03oLQLrZWYuTHQudTrXKx6Ff4AXGUXAuSOlde4WDdmZ2ZhSM10unpenZ34D2aTgjP7Cx8bnkO9OUSI0aWZR8fnvGGSUX9TQ3pJDnzKRtQfIwsgFwLVLbJyUujSNbCy00U3YHrUeuU8g6X6VNOLETKjKkix2qS+31s8N+yqp//wCjjfEiJhpp3rl7fYTb2W2jr4ckbAg3Q9a5bJr9np+vCcmfm4g5cibVXjpwZvZzwROBGNH0qhcgWmJAZ5eJ9vyNFC+Qa5qOTPmmmE1pL3HSnVqo4OywVr8Es82QdgFU0dUj11jWin5EmFpAWB1FHMCrXS5DgdkujsGHY1jRDa/dwdM0sRvG/FSeldCZZnkq1llOPLI7EtLyDdKXav6CzaTbgZKfCy6/Wsr5N1X88kjm48AC3UUwUqcckjuyycmHA30NMF3hcrwaWP8AJPx4s+ttKRbJEF6/ZbwKb5gX4lr61qwB/wCTqpZfDnY0qbeXSk2zsD1tYf7pBBt4HrWdS7LNIhzYDMoMZ1FNo48i9apeROLDI2+40NFayE57LyPfCZGDAmx3tS/tQnf2OTSxMQhQdT6mkaaF/pXlCs2PJiIZDxBosnVlO1UyZcjOuORup6011qLzzpIMQk9zcknvW2iB6sqcFSxe5dWBuOlLdoPO32+B2Oscb+N1a3Wl3bZNW1r2gfNkCSPgy696ClYZ6qw60RAySxg21BqhNMKqSoAMlk/IEX7VrpJBrzwh6z+4Nb2OxoHWDlVURo4hutg4sO9S6v8ARLfY0YZfbCsLFepFR3pIKbhMrknUp3Hep658lix4OxusrcGa1DpV1UovpFGT5uCYxyU3B1vT/X37cE27dmZbwyOSFOp71erJG5qtFLBHx1z5nyHSt+/8CH7Ha0InysQ//j6im00D0tHPyZcp9iS97jreqVyLxydrSeuk6nja3ahfB73r5Ki/ZLeaBuKjxvrR8Ma1HkrgzZ7lGHi1C80SbNTH5ClDSKQANO4rq8E90kjMyMcMDYWanqxGxnx+QIX8iCR0odFKKPTT0tx4RuJlyTLc7VAs4PV16o8EV7Fh970yYPD00lyNWONWuDehbYHdyOYRkAFBqNTS+fyJ3u/CZO2OvK66AUXcktfqd/xIobex1rFLAypa7klyIQ78lU8T12qiloR6meaqzNnxJYpbnzRqfW6aM21StwNXH8gVNtNL0PYFaTaS1MaRk4sdLdKU7pD6aKzJJfivPqb0xbDtfYVFAqPAlimGpI7Vz1TPIfsTYvi4hxYEN2NJcsDs72NWI+5j2OlS2UWPcq1XKPkm9xkDIqBtetOieRFMpUMw8/MKy2kTgb6Wp/Tjg8b3c/6hDospuIIswPU0XRFGOSSLoXaWMAELalWUM9LCijkohkyEZdSwHak3rVpno5JNooleaQ3sSu1TZJFvsdaL9iGgxjYkcSOtVK1jx73s3wNFhe3kvpSmWLhOfIHCS5KXtTJXySNpeRfG766MO9H8Erf9HJeXewG/EVtRjSqpBfAhlHKzG25NctWgfujk9FhRR/jc9wa56NiXva7HKZ4yArWWgcMqqklyUCN3OpBBG9LlI3spI8jEHRiD3p1NBOt+BcUZVbHU/wC4UdmZk5R4qbjl12rpH1hHnxgRe1z2rFcy15ZMSimxW1N5MhpB2DJ4kXHShJNbTweR2VjySwPWuaOrC+QmTkCRoR61ki7OEPx1LEAmxpd3ANNB7Y7Kd7g9qX9gGuoyKArZjcil20kmWs+AZ5ODBhXVpIm1HZydiz5eFmF19K54IblimAuQ3ueIJv3pv1qC/LFV8jQxccXuOthQRHgbx4AeMA3UWNErFCROzXuljf6UxL5F6qFBxGmjYkDQ1rSZLK5Hx5ZGjDXek2znwSWXZwhy5JawVR9aF5wPWaouRntO6CzD6UPZJjaR+DPzWMa34hgDbSqc+Q9qcSZPyMt1BC6WvtTVU8v2qH//1yheWK7MBxNfpaSZ8zgp8Fa5PJRaxWu6QelXNVRRFkRBb8uDClWo2Alaw+OdchfDybvsKB06lWWapWX5CLPGwDXI/wBtDCfgl9i8so9uKVdrenrS+zqItcQcVR5AXtvR10C9ZNuSaf48TC2tyftTq6wepWyqiRvjmilBbUU1ayhWvs/1wGYzY8CBbp1oZ/JE32bk9zUEEny9a2B6Tf8AgOEr7lmNw21qy3gpz4cI9NJJDOrRHxIrKpNcnbVm6bCX5HJSS52J61jxq0R61rP6NOHIimIMtj61HejX+pC7TbgcMPFmNlYW9TQPa1fKGfY6vkGX4lUUsr6VtPan4HV1duYFxQIlwSDemWu2ehjZpQDNEnH1ra3Y+lW0ZubiKyHkQQelU56clFuEZz4yxLobi1UK0gWu2oAx2nHioPHreuvA/wBaiS5OZWZLFbiPKgokz0L+v2Us7i/I5MjC62J6WrNM0bStKclhSOa/uA8u9YpqRXvL4JMrDsujXF9LCnUuQ+zrwSpiukvkgKnYtTHbgRjdKxUmMnJbKDftS+xXfZqEU+77RtGSCBe16X1lcknu3ccmj8d81INHW3HqKk19VM8bHPtaTT/7pwRx81PQ1N/xVf6K7+qp5NTE+RXISxAX0qDb1nRyi7DJJE+djcgSLWO9O9fUZaqXJjZGA+oBBHavSpshNrokSFk0N1NPdpE/ZPB0we5uCT3NZ2goyhAZPxysgPUV1NeSy2nBlvhSRk21FVK6ZFbQBcWOSxcEHvW9gMdHMoa2LGsdkIPoaFW5K73bXIpMeZZPG/HrYUTsoCpeqZWI3INztS5NtfsxMka3FtDtc0SYOloUs6MKKQBX1J1BoXozyd/Ydn1Qmb4hhIGQECjWpXnqq+RE3xcgU9aJaJitN+7/AESwvk40oWRboaNwzFZTwbmPlqY7NrptU1qcl2dG1CFz5qFDbxI0olQRvlFZEwZX5WN+1a6HnZ08jG+QmCAHQX2ofqQOmKg1vjPkF4Ak39Km2xLPXUVNw4sGXj362rzvstnYp+yVCMPIwZoXIUHjXpU1VkbWKrkSUluCu49KOUKvZADJmSQFtATrXOiZ5u0SaEJgnIa+vfakWTqVerWHI+XDuhAP0pddYZ6V7yiezreN0+hNN4fKEXc8EU8LcrdDT62E2SQghksVO3SimROlpXIyHKlDWkSw6mhdF8E6SX+TUxc5FAHLkD/bUt8mxuWbuy1sqV0PAALfvUqzSse59Na058hDLZCeRFq55JoT9fazKYs/3VKE3FT2w6uUOeSS5EtLCgbkttd6eq2fyeNZXu3BPJkROvKMG4ptaNOGU4es0pZHlZpjYc2AFtjT885QeuHayhEsyJki5sdKdVupXWqzQEGDGLgAjj2rNNBuGzct/Aw4Kk2B36GuWkCt/Y5ETYphmBY+I6CmVv2RLfRu/AzwIupvQ8mWbbJ51ivcmx2plWxFpJo8aBZthdqO1nBb67deC5EZP+IfSkyvkLfWfIatMp8htXNI8yzXwVxSoSvIXHWkWTFXv+CtEikNl1PrU9rOvkm00jyG+LGVJZuNulAtW3wiZWd5gnEUSDQX63NPlsvyTVQlMfHyAI7VzkZLSF5McLR3Qa9ulbRueSe9W1LJLQhT7g5aaWpyn4CyVnwj0I8gEOnatt45PQyXXhncl8iwAXUbkVlVUn9vr8iOczeViCTWpI85Jf7BxKC4Yrfveukf6/NjRg9q9g1j/tqe8nqPRopOLe9lAB6mlfaFm+T5n5vF4yAjU7+lehnaUeV7qmyEYkzMoRbEjoKa6jMkohmhi5Dp+UfEd6VpWfk9L1aT8jv3yjCzadqRbOVB7Pr+tH9MoPyU3A8V0pdcFIHs5ppts6kvvp5gDuKK1er4IsqpeAozway24msakKz55C5kmwPE72roJWvgTI6t5bkG1MSgFVjk40sa2G9cqsDWQlLf2ue9qx/4E/o4syX8zqD0rXV/BudX8Di8dv8AcO1LhlVqvwcUuH0Xx6VriDaxUN0dkIJGmwrE1JLZ9mRvN7R3sdtacqyNrnCkoRkkAva560tpo6zlpIFoGJ8W0JrVcbVpCJ8Fu4J7UdNRd79nC8GcRPDL5obHY1RKaJrtTCKY8wW4utx60t5gLOeDz5MZXkBauVGdejgKDIU9PpQ2qydIvSQNDe9j0qZrkTZ9kAJZUTVuS0SohmeaVTpjWVLk62rO0GO08IRFBkjxRSR3NNdq/I7F1quRjpkIARuKxOrHWaY2LLkLAPYHagtmvgJJLk0UgaUXK3/9hUltFUYtkhE+KVN+V9e2tMprJHtdtiSmw4Gx60c/sVZ/AloGMo0NjTFdQbWFY97MglsgJNutd3Ucm3uu3JXHjZRsWSy970m2tPyWZ7Uop+Q58ECOwS5NDTaX5F6Xd0fO/KRZC3tGAu1X0dY8kXsVqlLZ/9DTb4ua7ELdCNq/Ra71R8/hetUJfDaAeQ69KatOw22jsh+NEso847i/5Uu9o+RmevVeSuDHWJvDX0pNtJ8iLbOzKZRGwPIWOwtSqyvB1pfgkkf2mGnjenpScqOYDhyD7hAuVboay1OC2lFRuSr2+SBgCCKT2hgX0/mTkmOjp5Gxrq3aYhN2MnIT2ZrL161bRyh9cueQFUk/5EuO4rW/wa7qYQbQwniVPFqzsyrOUk2E8cii41I2rE0T7admF7KSqRKNe9Lto14PN33+KnI4Xge4YMn1ruyaFVt1LBlKrL6ilfW2PzydrSykTytHvcHaluiTPZ9fGvUlkDq3kCAeop1XKKISfHgZCwVwrNdT3oLKVIN78wiibAxJk139KRTa1WOtpaIMqT4uFeQ5m29quru2TLW34EpjRi1vvejvfgq9ROzUnMrBhmHgfMelJwu15PV9rWEQvirGoLAhl7aVZ3khpZ2UiffVTcMx11FFEmurSkZ7scikISWGtq2Gjy/Zbs4PRSyOwR0Nu5rmkgM6qrX5HLEjWKngRQNm20a5fIWSyjiLKT3G9ZVE21XZpszo8wwZBVuXBjTuko7PLpLNqHJh4q2wPWpbUYTm3Jo42SQwMeqnrUutJXJf69OeSib5CWMW0dTU2eKbL9sFEiv245FJtxYVR9bR4uy4ZxMhDqy3I61royKlG2ed43tw0Nck15L659VLD9u8ZDjXoaHtzwMT7KEZeVIsT+SX6XquilEO9XIhwji6iwpilFGdOlToWMICFuR1rpch1bsKM5B8Tb0ouoXSOWOjJf6mgfBqaSHSYt01A9KBX5JN9u3CM9vCQHla2lqcuSSi5kpDOU0N9aBoou1ByIgMVl1BrH+iRW/B7J+MSUXUcgdu9ZXaPJz0gZjfBRuQoPFrdTWaezCPX9T2vz+CTM+EOKwLP7gPQUzP2O/gk9r23dwlCM+RWgfkB4E09ciYhBTc2S6WYHvXJIa6JgYmcYW4yHT0rbUkdSrjqjbwPmJY2HBmZb7GpNfXVvJVXNVXJvfsw5cHJvB/WvOWbzt+gHTsuDJy24OeBN6uz5QnXOPJBJJFOmrcZFp9atMlyxdn4JIcvLx5LG7Jfem2pVotVa1R9HgfJROmo8vWvO2waM5s4QzIyVl2SxHWgzpHyNvh0Ut8iRGs4sBZhTXbqQu/PPkhy8SSPTf706miYL5MjLkyUBuCFqqiRRX16pT8nMPIkb8WYVmiPQ9LNeWaKZOZEAGuYzU3SrZbtaqqaEPvMdBcdb0m8ClatSuNJIjcHie1KcMh9jeeEVLEJ111PWk2t1FYtIkfFeAsENr6037VZFmC7efBDkRSH/kUHXQmqc7L4D0a8IQJ1iI5AWpvWRHV2twdXOAkfgfE9KB5ykVrHpITZV1BswI61qoQ6V+QpJEljNyeXSsShmunEkjckNgTTlyYq/kEeRIkXlbrW/4ETLhHmEQsdQR3rORtm0pKocjiQA16Xasnn7WdmWxsk9725EVO11FV8iTCVY2Ogo1aQJ5BGRIHHD8u9Y6J+Sd17WllMZybhmPJW3oWq/BZiqzx4OtC4N2eyk7V3dfgbfRLwglHsy2Pkvc0Fn2RFro3aC0QxTJYqSLdKnd3Vhq3wRP8RxJ4hiDVK9n8j6a9Vydh+M4tdiQL0F/a/BJp73PBfN8fEyDgxBtrUf8A0teUS+x7Dt5JJ8SBEF28gN6oz0tb4Nzray8EJC8tCTVi8Hq+vlB7yLDhcMOtaM1c2SNDGyMh7pKtwBuKk1pVcouxVVKIPk8ZZuVxxIGl6pxvB5/s8Wl+TDCJjTfmFH9arU2JslZ28FcWbHtcMp3vS70PpPS9ZrljucJTkoUX7mkw5PSsn1GIz8fKxTvRQefrZPhCveaJ/Ec1Pai69kbWnXkaZ13VDftWKovSsLyPx8qdvzgsBpc0F81+SKvWZnkOROYsotc30oauBlkqrkA4pKmi+wivr2kWrGN7EXo2pRtFzISxl2HQHWhbgZ2VSyDHQoSbg96Re7kDPZ3AmcKSFaxFFVSUXo/kV7xJGvl3o+pueXyDIrOp0BrauDdmvAmO6EelMfJPVl8Te4g4tZvWp7KDr245GDxP+W9+4oHz4Fdp8E+VAr6oQe16ZS0eRFlHLIxjAGxGtP7h52FvjBBe171veRWmjfCJpZJIDcgcaKExWihcFuJkMw8bH0pN6IXRLwWxOhHE2v6UmyZrc8fBy6xMb3OtgKx8oRpZpcGlC8c0YubEdqkaaY71aOxJlNIpshv9qqzSfk9X6ElLFRKJlBYcXG/eivbr4IL7fgsxpZYGA9zxY9an0qrLwK7/AKNE5GO27Xaovrugb1tZ8CHyoQRc6DcUxY2FWzdf8hxyYkouun1oXW9fJ1E05YqZIVcEEkelMo7M1q0yEkkYHG54nvWur8lVaP5GxRRyqVElqXe7r8FGdvMoy/lMEqNTzVj0qrHbseb7VnZn/9H7BSDpfxNfaNQfKLjgKTExpFN9b1ldbooTs+EZMitiy2U/4+29XV/tBUzc8gCbkbhra0fSBvTkM5XDSS5TuKz658DbU/Ab+w5Roze9Cuy8m6J1gMBQQR+QoeWJbdnAwZcouptpQvJDHmnweZxKLk8SK5KCylVVSC2LEw11PStWjRNfV2ZMuNIGdNbdKb3XkDCJcnf1SVsBZx0NY9Uhvs+wq0gtx8MGL/Jv2FS33l8Hl/8AS7qER5EbxSjiOSk63ptXKEWrDCkhilS5HEiirZplmVXdwjOymy4ULoOQFV16twe16/rK1Zfwcwfl8lUs6kih1wqy7LKrULwXD5MOl36nrSfph8A2y/kPl7vAgCxroiRMJQyqIcdwQGpFuRveRcyNc8b2PejrYDryJhgdmI48rdK7a/BZ6TSYORFJG44KRfc1uDTRvt2mylgtgrMDzY7Vv2QFTRLhGdN8VLE5KW4HvVdNk0Rez7KQtcO0lx+QovsPJWrtY5NFJ7o10oqtQUuFY8puCGJOtcCn5CyMVHQPG1iKyt2nyN0s4RBmYskkd1axFNraAN2lX9nfj2yFX25PNRWXgTTZKv7PocLgFF9F7XqDeT0/SbsyqT2eB4MPoamxmeS/3W+vJMGiViraX61XD+D5+7bYsTiKXU8kO9b1lBZ59XJWZYBHyU70nq5Gutr8IEZBbQXIruhZ9apWCbMhJIIBNOzsed7Tlgooa6k2I0omwe3wc/Vk1A19ax6Is9eGQ5GNKpJOhHan1sgd9F8DMebgQGahspIr3bfBdHMrhgGuaS6wDSvkiyGCE3Gt6dVSC834QH7ZCE2sornQHSvEIOPLgk48QG7mgtRoi1TquTQV4wgOwpCTbNypa50ZVlLILEbNROn5PZ9b15RDnZmRJFqNR13p2VEmPv6tVWTK9wyIVZ7ntVEHntTwkLXIlQhbeNF1RRlkuJEy8TLfgdd6JDlWLeQ0nmhPhe3Y1jSZ20Pg2vj/AJiTjxYX+1R7YIs9XBQPmzUmFiOJFZTOCffKWZknFJCRreqVyhbr0DkEhXT8egoeCXeyLPjohIdyHFJ2tCGejpNiybHkBAaTiKTSyjwU+5slwkLWVoyXU3A60fWTyqJtthz5cckV1HkOooaUaZ6C9d9ZfkzswvLFppYdaoz4ZV9Na0M3HGXESVIK0+0MHDqkaQyiYQHP2FI6ch7c1K4soo4tsaU85QrdxwakEkU6atYmpbp1ZErScSV8eawPgetdaqvUfnSLclTPG63vcmpOUz1s83Bl5RYA3Jt0NXZtAvMysmNnYFTVVbDlRUUgIrrfqaYR307NjFlnBAIFqzqieyTcDwC4F9Deg8G6XSQ79eMjUgt6UHdkt9W/AsYvK5tuaLuBjYVLjgC1hy9aJWO9nVxB2KOQkKbAelDayR51tUivGj9qQHf0pF7yTvZu3BolIXUlktcbip02vkpzTs+DHy1eFmZBdelW058mPPyHiZ0qp5R3G9ZfJP5H4UTXDKWy0ePUAG9wKX9bTO1r/PAUbiUqeN6Xbg8+90n5L8eN0e5dlU62FTXun8G00l8IrGQFuLlhU9s5A1bYCzFjZQB/rWfVHknzyl8iJ5WDjk1hVFM0VfVycMUMqW53PrTFZ1+D0c6wvBN+pMj3/t6GnfbVox6qoaY4ZrqQWoPs/IvF9ryzy++kpuQovrWvq0egmqs7l4/ugm9/Wsyv1E6Q7SfPZ3xqh9xf1NejnrwNzTTPRfFGVPEgEdqC+sM92nsKlOSmH4WeNLMAwA3NLe1WxenvLpAa4ntJ5knuBRPSXwSYXdlIQjSQWTx9KGWh17x5CXEddN/Wu7o87b2OzgETSwTWZrxnfrROqsgK1SZeuRiFOSvr2qZ0tJlq3u/0TSzqwNjoNKbWoVcYEsycrgXPQ0xJmWTk407XAXRhoK7oLvTwPwcjK9woxBtStqVgZ61aq0FmRjtIOR0b0pGd0uCvSyfgjOOq35i/3qhXkzu3wgdDyCC1hW/5Ajltk6zshsV8gdzTHWSK6LsfKJ/NV+oqe+f4J2/waCcX/Egi21TPgJ25Anxxxv8A/tW00BbklZGAuFBFPTk2iklkhmcaAmmqyRjdUhMmGzwkOt2rvtU8Emm0rgnxy+PIoZfG/Sif9IVm+S+PKgWZQRYNrSbZ2YVq2doGZGYtjx1F+1ZTH8hr1nZk2Nnzhiv9t9qdfFQe36vr1zrz5NNcpWQAra1TPOGJ9m0/JG8/CQ2Um+pNNVJR5jzgd+w5UEi31oPrQfRQPg4S6bketBaUOzfIGTA3uAhuNbXRQL9i6TBhlkW+nK25rXVMVjX5Y45i2vx8hvag+pjXm2N90TISgII3vQder5KuqrWWeid41JJveuslYTRyv8nZcuNlAve3Sg+lknsVfg//0vsJUltoNhvX2tGj5ulEkTs7IpJa2lPSTPQwy4kkyZZCdCGFtbU+lUM1zSJRLIjgug4+lM6p+CbKk24BnLsTxbxPSirBdtWtFyeRwi6NtWNSQ2bsMi+QDWCW5daF5fkfj68csP8AYHMs4AJrunHA1VmzgoUCVbXC32IpNn1F+37CzrBZAceJQHvIRvap7d7eP5PMpa9/0MSTDZ/FGDHuaB1ul5Gqtl8npmA1WPiOrUCU/JDvNn5OY4c34i/WitCDwSJs+RUszCzdRTsqSNXr20twZh+RHO3HkCe3SrVjwe5h6nRDSoeFzc2bpalzFkenRJZsh/VeJgynkp1INU90yb7IUFsKwlQWQai+lItIv7HbhM4WKMFjJtat8rkPpykw0zJOPHkeQ0oLZqSnPJQdOZISQWIO1jWfWgnkpBjzysh14ms0ylQPxy6yyt8wkDj5elKpnBNtn2tJ2LJi5EsvE+tbbNwL5Xg7OyyDQaW3raKDzdq8yzIc+1MLag3vViUoTlm0038npZEO4B+ldVFHR+RCIS5KAlTuKNsCrXYIwyhhwFlO4Nd2Q3XRUXJ2eDhYi5U7gVlbSRa27MzpHeCXkiXXtTUpFunPk18KZZlBF0Pao96wfTelVUoWStCEAZTf/dSc05O9p2twjNlzUEhS2g61ZWnEnnXx6cspTg62IBvsTQPgRe0leJAGHFh6C1I1sUetpA1sZ4TpqvShrdWA007MCVPeU6lStFV9RV4RIo4EWIJ63p3kmTbK4plDaqNaTavB6FEIzUU66a9BTMmDpQxZJEik8xde9VpSSdHPAyPLjVro9r9Kx0nyNrm/kolkjfzPlfe1Ak1wFZOeCLnCHIVbqehNNhiFRzyZmdkmB+cVx6UXSVyT7eu35NX4j5FcmK0upttStKR4KfVSShGlHEysLG6Hp2pFrSerk1VHZca0Z468tq6tzl/+n+D5X5KHLx5w4BC1fSyaE651qMw8oSCz711kIo5Y90UkMpK23oZM2v1K48aOZABJZvpS3ZoRS8vwOj+PKWJY/agteT1c94Qb4sgN1Ova9crIXa/yd9n3VN0s461naCDfafDAZXUBbWsa5tEO90kXfHoed1360nR8D/Uv15ZoZan2+RUEVPm+YLL17cmRI013VRyiPSrFH/kf6+FaS35PY0aN+Pj3rrsL7mVtBxFvyW1KVjL3kiOMoksRoaf34Eu/VwOX46Bl8PFvWlvVoTt7TiB+Rh8QCdxpegroD7Gz4OY8jRHQ6CuupQXqUl8jpppHsQL6UqiSPWeaQaZLKLFDtqaReks9LPPjyC4902N+J6UdOBejVQHw4wNBrTqXPO9jZsSIRrx36im9iSr8yKIjRwWXU0fLQmzbfBRxVumg10pcgXtNoOckFxxsR1roZqTBiZgRr/NbZHUSSDnjHHmQPrQKxD7Ws+AIJl5WUX9KC1TzOZOy5aRkG1vS1FTFsqx9V2Z2L5Me4AyXVqK2HHB7OXrw0kLylD3KOQG6dqKj/In2Elx8CIIciNiGl5I2wo3ZP4FZXXhIcfZUXY9KBtvwL20s+ELiyeDhY3uPWl2pPk8q9ZcGvj5BkAJJuNKRakFSheBjzlW4gm/S9As5MecvkR/2Ptz2cEG+/Smf88oZXCHJS2WkosmrdqBZdfJS8YUsbASb8ksaXf8AyLenmClESWOxax7CkOzqxHfgV+qY2DR9N6YtZXJTk+vLPSuoHmoKnc1tF+GWKj/2E8dfDzjNMn8+Q8688kmX8TFkeUYsetNz9l14ZY9OvLJY8Z8U2tcVQ7q5M9noytMxGHA/xSHk1yFevwOTHilU8bhqXa7TH5261gWYAi3ZNjvRq8/JG9HbwJaWzkEDjfemKvANc4cnMiEMCbX03FbS0G7WAjwyUuo9Na22nI7C/wDIDY8kbmwurdKJXTRmmilnJMNpAGF1761q0gx6JIlnhlh1U0ytkwGu4g5c6SBwDy70fRRBQskuTWxsyWWO7XvUl8kmOfVrgYeLi7E+tCuAfHgmlb2m5KRbt1pteRGvHJ2SIv5cQQaxWg8/bRTwex4pQ+lrdqy10SV0TsU8+BBXe9BElKq3/grilkcWcaUi1UvAya+ED7AU3B0PSt+yRVtIQBUING+1ZLZDazs4JZp1Ui9+J3pqoDbOCdng1sL9daZWrOyybZHPIG48fFl7VRWsFyy6pNlOJjGZSDIb0F9I+B+Oy/BSvxjg+TWFKfsI3T248FEcZi/u5W6Uq1uxE9HbkcYFnBFgCB9KV36i3aWTvgyrYcgRTluh1tVVHsdfabXpvXWco7Gz8sdNKLKSt1PW9LrQzSs8nIY3kvxB4E6CttZVOztWsjV+Ps23EdbUt+yjLezDKlxAh38DvSXtJv3Ns8MeMEhdvWtej+Q3o6rkTLj46m4Pl2rFpdnn63tZn//T+2lyeGlja3Wvsq5SeNl6zYlhHkKRbpTE3VnqqqzqSS4PAXX8etvSn12k8zXV3ZOuJN7hUm6MNKa9FAVL1ozsuJHwAIsR1rK6OQdNLXgjbHVwVQkn1p6vHkp9akcsiaOSCUEqNT/SnJqyNvbtaF4LI/8AKDzAOlxSnx4Gu6rwhLzOkqxx3XjW9U+WeZtXtddhqZcyNcuTrc3rHmmNtVL4L4PlIwQ0iC3+6pNMG/DINJb4ZdHlxyqQmt9ameLr5FLOJkT77wve516CnLNNFnp+t2f6E5LhzykvZqbmo8Ht/WqeCZ44ke41U05NtCr2bZ1soY8VlAIY/wBKX07WL/pf1c/IByUkvzWwOlMVGia1Y8C4YPI+2x4mivbjk7Bw+QZi6PodRXVhoqdJtISPz/HRqFqBr4KEiWQC6nkNzS24AV/AUuCbAqQbnagz05GbbRUIYoU3Gh+tar8Eumrs4OSO66OoYVtUn4OsklwIklmvaNeK/Wm1qvkRbOqcsWw5gF1H1o/BJa0uUdEarrxup61jYvbVoYiqJFI8R1tQt8CaOHI2RkKXA5D6UCTk5Ud3JDkO1vG9u1Pqir6klLI3w/fY2bzHQ03vAjsnYqxklhIDL96Vo00e3haYKpHL7HQaa96noi26VeX8CWwveBAsfXan/Z1Pn/Z9lNs9FjmFVJYECsd5Inu2pNKLx1FiCL6VPbktzKVIlj2NxSWurHV4RK5aMmwuOoNPXIlUl8kU6cyGWwPanVcG2SRTBE7DyW9+1LvZIZXVNwg54lKjxNDSw7S0JMzMnAiYHzN+1qproyVNv4M2bAjRrgN9aoreRl9H4OKZVFljLWrnAyqUcsU8hZ7tEUNEkLaS5kGfEV06gkVysTaX7ODHCZmFkckZuJO1MUMfh1R9Bh/Mze3aQj+anvipPR6Jrg1cTN56PqvSpdc/wMxok4RL8nj+6tk17A07G0eSX3EvB8+2HJy0ujiq+xLW6pUpgMmqSP5dKCzItdezfBZjSqNCbEdaBob61WXJMbWVuf1pTqej1lQE+Qut0PLuKxVO0pPCIX+QlR7H8b9acs0Q2wVeReTnSsPDQVyzQjX115fkPF+WmTc3XrWWxTG5Ypc/J9Bh58M0Njqtqg1ydWejjSUImK3IQlRuabQbanVckKzmKRgTde9PdZRHnm3ZhN8iw0S5BoFmXv10lLBOWpbkSb9qPoeXuptwMTN5qO4IoXnAhZDp84q9r6etBXLgftj/AEMxnSU2Fjes0TRTgupWIVWxvap+w62jbLP0ZG1uChFRLVHpW3rVHDiKgBGlqdW8nl+xu2NCwypYfkKxt1ZNVt+SFo0idtB9DVKt2Qjm1mkJnCufJQQdrUyjgK6jwTKtvwBBpk/kHJfLOMX7+RrQ7HRKEPkKx1kl1s/gcjmRbLb6Um/Hk87eyS58imhAcMAUbr2rqORXrUdrSeMR9277GmzxwewrJW4GJjpHJcnwOgNC7yjns5DnjWIXDAqehoa2bJ9W7CGK7sPHuKYkOzr1QlMbmSqEkHXWitpHkRbVV8knsy40xJB02JoO6seV37WbNPFymYGx4k60u2ZVlRQ2zSxjHkxjmeLr1qa81fAVLydmxY2aw8iD1ra6tB6Xc8jVgRRrZSNrUt6N+BdtbaOEC+SUNmPIHSiWUjll1UgrMeY4PYf7aJ045RnVV8mjE5ZAWtbqajsueB2b7eDr/rsLcQQayvZHourSIy0UT2W6j+lUw7IytHVSxxksoZCDS1XmGZ1duSWaN5r8Rr1p9LdSitK1I2wP8vIMyuOh2qhbcEum/a/A4SPDYkX9aW6qw6JRw5hY8b6dq5ZDPpVFLOfrq17Ci7wSu/LBMagWbf0Nb2Al2YEUk0Ull8kNbaqaKM6pBPI7AWHEiuVULvVHocq9105DestmIrR2tAOTJG48rX7VtE0eh9ULgkaBH2W96erQLduYEo7wt+BH3ompG0ULyXwsZRo1j2qe6gZVpATxlBc2IO5NFW0nn+5rxwDHOyqeJBAG1Y6SeZEgjIXly2olmblnHJXHJGfoRvSnVlC5f6Oq8kb7kqa5pNB1SkJ5JeJ8t+lCqoXeqYhXkJPI3HpRtJClC8HJIgwFj9jWdoJtbArgM66MRRfckU43SQifBZdn17Ua2kH2Np+B2FEQL21FBa8i/X0kpYy28bn60vgbZJge8QDccWouhjrwLi+Sljk1AYHetfrpozPGHJY2S2QgC2XrpSlmqPkdfOtfPkV7eUBcr49SaLtX8g96pSOVQkd2F1NKtaXwS66tqEMgk1sh4r2pdqx5FL+fJTyKEM55KetKVe3gLKrs5FyyEN4E8d7U6leOT1lkqcsJAH3c/Sl2tHwedpr2twDKiAA9QaxWZNo2z//U+nkkL/k2tfd1UBOiqoSOx5Asdh61tsyHRtnjPyBVZB9LVypHwBXGPKI5pJ1e/bQU+tUxN6p2DTJdnUMB2rHRI1pJoa2ISWKfa1AtfyOd0pQpvjjIv+RdRRfel4Jb+yqrgOH4ghQ0QsaXb218k9fanlnp/jn9/lx8rbV1N0/kVbXtpJw4d1JZAun9a37vwzbbduEZ+RjlYzr4jpVNLDK160/YvFzYUBKXDDftXPNvyb62F9XLKhnI4/LegtnB9H63rR8Cnka173XuTR1qZ7TSUFESLMAobU0Fn15I3dcJls3wrlBfyFrCpM/aUs9Hb2k0kjMb46aOUpzsDsDVy2TUkOm6TiDyx5mLNf8ANK5ut0Zm07F5VZwGIAtuBUqbqWu3PAn9fGWTU7U3s2ibTW3aEORoQ1l/rS7JwGlZeRmQygD2z5DpS8v2U60biSKSchv8gIHU2qitZ8GdI5Q+JY5V/wAetA26+RNrS+RU2MpJIuGA60ytxG2nyTpE6nVvDqKY7IgWiQwRECytyAHWgdpJL3lnjkcRxOmlq1UKcsZ5EftFfVTTOkltcutQ/wBjEZLEcW70PSyYq1LNEfu2lsTyF9xTuvArHL+ikGUkNc8L9aS4Z7a60U/JcY4DFyBBbe1Iq2mK9nW1qk0c4YkMpWxtpTnU+f8A/Y8ApcoBcdQaw18OGXQ4zqnMWUCkW0TcFeGnd8fALZMkUgsNDRKisiu1IGuxkHLjf1oEo4CaVVJLLBj8LspDb3p1bOSRu1lwIilnQj22uvY0dqp+RmNElLNFJZJo7FbGpnVVYerrHk8uKCOTC59K56kS2nwLkw1Yf8Y/iiWsfIHf9iW+MJW48B/FGt0Oz1X+TPyvjoo78pATuKfXVv4E77WfCRNYhCALkDemoLOv88iJoPfiIKXb0o1aCzCkozPZMUhUgr9abPB6NFL6joMoxygl2P12oHWUV2fXwaTzTyBTGdLbmlVqkR7Vq3LIZjkciJAAejCnKDzL1q7QjMzGmjdZBoRvRpA3yXDKcLLSbQni1Y0U4VgvUkHxfalldnBZG5kUcjS2oATXknycEsbpqKOt/wAke+qT5FNAFB5AgjcVqtJMrO7JpFcJyUWHpvTEXZ0Vay/JZ8VJOyFVY70jZIt9O1a1bZqH3uA5afWkKArNW5IpMeVpNTdfSmq3Bqdc/wDI+PBhaO6khh3oe7TJdPZtfglmw3Di5073ptbkumiqL/UmTyRtL/Wi7pnZWTcsLKglY3ZtaGjLfYuphBYk7q1ip00uK69RePLL0zCuhN/rU7oVfXPBpwfJkKp2HYmon68tjtqcIoOd7jcTYihrlCkkvilYnLSpLdCbU6E1yL6pMCXzUlxZu9FXh8GQkuCaVCYwUYg3tTqvnkn05SFF5VYEG9twKOEDeCqMmTUgWApL4JrXTtwKmhAW52o1YTd8ETZJifkh/HpWfX2fJ5bo9LlMHyPu/n1rXjHg9XDBV8BPK62YDkh6muhG7QkaGJGk4Ck3B6CpNdOpFf2EuC8f/XsaQEEE9takf/0Wg6+624RO3/15omZVYhDsDrTv/wCjVqTtPcjgmbElxZrjUE9az7loeRpq9Lfo9PCJjqBRVceA4UwicYgR+3an/bI96Pwgo5PabQ2ousorxpCkdNko48XJf0oVm18DNs2CnyCqB7nK3U0X0fgbhg0pKQ2POt4jy+ulKatV8nWlvkRJHZ9BxI60asJu5sMgMw0drxnqDQ6JPx5PY9GlaqfkJ5THYRtcUKrPksec+QJc4EcZPpeipl+Dr4/gRF8iIzwsSnQ0y2M8nUw6rkevyuOByB8hvS367JtcrDE+TilfjbfvQv13VEufrxcDKSUglQCl/wClblZHqWpWlZAEUDre4D9qOWjz/Y3dhkEvEcWS/qKG9Z5kkxTfyddFLXUWrkyr/UJYW43IGm16x3ArfsTZUs0R5KoI603NJjnjLM+SaZpSypoaeqqCrLCtHIxXjMfncMNxWQ0wrt2XBM+WEa8el9NaYqT5FrD5YTZbOO7fSsVIDvmoG40j8jccf9aG64FVspY9zzjFySe1B4Z521uxK0TcjY8TTExNBDt7BJkOnejSnwH1b4R5PkUUAqRY1zyKFi615NHFzlkSwIJ9TSL5QxCrI8SLciQD60t1/ANvMInbNiilsrXubUX1Nomvk0+QpMstqvl/pQrIV9PI2HInOpAA71jpUbnWsg5MiEjXUViqxHsy2jmK68tGsa61TsVBTIpJ8WN6FMrsoBMUUijlq3WtVmjKtslkxWWTwBKnpTftUcgbaqrllsXtQsGZbGpLu1+ERX1vpbguOXE8d10BFIWLT5KHlFZYj2GeM8TyFMV0vIFIVeSW2TG9jZVOh70ya2EcNlcALeDX496G/HKPVwaoipMbFMZ435bXNTW2vPJPv7N7oUYCjbggnc0a0lEyfUVkxTRoWDaXvpTcnVss9f1+/P7P/9XfkhkkBJsPWvvq2SK9L1qiREyopQAbqetUt1aPJ717clQkAbyXi3eldeDrS3COe+JAUFmYHSt6xyBXL8kzGaOTkwAApihoTaHbgpj+TCaFxfsKVbCfg62TsE3yzOLcT6tQP10iP2clSvJXg/IFACW8T3qS+HYg9bN3c/A+fKvdxseorqY/BcvXl8GecgyclDE61Ys1UfXFZ158gvGStjsdxWqwP+3BmP8AGebEseLbDaqVrwen6bVE4RyPEGMQzDkv81zt2L/vaXBTI8DRjiPqKBJpkt62ZN+6cd+RsFBpn19kTLF3tCNTE/8AsZyY/bQ+QqDT00rT8HsV9NVp/XkVk/JhvyX/ACKd6fnjHjweft63yejylyEtfi1banVjM81WvI7Gaax4rcjvS9EjM2mdmBkI5gA11OPAVoryGuIxYXNloXpwDXWbyOeKKJgSxIpNLNop30tayg5IMZ7qxuDW0dgNm6ioYoYZDZjbpTb2dkednezsNndBqfx7ihomZun5Ip5IkOgLCn1q2R3owDxl1U8W2FEuAsM5YifAkaT8vLpR01UHrOyTgUPj5nXiXUGi+1IVf2K+AFgMT8JvMd6LtK4EW1bcI80MPIlP4rlZ/IzNOW2W40Jni4X4sOhpF7dXJStVHI9MRo0PO2nW9A9E3wTa+zKaRJIJ4pl424nXvTFDR5dkqPnyxxYudF4v32oIgxV7WgKD3wSGYnsK66R7nq1rVQgp1msDqLdKykG7tDIJpOJQGx6ChvReSdJW4YDvMx4SA/Wiql5Q21a1UApi6+TadRWvQmWvMIJseSIlkc8TWK6fkDfUOHLZAQbt6mhtlJPSjiPydk+UnQC2q0K9arHL1ED+97sZPLfpRfV1ZXj66VTOzIWdeQINqqpaBOsJEyLII73HIdKZKE5/0jsbOTcniRWWR6OFUhWRDMxJ4hvWtrZF1a1qpJJomtcxgEb0yrFaWn5PRzvH3t2Na6yJsF7jzA8V+9dEE1ar5EyYyyrxkOvpW9hdtOeCD/rjFkAA29aPsFXfrY1cdAkg5+VKszNfYbtwaUXEOoAujdqTYLv18hTwlR4mwoVYh2tJ6OFnuWNwewrnaDsbpco5L8bGVIUH61q1K/scQyfHgkhO2npR2smM9a3ZwUtKTuC1JSPWdeqDEgChuIU9rVvU8ze7Y2KRHYggUNk0LzUMTle0tzbbpR0lidaWsyUzIVIF79ulMgtyxaqKypCTqLW61uZVtnBNDNMsoXoaZZKBWVErL9lLSNz1Sx70heD1OiTGwSF2KcbkaihsoUgtqeStP2UkBIFqCE0SaaVdixZpBc9R0pXVEt+WHKzui+JBoa8NjrVSqkStBJy8ibDpT1ZQTWup4+BTK0ZJtYHtrRpyRa3ls7A8j39vc0Nkl5Epqi58lnsSFDy+9I7on01T8GfJiBXN9b0+lxePAi0WO/K3IU3lormxb7+PJAp5XvsDSLVsmT7tqh3FzfZe67A1NbLv5PJzo9LGzhfLTSseO/ekaepVeT1csap8hzfKTG6nRh1oK+pVci9vXXlkks4lXU3cU6ufUn+qETwu4Y9xRWU8E65cIa04lsNraXrVn15LK5qnLHR4MTOAxNjvQvd/A2mzdkKycKGGa6jkvYUdNbWQelr2ueKxsLaBTuKOWi1/widBHjubOT6Cjl2J8Va9heRnkG5OnpR0yRYvWhydXMvYLci21qC1D2MMIQ/j7gDL/ApS4G2adv0LyPj2ezc9egrc9YC11XwhQxHbxa1+l6d3SJnsgDFGrcZBZuho038Eumj+DylUk0axGtc+UBVNcs3MOSHJg4N+XrXm61dLSvBumrdYAfGjXlcLpsTRrRs8u+jcwAkpjdQOHE9t6J0lfIeVIabHvFDJqgKv60tWa8jdG7OCbkQxU7jpTX4LPXy+CfJaUgkMAO1HnBe80lJKAWU8dSKofBPX+mIdZGNiDY72rUypdaKTyfHqTZnt6daJ6EdvZm0JHJcVodVYgdDvXVumJ324DjnaP+3l/wC1qx1kRWso8+YRqRpXLMW8pAM5kGgIvtRdYCzyQmTDndCWHj3NErpFH2VrURJ8aFjBDXo1oKezsv0Lx4smFuX9ta7Jic9FZlaSzOdjv1pbSQ5utVL8jJccSx3AAYa3oO8EW2vEnoJJY047sKFpMkXKll+HMZFIK+VJtWBmCUAZKJIvl4sNrUVXBll+COGYwZKgnw60y1ZQCUXRrrm43OxNgetS2ysM1VuxQj46yDi11I3pTVoBbdWcyWX+x9KXVN+URbJtywE43u7XB60xfoPFc8BuIOHhfvWrt8ll04OQSMPxH3obpPyR9pCnSZnVlVmO+2lCrVS54N0daluM/FD78ixEC9jvUmlpf8J2FLZ2lVQ2L5H4xX4Mxk722pT9Xd8r+QsstG/wdlzvi+YXga2vr7pS2W4+hrpokZuXmI5ZIhpfS9XY1fDZ9Zn6CypDP//W+onikiY2S6HvX3Wd1ZfsLeyRBNmCKYAra25NV1zlEDwbujpk/aBEf5UMdPJdnkquWQXkgybHcVTxapLtabwME/NiDr6UPWBbqk4PHHjkIKgqe9d2aNtfqiTOknxImkjLNY2I3obJXR4vuf8A6pl/x/ySZEAMicTa1A8evgq9PFKvBQUmZboSV7XoZSfJ6uarSssQUkRwy3DdaOUzzNtO1p+CrHnmSUB7FW3pN6prgRe6VoRptjY7MDyFmG1SrSyPTo3KS8QTT4SR+WnE96dTaRru7eCOWHGC3NhfqKfW1htVZqEY+Vhwyuy8/Wxp9dGetln9NeVySxp+uw48lIO9P8ibaN8s0jJDPGDytJ2NISdWT7NtSNx1hNrtwcdRWXbJq6NsdE8iSaEsu1BZJo2rVOWaQjjaMtfyHSpOzTEu70cIUmRIG4ut1orUTXBRlRU5+SxFimTj+NTturHO/WsvyEYYUXif5rldkXe+ljNmdY5Db8arr/SGfX0mQpCpiBB0rq+RWimoh1dkOoK+tMTUk6SZFGsyPxAJBO9OcNDc0lCK2LMRvyApSKdOWLDv+Tp96KF8EUrygZQXUcBtqa2vAVqqql+RkeHK6+K3NBbVIF71/JTjwGNryC3oN6Xe8rgn/wCnng0EWIbrdT3qS1n+SfXZr/yeyIsSSOwsHUaWoaO6Ynpe3khBTnxI8hsarScSXeri5OcgstiprYlHp3fQuVEkh0W5FTuzTJezvwZ2UvF0cIQRuapzcyi106VTGcmkTkhu3UVkQ+RF/wCmSHLaCS8qHjTvr7LgTaseCxMvHePxP2pDysmTLO1hMk8T6gcTajrVovw9drliGgLowLaHtTO0Mro0kyVcVoj4OSO1Md58jFfiBMrSqul6YkiLZJoGFJHN1sG63rbNIHCG4BCTiQh2sK6VBcrVqXxxuIwQxYUhtSB9nbkVkQruBv3o6WBv4knGMrbaEUztBP8AZLJGgmikJXVfWj7JirXSkZwW99AaySe1m2DO8asrMtwNzWJMDROZCvDJYobDsa7leRjbouz8l8BVFABA1pNuRPd25ZUJEYENqKU0xV25CSIFboSB2FZ2/IzJ9ayyhUaMXdfA9TQOyfgbm+9uCYoGlIUeLUyeD1MaLPyNEMC3F/K1ArMH2NrWcAtEssZFrsOtF2hiKf6kjLNC3IDSnJph0U8nWjfI0te+tYn1G3daDIfiyw8ksfWhtuhNfbkdk/CTFiFXxI0JFKz9qsFOvsVdjKm+PeGQczxK9bVZXVWXANLttQVx8MiPituQ3J61Paas9SrhdrARRmGYhlF+9MblHmPV2uy1HhZwrkX30pLTSF63atCHFYtxf1NBLObaUspZOMfJDcjpSU+YYWlnZA/45F8xY0XK8E3+CPIxCL8Wup6U+mgq1oM+SSSBgY9CKcqq3kjWbu5Z2L5eZZuMlyp61lvXXwFbFdoRT78TsTfQ9DQdGhmeU2/RNKkAZiWuLbUxNmbWcuPAonGiVOR8SDe1Dbs/B5+trNJIHHCMGs9gTcVtVBvq1hMfDkTQyBlYkdQK10VkWZ15k0JMxJ4wdUe3ap1l1YzXPiTkFpBroR12oLuPB5VtJcInkjnWQsCSCftTadUhuVa5qX5HLxtc6MKW22xVm9LQh0HyLh7MPG+l6y2CgryyVWUzuJUupPr0oKLq+T0s8Ul2fkhkeKPVnKfSqEmwetruYJDKjOVXyB6mmpcFtMvr8nnxYinJXIPXWtV3Jru4mC3FhBjvv61NraGU4adgR70L+P4mt4sN4Q55dLdaVVDXnJFNPMnkVJXuKprVPgR9a8iXmeW3E6b60ytYE6UqnLPHFnZOQtfuK1XQm+tYCxsuWBhzBuDasvmrEkz4NA57tqB4nuKmWKRt8lXkbZpYgYyFYdQKHhPk5JRyAk+T18mHWttWo/18k2KllZ5Rpxfqayqip6/1KrQfsSPG1zc1iskwb6JykZ/CaOTQ8bHaq5TRNWK8sr4l4iQSGv0pMwxd7dk/8kTtPFLZ1IHQ09Q0JtFSoSNJFxvYAb0uIZO0rE5XT870yQ1wpgEY24Lcr1vcQ9Z4PIJYTqQRXOGDVyO5OF0OhoIQV4gJOPt+Wt6F+eBCbsoRDJE6Skpex709PgbCoHykKAkG9DwL4sImzJEPG1j3ovrTFbZcFEE6ZENybONL0pqGSLlQjqPJFJ4m4PWi6porzqqjnLE3BuRrQoJrmCGXIkEn+Rbi9MVF8CLZpOSkSl7FQFtQ9Y8jIS5Y9ZpE+npS3VMXblywhni7KV09d6W8Se9OWNSQPH4Ma5VjyW+vkq07MNWlh1cXBpd2n4JPY2nwOxvkkib/AIuQPepb+u7/ADB5tKNuZ4NJs8TxEKwQ22FT19SHzyU19buQkiX/AJQL7Xq6q6eC3KqzXHkQSmPJoLqTemJO6NpS1rSWCMTzIwUW3NIs4q0fRZOuVkyvJ+ICoJAunW1Rev7XPUp29r7OUf/X+nm+VjkHj5dbV9zlg0VbepLIMplyV1sh/rVVP5Npilz5Ml45seTnHMbA6Cq01ZQ0De3zAybIjnAaQ2fuOtdWvXhEtq/+yEpJHe6HyX+tE0S1Ts+Rn/YyWs2470P1IXrmoPPNPLC6C1m6ms6JMitnVpoh+OymxcowZDjj6UdqSuBmX8PqkfSrO6w8o7cTUbqm+Sy6XTkUcx1QMwuve1b9SZ5fSVIA+V4yj/H4nTkRXf8AP+zc/W/qWy85Se3zDW9aT05g96mTVAlljnhKli1+tBZOtijKkUI3wnLcQSRvemX2SrJX6lU7JMzsrGmSQsoJY/6VRjZdQ/Yt2uSztIzG/wCY9O1UUXBH7EN9ULbKkKi48hRKoF6JVQcUxfW9mrLIHKqSkohz8iFyGtw+tBbNMg9iLWhGlj/JHkOK3qa+MoqzxVEWO6y7sB6CkVTQ11gOGVAttyOtdarkl0s2iniZACn9TU7cOGU0ilZZyXEjdbMLN1tRV0a8E17u9uDPmxZYwQj2U9N6qpomFdrrBHGZAGVnLHtT3ArFKPAmR5UkBUkAdDRJJo61UnLKUz3XW3oaW8kasuzJ5M5mvrZfWmVzCeFc6yNimVo9XuRvQ2r+jz9byinHyXjYHl49hU96JkFrcmgMiDfflU/12Cpm2xE8jkjg2nam0ovkqp66dkiNsh+XaqFRFf1pMdCGlHINYigu4Cxa8h5EfOK5JD9LUNHDGauVJPizToWVCVI011otqprkf6GScuwyTNd0KynUUNMknwN9ii6io5p1uYluDTLVT8kuOafkVPM0hIffsKOlY8Ab1UwiWOOQkhDwHrTW0MxSouRzRTJHf879RS+ybK6RZCFzsmE6p/jOlzRPNMOmK8hHOdtV0rlmDfNJHGyVZTzBJ9KJUIL0b8E3uvHIGXRTuDvRxKG55qiksLiSMOq3brS4hi9X2H4czvyjIsenal6VS5NyjlFBAaMiRde9LXD4B1vxCJzGnLxGtNkTmmvJDlicFhawOxptINtmpM4yzK3FvsadCFuqQbMx0axHasBukFGY3j42sQelBZtEW2jg0IWCoAFBI70mwFrtVgvheCUgOvEmp7SvAtWaYc8b4wJje6Gto+/lFXRtALkF0tI5YdqJ0h8HtetiqU8cnQ+PoVbiexroYNuzabDZS5BuTbtWJwDeyqejSVCRc2+lc2mTqyHpHG+jG5G4pbs0b3+Bc3HHkDDQd6JTZEmrtex1M9A43N9jWPHg36mjRX5Nw4GpX1qR+smh7wmwc8MGbHcqAaWr2ycHpernzJ87l4q4cvLnxB1r1MdO6G+xazcJC3yMeYeTm/S1MVWga5uqmAEEDm8bEOvrROV5JK9rW5KEyn4hWOo60t0QWqng0IJQyEb3qe9YZztxAD2DEEm3YUS8AOscCZZSAAu1HWonWn5J5FZkLEfemJwI4VZIMnlG3JVFqbXkDp8hxMhAYG1c0V0cIMY6TIwLEk9RQu8EltPKI5PjZ7hdSNaL7kTX2qoAxsPJiBsG0PWuWiYOOqaLYzLsw8qxwUpp8IbLkSpGCVt60DqjfaiuYWJNz1vyOw1pPWDysVHJeMh1uGQcelJdFZ+TXXvYjmyGVxZL369KppmoPQz9dZqWdWOaVrBwOotWtpD83WrlluNAgiKsTyGhN6Te7mSrPW11BNlxAG6rypmdpK7rpUYuIk6g8fbNqx6dSX7u1vyInw3iU+QK0dNEyl2/kDEl9okciyncCs2UlnpUYcuSQ1hcgm9BSvBRplyMTMjtZlIPpQvNm2q4DDRyoRf+a2GmSavpRnTgxuos2vpW/a0eXfZsX7EkL/keJouyaF20R39YM2pJJ7iu7gK8MMYzAhRfTpQ90a9OzSPe3kI9wCo+td2q0Vp1TKMaMu/kde1K1cIbhokyuXETje2o7VNTT4KdNX5QEaR8SFuD2o7tg4y/IiWNWButmBp1HBLtYBQ6gjpfaicM6ngCe0nixF7WFFTgTsuYJfbYXIvx/pTZNo1WsnpcVvZ5bj0rlfky1/4knjleJbEaUbrJHSvZSG0+l9B2rFUqWfAAykRPMkiidJF9G1wciyeLgp5Ka50BdOvBY0gkW4Q3A6ik9Y+RN69nCJVylLmPY9L03p8jKY88icqTlYOPuBXJfgn9rjwSQyIrlUuDfrTFV/IHrZOeRxnyL26dK3qi+uVWxYycnmAToa3qhlq1qcme7+TXG9ZBFv8A7DseeJoymtx1oHVi6JtchmVgviBca71jRuihQOjyFlazAAjQ0t1gnj+iteUcZ9o6HrQPnyUWc1h+BUmQTGVkYsetugoXT8EGyldUK/ZxzoGsRsDpRfXY6uVvBTE6lx5W+lE1CPZwp1hEs+bJjuwDk66Xplc1ZGv1nZvgOL5yJyqzOPUaUL9ePBRT1eVCKW+bgx3DKxK2pX/P2XJXb1b3tJVB/wDdsUD2W8gdj9a83X/5/a81PXy/+W6Zvsf/0L8AXbiD4kAE1+j6qEWPeb8lhgETk2DqeppKtKMtdyLnxsaS/Qna1Mpdol3u5hEMmNIAVCjiNiaeroXZpLnySHHaN+aPb0tTe0k/eOYGM8djdeT26UMMmv2u/wBCFlmduBXgOl6KEglStOPLEZOK7yaWDgaNRVYHDuOwvlJIV/XnbUaBjQ3yT5RRoprBZ+4GXisgOu1L+sTbHrXlHHZrix5HtWpDcspaKUWVotRxH11pFmpPeo6qsAQztFdeRsDW6VT5Cyo24BbPlMmjEWpCr2PT+lZV/YUuZMQGNNrRLgjeSmSN4nnPINr2vVKcIitaqtIiXEnFiG+oo62QjXVHooWRvK1a2J+2XCOOtpAX/EnpXLwTWtFuCwLZx7JJFtqVPHJe/PJWmQYtZF0/rSnSfAb/AKfAS5cYbkCSp6V3RwSaJ1lm3hZOO0Fx4moNc7KwlXtarKg8bro2tqmsmmP9bPiWSTJ49ftVNLcmaeCIwKX8bq29U9uOSd2g9JihtHPkNjXLSPAq+kuEJ/WubDT/AM0XcszfRci8j4xXiNgb0VdoYGm0oyjDLjswKkLVHZWPM00mRkedIkgUA8T1NA80xH1LtyW/s8kuDYjrQ9IZ6+GH8yLXMlWQA6jqa10UFWeK7ITkZLByQt6KleBftVVS746YuNRqelJ1qR5XS4RoujMtrcQOtTVcFWtlWoUWAxHIXPrQabIf6eiJsrHmj/t/pT8rpi/aumcxmYEBxYfSt0X4FZOPAvMgHuB4/vaiytxDM24cgpjB0vuw3oneGKWk8Ib7L+3bke1hsKS7cnr5wqEz4Z42a7fbSmq/Jz0SqLXGKaFQR0pnaSDTbs4kFoGb8RbuK3sA7KqDGErIQD5Cs+yGA9e3Ar2JIgSx8exouyZ1b8SNx/y5IdRQ3/YOduS2GQSsFbUnrSbKDk/6FTwtG5vRUtKGqssmkms4V1uppirxwZpWGQ5eMCbxaje1Nrb8ku3HkAYzGxdbA6VruhNt0uQY4Y4Zu6k7VPa7szyNNbXuXT+0y8l8LVtU0XOrSkUk0SnWS9ulEqt/Az18rXt4Dk+QvEAASBvW1z5PefrqtFPkqx54nj8VKvtrS7VaZjbdRrRCTQnUdqFWg5uOEL92SFtCQKLqmR6vsyiPMd/xUsOt6W80juiryxqlPcHIcCd6FpwLn+jskDHS4KnqaxXRl7JE0+KiWLMQB1FMro2L10cKCyFouXg/LTW9JunHJXmrO3I+HIELnTkpqbevap6/p5N2gmzziZPIMpLW0ttTPWdqoo9jJpwjCyYmT8EsBXpUtIi9YXLIBLLG/KzD7VQ0mTVrDGt8kRc8C1B0C/55GYny8rOqWKgmhtigfrrTybcQ943ualf8k2uy7BSKqAcvvWJt+CHa7cCmmhMZUH110FEquTli1XkVKglQag37UacHWaSFxYSKTcXrXqxH3t8fB6HmkpVR1oLNfJI7w+R8nMNc3B6Cp254RBtbtaEEZPFTsKOtIK881WqGw43v/jvXPTr5KMbJMT8h8dKsY0JPUVtdkzPc27RVGO0jY7/j9qprXsLzydnC8DYfkWE45nwNbbJRwU/Wq24NY8JRaMAipvHkPVzbkWf8L8mXig6CiX9G5J2tKCjy8VTe54npautSzPY9bG1eR8uZB7F4wBal1zc8gbZWvWWTQZLyA8SSfSmXokd6WKXLCdTLFZ73BrE4fBbx1FQYcgkIQsL9xpW3uo5Dpqq8P5LJMQH/AJE8h1FIrePAV9XZwiaVCrAABabRyFs+q5GKt0J6da35PK214bOxTRxnVSfWutVsjorPkYc1PxK+J6mg+oTvWEURSxvGALAjY0p1aYqlXB5cl0lHiCOprXmmhtM/6GTTQtqBr67UNKtF1s2hYYA3B17LRMPOvwP9+SSPYrbqam6JWPSVEqz8iVkKE8Dc02ynyBnTzJJl5EyPytdT0FUY1TQrfJTwDHnjQMtvrRWyBzxkTkZHlzXoOlHSnAvbOHJ1MtXh4sQD1rnSGIplKgU00ntsEc/TpRqqnkZbNdYJOUpFnIt6U2EJSqlCHRxkqQLaigbN7TwTywSW4kmjVkP4rUQsUiG6PxPaidkzzb6dmUJJkghnkPHYg0Lqvgpy615SGGMMeUe9DMeRN7cnHkMgClTyFDEEWvLJpQY5CdzTa8leOU2Frm8ZeMg8ToL0bpwWfX1Y12Pugot1NAS7NK0s9LACbna2woexJrpzIUEcMN2e5TsKHs34F4WtZuApvYkTlH40SleSm6dayxMUkaXZnuRuK5JslxrazmB4+VCxgW0GprHkV6Y9c5ZZjzjIh5Iurfap1WHyebhnPLEP8es8mtg3T7U5aQX42XZJEkiZGM+jEAH+lOlWR7OGfZzHJB8h8meBCoZG9KGtocHu5f8Azv57W4McZOYzeGMVPUmnNnUwpPNiyLD+VyAPdbhGdSB2pDTZY/YxyXHk0E+MhjQXc8hauzUHn+579rLg/9FcTZGHOCSeA76V+o2Ssjav+pN3EzsaY8JGGvrUGmVlyh120xksUXugI4I3rq2cciLyrciJw0L3J5KdbUynKJNn2twLEmGzWYaW1+9E1ZElu3YQ+PEGPtnc9DRqz+QqpryR5UTo92Og2NNq5C6zbgkaST3RxJpkId9aVuQMmESMCV5OK6YA9vTr4Lo8ZHiXwCm2wpXcStXeA4mx1usjcSK60/BdkreEaOM2LItg1iKl1lcnqY9uERZCyDIAW4W99aylu6PXrmsuX/sUtFFLDcJaTvQ0mtoEa6OymR2PgiWIh1uR61t7w5IX7XEIiyMDJgk5QqeJ3qimqsuSV2S5sAA395IPW9GR3v2twIeQxubDmD3o0pOdIBdlkGmh3tWpQbTP5YcUrBbk2IoWh2f98lePOjji53pVqjnbqhjQxhTxNzfSs7M8zS7twdgbJRWAPjQ3hlvqUrBRiZGUPFQAe1K1pV8llVVKGV/sTGwk09RSlRfBNt1+BMszqbhiRem1qmefrXk42Q5IO4NaqILoq/0VpEJEDA2NIdoYu2vYJQqsVka4rG2/Ai1m3CIM2CN1Nu+9PpZol1/hSyVfj4ZVJDWZaOurkD1rOzl/AS4QWM8bsQaJ6cnv+vZuoiTHnbWxQDrRqyK+1aV7M42J/jJMnLvWq542+70fgkhyhBOArlQP4pjpKNzzdXyfQY+YzoCZAQR0qG2SXwHb+34Kcb5Bo24m/E9TSNcFYsxy6orkysWRbFrtvSK5WqSexS1nCJ2AbWwYU9cG1SopCbFEkfgeJ7Vi0h8i3ft5MuSGaGbXXXUVWrKyH40/oYJpwLBaX1R6d6pKBySO6kMQp2AoXVIiu05SJJpJ4mF7Mv0p9UmTuiQEsp5BluL9DRVqZbObE/7jLyJBBO1H9ZyzhNlEbrPjkMNe/WltdWblX+TPeOWGW63tT000Myoplihm5UcoIYix2ovrTR31VdjSj+RMtxKLn/dU7xjwUWol4PTIWIIItW1cEW9khZEgUnrWNpnlbadjhnUBVcD61jo34JrVbhIhuj5IAbc7CtSgTWsXHzRSoG8bg02rTPWrTs4M8iRmNlsacex62SopYwzLGoEh/jesgZdW0cLwcTODGylq50G1y6+SiPOnja4/H1oXmmJ0qvJV+0syKW8T3pfSCS1YUjFZ1Y2lHHfShcP4FpdreBU+RIT4XZr70VaostiqqWcXPlU2mBAFa818E2iXwVmfHmguG270pVaYCzbUijkmKW4/GtdZR6OGD7SUQZ0Mhs2t9Kh3o/g931cXRSUJBE8h9t7DtW1bVVKIfY2au5GSYihQW1+lHXQ8y+rs+DPlxoXJ7DvVKu0ZlVyQyYCEnjoaatCl6QuSN8dopBy/pTe0nlextzwaXx/yJhlC62PQ1Prl2RHy7my+RjTkBh5elSKlqlNs3KJ8jGjY7U2l2M1t1EDFRAeJ2/trXo2eZts7cDoFgc8XPFqXa1l4Eq7mBGQphnJS7A9aF2lckPs25HtIskN2A5ihpSAscuJPRXeMrwuO9G+Pkpq0kehEmPOCpLDsNqxtWXINHNi6SRpU8jrSq0SY5Zqz4MXOhYOx43q/NqCpZqpmPFKZALC25p0oBuqfJfgMYlLte99gam0t28Edt3aYNqGfGmT2mTVuvWprUtXmT2vT9d1ry/8AYUfjY2DqGHLotH9zUMt+5w6gf9bOImXiLbCi+6sm01VlBBFBkxOy2sb6VRayaGYNLgfHNNG9pLAfTWgdU0do1MIrjz2SQX1X10pNsZRM6TcvaRZgCtte1RpOrg9BVVVLF53xyPGJFNnFF6+0OGL9jR25MhvciYrI3jfpXoqH4POty4QtmEq2Q29aLwMslSvPk40XKOzSWK1nb9Hna6T8DMaZYhqSwHpQ2rIXrUtdhSZjkhkFh1rlmeh9CryyuF45k8jr2pNk6sJ2b4QBlWKSygkelb17IfWjXLNLEdZEsQbVFuuvIeFu1oJp1EUminixpmduyKdP5X+Ts0cbLofoKOjaI9psRtio1+a6DrT+/wCA636VFy/GkKfbuVPrR12/JLprPkkGO0T2K607tKOV/gYySX2sLbUKaCu0iZlKnUa0yZI3y4OxSj3Re4I6VzXAdVDLXHJLgX0pKM2tJmzc1BKg3vT0SdIqOiT3orSD+KFuHwU0slWEJaCaMgqCVNErJi003ySyTzxy6taiVUxVcla4wzO5JFmP0rYg9LokDPjPIoJUA2vpXKyQr2NapcBRe6sd76r0pbaZ5NtO/I2TKX2Ry1PWh6SD9TuuBWPMrhlL3B/tpnWCzGvSsByq0aHxuorvJlv64ICFY2RCpJpi4H0p9deWNZo442EpsLb0u8vwRe3ra6aRb8TLjSRAK+o0/mkNNIm9ZuteTRVxC4bQja9BHYt9PJ2tI9seHOsPxJ3NT6aWzTPq/Soq2TZNJ8DHBJcWKsSTTMdpr+zfc961r9V4IMn4xQxZRY9BarKaySW16oFeCjiwsV0rTG3BR+vBkwkC4YC+lLdnVhUtxLP/0tCbEiyk8yS29fpCu6jE48Eg+PCurA2ANO+zgFb/ANT+C1QVA3160kDS7vY5LJd7FtPpeuquAN1DglKAzWBuG702eCLxY7JDKvS1utcrIbwxJYAEEczRwH1n9CrGRx48T2FbME+t1VjZYwguwtYb0l2nweXvo9LcBxS47Q3V/JdLUUNHp+njbrMeBc74gAdjyY9FrpaPa9X173crhE8UWTLKHQmJegB1oLuVyezl0zf5Zp/5OFpAWYf3UmlUvAn2Ne3JXjJIYwCwAGprLRJ5+u6VYKseOWJrk8lO5oNGmjzctJclEyB4/FiCKVRwxtl2MHMilSQkAnXrXoZ2TRyzSJJ0ypENl37UxNIdSlXyZkqZSXseLDYGnJpjLJNQcxs91kCzKD61zpJjSrwjVx3x3bQmk2lHm+xs5g0DFxHIAEEWpPaQc/65OIZwGCj1FDaD1cM0quQo5ZjIC6qO7XrnVQDa1Uy+NL68r3OlIbgh12lnZIiTxIuprq2F2aTEyRRxroCD6Uas2K1tayPQZjwSDkvieprr5KyEJFwnglF2XXvU3SyOh1X7FyyYssXEGzr2rVSyZFpS1vJnOQmq3v10quqLvXx61kfj5Mqp+BtQXomy+qVaeTRjbHnhCuByHSpbK1XwS2s7KEZeVhRiTxUgHcCq89HHIylenLM/I+Ph/Oxue9UV0Yp6WtbgkiyDizAE/wCM9taY69kWUo04NdJoshBxJ/0qR1dWXtdUdjJRtdB61rUkVr8yVxzwqwCvcnpSbUbI9nZuClpWBDKtj6UrqUZZSLmVpCG4kt0NbV9UWVqnZE8sM/5WN77Uylkb7GlfgDiyv5X17UyZRN254OyNYGw2rEhbq7sjmnIB0N9qdWo9ZQpEMXeKxsO3emLhiml1AxZpYXs2qmtvVNGYJSPeQkb+tAkOvVQKkgaTyGp+lErQLdkuQoYWWxK3FZawp7Sx0pYJ46N0oCX2rfydil9xLPodqDr+Dz8q9vBDlw2kBubdDan1ZRddeDNnRo5eYNyp6UVeWIzp30hDB8rKUsX4/WmfWj6TH1FWswd/cxTYu126kV3VjVlZtQKllicH21uTsTQyejl6/VckDNmI5KqpUdqchN1VNhrly8RyQ3713Uk1Sa8lcOW1vI6HpQupHeGXYziTpf70uyG48FRKFFAbiw6ClpCvZu4QyTGWaPVtQKFXhg58mRkGTEXU2F6emmejl67dT37oyfBSb96ntx4Pdw9ZV8j8PHcSBmfTrXdeCX2vfVXCN7HlhhkDDW4trSbUbUHz2mt9NJKmyVZgFNqnVeC2uHVpEfHnKwJ3NUTwC2qNnnxwvoaJXIttWyLKRedgbnem1Z5+lXaxnzJP7oPUU5NBxWrNLFc8Q5FmGl6RcK23blGsJRJEtgL96jtWGTexeUFHFDI3kpLHfjSbaNHl22Y5MGFZC4sD60h+xa3BP9trW4E5/GQEAE6a22pmVH5YbxlyySGIspVVINV2ul5ZVWyVeWHHBlwk8zdD0FAr0t4AxasyeYTf7yo6WqiqX4LFRL4Bx8+eGQq45KTud62+KaH0oqmmpXJBCgAEbdamf8HOJMjMxBHystnvsaoreSHVtkEEyJlIkllUm5pvVxwFhSLpG3FhKzLJjvztrvSLaxxY9jX2IheC+aBVT3h4yAag1NS/MfA9N6KUTL8geN1a56g022XJVj63HIiSYPIGNrnqKZSvB2q6uEdb9dtSfLoa5ShEWs4RI87cymlqaq8SU1xVfJTBlwqoAuGv0pNs3I26tZJfBoR/I/4z7guvepbYf1wYsprwSyS4cpNwDe9VVrZHnulqiwmG6WRuLL0rW7LyQ3td+SWZ1TS179abVSBXJvlioJiAbg29aO1S/wBanWpSIklQjlS+0Mc38EyrJFkC7Er2FMcWqMo1VyaIiQi4vrU0wZpo7M5iZLQZPG/iazfNWoO9ekXg05MiKZbdagxo6lHtU5EHiUsbLbqap8MlonAiQ44JF+R/pTayDt28CjkcdAKPoIWU+QTJzbkq2I6mtSgB1mwqR3II3NGkhiomQZAcNdtPpT6wZ0XwTGcI973bpej6iL1bZRH8vIE4lBYaA0t4o36Eq+R6ze9HuB9KF1gjaUHIWmhud1PesaTOxr2YE2TJxFjbWjrRFTwSqiV4pJrG2t9zTE0gq9anYsPKVzYfSselRF/Zq7QOm5hduLiltom9q/8AIeKscsZVxY96XLXgk9bngmmweEtiCynqdqetOD0LX6cALhNG3JQov2rvskRXXs4Oyfsfidu5olBc1WleTv8AhsPcADjrehcvwRXta74JsxMKQEhrE6Ua7IO1bJTBn/HZnszPABodulZWn5J/Wz/ppm5GC6KVuCfvWPg+jxSVUWY/yD4Lq8zApU2uSuoLsqu3KNZfk8bKTmlrd7VH9NqcCng+zZDmyxlQQ1mWqsUxe2TVZFnGTLhvaz9x3o+/Vi1olWSePHzMUaX496Y7VsLroup//9PWeIpqLg1+jK0h08STGQAkDyamwKrRt/oDlOJBzJ4HYV0KBlrVp4KTGXBKAaUEx5JL2ltsjyJJYiHG4OtNqkyZ59nI4TCdfIHXtQ9YLq1S8CDjASaEhTtR9uBN9YYiZDCbq3K1dPY8vRu9ieTKm5eQuh3pioijPCqZ6PCjkBAkIvrvbWutaD28bdFEFGL8cqAKDdu9JvaXJavZdaQX40UcT+R8u1BflEi1ta0IuPGaPx0FTLhjtGq15EXSAaG57U//AGPLv204+DyZ7ciH0HSseRTXFUUIeuYoGht60q2Y+mLgCZxkKQLtpvRUXUy9FUg4zQN14d6plWENrwHPiCfyXUUNbwHe6pyQy/EROTpxYdactSF+w3YzpI8jFk8SSt6ammTt9rcl+N8geAU/1pVsz08sv5NbDlimv0aptKtDHpHA4SRI9mTlfSh6tryebrazfkYMzDDDiCGHSg+uwLyv8lqSLMAUI9RSHXr5A1slyw3hCoLnQ0CvLJ7XlCXw42Oh5LvrTFq0Ld3MIFcaNwVW4t0ono15GPXpXnyCMJQx4Ehqxat+ROVnZyzxjt4uNaLtPgptaeF4Ot4aEXU7WrlyOa+Cc5Aja4NqZ0lDsMGdl+SjKAnQ1lcWmNv67sRe+kpYMCy9LU/rB2OKqRTwRc7qo+96dWzgLRurkpgmiSK9rHvS7VbZydnSSyLKhlUApcUm1GhNKORE6RJKGUlR6a0yrbQvSexo4ko4GzkgjrUutSvD+p4DTLeF7EckOxoLZqyHUz5CnnR4+Q1rM6tOAdMv5I2y1AI6iqfrE/UwDPG4N219K7q0PWfVHj7TR2NgR1rVKYnRvqTvCnEhfy70xWFJNqCb2pQ3lb0NNlB1aXgcYS0dwRcdaBWhhaacHI5SEI3I61zrySvwzqZRsvb1rnQXWkJMbKTIviL0rwR+zb4J0lWBx7o070zrK4Mwo54OZmRyW8bAof5oqU/JXf10lLMhop/duuqt0qhQM9alauWO/TxmViwHPtQ9mj1K62vwvBK2OVPjCLd6KZKu3Sst8mjjYcMkdmAUgUmzaYL9ptcCsrDEbaDS29HS8k212vJM2PPwsgDA9aZ2RNSLeSDJxcpHvqB6Uash216VUIr+LzihCSKbigvWSTO0mrNmwcQQADSVRjH69rsn/wC2AJVNW/pWXUHr+n/8+fPgVNDk5i/5BodiKXn5PU20zyrCDiwDCbi9/wDcRTJTIr+02pKEMguQQx7mi4PFvbvb9DYpMkyAORxPYUNkoG1dKM2IMVpNUaxFQ6XhFNdl2lipI5IpNSSRTatNHnbX7WbKopfcGoHrSrVgjduzEZONdg6jemUv+RV3DklmwWuTYEmiWpLtvyFBC6WVl8dqy10B9qqi0YqFQFNx2qW+0eSbf2IR0F4VtqD0FJS7kNKu52PKa92GvY01Yr4LMcvwG80sy6WXvXda08jtVWil+RHve0D5FjfYVizd34Is87av9HDncr+JHqdqoWEHs09dUqA8sXG7n+NqJVfwaqN+BErRZCkRWDAaMdKbVOvke8+i58k0OZkY7AMfEachR2zVhKqkp+SyUHKAMYvfdjvSZVPIrV1ryyb/AKNnmV20AuSTWL218E2ftf2mg1ikx/FCWU7kU2Vbyennzzb5NGN3OOb6kDXlUWkKyPofTzToSeyjE2Nm7U/tA6r+CR8oRSWkW+utUVpK4PO3TduB65eLIfAcT60p1sijHCycsVkwNKboQSBvW52gqvFeWIWKWLiSNL6mmymRa7cGziRo8WrXFtqi1cMPPTiETy46MbIDYGxp1bkuluvLIjAY5DxexvtT1aUQJt28BNKq/lvfSsSDsm3wEkvqCO1c6jVWODq5cakEKR3vQujY2mbSlj2yoHXQXagVGjLZWsHjyysxU6KBtQ3qkhuSqrQH7DNISF+9LduCvJqtpHN4AEMQfpQVXwbo3dydVDJ+R07VlnBtLKvgVP8AHMrBkvbuKbntxyRexvNjhxpY/Inlp1rVdMUr93wRySSoxuLinJJjKZpHPdZtLG1b1GuqSFlWtYreiJrP4I8iJSdF1ptWL6iSBxsdPSiMvbgXFLIlxGbGtanySKs8Mrx5mkNpLhjS7KPBVjFVwPkxCU0Y99NaFXC114gmaWWEaqfrRwmSaL+Thz35KDex61n1pC75KikslRpEUjXS4NItZIh9rRAYsixC0gtbW9aqto306OJHZWSLAgXQ9a6tCrTL5ZGA97pqt6coDxol5GkGReLGx7UJuluzI3xkclXH3FMVoCrbov2F/wBbjsnH+4bXofsYl72s4ML5D4+aOXnGPIetPq0MrCcsvwPkMlofb9thINOQGlL1UH0f/wA/Ct1LfCHGDJDguS99fKgzh8lnt+xWiVal2BO4QgqdP4oNqyyb1v8AVtsslmikxjwHmOhpVKtW/QO1W6SxWNPOFsuh7U69UeYotx8FqvlyC0h8T0FIiq8G2dF4P//UrGfkDxnNyOgr9JWS+CrSqiEGuWp3Qa7GtdCXoclnVrLy2HSurUDWkQJOW6A79tKPomdlhPJNkZBZCTsdqOqKFgkiSL5BoDvp2NMdJE2zcFg+WQhSbWpf1El8W2iefMBbxTTvR1obT1YfJPG7yPYGx7UTRqqk4KEeaNxdeJ72oWkyizSNT9kPECNHHap+sMe6SpGQvLK1+IBHU0F0kg8lVWD96WNuN9OtCqpnax8hcJmYmwIPU1spIVXr2gU8V7FtCO1EmdpePBVBGsihVAuBrekXbTKqX61lhnG9s3/0ru8oi+x3sJkMhaxXktMrEA3STBeQR2/t9K1KROibFuWc8lbeiXAulFMmfk4xLknUDtT62As12PRfHCQECyt0NZbSC6m0KAUR8SZeZJ11om+yE21cqDRMkUjqwJApENIG/FpHfqwGTlyJBoO7gC+z7AX/AFZLpqpNdHdEVu17l8PySuAGFgaRfCPAWyVKlsMETm4a2l9amto18EuejTBkPAsOQ0raqTKZO9pZK2Yo1uQ3enrIsWLSkfHJFkR2P50t1dGFlWRE0cwHhqB0ptbL5LISUs5HixyiznWutdrwNy0/AlviypGnJT1NGt0ztPZ6oD9JoSQdVPQUX2JisrNskzkZ1ug4EU3NlF6KJZIMXIMf5Ajvem91IS0qqiPamjXWVrUUpm5tKswdcy8BaQmtUCdYa8FuBkZI/MlgdqRrRMdi6pQjSNyBv/8AjUqH6NJJHJf2BELDTewrKtdhqouqRnTmYttx+tVUgy1ao4qTn8bA0UoTeybg475C6OutakhOkMOPIkDXtpWOqENJ2OSTsRroPSuVRtclVfsR7kii8RNuoNHC+QbpJchreTXY9ax8Eso4WdOlxWwmLspESZU35JcAbit6ITbJeWUQSJIvMnkDoRQtQHip5RzIRUAKjx6iuq5KNUxEOSBcAfzRuojPNsqhEUtgF8u9Ku2j1vWrECcrFZGuWsOgos7SjPYv2tCFRP7UwDAlT1o7KUZXhl0qe5GSFuD1NKq4E7W7MjWGZJAD+B7U1tQB3rQbJBj28rn60t3fweX7nsWb4OJiYUtwGCECuVrIL0laZYrI+MxwjXa5O1b9rk+o9ZWsnwSxQQobN9gK58l/2NKEPeSUKPaPEDSxoqpEPstRz5KGyeK+beVhvQ1qI3Urg5BkRMLlb+oorVZ5tZSKlZGHh02BpbTMc/Jdi50ibi2u/pU+uSZThSeQsvJDMG1a+9DlSEd7GUPgzxmvA5NjaqXmmiB59Uy6L5SNlCnUVPbAk2pCDOWpuOFx0pf1EFqfLZRjx+82h4i21S67KpDpupgLIeSE8Vj5etDnn35bMri7uWxEkztb/f2quuaX+C5ZKP0ex4XlJMhsR0FZbRV8HV1S4qeyFdDZFJ7k7VlYfLAvWXLBixpixJsAdjTPsqin13WYQvIiRbByfU7CmVs/gu0bSSQgBGPGM/XlTOV5LMqfXWbeSeVBFJfRj1N9KYnKEqb3knbIcyFWQFDtRdUkK3SoxifIJjqN1HSptaOx4nsdmjZhnWeIFZLja1Irl0+D0PQ9ZJS0KkjKyaSAr2tT05XgvfNvA9IuWO3lreo9bf8A6I+m9P8AnF/5IZozHICTyvVVLSjrTKghzVDSgkhUqnJ8E26VbSUYuBik39znfpQaXceBefs2dvBaMeKPVBe1JVmxWmtr2Fy8X4hzYHcUdeBOnEBY8AVvG5G9BraUU+tePJ6U7gNa24oqom0XazIMlkLXB1p9EDekchQRRzx2bVhXWs0xOV5FyYMiteMH71q0XyOeiXLK4sISqQ7gMBtSraR4Rtd5mEB+q0R1HIHY0XdM56wpKIDxa/EnvS78gZvk0I5kNj+IOh71Jaj8FMwuxYcEOnJfJT1qb7ocMP7lAn9SSK/Ud6b9qsIttFWxh5qn5XB71ihsiu+wPFm3UWNbMFuNUkRZGHy7g9qfnqNbgkbHkGnbYiqFdCbXQvg1wCTf1opJ7WGPge4CVFjQrWALbSySXCceJW5Bpq0Qm+igl/VeOXbQ9KLvJM9JsPVP/wDoALdayfwU1tHgcYwbLE59elDP5H3fVf0BLiHTnqvWtV/wTW0lyImg4CxUMnSu7SR7XdnAhcw8eK6WPWsef5JnnPksQ81Jve4tW+D0clCPOtls1iltq6RmluIAiliQMFFvrWurYqtbOTpeKYjx8hua1JofWnURkSRwSeeimtSbE61te3Ag5OP7l1fkKNVY+uNqvwcyBFIt0/rW1k1Zu1gMRZIpQLeDb611+UezndUSRp3x2ccgbj+KSk0iT2dbO0l+JjwSHiG496n1s0N9fRryUDDw4g3I2boaX9ln4EbexpeUvBM36qroPP0605dhGGV2oI8jLnYWguCuljTK1XyeivVqkux//9WyPjIPJbA9etfpT4DtfkAwhW4lvDpai7SdX+ReQI1AZGPrW1fwzelruWTHIkW1xdT1o+sjbVVUUiFXS4Gh60Ewwb6JImyPj4DGWJue1MrdkOu1o4Ex4sbRgWonYVTVwNXELgotvS9Y7QUUv8MzpYcvHyCVB07UxNMnu69jRhyJ50UMAGApbqkMXUvx4JGGgBsPyNIvZIsy0TcfgSYclWNyd9hW9kyrN1opKUjJXYhu5oZgi117OBkeVwlAe5+m1Dakrg2teQ5rSNoQo+tDThB6JV5GwS40Y82GnahtVvwTO97sqjeKUWQErSbJofSvRciMjEI1Gn0ptNBGlpAGP7sTa3t1NF3hgVummRjHeIrbXXUU7smLV/AEyuJO1z9q2r4Aam0IWcpo5QW1Xa4oukob0/rgKeZZeulZWsB6ZpM5CVBHJrV1iO2poQTQqp5HmBSLVbEJ2tMBuIJR47HvQpuo5/8A51l+RE+DH7Y9pjyAudaJav5JNtG1ydxcp0WztqOldakh+vSVJX7/ACF+/el9YPQVFVSclxVki/8Aa19K6ukMGeyhGeB8hE/hoo3qh9GinJUopfkujkyXQ2ty60i1apmvrYASZMTgst70UVaB0tWq4NGPLR0AepbZNPggsnd8HpfYlS6EjvehTsnDPUxydayyWbA5xmw5A06usM37JMefHyscmx8KtrdWNpVMmeVgh3f0o0uRrpKEGW6EOtvQUyBHXiEBj580TcUF1J6116JjcMEvJojMy5NBoR6VK6JHoLKsjI87PQ2f8aD66sZetEini84uLXA2NZPUjs6yRtBlqx1tr0p/arEK1Vyc5TKbMCfWihE2tk2EC3uAkXB36VnwLUKyKvYYtt4HtSuw3TVVZxsSMXsLfWtV2RX1bELGUYjXejmRdHyclhflqLKa1WQ61lUmkiMXluvWiTkkbbEwzcG4hfE9KN1LMM+leS4Rhk5WuD0pUmWv2ZOfj/ckut7elH9kG01VGPgxnxZQw8gdxQWt2Q2uztYveKPIW7WF6Qm6j72SI2xoo73HLsacrtkne1gElUXUbGtaGx1ryEZACOOhHU1jR53sM9NIs0YDaMO1ZWsMnrnPJA0iQyHjblfrTvg9v0/Ws3+iyGWKXSUgk9BU1qvye7PVdajP0hI141tXK8eSe+qq+WJnw50Fr2p1LpkG+qY04wkQck5HvQq0Ga7cEQxZY3YIdAdqd2TJKWU8nVmCHzYqR2rGhmdHZyUQZliN2U9aVakl9K9VLLWa4uuoPelpQI2c8snyI1I5XplWed7F+JPQoh3UWHUUFrHlX2bZXCt1IQ61LpePJBttC5AEuVjzXF7UGedbcsR6+SbllxzZpUsbL6nej+mqPX+qqQAa19R9ayxNpaXCFx5MtyFIUd6L6klybnnWil+SoSq6EFrv2pDq5F2m7OLkNHIORAHSmrNNHoevhDQc6Pk6B1A7VlGqfB6brSnLXIhvj8cLdiLjcA01bN+Cd+xe7lE7wQbBbg9KYrMbazpXnyT5eGAAbcBbpXLU8n2NZf5IpIvABR7q319AK1OX+CJLs0g8WZ4Gstwp6U61U0fS+pn8Djku0u9hQ9YRbXFd4K4c0KOBPPkahvn2tK+D3659aFBjR2BNgK2kpEPsadWHL8fjuhD21FFXVrweNv7Frvgj9vFxG5XJA0sKf2dkFitLPg9LlQut1JC0NauT0fpdK/snkZXTwO3U06vD5EWpPk5j51hZm1Wh0zHZZsJ8hWe99+9bWvAN6dWG0WNLHdtXt0rJaZ5e+trcVI+U0MoCIQO9NhNG1oqLll0eRNLGdrjvSXVJgNVcnkklUjmBY9RXNIJRWslylClmN1GtIcyT6Xb4QQTGdTxBB71jdkVYzWvZjkwgIuS6qaU9eTlv2qU4s02OLWLRf6UnXOt/8gqyaL2aKWLkp17VIlar5Msm0RypdDoQelU1tyPwy4JUbI2X+tPsqlCVa15DkTIsDa/rQVdTX1ZDI8ytov8ANV1SaJLpSA456nQiiXBNd88ARe5YgNYeldaBasqqX5GMCQRbXuaAk0ck0joJBy29KYqsX0fbgMCJ3HEeJreV5K/9XLGSQ2F1oFYHS7bkD3eMbArzFb1li607JkOVzbyAstqdWEHeiojJyrwksCGAp1VIj62x+J8jC6gDQ9QDWvNl+WTSllazY3I3Nie9LasLsrWtCFuInc2YkelEpRVlm0yQ5P60291PftTOsoG2btcZLPDkAe4wArFVop+vr4IZ8fHS7K1x0pibMXazJl9zYHS9EW0qqLnyOWaSNgd+NZAja0s1IMpMiMWbiRuDSHWBNa8yyiDIMDb313vQ2rIXLNWPIxp089XtoakdLVfBlpfCBfGMgBjFgKx6Rwy71qqqlkGRDLExN9L1RSyaD0cts//W2GwH5txPh0Ar9FWqgTS6q2JycUprYgjetrpJbmnZyQsrgnXSnpyOu0lALSJGRzHIHsKJKSHezfgph4Ml4joelBb9iphcnmjRlIZbm1dIi1nEITjQp7nHkF9DW2sR00faB0kcccobkT9KxNtFbbTkDJhjezBr6bV1W0T25c/AvGxQZRc2v/FbbTg7HWboqx8crKbMWBO5oL2lHo01VJbNaKKJo7acu9SWs0xdtXcmlVFPlrbqKbVyFnRrkVIiTILC3e1am0y2teqTfkW+OLaLf60asBfR2YpU4tfQKdxRti7adUaWMo4BkYDuKmu+eSZ7TWWaMcKyx671Ja/VmU0lSR/q5ETleF0qj7atTINLKvAmSCVG/Gyk9aNXTFOykS6i/nr9BTE/wNqo5JcjGGjIBwO5NMpcp/1UsAfH8h4akjQ1v2x5Jr+x2cEwhljkKuDcbXo+yfgiteXCH40o1U79RQ2Qyr61NH9aOSINGwDDoan+xp8mK7vy/CJJBOVI/u30pygPOisyBZMlXA9vc705pQNfWi8mziqCLPrcVHd/gVffu+q8FaB7CwstKcFOcVrL8htjmVPA+frQrTq+QZ7eSazxTXkHHvamymuArXh8FJfkmouo10pUck1l2YjjGfJTbuKZL8FOFeq7MtgxkaK4Iv11qW+jViiu7tWBbRSRPsSho1ZWQaaQuaF5I2st/rRVukxlUlVma+KtiOPl22qtXF9m1BBJjTLJZVFuop6smjFCaFNgMzA7UXcctFKHLFNCwPIkdhS200V95ZbH/mUA/wBaQ11MtdArjMkp0uD2NG7SiZ6wxxiHbX1NCrE97yxTiza6fTajRLd8nfZViGXUHcV3aAXeORvD27FGNj0NBMitbt8j/dx2U8yFYUvrZeAa1tbwSyhJAeBsadWV5HqnSvICSMqFZb6DetanwSz2FPGJUIUXG5ok48jYVK8+Ti4ihL9QNb1j0JdN20VQY8JQDlbSl2ux2WjVRcscmLKGBDRnSiTVkBZ/1JXHAspumoalWvHkrpZVcAtD7bkC+nStVpRQpbI5RISQBYGmpoppmqqWSPGY2vfT1pyckHsaSw2BlXxAv0NCuCVKWRPkTxNxfYGmqqLfX9dNni4cklR6mgZ7+eaqLUJe6Xv3rTtL9VyXQZssYGh+9ZbNM8zV9jSOdjTxXawcaWqZZurE2zbFMJy54Hw7UaajkXq61fJwwnjya4PcVqsJxfZySS4wBOmh6mmKxfXjgFeMbAEXFb5Bvdt/osjkBW17DpSmhWtoQZWIrxPSgs2jyPb2aUAwpGshXlv0pTszy1ZycLe1kaNZaS13ZHb+7wUTWks6tT6Vg9WmcBQKWaz9Ky9vwFbXmEBNDIr7kKdftRUaCpVV/wAkztdTxbie9HAF02DFnMHtfbQmieQ2mfXlmtFBBkxg6lutT2u6Mvpp1rI44AjFwDalraRd97XYJSEE3GlFLKKzVAzxRhLxm3fWurZ/JH7Fm1LE+0Z4mAYE13ZJkCafkyXwsuLI/wDT8bf61VTSrCwdew5MVw5IGh70Tuj3c7pHp4EDAuxF9dNqB6cHs+nm7WTSBMkaEEaoNL0GdJRZ7ejXP4NGJ4TGOLBj60Lq0zx9bWsLOUU5L2OlE6fIGXr9nBK+az3Vk0olQ9NYLOv7CaCN4g0Zs29jWdofIMuyJDDmhzZVYU/tWBTtWQeUyNeSIKSdxXQmFKS4ZQ6Iy8utDWUS7Xb4RGXmRgU706ExCoqqWOMkko3PMdKGEgLJNiFmnikB4n17UTSaFuDQGYxh5Mug7Un6+Qfr7+BX7sTDkGI1sRRdB9cutZLsaRPbJV73pF1yJd3ZR8FEM+VGLA8k7Uu1KsbSlVWBq5WTxuB4ncGgedZF3Va1NDEkV0sAedqk2rDCxcqDrnIU2Jpa6s9GlKpQIflyuSftVFfBNfm0I8ciVB4n7Gs6JjlkmIlJl3GtOp/JLolPBnurI9jtfeqk5RLbhgrNuL8ddK51I7KWdfIubE3tXKgf1wJYiS3G5N6KIFxHLOkuh5AbVnDBu5fBQc3/ABkvoLbDvQLLngppjPgmWYyAhDZCN6b1gdnnWi5EOXRTdri+xookja7/AAQZie8mgNutqdTg9KmKzom/JlJEuLNcXsTrTG5IdNbNmqsMU4DpJrQTBdi45gQTNiyE/kmxouGMjmRjRxZS+O5oZgLioh/jWRm4kntRK4a1lif1Mggrf7Gt7Ier1qoFn3YHBYbfxReSTW8sujX9lfBVDCltwT9lIpUmx5OXAFTvatlMZjyx/vpy1Wx9ayCi9XMIohkc2ZTxHUigsgk1VSzTx8qdFFjcnU3qTSibKqVXWWWpLBN/yIORpXV18Eu13PB//9f6ErLGzcvx6V+gSmiai7WYZDsdtD0pSZ63FUTyYqDVl0O9Prcgto2+CTIwscDlG/H/ANTTqaP5JttLMV+u6jmjeNqPsgO/A6GMTDxPnaxBoLWgXW8systZMfJu19Koo1ZG0y/rgcvyCyxkDRh3rPrhlGmfHIcMkckLAHzHehackSmygmMkvLcgrpamKqKcM65rt8l2Jkyg2C6Aa3pN6IW2rWLYs+ENZrr/AKUm2TK88mhskmO9grDie9KrKL1k1EikCRPcNcGm+UR66O1oKlCSEdqU5QFrdQZcSOxHG162ujJb3bEovtxtY6XpjcsykurHY+S6sAra9qXfNMfWqRYuXMxs2/ap3lVCLVTsBLk2PkhI6mirn+GY8ueBcpx5AD+JttR17IodXVHv1YXS176bV32NMRps2oJfaEL6HRe1N7diNNtiZlWUgk60SfUDR9eQhi4siHSzjqKH7LJivtsxuNAiEqGuNtay12yzG78BthqW5lrCs+0c9uvKFzYQZLRsL9O9bXXnkjl3fJng58E4spYetU/w0VVVEzVx8maSIhhxYVLeiTH0Ssjhy54nUsCVPUV311shrzVYHvkQSgk+R60tUaE6UbcImabjy18O1O6jaZdathoA0F1t60LcWCpzQCOf9ZiTcg1t6dkUYUfJWcxWQMH07VOsoYzTPhcDUdnQ8dRS7KGFlVQZ+Qs4arKNQC61RLLyJHNbEdadX9CGpfBOzuNwD2o4QxVgpiaOaLQWYd6VZNMfT/UAK6t/4FFwwJgM5Uq6cLVnRCHmmzhzFbfSuWZ184BMsJewP2okmS6ppnJGCEalR3rkpFOrbBfKcdQ6mtVENWMsXHMshIv/APxNE6wUVSohukaki9qHyRaWdhcj7Mp5DsaJI3pCOvwKh+XA9QKHkl3u34DgcNKyjz0oLEv/ALwOM0cB/wAgtbpWdXbwVVztbwdkysaYBQwsehrq0aKb4uqUgxRFHDRuTbttW2crkzO0vkuLO/5/l2pEJF/HkGVYkALREdL1tZfhivYvb4ZNM2DIpHDfS9Mqrr5IXS/5M3Ij9iQOh8L6a1TVyinDJ2sSyzrI1rAnpRLg9rP1+oUeHJKbgfahdoHX9itUOOLLGNvtWqyZ5e2/YNAW48krGKq1wMX44m5XS+upoXqFp7CqoQTpkx3sTbtWJpketlZh42XlBeDoGU9TvQ3zr5RT6+VUvI1mjOrLYUKTG245F+zERYbHvR9mSu7S5OtjBLMNBvpWd5J76timCuQNeVC2eXrZ2sS5TywyFjppuK2E0J2r+Dsc/uo73ItoL1lKQZ62S5sVYxVojY+XT61t3BU7xVjoHbkRy5Ed6VAnGvMsraOV0JI+l6FNJlihmZOyB7OLfTaqapmqjXIm8BPidDvRc/IDlcs0MDMTGazOAo1qbXN3+BStazN2KaSTi0ZWWNtwDUNqpef5ZfnWtYb4AyMZLHkpUE7Giz0fwOu3HBBk4yLExQ2+9U0u2+RFpsnJiPl5OM5KNsd6r+utlyS2ySTbLIc/IlALsLHW1K+mq8BYY1mQj8kYJLSL4VryTUnrYeo7XhC8jMw8ga79hUtFZ2/R9fXB45R8ifbhMXG3jarVKZ4+2jaFKRCeUbbdKY+fIjKrs+QmkllIYE3vtSY+D0qUrRSE6sVPJddr1teBOluxzFyfafifMbWor0lSLUzAyaUF+QPAdqyq4gXanVyOWP3I/A3PShbhk9rduCSYyxv+N6bWGH0QAcyqQQqsDtRRBHdpycPuxyKxFh6VvDBbUpnWkiueTXJ6VkMT1ta0ITdwCVa6HpRHo0qs6MdFA7Q6AG9C7KSR6p1PRxTQEFlPH0rm0xddFHBpxM3t3DG3ap7LkoT4D5zcPHa2lDCkQ0rHcf5CdJFUk37UOmKaZVlkqwbKzs6m41t0ry7U6no50VrMzpZpklPEnU7VdSqdRGtFVlUTCaIkCzDe9Juutge38sS+OzX12+1OV4Je6RJLEynr96fWxFpbklIQtrvTOSZJyN9uN3HbqKF2aC00hi5cYwycgTxPauV5J73lye/ZMejDkrb1qzkLLJt/5GRmKYMLaHpXOUepX/8AOrXyK4xwB7C6mtl2I69rtks0kbbAGnVUFdMeqlhR+14g2BPQ0Lkl20teyXwTZPxyTsdL9rUVdIJ+8WEY8AxpeLG1uhpjt2RZhe1mWMsEykNY36Cl8orbhErYntG8R07UxWnyKpZ2fJwvO5HHQ9RXcFnWq8ni7rJ/kjt610cEu9ueGHPFHPDoAT/WsThmKvBitLNhT8r+I6U6EzKZt24K4/ko5TxBty6GhdC6uHXgJ4fcN1YG9cnB2l1U8pliFu3eu4Yn/Y2MTNV1TmADUt84Kr24SRbFZpuI1vS7eDzttOtoP//QvX5GcSD3PJTbev0j6lHBQ8qpwjSiz4wwv+Jqb6XAj3LRwjQHssAdw1TOUefezSF5OHjcORUWo89bTAvtZrgzjjxDkqMF+tVK7+TKz4Zl5ZfGl53uAd1qqkWRXTGOTmT7WTEJEc8rbEV1Jq4K3TiYM445tyDG47U/sSfZIiNpFkNi2p2tWtIGkVlmggDKeXi3rvSmLtfs4QCSTpJe3JBvWtILGqTn5LOUcighdet6S+D1sqfLGroLlbAab0MDNb/COLmKr2Iuh60TpKPP0r05ZoQSQEXR9+hNT3T+SC1rPyWr5x+S8gf7t6Q+GFgu3JnTQyxseBBQ9DVNbJ+SutEvJPzmR9CL32pkJi7JNwOi+SkWQCVRp1obYqOBbok+C4ZKSL4kEmpujTG1z4lnJIOUdyLHuK2tuTrWlcEsc7Rta1xTnSSOy5OyZVnYaFSKxZ8GWy6yIyLSRckuCO1HXhiOkoihypkYgnS+9NeaZmWaKRkXkBUnlQuvBXZdTRhk9yOzGxqWyh8Ert24QLNwcXH3okpQ2tY5PPE04sj+Q2rFZV8gtJ2gRGuXFNZ9R1prdWuCulqp8Fhk5LZrC2tjSesDusskYwmSykgncCm8wPyzacsU+MbkWupFErhWtNoITJk43ivIrf7U3ixRniohhNk5fUcgevahVUU3rStSrHm8RzBN+1DapI79uF4Kosl4ybMeJO1T3p2H0pCbKHf3I7i31oKqGIvWSCZ2U6an6VVUX9YH+OZAWFnFbymavAtUZSeLfa1E3IdWNDsTroaGBN2mwyX05LcbXoeDFHkGTG9wXGlErwDfRLklljeNrkC3em1ckd3Lk6ZH4WI5LWQirLJNErFyDxOlMKFVVUsPHZwbOL9iKy36PNena3BRG+ouQVOhBoGgG1VSVosAUjTXakttkzta3AiWIMGUgeho6uA0oTRkZEuRhzh0uR6U9VVvIFMO1pZU2cZ15NHcn/dWLOD2nkqrg8Gc24oB9K6ERaWTfkbBNlJKV3U60Nq1aNqqpmnHlARAyAgjtvUzz54HQ3WUObJgnjIXlcDqKX1dWPywflmHkL7cv+Mliehq6rlC3m3aPgWBI9xIoAFaXV61UIascGh4aj0oeRG+7S8lsMoitZQfSlXrJ4+2jtxJphopx/x2a1StOvyc/MJiRj+dl0o/s4FvRVHx4oLDmDfvSnr+Ba2m3AuaJFkClS2tMrZtDur7JCHSNGvxIUmmJtotpVyC4VQdAVPetXJm9oTR0NDxFwNetZDIbNtBrFGyNxa/pQuzA7OGZeVG8b8gDYd6cmmRX45PTrHLDyBIa21BazQje/8AMg4+HH+sOVw29bW7gL17voA8EkbJwJ1o3dRyM0uklJVGrAG5PMamg8m5J24QyLNyeXF1PHa9E8q/B62WVaL9nJoY5rcSQe1crdfIj2L9eWI9lY0Iawt/NcrOx59Xa5LIY+TIw8GH5U+qPVyy6Jt/KND4eSJIlIluAb2BtbtU202+CWvsXvwfSRZsc+NxkXkLb7mvK0ydLSj1fR9f7DBypJopCI9UPQmvVzSsuSi2CXkxs33W52sGOw3qqqR5m+as2vgjxPnDC5jyR5KdCBRWx/Az1fTbcVLcnI/cAaEHhUTs56n2vq+rTCna3kYuJIISSPoRRVhMVt7PdMTDPLG/Fr8TuDVLqmjyPNhizR+4RcAHXWghtDo6GikCPAGQ69xU7tFjlo3WRMiNx3P3ok+RtFxJA5ZJQB/NULlAOsPka0qhCSOTDrWJQA6u/jwRjOlVhxDAdzRuqYVcVRSzQR5pU1ILdKXCRJter4RK87QzgSrv1FNiVwedv/LhfJemUsqcCBxte53pLpDkKuULnyStBGSONuVqZ2Y6k1UsfHiEpY66UDuTb+1xAcKS491J8DQtqxHW8op5TR2sOSt6UuEzrQy6FOcd2TQ9qRa0PhleNpUJkc6tETYsqk6U6rkqrnCF5IkZA6bjc1tHDhlfRQmOxM2Vb3ck22tU2+SZ6WNFD4LPdTKUNcq460Nauh5vsWUjMS6kjlc3rteSOmnkoddfXtS6sXd8wSzSOD5KLW3p1aomtRTJI0aubg8T607tBO31AF0YAkW71jckelygzwiMhtR3pao25G5Y2uRTGB0uj/aqayj18cXWstE6StE/48l70x1kTzax55wDa4t2NcqltcelQrYxW+nI7WNZ/RDte1+F4EN7bNY2FtjReEJu+iAeb2fxYt6VyrPkVjg7uWKyD+xdghB70yvB7lMq0UiYJpIH4ugKE73orKSO9psVCeEnRSQdaXDKc8mjjSAKGC29a1IVdcTIxSmVHa9moX/LFZr5fkmfHaB7cuV+lMVpRRWbOCWVVkJEqD6mjQy0V4QqT4iJ+DISp/pXdw37Dqk2Kkx8jFbfmBRJpk22ndl+LmxSjjMtjb60u1WvBtU5hFCNHy8LAdL0LDs3XyG2UyOvA3YdqHpJHbJ3upP/0VJKZJARdiRvX6hEIt2sqspMskbgMbi1Cqpnle1aXBp4ucg4o76WqfTL5Qvq20kUHIjMbBHNJ6uS6mP88mdIeTk82JqlcIzPPnwLcqykAE2okoD1Aj/XVbMSGonJPa9lUHSM3jNxW+fJFWrfkmyZEC8iSCO1GkzNKO3g5jZscniEBPc71zo0Flm15BmkkBsAf/FbVF9cFVcjopm4gkAWoLV5LlFal2OYpRYkEUq6aEVvHIrJxAoPFvE9KKlyD2NBI4xHxBuNzTPIpJ2cD8X5aaBuLSExn+00rTBW+D0MsFVeC582KQXUb0iubQy+MEjZQ5fjb1p6oSLHkTNlKxvxvfvpR1qdbL5HRZUixEqoA70FqKRnVOvkrxs6f2wT5L1pN8lIFKVaAlcs/IgcfSjqoRK6pWkGWNGS6X+9dV8g6NtSyYSSRiyk39aZCYvrxAiSSZnvb7Wo0kglnWo6MO6my2YDSgcCnbsxcWVJESsgIPqaJ0T8Dccp4Q6T5Y8QFNyP7aBYoft68IbD8rIZA4UJpbShtgoE54rtJZ+28guLG3WlfWkN+tSdJWUjzF7ag0PgtjovATY0a+W3qKxXZlLO9uCDIaaObwJZT/pTatOpfn6678kjyzMTozAmmVSH3qgWknRQrraM0dUmTbtJHYckR3CtcHpW3rInHJvyWxZsTKA4INTvNyO0lLgrinQr4MfoKXerkXSrjk5MgdNT5V1HDMv4Jfa4HQG/Q0/tIurGIrEk3tbtQsW7qWEY5DYi3qayUKdkhiwvw1APcULspC7qAJIuKhgdOooq2kXZ8CnXmpBH3o04ASAhxuQKltOgrrWK89OtQJMUwkgLcGireSXfRvgnidxJYnS9G0Q1irKHhVgdPUWpfYDa/wADYUcKoIFh/NC2jK3SSKCkfC9rkd6XLk5TYnycQyx3Cqb02l4ZZmklJL+iyJdkuPrTPsTG12duEZ+T70Dlk8U7A3p1YYbzS5Ci+VUx3Kkt3NY8xVcXZTJo4+TLkRBYgFPrvU96qr5PSyzrWqk6BlxSXZiR1tWcNDu1ZhHXRpjyRRzH81tXBPo0hkWGsg8rhuoNZbSCa3swHJhuq227Vi0TItdpFlVRgX0A61zf4I9dH8GhjyxkAoxtSLVfyOwTX9M5JmJDILH6muWTsJ0ztawS/JwiZSSeJ9ax+u4HZ+u+6GZMyNMCr6Ghzq+p6V8et5ZNJdG0PIE9adXkK6+DxCyIeWxrvBJrf4QtcZStk1rXpHkjtrCGRwGP+4j0oHeRH2TwBlIHU9WFcmJ2MyeWNbRnQ7Xrbpsg3TcIojyYlfiCCAN6J0cFfR14KGmgdgQfwHSkdbNk7rbS/wDgPGkSW/FQW7mmuvU9P1c+vk9IJSeNrWok0ivRqi58nJPwW4F13oVyyBzdz+BMKRSFg5ABP3pkteBuHDZzIwIDGSrX0O9atWUb7NV5MxcfIxfwQsrC4Ipqsmhn/wAn1/tcfkHF+U+TikIbwj6AUGmNbn1+WWeNYXk0JZzIoZV1tuazOsHne1BEcllbjKnryFUdfweKs5twTzQ4M8nIxnl3NbLSPX9bK1HJoQx+3j2RQAdgKkcdj1Xo708hJLkCPyUkbXrbJSLoq9SHJiYycidO1PrbiBSqk5ESGMJrc0dRek2HYmdLGAiAkdL0vSifI/PJQky4Zcz6EUhUQ61KoRliST8BZhTM3AFs1MsigLKxDqb336U9qRD0jwVs0JFtDQ1TIvYuxmPGwkAvxFZZ8ElNIsOlxBIRY8rdTQK8Hn6697gjGT3ACdevai78FdtXWCxMGOwZfuRSXqxFvYdmTTB4pQFJIJo000I188hc8n8VHK+tyK6KmrOrcCJM/Mh0m/A0azq/A++VVXgr+O+XgS45lh2pO2DY71PXsy+TOxMiLex9RU1c7VZ6T9dqpKX5KVi+9Nfnkpzz61mw3FSMny/LrS9Ezns0hhi9trg6UStKPL0vyNRwNeeo7ULQmqbfAxpWcAg62oFWB+lUkDIkjqLW9aKrSJ7xwZmVI8bHlob71VRSSaUlkk+Y++6+lHXNAL1+zPY2Ssp4ljY6WNbasHp5VWaKlhEX4gFTvel9pA00b4J5XflbS29MSHYeulyxTxxuAVHn1oqtoZvdvgl9mUMbmwpkom7KqOSW9q4vyvvWLkkVXpyxYGZImh09KLhHpZrOlRyRZcagyG6HW1DKYt61twieeYI1ypA/mjSFvOOSuDJhMPIa+oG1LdXI2ibUh3SRBwbkegrPAF1xBOmX7ExVzY9qN1lAZ4t2hFXvw5DaW5DalpNFui6HGgWQFWFm71vaCK1wOIj8eV7aAVsyA27Pk5MqMQGFq5BW8kTYjEloj9KZ2KfXUcvyIlaaKReR23okPvXtZQB++6SA6he9d1Mvkk5P/9KZJUFjHoLCv1OBWjbfJRJIkyjy8gOnegSg365f/gQkeVyDKSw2NE2hudqrk0Y0yoxy4nXqanbqyzvW/C8AS5DiS7XLXtYbUVa8HXol4CDM7G5CL1rohEW2latsqjwsc6k3J1uaVbVnka+za7hHZMaLj4gA961XZRSYM3Jx7aa69aorYfZda8kKYxEwKfemO3ArBzdNlbw+5o2p7Clpwena8s8uHNrwG9d2RmuyXAyL3IWu6XFY4ZMry+GHmZ8Ai5KOBG43oaUcjH6lrVkzX+SDWNifpTesFfr+nEMQuWDJoh16mijga85tHwUHJz7WAHC3SlqqY/SudFye/WzpU5IxBNa7JOBFbZqssBcfLjI9xjfpejlEFt63tCXAwPloOJe4O1qyEx1+tawVYU+YvJC117UvSqE4dOT0zzpdlJ+lbVJi9aqB+PkyOAGaxFDaqJeGzs5Zrm4VgdzWLgzaKqQvcUR3LajcisgksnZEz5sYXkj+Q3o60KsPVar2aBMks8fMIGPethJwehhlVVkmyYZSoZrA+lHVge1oohHIshoypI5ehrXWROdfBbDkOz+JKr2G1KtXgrzolYrBlDA2uDvSoUA7XUlkIfjqxUH+Kn0fJV60RIZQCxPkD1NAmUSyeX2vcHAgn/bTqTArRNNSLkxfcsCP5o63gnvdNpEwwGjl1Ipn2SjnvzBQsItY6mgbB7yw439slQKGykdVSNMjWuP60CRmkQeDg6Ecm/pRQIsDDPdyvCwrbV48klmqTL5LYpFUjiv15Um1Z8k1U72R58hS44gC+4FZWnBd9XUH81ZbWPai8AJTJKU3BQ3psnUOAujbbVvDBsxrFpBqKBcCtGlyTNhRmTlc3ovtZ5d927cHZIpV/AXG1cmvkY48sWXkQX29DRwmaqyh8MiutjsaCygrxrCOm8YsJBbteu8jYduIFCzkgm/pei8FWVVVCcjARl0X+aOugGunBmtge23kvie1PV5F56fCHYxRCeDWI2vQX5LMOz8mhzeRA17kb2qdKGUXaS/Z7yPnE1nG60X6Z5u15DTPkVgJFt/7ULyXwSOiHS/JRxoWY8gKBYti9MLNcCZc7ByOJWwPUUVcrVFaYWUBQTxI/G9h2tXWq2h2dXMDJkjkF76VlW0UKvJnyIqOLbXqhOSmlWuSr3X0ttSVVDt3JYqe6oYMCbagUmeojXRADEYP1IPeieqg8zb2EhyRSxk8BpSHdW8nn9+1gWmAcqwuwNGqccDnSOAinvnQFKB3VBGuiqyLI+PTndhqOhrstXZyRZTpeTOyfbVmAWxFXKT0b1fMgYMoLMp0v0rGoF5PrJs4CD3VK20qe9uBnr3m6LcmJH3YA+lJrZodvZ2tCIZseSzcBy+tU1shkJKDPlM8EgYx3B7d6oqk15H55peGBk5bvCQiFGIsD0ra0UlFvXTry5F4ceexUyuZF2CjYUOqr8HrelbPKihGkmFAGvLfXpbald3HBPr7VrX48HsiEw/8eq1tLT5F7zHJFNCZRyU2NtqcrQF6+a/2YiKBltyYEHcNRWsOz07NJDvwWysfoKn8s9hKKAxyTopTncHZa26XkHKiaFSQySHUEfSmUYvfStUeXE4ni5v6Xo3YhWjtaAJAE/u4W2oZL86M97rSKOLcSNzQRyPaSUsepIQNcMwrUuYJtL9lJwxyzKfAWo5SI5rVNzyJbGhCA/i19Rej7M832fYtZDknjhkW7XFv60Lq2IatP/gpxJ4ZXNj9hSrVaJsE1ZtlEsEYYMNqBWYWujdpORKUJsXCGtbkZgvlip3cMLqSvc1qRP7HmR+O4d+KncbUNlAz16/1LBy8CV0IK8tK2mqLG0zLTDmhm/Dj0uaod00VY3ScF6G5t+TD+KnaPRkpF11Gl9wKUkDa08hLJIjAg6HpW9U0Ra2TY85qMpDJ5UH1R8iXk7fJP+wzEgKVv2pnUcs1nUeJ+PEhTpuTQdRTq72QqTOblZSL9qKuaCtgl5E5EjSg6AmmUrBPfNOTMePIBuIuQ9KoTQWdK/knOTPE1+BUg9qLqmY6Jssj+QMlrhiTvS3nBRTFTJRwDnkbgW2pcwijtNuCOdZlNlBK9DTqtMTokvIh8idVsQP/ADRKqJbUTAiYPpIdxWtG5/yoQaOkS3WXrbjWNSJfa3EDVy1cNvQ9SquXWrPOIHjt16itUpibS0TrCYXsH4g/2mimSijjiAP2ZoyQoBt1rWkbnh2fIrIWXKHIjiw/uoU4PUrnSin5IpMbKTyVvIdQaamie91Y5F85nQHjMLqOtY6Jkv8AzVblFa/O40lrtZuxoegOnq2RSMyOaxWRW9KzrBzzj4CjlEbm+o7Cua4Dzq3YKVIpbMBasTaKIhyZ8yJDJZ9UJ0picoh9m7+D/9PNhFnBB8CNq/VmS21/o0Uhi4BlvSm2GtH1kMERjxcqe1Z5OpV2+CrFzQ49tzc+tI0z+UejlTqoKWigmUWAUilptCttGvJLJj+3fW9+9OVpPJ1u7uBMORaUhjpsBROomihmhzRgoA33PpSYZ6Co+BOZICpsQO1Hmjts55Zm+4wIJ0UmnwBjTrz8lEUgJ8Ft3NA0Ofnk5k54hub69qytJG19S13PwQT5c8wupJBo0oPRz9alFLPR4MrxEtYA6+tb2hnW9irUI7HglDqdu+lb2kTb2YQ+PB5DzjG+9Da5Pjt8yMkh9rS/H0NZVybtd2Z1JX4lI9WGlc1+RekKsMKCR2PDIWusvwSZQnCCyIYlPgR9KGjfyH7LbcAI915BdRvaiaG4VisjEX3orIPL1oXwxN7SoZKkeQk9mUb6GmNpon71ViuePmLNv3FLqzdX2cETjiSHvx9aah2VBLNCEsmpolJTarVOR2PM0Zsy+BobKQqfhHJ8mAqRfX1rq1Yq2FmQvmotvEG3WmKoz/naQ/HzwHFyFB60NqHKvJanyAXTmWFLeYt4u1oKl+SlAt/b61M802ewsK0qaGPIJQvJtO1Ta16pmZubKCXLjWOW8d7d6fg5ryK9ltOWeglYkDnqe9MuiLNS/ByWQhtT13rqozVQOheJgNRcUF00Zim2ek9sa2uaxSWdXBwWYWC77VvgWxTRz8tuK0aaAtateSecSKLq1iOt6ZWDztVPLKMLLmkIElyNr0vSiS4HeqqpyVSIQwMYpVXxyN3tzyGguPLQnrWMXW3BwqyfieQ9a2ZE2YRjMo0FqyYBlCHjlS/ltRppk2tpJlypBIA+tF9aIq0UjzkNewBI7UPQe8+QJBLIOISx70ahFDrWqhsUsU6MA19aJtMdm0OWDl+SBut6B2H/AGR8jRiRFb2sfQ0P2MB7ODvFY1IJY/WsmRKm7I8goxsFJNOqVLKCdVPKzAD0NG2UZ8eBycB/dx+mooWde7gIoeQKG5710kGluTpXmwSVbetZMeAG1UbFgIQQdQem9BbUD/oJ5/jVjfxGxoltJNpsxoijR1LG1+pruzY+lm2oKFReRAN1PWltltOGDJjeVj5Ctrc3bSHA2NI0kHLYbigbbRLpq3Yek2NGbxjU7i1LdbPyIt28s5kZY4XLhewoa5fojvk38Ey56k/mPUXp30x8DsvXj45HJJj5GvIBhSdG6E3tbdRhZIhblrU9a2u/0ebTO2r/AEKdg5JLbVXSvXwetlkq8Iz85A6EhNtSafTgPSkIykcBSRoQaOCGqcSaHx/yBTVhoNzQvKSv1c/n5NJM+JzeMXNKeLXkuzwcyyfJz3U3vxF9qbTJFK9VJSTyZLOmj8lPpRqkBXzSUj4FEkPkvP1NBZwyet+yPES458G03tXcW8lirKj4DTJlkXzHW96x0S8B5Zr4OTTnYak9KytR2mfZkcj5PIhY9e52pqgo+utVEk0cswcLKoN6LSI4D9TJSoHM1rhR96TU9HRSci2uFN+9FEsTpp1qWJ5xcbgH1Fc+GeQ33YhhxkBO9a3wU407WCbCOQfLbpSaWjk9DbetP5Xk6mHGl1I0703seff2GNEEag+1qfWsn8idLvryGYZSvLQaa2FZ2RP3RFPEChJW5GulOqySGyKUwlANQwpqkZar6yKxJvayQC1gay6kgd+tjdhkQPuWHepbJsVezteClpwmhF1oFWStZwgG9mY6vYDpXcr4I7z28COMUMl0Pj3FM5a5KKyuWaMLRyRf8hv61NeU/Bb6tHd+DJzkcyXFyL1VlaUeo8lnywsdorDlZW6110xSu7MoMyKm19aUqyxt6vqKkyOS2tr0FGqwDXGEI5ZJIsLDrR8BvrRS/I0++UNjr/FYoJ9GmpY/FMzr56rtS9El4MwtXyLy4OJuhsKLK0h+w4AjDMpGn1o2S1aEzR5UJDBvE9KKrTNivknlhlkBN7X60xNI5KolElha/uafSicM3un4RbDNIVubuO+1ItUqySSk9MzW0/iiqifWsks8DyjxGtulHW0GXhKCF0yIWuVJpqaYtJNge4rHVCW3+9dBRTP9gl5rEKLelaHaqS5Pe5OBbjrvXcA1zVuAZp2exMd2Hasqi2+aSXIMcgvqGHda5nZqXwOWZWB4I30oYGWX5Yoy2PipU9RRpEd6niqzECRQyn0rhV7qngYf/rmLMvJDxofsgCvu2kjm+BkhN43b7USumOXtdvJyOPIil4ySFQe9a/BQtVPCLosWdvwl5Cgbg57VmIJ5/wBiJzHMOa96JQ0eV7dk7QuD/9QIcKC9unQ1+n/Yzws9rNhkjHQhTyX1rfJ6NaN15DZkmjDKACOtDymelln1pLDxoC68gQSP5rLuAK7/ACVosy24xnTc0ttfkk31XyxjJE0ZZyS3ahTc8E2c2XBmTKizArt2tVFZaMVH3HrY68+P9BQM9Wn+BWTJEqW/I9xW18jvptYy3lIfV/GqEhGqVPgfDkWYWbTvQuorOnMs0P1cbIjPE3cjepezqz1u7iCdsF0BUHfQU1XQq+sqBESSRzFSSfrTHyiXTVVcF0c0Sghku1LdWebte1uEWJLddAFF+lJdSnGiVQ5cBclLlvLcUK06sf8AYkjOmgnh1AJIqitkyO77sUzmQ3bxIo0oKFVU5GnHkYArqO9D2QvTVNyNx4lUkHc0F7Clq7OELnWeJ+cWwO1FVprk7RKqkbG+VKAxS4oGqohyVbWmQMhMki/ErRVaPVpSqUsR+lPIvkSQe4ondIpwtUhyfiZUYMvK2+lMpogPa9lTAzFhnAsysQe9dZoDDRBTfHiUGya0KuehWyqpZE/xDAaNY72pquRaez2cCP1shDYrfsaKUFW6Gwpmcj42FBZoqw6KWzVxIy8YDg86RZQ5M09nvwi3HjkjmFzZLbip9ualXrtKxWyJIjWu2u5oafzBB7GnZsieN4zcCwHWnppnVXSsvyHZpI/Heu8Mnt/XkCBJ7kHTvW3gbnetEaK40Rj/AMhN7dKl7NPgO2za4AULCfDVfWmP+iWW/I6S0g3t6UFeDNCPIht+IvTq2J9BENkcEjTtR25RuHmS4SFhYeQ7CkdYG6fsKOYobFbVlqyKqpDLhtjr0FYlAOnCgOJm2O9DZE6fwekUuCNAe1cnAu0GZOpR/P7VRXnwT9ZfAYPujxOvSu8FVUvk8xySNDYjSuXUKK2ZwyzlR7g261qqvgpaqlwGrOLEHQ96xoXZlKOpXxVb96U0A+TzqSASp+orEy3Gigmnx2LA2+hptLDb2UgLiF9GvroKJ3gFbJKTyw/rsFcXU7Vzt28EOmzsx49pxpYcdRal8oTVNsXJcqdSSOtEjtDkGTOpsuo61lqJ+RFar5GT5YL2K771lcg7YTYWTFIo5DroaOGiyteqCjvG2litY+Q0/ktQxyWDWU9zSLSvBHtryNOPj8/Jr/Sl97CXeztwJyXSIeA0NMom/I3TNxLFSpFPD5AAjY0dW6sbVdaSJx/jY2uVsSK7T2Y8nn6e60mdkWSHaKx71PX+3LZ5ST0ctj4mSSPk24pkR4PT9esrgS5Ecu9wdTTkpRcqQwZYkcmzkXG1Z3aJvZ1gzJMOKNQT1OtFS7Z5+bsyYtHDJ+XgelV1Tg9rDJ1XgqxshVbxbxoLVKqKPJrwwY2TDdWu9takta1WF9rtwSy4LWKDfpTlohd7z/JBCuVFLwBa3anWhoLBVTgs9/xKsvmDtSupZesqECMoD87CudR+OMIb+sMgco5CG30oO3XyHfRJxBxllUagsw61qaAS7snY3Ycxb1rvJ6FEqKSyLBdlDIAVPWlO6XkRp7KGthoqkGwI7VtdCG+j0cfBk5csuM5Ka09NPgvw9Xjs/BzFkypHEnG4PcV16qIC+ylXwaaCZhy429KTwuCPTVeSj9cugJ0B3AoO8MRXReRbY6I2txRq0oRro2zqSyxMRYsh2rnVMCteSXJd9SEsp3plEhv1KimSd4Y3W679RR9mRbXduDMzIrSBuNvWmJkevDH4s0/HxbS/WsaQeSXlm1jTo8VmALVNerkopOnCMvOf25ydeN+lUZqUVL1+jknfLl4EKdO5piohn0J+fIeH8hKpF9QDuaXpmmen6+azpJuLLDlQXAHMVJ1dGI0bvyTLjShh4i3U052Qmt1Up9iArZmufSk9mimtrWIckCCQFbletNzt2RRajlCv2byAcrA9NqYq8Eulf6DMlje5P9a5IToehyljezSG3ah0rKHerk58DMjJDDRrg0OdYGezQkXKkha4XktPdUyGuXZwNbOkZRZL/WgWaHa5VSSk5HkyhiHUcT0onREqql4O8kIIW3LoKwytH8hxzyKCr2ArHVFVKKIOSqJRdX8u1ZVwG1HwTMuQtzfie4pvBFdqzBf3JV8tx1NcuB6VUiYxSI1iBxIo5k7skGY0sCNDXSJtd2Z4QsSTcEDSsbKsmq8nWjUC4UXrkzNLOzCTHV7lvH0ArGxtNOqC/VERDdK7tJPbZthSY0LkmwGnSsVmjFZ9jOyYJIyGU6dhTauROrBxs2VDYKT3BrnULLJeCls9uQDAgHpQ9Sl4KYQEssUjXddBWpMzf+PA6ApEecR03tWW58kVtH5ZbKMPLjJZeLd6R/VSDW1m2z//1ZWyIoJSjE2FfqSq2jzMPXsnyVRzYswAUi5GoNC00ejDquSvHxYzGQD49hSrX5Ors2oEAZGPIfaYgXpnFlyKhLyVR5c73DsQe2wpTokTOtbWOplGJrOARXOkjqZ/CIPkc+G1o/y9KPNQenh/81xLMsZs7kb8aa0XUyrUpiZj+R4qfuazqL32VEFNhYLx6s1+9ErM8i+t4kWmFEo0c8Olq12G4aN/BViu8bWjBZfWlXUlit+S0B5BtZh3pfgXayI8r3lfUaDqKdSIItKp2kkkna10/IHUGmJGPLiWXYOUWFn0PpSb0OeiiEbONOyjoV7mpL0kCnIOQvInyGuoFbRh2qqkz4QdT42Nt6atIE204gREZkXje/HpRuGIryuQg7BwxIBrIDUV5L1QujA2a40tU7fJLpfvaF4M1JJoZCpZgPQVR1TQz181VFwk92ErzJa2mlJahnpUz7KII2M0Mn+XkV6HpTlDXA2zVVCCfIRkYX16XrFQ83Wjci0kDAeRFu1E0UYU6qS79ctFyTrSO8PkpV+xlzxSI5LXttVVbJoTxMoS62uQSR60SCVZORySKuq6HrXNIOqTR4STLJcC69qxpNFGdFVyaGPMHiboRU16/wBIrpxRv5G4+QNFO++tbeh5yTbLFaLIiKlbGktOrNt4I2x5Y2Ptm3YU7umDSPkANKGPMkUUKAeGyiHIZWtwJXvSrUkY+PLKQgb8TbrQTAi94CaIIAWNx1rFaRN7uODkjLbx1Ujetqhdqv5JwqMDc2FMlm0/lDEULta1C2D2dmduddOVYOhVR28eniFb1rOSTSzbCSZzpa46GsdUZWqS/Z55OGpA9da7rInWfCByEinHiBfpW0bqM6QZzCWF7gAW61QoYedJYt8jI5nWiVEWrKtToymtaRde9d0/AnRccFUM0cyWGjDpSrVaFVXHJ5GMbHWw9a1qQs6yyuKYk20APXpSLVPRqkuAjCzDckGu7QTaaJIHh7S2YkjpWzJDeztwjrvHIoVxtsaxJrwc6/CJhE3L/GRTe35GUar5Ak9yNwG76gVqhibcsneeSPI0/FulGqJoKuK7hSSRuwYnXtXJNFF1zweLhU7jcXrYN68DVyIwoLAW9KB1YnVtrgojbGlF7k9ulJfZEjsyiNVWSxbivrS7Nwd3hl0mDBkQjiwJt1qeu1qvkovo+qknhwECFGNiOlHfd+SN+y2oIJBLA5CvbXat4v5R5Vl2Y4SNIPJthtW9UvCHqqbhHIAY5eNro2ulMt4Lc7KhoNgQzRaNwNTP2HV+JC09iKks+CsaDkQw2uN62mzuzz3a2jMvIj0ZRcJ0r0M+D0/XxVFL8kkvxuLNjsXvyX+7anLRpnoV1t0cCYPjTGQUN0OhNa9RC9qXyVYn7MEhWMFr7UF4a5KPXiXJXJ7jsHbxcDQUusILRp24FM8glBcXUdaNJQDWqVpDdMeRTYBW63oE2mWua1lj48CJ425cSelLtq0za7tppErSS40miAr3prSshuOUuWwHyJWa9wL0KSPQrlWqkNYVlSzC7etanDJvZ3hQhmHO8amMNex/Gs0qnyefiu3kZJPdtbKTS4hHo44chNgmZCV4m+xoM7w+RvuewkuiIBHkwOQzHiO1WSrHkWuqo0sSVSOPLW2xqfSpJ37MqWMqByvbuKS3I7vChHZIkZbr5V1bNCrNi/ZDgdxRdoDraEGcNXjPIWofthgvbsjHzPj5saQPG10NWZ6qyEWspkz85cjiSByG40p1YFWzrZmfFkSx3DpamdUFnRPhFOPkSCWwJselZavB62GdaFsn+eIhl1FKXDHtTJnOCjfjtT1yDEFmK0U0PBlAIpV5TkLO0qJChWaB7xt9qy0NcnVtLgecxhLaUkeg2oOijg765vCGR/IagBbrelWzkuzx6+R88Hvx3U621pWVoY3eyrUzp8IoQWBNuoq2t5PLvoBdlXRjatOrWeWMihjk3UkjrQWbK/t6VKv1kjA6ChViK+ruyWRGBPHVTTExlaqq5OCNb3JAbtWyR66u1oR23PTp0PWs8G0SQq3tSaa/Wi8o1TaxQpE1wdD0pb4K00pCEbRjUX9a6ZEd+7Ess/uXI8aNNQKfWrhHUKGwZLH1rmDLQTwxyLZSFahTaCqp5ZCOcEpD6jpTvKFrm3BTHLzsEQa96BooSjyzrRTHYWrE0c3U9GxAIbeuYuv9Hi4Is97d66A4hcApbUKx1rWYv5XPkHJi0U8q2rAdezRmz40nucgDb0pisVZ1SYLYnI8jyHrXJlF9lPAuRJItb8l63okQb3nkox5YxZgv1oLHm6XbLYjAzFWa19rbUq0rwT6XafVH/9aCbDyslOYjswGptX6orJD+2cTJPFi5MLBj4kUXZMgv7Svbg08H5OWKUK9ip01pWmSaNSVeTXL4s0ZZSA31qZKyYmytaSGSZkNwBx7mnKoeWMcnHSTKSyjgvU0q9+p73pYVr/T5Zn5Hx0kbXALUeVkyz2d4BiVALSLwFPZ5i0cShwWOw9pgPQ1x5u+jfkpSASrxLemlA7QZW5N+pPEx9sEg9+wou6ZXnZVUsdCk9xccSNTWNoRpvVG1hQRSMLkk2qPW7SEU9h20SBy/jX53W9r1ueygba6VuTNyPiHB5qL31NUV2Qq+8v8ARAYpMeQNwIHWmymTX0/Zt4DxyRg7k7ipdE0P9e0qSuXHhZL3swFJrdpjtLtkhkKf3kmnRJPWsqYFe/Dy8hxNH1Yp1aHf4GjsPy6Xpbkn1s+sHYxMj6EWrnEBZxUa00hUjipPpQqqG4YdnLF/5SCwQ/batcHrUSrXyHq8QD2FZ4fBLZ9vBnZBCyaWHqaor4MtTryxuM0PHXUnqKG0kz0s1waOLK4BWM8lNTa1Xll3q0XyS5XuqSGFxfQmm5wwNarwhDwe4uhHIa2pitB1rRWBHCRQQbUcobhRMS7ZPKwGlbwWKtU5Yf8A/pgBfjcHoBQ8MK9k6uA0ymfi3Hiw0uRXOhPWiXJRFkyRy+WqmgtRNCnHbgvXIhcG35W3pHRoG9WCycyCAGNanAKhcs8Y2ja5FhfUVycib37MbzS/IdegoYYLTszvve4hW3oBWdYY+ucVli/YmLWU8R2ouyFWvWQODpJxdbg9aKU1wJvb+oCj5cuNr32rGHSENDLysdGoYA0bbAkA5XYArWoyqhiL+3JeMXWj8rkGym3J6c3YEpyB1OtdX/Idq8+QH5ABkSwNEhirLkWG5XDKTRDsqqRUuO7LdfG1ErHa3SQKxErY3uOtbJH3kHl7TX/uFb5OqmygMsy63DdulLiC+qVKyW4uKl7k8SB30pN7k1vabZVrGdDSfJJpZ2Ywgypfjr3NCuGHVJVFJBIQR0Bo3dAUul/4BOI4Y8TYGu+1C7aTYCeAlb6kjc0dbDUp5M/JBjZW/IGqKclCzlpk8oLP47EUaH3STCTHEkZUnyGulc7Qzq3lQSqJEBViaN8ktrSoOR5fFuIc8ulc6SKWX5Kv3sgk36bUv60HbOstmr8fnsVCubEaXqTXL8E/bs+A8nNeJtToaGuSaE7ZdUJfIjmU6+Vcs3Uj+uCfnIuu4psKBqSpWS+CW5W6gVNZSJT7WHvksja6r2FD9cjL15Djmw5YiC/A9qzper/Jb6eFuswRZEMQ1SQNrpVVbP5Q3WUg8fDD+LWsR1oNNoEv2UuESv8AG5ELMi34k3ApldqtC87Kqc+RkKTggLcN1JrrNFObTakY0b+5dwT6isVlHBVK7QhLwMZQDyCdaNX4GOyrY7P8bxBZBz660NNvyUW0d3+ESXycdgz8ih6DamuLIpxS8ofxjmUkBjy9KTazqX415Jjgcv7ilj1plL/IHs+z1UIL22jGjFrbGmTJ5js7sBZ0v5HhY61lkU+vk54GqVlU8SG13pMcno2t9dG35HxrKljy4jtWuGeU9E+QMuVva1t9aPOvJJrnKkhTMmQ+IFu9OdExSzVVLNjD+QLRgSMCKj0x54Bou3CG/uR+4QGAWh+twM0p08lML4zJpIAfSk2Vk/BHNnxB4yqFKqwau6/krxw45IMjIZAQdV2FU0pJPtnJHOySoQAeQp1U0csoUGHk4knIkD6iq62RT6+aRGyTq3+MlXHpRyekqp+RozPlYhycXX6UvrVlCpnEoYvyRkXzjse9b0gmtkn8nsbLVZj61tqyhSXVmjHkob2saS6h55tnnb3SCEINB4La1VOWNSExkFgABWTIF9p8GjHIOFunpU7ryLs3YTKyOpBBpteBDpCJ/wBQ8vHQetH3NreGLZTFJYk0S5QvSzdoGRz8iVtYetDao6lOq58hMIBp1rlIje1nwK4w+7fkNqOXBNWexywDAoCR1rhlE3YVIHLE2rUUwq8nA7RWJW/e1bEirOfBXBkxMhuDrS7UZlU0uAZGQ2sbVqRPesDooo5wATqKC1nUStOQv18ZQRtIKztYdV3sIkhSVb8QTRq0GpwpFDBsbqwX0ovsOrrLPP70Yva/rWqGFaGeuJEJ4G9Z4H5161AGLzXUkDtWuxud0TPFJC901WjTTE3tNuRqszjgy/SsaKEkkCqtHIAw8fWt8oTe8Mc0Ntx4nY0KsLveEDN8dFJEbC7Vi0gm02cQZaYpjlKnQetM7EVNP6gXMH0KMSwO1Giimfhs/9dEcubGviLjrc1+pNVYm7oqAs86+bLzU7rWpImxzTfBPkzwb8TGe3SiqmWWxt/k7jZUxJEViNqy1SrHOq/2DdpzYFvP/bvWKBqrVlmKMsf8t+NT6JMuppWqhGi0bSwngQLdaUn1ZLeytLZmyfGhgSSS1VLQh39nrWELPx5C3ViCNhRfYec95OpJlQm1r2rmkx1VVKTZw2hyY7MQrgWtUmk1YjTdvwMfHHK6j+KFXJLXlgwf4Z+V7DqK239IfhKtJovPHcENvvU1aMq1q2yaV+QNr06qE3oqojnxQ4N1Nu9GtIINb8i8UHGayXt1vR2/pclnqpvyWsfcTUC5pK4Z6VoSEMrRsTxstqammRt9rcE2TGr6po9HVwK9l9UcRglhILkdqx8+CJt3cIf+1A44i4Yd6Ho0VUws3yeDsVuFF+9bB6NKRWDpyZgCoI+lZ0Q62aiAEd2vcVrUGZVSE5ka8fMfYUebEezZvwRxyvHcWst9L02JJc6+WaWFmBdVsT2FT65yW4VlljTCYHkuo6UpV6i94UwKZseN/wAdetFy0Jpne94JpsqD3bBPLuaOlXB6rwdWkLfNVXJ4aHrajrTgXtm2/I+HKTIh4rcN60u1erk2ucVhkzQMGs4DX2tTVYn00S4Qz2AbXNrbA1nYxWlng3FiDt3rIkPkYubElgD5VjzbFaUsxxzWINxdTQLML6khYnsLr/FE6nUz4HRZfIAEcTbW1A8zrVOmYhvI6V3Um04He4r2IGm1LiBEcyMEMb2INiNqHs0arNsCWDkbgk20IFFWwyzhyCuOu/Jvoa13M+wWw9t9T40S5E8ux1vbdPE3NYpTHurg4mOWFidK13gZW6XAv2fafqRRdpR3Y9KwA6E9q5ITomxXk5vx+wNF4AzqmxRxfc6WJ0tR94HK6QS4rIOJoXcHX2OIKMfjGzXJJ6Xpdm2RfY23Bo3WRAQuvep4aY34DihlZLHS3agtdJnLRJQABNE1wpIO5PatbViduRpnj5cnG1B0fwY054HrwljPBBrtcUtzV8st9ekVbbI8n45zGfEVRnupKa2TqZGZiSqFbgfW1WU0TM2ulVM9BE6SA20I1FbayaF53mxPm4r++CqsQ24NHS6g32LKlkK/6wSFrLZulb9sE33zaCedZ4ltwNx1NHKY3aFT9lOBKrkcwT1ttS7/AKJM7w+DRyHRRbiOP/mkJNm+zNmTXJYmEjTpRpfkTSnPInJyH4heVm6ii6Hb5ykgY557EliQK3qg8q1SNDHL5Ebe2bN6mk2ir5OTTbkdDil4yJTY9xQ2vD4PUz2WefAb4Ef6945LsKD7nPKINd7WpyiP9vIx211A3IpyyrYTliv9mXQfJxTceR8h3qe+DXgXerbKlmiJX+629qX0aK8cmmhU00SSX5Wv0NMrVtF1cWmTy5VpB5grTa04B0y/qB4lBF+Vw1L6lcdUNGGzpYnxbalPWGMWqrU5DiGF7Alhvas107Io9e7bgnyxd/xuadi+ANaf0Rj3Fa7WA6CqOIEKHaEebDExBAux6UvueirrKo9cZYV8lsR2ru0nnbb21cLwFzSRbAXYdDWQ0wusKBc0RK+SfairYHW3EIzsiBLHibHtVNbE1k45EwwZAcWa4vRWago9e1alMsTEEs2p6UurM207ORcf7cbX/sO1E+rBy6rk1MeR+NwB9KlukOo+zFZILKSf4FHQVes+DNkyPalCspIPY1QlKOWDtdImmylaXrftR1rwVXy6uDwyXDkMAAdia3qJdf6KEmWSIoSGB9KU1DKa0ipE+KA9iARTlYT268CnwAzXDFfSt7gLX+jkR9iXibkdzXWUoso2nLNKHKQcQrgntSXQVtLhF8c8bi0igikurXgG3HCHxKnAlLAdjS7eeQs245OGSK2mp71qTFXq3wLklB1AINEkGqQpEzhnsR4kDfejq4CVF5BijWTRzqOtbZwKevIb448dbjvWKwq+ngUcSMPck270XcCl27AKkkUuh5IaJtNBq0WKWTmug4dL0tODb2SUnFxyqkX5g1rsJpbsStyibVtP9tH5HKsI6ciNlsQATXdRGlXAMc0qPpbjWuqYrGi7SWLeS5vZqU+CttCpJVj3PkKJKRVqNgpmR31Fa6HLNoezRyC4sD9aBJo7ThQMiPJbaa70NjquEc4eyxIFwe9dMm0lsTkWNm46dhR1O0UchLCGUFdBXOwCvPIM2KzajeurcC9pYmX3xFxZb8dqJRJukdTkcp2NwbVrROlLM7MR+Ydb3HemVF2okGF91AyqOVdI6v8AR//QraEMp6G2tfpfY8jbUOHALJZVvfqax6wO9W6jknyvjIQl5SLjpR01b8Fdtn1lEgxsSM3AIU03s2Hla/llUUOMLMi6dSd6W2zVpa9ihZFXUC6npSokrs4RQhYL4rYUtqWc31qDIWYPYbaC3ejXB5F4bZIiXfiDa25amtk8pPka8YUaAMepoEwtLOwqMlJVY1r8ErvD4NNJQ4BDG9TusBJfIwRxlrnf1rJY/NuZKYoscnVR9aTa1hy1s7CctEi1Uk36UednZCPbbEsZXS9uIFHVJMmzpWJBjhmVg35Id70TsmW4WUyOARDoouTQOWb7Gr8FQiEqm4uD9KS7dTseDM+Rw3Q3RSRVOWia5J/atL5Jo4JZQ39rL3pvdIH12pZNKGhkHJLnuKanKPTrXwPjkjcC7Wt0pdlBZjWWKyJHj8kF6KikbfOeQEyMiVSvHWudUgs861UE002Uh4m9NqkyXetXwIcGVbNIb9qNcApJKEg8FWWQgMT2rL+Dq6xwXiTIBFib9RSoQtpNjHjnJLki1KtZJQen6edW3YklaYXfb1ptEvAekOWdUtPHt5Ab1vhk8qAseCW5BexFdZoT96RQfcWw3IoOCLT+mGJ0b89DWdfwU1pHg6YkkG/jWS0E7RyDJ8bEG5ctPStrqxNt27BJjxoOJJI7VjswqXdmD+upvxuK3sMvp1Q2GNgfIgC1DZkH2yx0nA6XBYUCkXs2Ej2X8daxoXVdgknkDC409Kx1Q/OqQySRVuxJB7UKR2ibfBwZEUmhbUdq3o0aqQcOMH1BvXd4FK8sWYuJ2NxRdg734H4+pswpd3Aj7epa2HG6+LC9TrVoKt3YjmwuJN1361RXWTbaEQUwyFeG50p0yga8BsJgQVTQdaxQa4Xyc96RTtaw61jqmS6KWHHLHIBdRyI1oXVoGiK4YlOm1JveDb7xwVxB4ySguDpekNq3kXny5fyDLJOxZbbbCipSqLKYVRmzzSRmzi1zVdap+Ar5woXyOxflI1Ijcm3Q0Gnrt8oa82kqmrFlRSIeoqG2TTGdYUC5hA6cQCfrR17JkWtXZ9TOfnFNoLAbaXqusNBVpFjmW7yIGC7DeupVID2UvJNCOVmtZh2oxHreZCzIWlj0FiNyRWd1U73dEkIxcFh5EC++1qxayRetfsx2RHEV8zb0FMq38Hp2nyQNGsUnKM2XrTk58gVmZZ2YY8gBP5AUKkXo7WfBPHlJExFrqaN0bO6NDIctY5uSAres+uVyN9fJpyzUjzonBDnjcUh5NeCxZuzZMM+zmJPIetM+r5OXrw4sBMjufwPrbYUSaQGrUwiBjLBPr5L0pqhiaUm5UM+QaqCnSgeaPax9deWUrkJLq+/rSujQ+3ngExY4fkH5HtRJuDztdLWtwUrnrEAoA16GlvKQ75totTOd4xpoO1S2ySZVjgon8DIpjzDcrA73oNKcQOzX9SDl8A4YDU9a315agD3E0xQhSUkWFyd6c7NE2b6gZOHkRcWjHj6V2WlXwxntapxJ2OGVxc6H1rbWSBxtXyJaMwyKTr3tRp9kK10clinGkUciQaS+yBTs2RZeOii4W49KfndsG6ZNCZCAqAC3fem2j5BpFVz5GMrWtx8tr0KZ12C8AawZj6XrVYdMKAcfHeJjxYEfWuvZMbjf4GMjvcD/AEoZgorC5ZLN8bNcsxGnpTFqvAWeleWQZeFJH5KL+tPpdMVteeRYhE8Y5fmvatbhhYviRYgmQEKxFbKY9WUcgsZlII1I71qgk2abDSdXI5kBr2sK5o7OsclD4scttfpS1ZootpHImT4v23Vg+h7US0kTb2JsNhLRMQfJTWW5R1bO1iyNg34n7Ulos/1UBByCbi4roJ/LGM8bKBseooUnIV04DHtlSb67VnIu1nAoR8pN/wCKOeCZWVWGYyt9bDoKyQO3Zibm5DKSveiHVSqglxI2IKk97Vzu0S32bcD1QFLctdrGgb5BtdtHVRhcMLA9RWNjsgJ8aKRQVAv1NdW7RTL4MqfHSKQ3BqqtpRHtdtwj0WRENONzXOrMrVjzOwN0FhQQXZ488iZ8yZQWAGnW1FWqCvinLFpnJJYSpv8A3AUXSPAh0jwxwA3iJt2of8gWcsYs2SBobCsdUaq1HxTO3ixpbqG2qoa80cY11vQqrZDvLQyHJj0DEAetDajFR1UFPGFweLXpctBVTXLFSxLxIBNzRqwNpa5IJI5Y5LkXX0FOTTBlIGaP3EJ1+9cnAuz+RWLCBew2Na7GYXP/0ay0qNqPG+pNfpThnz13LLsOVZPFb8utqTooLvWrzDCnji4kSAfeuo38FOrb4RMwxoyugYEUxdmLt3s0kKWIM94tu1E7ccl2SWa5HCEoAGAFzvQ9pAejsN92GzLzHIUEMZdWfBM0hLXRrEGmpEd0q+RLBmYX3oiL5C/ZKgg2ttas6SE6TySZORYnx06UytAbYQNxflIgi8zt0FBfJ/AHRxwa+J8vj8bMvJe/WpL+vb4YeeNiuOeCVbxpbsaU6WT5ZVjk0pbF5cw4eYAt1os6/gT7NZUkq5AiU2IKHvTukiK5xVluGEljvzuOwOtI0bTG+tYRlRhJBx1XrfemZuUHpV9lIuKeaJjxBKmivVNFfr5Jsny82W4ude1Mpkif2cFa0IgGdMWJJ0J1p/1pFHq+tWikYZ42X8jesVYH2o7HI+TDQA+tZYppFKlDROEBG3Wlp8nXvKFMjqxZAB60chZrmWSzCRzodfWm14J9IknMbtoQFYdaORbskIkkngkDD+RRQmKWfayGP8pkA3Og6Gg6IvXq1b4KMX5B3jtuaRfObSenXNUzgoDxSKVYWO1q2GiK/wCCYs0T+JsD0pvkktwOWWdhdbCw1oWkSvr5HKXc33brQvg2kNnJIfLyNjXVY/bRLwVQDjxBBal2I1d3skBLMquALi/etqpQ/XOIQ7HX3GsaC7hGUuquDs0XtkgNauraRW9mwI3B/LcdqJonoHMqEAgXNDVs7Vs7ixySIVF0PasvZIHG9Um2OTGyY99RegelWBbZMr/WLoGtf7Un7IY5aKBLY4QE2sKNXkyjdnCInkkVj7fTY09JfJSs1RcjUlZ0ufE3tehaSIb2TUhq1jck8R1oIkRX+rT+CuCVDHcSfalXTnwX+vV2XgW8zFrXv96JU4M1qkz3FXbzXfrWNteCHS/9BNEinRr+lD2bBtZti3iWZdBZtd6NW6mLhEb4s8ZuhsBuactK/JzuqqWFFlSRG7EPS3mrE2dHpYri+TdhqbBTt60L9dI9PLBVRQ2TqGBUAb96WsyymM2Rn/IMki8gwNqox44H65dV2gjjeBjYnzHSntMhmzZpY0t7cRx9RU2lR9WM9/Khl5Egodr0HStkSXSduB/7KTqORCN6C9L+t1/YVqKq/LEyRAqyq3M7AUat+SPRz5J4MaVJLMLL0rtNqpcEmns1pwi3LQouhvpUtX3ZLqnoySMzFrAXFWKtUj0fVyrU9LCA3nt2olf8Dtry4QvjArC4uDWN2Jb2s2kgHxoWltH13FGrtLkcpq4ZDl4IViSOJptdJ8C9LtuEDGuORYP5Wo5ZbhW1nEC+LubLuOtHJ7OdVSvPkEiQP5oQR1rZRDtop8lEOcUvyBK7WtS3nJEqy2w2fHezKv8ANYk0NzzfDDeCD2+V7msVnJ6826cCv2MeEWZbrRdWza52aJnmSVG9gEW2IFGk15Opj1TdvIDysAAy2O1zvRJB38SVQTyRIRchTtSL1TZVlX+S3FnEiC77HrSdKQzKcLwVzObCxBA3vSsqiPcfKkBJXUmy6elMdZJKV5krE6unG55dqR9cORfsf1wdVntZvEelc0p4ColWp6RVK3GvrXVZLebsR4NcFRfvTOSui61PMGVQCRx9K1eRVuUSMoWUlHFv601OVyIqpvyC0kjKbOFatVUh6zUSxbZDMOLfkO1EqlFcuJEpk+299r0TpKCpR+Sr917AixU0r60N+pM4marXS5ua55jK5cC2VZUKsRvtTFwR6P4JGgMMminie1MVpQynATws0d1BBHesVoYx2UEnC7WtfvTpJU5sJkxxy/DbW9arDbW6lUACqATc70FhSu7uDsrMGAA26VlR96pHYscynUcT9ay1oNz0VQmx3ib8joOlCrJofa0uDnNWAu1iO+9awq1OckJtcmuSB2tCKoChQ269KCy5Ja2cSz0iujBl0FanJLdyyhFEg5NrS3wGrpeAxHFxIY6GsbYm12TTI8Tq0ZsO9Mq01yA6xDYxXbd0uD/cKFr8G1hvgJhbXlp0FZJfnUHiGG9rdq6YGkWTC7Pcajren0twTNLtLM2TFZXJsSD2pysHR8jIQyHW+nShY93nhFVlljsyhfSl+GZrbrSPknfEsbrt2pisR948nPbeMF1YfStmQs/6OLkTMba2rOqKOtalEHMtrY23obEbunYoKArf70EitbycSTHvZtxXNMmfZsuhYMB7el+ppNlHkcv2HyeNjdgaGExVnLOO6SJqbG+9dECNeEdjxeakKwNulC9IJ/s+CU4TxObg2JvpTa6Jodgz/9LVyLt0unc1+jUUHhLNUUvyDiOYnJTQGuupXJX6Gbtbsxsj+8rctj1rKqD1eqqmzPkhWFr8/DpVCtJO7NcwPPExgxPYjqKD55OvMcjlieUKCf5pdrQUZNcCjhuW01JNErozTdIFlELkkAG9bMnjbaO9v0GMjmQNL+lZ0gGufIuW7I1raG1GiqtOGyPJhdvodNKbVhWgzGgnjksg0J3NN7ITayXkrhWRTdjfTagbRRndeEXYvyqxwleRUjpSb5Syr1vXbpLGS5y5UNkJ52oa59WFrglXkkSV1HBw1z3pzR5urldUUYWcYJr7DtS9M+yMyrzCNls3DyUBI4P3NR1ytR/op0ys/BO2VxJCNcdzTOkllPX6rnySZLxS2vv3p1E0A8+SQ4qspI8h6aU3sYr8AiDiRcW9a3sF9kKS7HhjFuTBb9RSbWfwTfe7M0EhUpZvIHY1La0MowfYmfHdSeIuDtTFeSqYJHx3LWK7U9WUEF7rtCJ34rIwZfLpTF4F2l2YMkKSLY6N0rVaCmihC/8Ar7rc62rHcty04BQJG1ihW3WtiTbXfmSlGxze380LTEWs0mxkuIkkfi2oGlYrwya95RIizxsVfVehpjaZK9EpLcblfQad6Vc3O6XLKshAihgOQ6mlUcg7t2agm948rg8F9KY6lnr4qnLOZMSyx8kYsy9K6jhwOup5ZHj5OTDILi6jvTrUTRJRJ2kvbLMpUWsT3pCpAPuRWGyqHC53v4n60q2sHmf9HJUuOvCxYA96S9GLersLUmEnibiianyA/BbDPKw423GlItRBZ0VnADZOSpIAAFGs6s9OuFaoBWnLE6EdQa1pQPxrVNk85cLsF9BTaQT+w0kT+6UAAB5b3o+skHRtQDH8gsicGv7g0vRfTBZh60VOws4J6isskejklVQFK19QSCa5Ih9l8Ho5JiRxNzWNI85JNlKvy1c2t1FLj8DVy+BbOy3IYm2xNbAnThNlaETwAHVra1P4Yii+yEZOXjtE/IkgX2q7OyaPSzz6+BauBodQTe9G0W5UlwMjLtJaxPI6Uu3g9OsV4/I9sct4lf60FbQRe5um4RM2LB7xDXVvSm93B5t9bVtCKcdCp48zal3Zr16KPku/Vjlj1YsQL0h6urOevWs/IeMqxkKE19aVdu3yeb9trOWyiYXF18T6Uuv7C14RlzZvDxYm4O9Orh25PPr67swjno7ENqNNTTPpgv0z6lUChhdCPtSm48m4gzwzEEgXHWireo23Vf5M2cNE/Imyiqa8iuvMnJcpW1jk8h2olnHlFH0/LAYPMQHOu+tbwgUl2Jj8dL7vJLGmfao5L6bVz5ZcmOYm5Pa4pDvPgm9j2nZ8FLNHNH/ap7jelpNMDLOeWY04kx3I5c0JqysMZXM4pctbTiToBWllUk4KQkzqECXH+6lNpcnprqkk2L/XZHKzWZbXArVaVwZbSJSOwGBYzbwtuK20kWPa0t8hy4uNkxj2yTIBQ1u6vnwP0s4SYePhlAFkYlh0ob3+UMpv2hIFh7Mu1+utdMoopRt/oKTNWykrrfeupmJ9mjtAB+WZSVU/zW/Umb/ywuRi/JRsQzmxG5Fc8mvBHbNu3HwWx/IRvHdTypFsmmHXFsmkzZUfbx6imLNNDFgq8htLFvtfuaxVYvRNvjwd99bd/vXdTlR2cEMk0yy+CWHen1qmgbZVq+WMjkdiFcULUHVSbhAyvY2trXVKXTkSfNdBY0aOvFaj4419scjdgKVZ8jMG7InbMWNgLWI00pipJulGlLHRZUTNp+W9c6M8y0zJpJGsqabipm4ZneXAmSIgaUVbFC4rJC+OS1xcEmqFYnVo5BkRgDcb6XrUwbPsyUiRSbHx9KMtwzVUccX8gxv1rkbo5PQZUscgJ/E73rrUTQjNf1JoPIsligNjvU9VB6FqwcGEstyo4nvXO8HPZV5BOFKuhNulH9iPMvv2Yt3eAG2o6UShjVT+ZCWeZ0sSSDsBWOqTFqlYgBMidHHEn70TqmBpFUXxZDsDytSLUQvOqbFTZiKvFxp3oq0O2yfULHmHEe232NZav5Ayp+SkurqOSEt6bUmIZ6tKxXhigk2vhYdKOUAmlPIqSFu29MVhNrCXxWJ7H1o1cVfSODoxiTrWdwq6QekxitvHQVysDrpIt0Xj/qKJMxJsSkKq2+lE2UVt1QXtgPYa37V0kul+TuOo9xwVNDZkn2Q2WfrjgL6ja1K7nPSEhZgi9yx39KLsxXZ9oGIQpsNqxlNEdkW6m9chluEI9/27c9hWWU+Dyt234LMfKWQXj67mlPOPIGWccsoEsdvN7HtQOr+B0N8JH//T0p5CIbjUGv0iq5PLrj2RLDLJaxI40y1Uep69K50/ZZGrMndTSn5Od1AGVjKUsdq2l+TLuEZ07HH0UFvSn1/oP6nZcjsX5KdmsVsAOtBfJQOzzqmVfsSMFN9+lB1SPO9myPOHmjIYcbHeuUJiKVSRBIs0DclHIU9NM2tfllWLN710sFJ70u9Y5GSlKGrju3g1hagd0TW1XgnyMNgW2061q0kh107WBbHUpe42o1Y9b1q/yJbBGy1vc9lX61FnEyYjyi0o1ZPyQa7Kz5ETZGSp/wAra+lGqr4Jlkm+Ba5Icjys1b1H1z6o0MeQkAluVqTdD8uS5cjmADbj6VP0KWklLONjlVuLBdyetGrElr/HyKiZeRVXBvR2EV8wwpRwHlZ1NDXkDZzwhPuRbAEX2o4YymbSKsN8hJCqMWXpSdaprkszdU4ZoBpmHktqmhI6zrJDN7ityBqqsMi6cyImZZR2cUdeA65yyYSlTY7imQMso4LMaSOQcWH3pF6tcjaOFB3JwlceJv6V1NArWjlkZgaM24m3anq0kt9JGwzAJ+OnU70Fq8gUUqREsjhhYeJo0iPVJFEEzjceJ2oLVR2aTZQMjXixsppfUsVIGCPEI8Rc70M2CdrQF7sUd+K61nVs51s5J3WOYkgAHttTFKFVXUVMigXQ2I6V0nme3o7sZBnsoXkfTWhtkhCrxJoDKRgDwPoaT9bXyOVIUyNRkdGBIB7daW05Jqp2YpJZUlUDRe9MdE0ep6mKq02PkubnXuTQVLL+QYZArX3+tbasiHaEUzLjzRbcWG9Jq7VZJq20Z8sSK4GgPrVNbOA8MnayIMnD5Pyva/VafTTg9K1lULHVlABY77muuyfX2OtZNMYwaMEAN61I9OTydd+wr2Spvt6UStIGZ4RvsB96KUV1hKCedzECGNFEkfsS+EHg/JGN1BF1PU0N8JQXr5QaWVHi5Ca7sNKnztarPbrm/gwpMWeCcqoEi7ir1dWRRnVK0eD3vZKSoWWwAOgrlVNMPV1TTKld5OLLoe9A0kefxZpsRIRJIb/mu5FElCEqva8/gmfLMcpsSSOnSmdJQOtOW2auH8lDLHZvFutR65NMh0baKRlC4CHWlfV+QFlHLKS7yLYn+KWqpMaqqzMb5DGkHlwNr71dldD3RUrJG91Vrk6UzyTaN2kp+N+TZQo04mlaYyjca9ay/JsJkE3KkBT3qR5/kOtJcsTkYxmFjqKbS/UckqmZPiHHuUAsaprp2BbdvPgQsk/uXsLLTOqDypXtP4DklnDXjNjvbpQ9V8mezDZZj5Bnjtkb9aRavX/URRqOBiRpDqi3U/eubb8lGUxLCfE/ZQjio0696xadWUZR8mQ3x2RFMBew9KrWqaG56LuhrRZkT3Elo+1AnVo9Furt4OSmKSMltW6kVtU0zNnFeBMcSBSACbnW9G2KxbVefkCSV4CGj0N+lakn5M0q3yyzH+Ql5Xe1j/NJvkoG45p24KXeGcbWap6ppl110qCMNSoIIYdqa9IPOpp3t+hWRjIurLYd63Ow32NX8E4xoASQL33Jp3ZkqvYOFIweKHXtegu2V5T8jnjCt5gWPc0FHwK9nWbQgvaiLcbXB2rpZzs1wcSCdH4oAR0rLXTQ3GJ5JMo5MUnJm+1PzhoRuk7cHIcx7jloPWttQGlEjRCw5UemjjtUrbo/0VJmdlOIW43IbraqacoXfNvyMxJo3sL2PU0vSrKs/wCUPyMKKZCFNDndon9nUy5EkgJFrAdaqTTIIdhuN8hxYHk32oL5yVYZfJcuWZEIXQ+tJ6QxmlUq8gF5lIB270cIh6ptCnkN7OfH1okhypBy8PfQ13Iy0oCVo1Hjrc1qOWbZEXLNqARTRmeaqWQIWAPPj2FKZum/4LYp+Gh19TSrVkksxjMGUHT7b1iQulPkNY4njIA19aGWmdpo3wJGOAdBqKPsLV4R6fFYm966txGl+1oQEaFXANE3wVZuIR3LiVoiG6VlLcjNU2jPiCq9r2p1vBuCcliSyoNH06Ul1RdZJqBq5TlRyJv3rOiEWSgYJnZQL37UPWCWyQDvIHHLaiSQq6SYaqSdKxsx2SPGVQeD3BrOvyjVR2ZPIUB1OnpTEUdYR4Y8Mq9Qa7s0LV2yZ4pVfxOo2piaZNZ9rEsmVOkv+S32ouqgn1rVOUauPMJIr3pFlBifEjAqMdTZgNxQ8mZy3JxoyG0JJ7GtTKbOCiNFkSxFmpTcMTbSVBBlwNyI/L0ptbKCXSFywMWOVDYkj/1Fc7Ji8r/BWzKBcj79axIuShSf/9SmJMpwEkBUdb1+mWaXKN9fooENAsLXL8hejVpEezs/9Ui7HyxzCi1vWk3pwC11aktlliMWh1qdJplWeLuZmcFLA2BAqjBlnsrrBLGWV2sm/envk869usyy2ErJGL2DCk24Z5jvJQIi6kXud9KB2gozJ5saUp2tuKZW6ka2lUgIMbA3NwelO8kt7OCtc+JGVnv/AO2lJtm34JtK2b4HvPjyMWR7hh+JoK0a8hZYN28CiqgBgfG9HJ69FCUD/wBhV31XppQdAfas/CKU9iZCBHtS3NX5IVK+eSd/j8eS4BC23FGtWhtLNMzMr4iFCSGH2qimzYdtrHcL48luIa4O167TTgow9hLgvPxkyrYC56WpC1QzT2U0MgxmuRIbdONZa/4FU35kVLgJHJzjoq6yuSa2rdggA4IuARXPgflWSWRQi3PkKanIyOJG4zSggouh2NBdIyllMtmnEX3cXvUtkvgLun4OTYzSC6kCurpBqaRE/wAbOOTL5fSnfcvAeF1ZtmfNiZRN+GtUVugdda1+SjDxpCw5X9aDSyEV9hSaixcTxAtfapZD00l8i5sSZwTbajrokIteqJEwpVYgWselNeiMWqXAibHlVuLjQ9aJWTI9bJuEBG5Q9xRND8ayyhx7htsO9AuD0bxU8IHRrhzau7SL+yWUoi25X19aW2BprI0Y8ci9Ae4oHdoj026oTLgpx3sRWrVnnO7ZG0EZQ21IpysxtZjkOJ5VgsGtboaxpNh1/qoEeUOdiST6UboU5ZQWx5MGnInSkujH8/BoQTQvpfQ1NerRzbXkZ7Cg3Ui1D3/JG7tsXIrKdDe9HVpj1WRBVmJDrp3o5/BZSKI9+nGQClzboTXfY/kk33bFzLFGBzsB2rJb8HlezpazhBJlBDxj1UjSu+qfIVMW3DO/ts39ut9K55pBaVVUWR5MX/8AYOPSkPN/ANE25QrMhxJlLLa9Hm7J8jK5Wsz59mcMY1tyBNrV6KSLMMI4ZZDm5AVRILAbmkWzTfB7la1VUVq0TkMoJvvelw1wR6W5kbJHAAC66UNXb4INtLWfBPI/tR3jtYd6ZVS+RuOD6y/gmkeQy8+Fww6U1JRAxUqrTIt8dpgCo4tfY1zuqnmezspERtkwTlWS4FbCsT41VrlTZU17gD0FD0RRpVNlmD8jkXIIsBpSdMKm40qmyzKkabHIAufWk0r1Y32KJUMnIxnJKuLC1V0uvgQoThGS98eUqNFvVC5O6tuCyD5Bw3Em6kaUNskXLNVRfH8iFQ60i2MsXXF3AyM7lbQEWraZQP1wVVBPHKGY6H1pjUEf+qZQ8ccmMWVuLjrSU3JPzepnvNIgIBLetUqqLMcOORuNmZjJxDW7XobZ1KVWiQ6PPeMWlBLA7igtmn4GZZccBTZsbShy2ltqymfEDrY9bTBTj+1IbObqR1pWkpcBZWasKycTHhcFPxJuTR56NrkVo73ul8EkzFSeJ5Lem15KXnBPkOzrx42v1oq+R9slHIjFVudidulHp4NxtDgvZ/bF7b+tJrUz2bO3gfiTO/4WJ6Cg1rAnGqXA2ZZWHkKGkI7dp8IjsXJW/DWnNwd6+fMsllP60nMHlr9qOvKD1bb4KV+SWdLAeQpf1wwVh8s8M1U1fa9F9Ym1X5NCHKLoGi0U9al0rHko9fJNyzP+RlcAkgsxp+I3T15RktmTDdftVXUWsUkVY2VkcrqCKTpVQPxpVuSiYTz7aH1oc4Rns3pXljcTFs3m2vYV17cHnL2eSyRfaIKkn60qrk682ZLOplHlp9KZVwMpmkZ64Tg6E2p7sb9yqiuFTEwDag0t8kemztYez/7duxoIG1oLliZ2NtRvW1sU2ior2yP/AIo5FdpGBUHG63oQ3Z8QCcaKQNe4Fb2YGmvSrOwQrF+IuP8Aca61pIc72s+RzlStxY26mgRT14k5EygeJua1oFtwPgcNubfSl2RHbSCoZGOmjm/eldLPwJ63szjS4zOQpsD0rVWyQ9ZurlnlhiJAOnZq52ZlbORj4qm4JDX2oFoVqzbgzJsRkkN0up0FqqreUMq+oyOEX0FrULYb0lwE8A3IrFYVpp+Dyi1uO/StYnycmMjAXGorqpGXqhRmIIJ09KLqYqy5Hh43NyOnWgaaKaV5k4YYnSysA/au7NMTto4g7FEEBLtpXWtPgnro4hAyRhhdRcd61M7/AFUshzYVC7bkCjViD2bNgLI8SWGx6UfWRtKfyUx5LMLkb9qB0H0oitGaYXUcSKTaKiN9EiiG6TKHUkdTSbuVwSW0iyH5YgN+HWlUVn5A0pa9uTMHuCU6abA1XVIb6+a7A5CzNCfaFzTKtTyev9denJ//1djG9zIGv420vvX6LpFROd60/wAgZHxitbSxoqbCXpyZ+RjyQupGqg9KfWyY5ctNleKZmWx/De1TapSevjatU2PmxbqCv3rM7QQ+7vwJfFNwdwRrpTVc8jTWXJCXOLIdLqT1psdkKVXBr4MxmW8cYv1tUmlY8sbk1PLHyqb3ZbE6Ghqx1uOTPysVxci3HpT6XRHo14InjS2pFxuKbIFm4GRRRkDgvl61zb+T0cJSUjBCVvyG3Sh7FNtIUIY3gbsQABf70K5IdbO1uAFykIHGS2963oOxx6qWglyFBJ1YneudA8823JyVkYXYgA9q5JoXu44QtJHiY8Px7midZ8gZU/JZH8mbAKfIb6Ul4j3jPkYMyMkGQb9bUP1v4BVH8CppF5DibjoKOqC+qGJkQkh1Fr6WJokyuqgXwYcg1vpRSJ1uvCBinMB82uvSttXsRqX4NLHz8d1Ci5PqKmvkyrPG0cjhlwCg+th6UtEDoMhTcbA0vSh2NIlEeesjAtHpan4tfIjaiXLIVeeKUsz+OmlUNJokTUtpGtDOkiAkA9jUlqNMdXnk6Xc3XpWQgq1RNIXVx46X3pqiBNkuwiViX8kuPrR1Qvr/AFJOEhD/AI212pkspzTqOYxoQQt160CljLttyMRlItx8TQtGI4AvIqGtWgWcAmaSJrGwXvXOqZ52z5KEkjlB0vS3V1OquqkW2KQrGMb1tb/kzJdnyZsgmV7Otxe1VKD0aVVEC+K9+SWrVc3umxkF78X3obHPWC+J+AFl+lJspFS2OTLZXsV0pbz4Dzymwz9slhsKH6x96JFaFJVF2HrSHNWKtpCkD2UUM0Y1re7fk89N2lslnxmkIBG9OpdI5wmiWPDnEhQa22pr1rBq1ScMGZpICNdjqKyFYm0m7KBlRFQX2I1rOjXg9DPNpcAmNTfi117VztB6nqZR5MbMgnjmDxjeq6XTQ1Zq2iFDPyEltIPHbStWaaHe0614Rq4kqOujkXpN1B5F9S6NYzGVZiTfc0htyKq21AUkOMYm6sKFWtJbpayzgWgUwgXsR2o35JM+aoystsiGQOjEAHrT0k1yedukuSzHZMiAOWs53pPhi8OVIM2O4UMAT6ijrdFFrcAwtLHLcA2PetaTRucJyzR/bfjxIse4qd5obrXg5OryObWtprW0hIPpWr5M7J+LEjEk3+lPrtAt7Q2xLfHLGPG5FGtZN+525Y7FxZWXjoAddaG90ivDVVXPkdL8eVa4INAthHteyejx2IKsQB1NA9DzHrydEYhFh5ijTktxq0uTzRySRN7UOtq7sk+WWY0VlyzJyBmpIOcJABtcVTV1a4ZT0omoYxIJ2uRqh70Lsil6VqMlxscRtyPmKytnInbW1k4OwZEakKhsSLWNZeo7GjXL+R5Ls1nBtS14HtKrAkVYxc7DW1EmdSruyeSSJ1uDxIFFVNDNU0hUbIDcG5GlMZLmmUsnuAXHL0pdeAvZ0VVCGYodGusZW1ZpDRLjb98lzN7q6Egjep/9SylE2Qsnty3c3Bp6co1v+oR2bGSYC3lfoKyt4Cs+UjPk+NyeZ9vQf7RTfsUDs7Vnkz5MbIjYhiQadVoXe6fCH4cuZDozsUNL0qmU49UjSEqyxFSbnrSFWGbp4IpY8dQQVse9Ups86/ZoLHkRV3vQ3Ujcp6lMskrqPbNqGqSEexHlgRTzRvdxROqZFRdrSjQXOWSO3C5tvUzpDPRywleRAkmN7jTtTIRlnWiBu66Ab7iiPPtyxTSOJLEXHpRpcHKiTKIZoSRzFr9qXarKKtpjnZFa6eQPSgrMGXq2+RTuD/ZbWiSDVAFUvcKwXtWtmykA0k0bAFwQewokkyHdpsNJFbv96xo3OvVFUcCSIQPI0p2gP7JUAPhSgg8eK9bUS1QnXetFJxMZ42PFrjpWd5IK3lyygCP+8a96Fz8FKsw2eDjYDy6UKTMsrNSzqTMhsy8krHWQ8qSxn7aKf/Wg+svrk5BknjkG4GtbWrRl6QLCJckN/FMliqt8nePe5B61ki7WBaIjVTRdjEwJX4gNv0rkgnV2J51DjkDxB7UyrgpVEkLx4ByALNY9aK7MW0DfYiiluDe/eg7No8/TW17/AKDDwhiTXNM5yvBXGgdAU/HvSLOPJPbTjkXLiwuti3JgaxXckTta7/RM+LGPtT/sZTbRpB4+Ovt260NrmU1ip54p4iHibbcUDsn5JNLp8srWV5V5OwU21pSql4DxorOYFyycRyHlTUiq6hSKWUXOgNH1GerjyBPl8VsF/iirQ9LTGK8n/9bXhn4EAV+jWrJ5FU0jQErSKDp9aldYK8M03LI8mJ7HjrrT6WRW6Jio0c25aE+lE2Otoq1LI1lZLA7dqU2kzytNFbyIIYhlY+Q70YnKnZwZ2WvPxtY1TRjN6qqFfGZc8E/EaAms0orIm9VJ35Np8mUm5I4kVNWiPS1rVMR7fuggE37GjmCKV4MzLj4X01Bqijkx0cHUz0iAZgLetc85LMcLXfAcvywcXHGxrK4lW3rJL9sGLLgyIrOLG+ta6Or4E5Z9az8gvCgHh/FarDFMcnERhqRxUjeubDV0kdWPkgC6m+9dJC7SuQvZlNhWdkU5tJSzyxTRNyDadbVzaYKur2/QZYCxkuy9SayPwO/wNZUK8oz0vQJx5DqnZ8gCTI4jktwDvWwpGvqkA4XVgDy60aIby2IaTl4sSOtEkEqQg4mYN4EsaG3gqzXPI8sxA5g39aBIza6S4LsFiDa9xSdlJPnoWPxItSES+zb4J2x0dfJfvTFdoirZxCEhDEPA+PW9MmfJflWK8jFyXUa2IFC6JjFQB5pXPiune1EqpC7UrV8iitwOdwQaKfwTO34GyYYcBlPjQrSB1tI5CTCIuBr3rHqLe0uAhhqX1NjWPQYteRU0Txtfp3oq2TFaW5kUwilFtzRKUSuZAiXg5UNa52rLORN7tuCxGa/W9A0ehhRJHMjHkfUDcVtbpG7WUiEgYDiwsBRu4m2sIcsEBGluVL7WE0tazPeyGG+o2ArexZRnlxZ+VgPvXO6K87VTPe0trSLqOtd2/BPts3wh6TY6LotyO9LtSzJb97Iaucq6EBQe1B9IdMIQibMW9wNtjTK5HP12SSfKgSBiSBsaavXFf8/9dgcqRHAa9w3aipWB31QT2iVPIdaZLLsat14HY7Aax316GlaL8no5DDFK7HkPGh7I3vWkk2V8dERtr0NOpozzNdXexjNky4shQsQoOlqp6pmUwKsb5Qvot70u2ZXlglyzRi+RvEee99qS8oZ31u6hE/8A2aKfC+9M+qRdvXda8isvMDoQdCdRWOnB4vvU4hB4ExCLc6Gga4J8nFEjWikeSLgDpSLJJjYUc+RcuO7ABjYDrRq6Q2VVSdZHisV8l0rk0wv9nLOZWUVYHVR1raUlFu2UcgrmEjQgjqa55Hnukvk6Z2vYWPWu6BrOXAKZi8vMWIrXnxwNdeqKzIrx+Nx60jq0+SLSXyyMyESN1t0p1aHYY/0eXLl/FUGvetdF5ZdelaV5ZoYUkw/t496n1qgvUhuRfyEGQJOYPJD0rcLqI+S3WtVaSKCFnUpxYWO3SqLWjkTS8KPk5k4gtdAL9b11NC1JtSySSMRkOVB16UxORlZu+PB1s1+mvYVioPtlLGxBMmI8lN6TaVYro1SgibCVTbp2p9LkOurPQYS8gbEA99qK1yG3tQaUWHtxOg61NbQ8/T2XawbR8G5A6bG9ZMluCj+mOSEKS4O9Jtb4LsbdmxGQkWjNrTc2/B2raXB4e2p5RG1dZ8cm40drSxDSScyxGncUSSgeqpPgllKF9je25p9fBNardhftchZidNdKxsspFVAJjC/8d+XW9amE5fknlWYjUXNMqTatJB44QCzLrW2ELRvhFaPdSONuxpcEW+kyhscHMfXqaG1oMxtCHRQOlwrAilWsmegrqteRjKQLmx71yZDe3YS6szWUC3pRpwbCryxE8IUgtf1Io62MtZ+ThgW4KtpXdh6tHI1YWGx2oexzvLDaDn+RP0oVYe7RwichYjcbDcUxck9mwZGhmUWaxHTatSaEuj+RSgo2rXFF5F6X5gtxcriQCbD0pV6CZgukcMv5cgelISEbciVZFNmooYpSP448iEDQ0E2TKs62YiVUA6XG1qZVjodhcLTciCbqdqKyQ/CqTGMByuB9aWi35FyLGeVvyFHVsXq3ygY5kQ6ggdaJ1klcjvc/2EgUHX8i7VC957ai/es6h55yLexF/wDWiQ5rgF1jEYLeV+3auTcm2b68CeajQNbtTIJVVtgBiz3bUdDWwKs0nwPRFNwN6BsntdvgWmVJGCl9jsa50TFdOORgmY6jQ1nVG1okjj5CMvFrlhXdDHm2I/7D2j0PpWvKRV83BR/2cMyW2NLWDTAXrtiVdnU9b9b07rB6vrZKtRYlnKlFcADoaJpA6KqXKGxRTEr1B3NDZopwtWqTHT400R5WHA0ut00L972Ef//X3YVQAEsrX6V+gttnz1Lu7K47gWW1hsKVY9nCsIfGscy2NkalWbqzXpCFuBCQpHIdDRr+iDWzsxM2V7TcgAR1WjrnKNWDPckyE9xAL9RWw6uGU5UhEWaIjHzIsV0JFPpJJvNuUZloxJzjN/SqFMcgUTqzWhkR0HNf4qaya8FFrt+ADJxc8WPHpW9ZMwx/qWS51pUJX8tvtTc+GW2x4IF+PVwQxuelNtcuwvChEs2I8T+OvpTK2kDXSWLjM6Na2tE4E1hso/amVhzU3oOqG6pLwOXL8dTp1BoXQT9Yg58VjxJBBo+jFrBpNsriy1khuh8gKW6Qw6Zyhf7OQq31071vVDKY1VTv7MskZB1PWs6pMb9dVUdikC5Yk37UN0dS/HA8T5CxEf2300oOqbE9a9W2APfkvxIWw3onCBzrVeRJWUnyIbvR8AWspHxpKpuu3oKBtB1smw5GLAgk3G1DVA7eAsUusgBuAe9ZfwTLRVZe07RHQclNT9OxJvNmF7xlYcLgdR0rFSPI+mSp5PS4shQE7X1NdXRSU2ukhYx7bbHqaPudW/5F/wD+iNyBtRfyyS7TbOrIxX/JaxrI/AmsRwEZGj/HVN67rIy64ChzUAJ4EE0FsmLxybljRkRzAcV1Heh6OpUs+q5PNEzW5EAdq5WRNpoiV8WRWNrW3pn2KCa11XyDHAhHJxYjqKFXZNhZ2fYrji4nxbkDsKx2/J6SuclkMTgMtgOtcqygdVLOGVJlNjeuVWhPUnBWM329KZEjcqtjFyoVlUHY9qx0bQ90bskvBR7gZgUvY9KXH5KLJV5YvIx258hoKKl1BNo5sJMfkLqCD1NHJic2UHfYDkryB9BXd4K3brwc/T0Plb0rfsFPWZJJsYKpBbQ67U2t5FS7C45FMRjJuRtcUTXMjqVbrB0ScU6EVkcl9KfyMhmUfloLdKC9RtOChcl+BCg2tS3RSDTLt5M6fLmvYjaqK1QS9etVPySZMYmFyLX3ptXANklyR/qvG949LUztICvLKIFmLanX1oLQUrStVJdHhh1uVFz1pT0g8jf2uzhEWfG0S7i1GuSHavZIkxc0W4r00regqtIXJrYvyUaFS6+NKtk34NrRt8Gi3ykLXVRyB2pH0MZti6+S1G91AVAUWpTXUdRKqljcj4/3Yjsb0um8MffXsYMmFkQTEA8k30r0K6KyEVsu3J2PHdiDyKH1rrXSGLVIY0aKo05MNzQOzZHvo7DFySjrrbupoXSQVTmWUxokpJfc66UttrwOytDbOyY+MQD+LL2oVe0iNNLXZ6F0QgI5JbYGism1yen62bS5XktL+4AraW6mp0oKdmpIGM8bvYkgHSqUk0I9bFdm2cmKuoPHyPespwz1dKxUGPBSTcjXpW30gHPX4RJkfGtDJdNVpmevZDracjMdHW4HXauvAut+zCnkZGHuJcHS9dSsrgl9u3PApcmIEqTp0FE6M8z623Ao/IqpJQkHtRLL8lGPqvyy2HIWeAEi560m1OrLY/mEMjdlQ7/SlaKWXevT+WLyAzw3GhFFVxYJZqyIkhlB5MSfpTbNDqWXhAtNkobgXX1okkwL1qjjSySAeOvpRRAlUS5YQE1xfQetZwE7JcjxBy1t9xQTAL05ESwOdiTTa2I9bpCVx5Fbax70bsiS2qXAZkaNvLyvQxJLddnCGx5QeQKLLpQ2pCPRxyVHyUg2Xy09RS4N0vwNjZNjcqdqFpk0tBlrMVWwB6WoYFX88huwaMggEViUMdnSeTPyCsd7dP8AWn1clazcE65Ut7Db1o3VB0zVfPkek/KxBN+ooHU2PlhNEW30B6VyZPe6Qo4igkhQR60fcSrsWcRG11Fb3JbbM4MYgkK1r1vYFX55DPuxmxa4HWh4Z2lpYxZfcUhG8h1ND1g6lPlhqnE3Zzf+Kxsto/wglMXK296xya5mDgDJLoDxNa+UNzSq5HEFSDrY62FKK0pYCke6Q5sLaXo44IdtP6hDESFm4hgx7ULbI7XcwNECspt4kd6HvBtbcHFT29GF79a5uSjJyjkkS8Cb2Ncrcj0pUExQlOPPSmp8m6OKwTtEqXJu2mlqYnIhWaQqORdAAdO9a0efDk6ZJb+JsAa6EbZKql+R9g5BOhtS5J7WlnGQi1je29EmPpXxJPLAxJKk/SmKw+UuSZ8Zv7hvsa3sTO8smMUqNdCbUxMfmkPiymVhehdSt8IpadNHKaX1tS+p59025Kos+PRBf6UFs2UPN1XJa08ksVtAtI6pMl26pSz/0BTNmQgAE1+oOiJ/W9ZJIsxvkcpW2IHrSr5JlbrXwWp8pIG8l+4pLwQn6VPB7I+QM0dlazX0rKZwxy9RKssTFkSMLSU11XwT8N8HYcj9eS9ro3S9ZenZGZUbYrJmBkYA2VulFnXg7fNUbRKkiI+2nemNNnkttsuxsklbA6Gk2oU+rlPk5I926g1qR6lMoDjgeRTr061jskJtqm4AaLiRqb1vaSqnCTFS43uREjcUVbQxDfYz2xnWTU6U9WBeiTHrCHTixBttegmAHeRZhx7jx8hvWyymjsuRT4Y4kgCxo1YX3kRHHNA1r2XvRNph0sogezSjc8r0tFLS8I7FMTyBIUitaEWflD4iRfUkHsKFg9oRWiytCQAdNdaU2kzKw6wJDujk3INqOEzkvLGI6zJ5GxFC1Aiink5Csit4sWF711oDpZSNfjcW0ahQjezbBEz87HW1a6okvCZWt5CB0PelPgNtLkcsTKwIJPpS3YC+ppQgFdV0PSpbv9h1v2OPjhlPEW9K5aR5HJxVtkjQSICWHIU9XTIU+7JZFkGw07U6rRT1VUFHwMbBhY7UNpkmd3eUjv6/MaDbtXd4LcmqVBAGK/IDrrfWub7oh21tZmijQ5CXtY96ltNBel+qCOOvHXUUn7G2ec7vR8EckRjYhRdDVlHKPQxy68Ci5UBl5C24psSWKvAZdMmIgAhvWgh1Y6lOJZmWmhmIvYVTKsiV82gerF/Fhr3oWoKqpI4cVXswNiNNK7vB32QpKYnlgA1uPWlWSsS6Xd2Xfs4syeZ8rdKn+u1XwPpnZ+CGSPlcKQR0qlMfnRUXPkFVKyKQQCN7VrfBPfSbId7xV9Re+9B1lAtcnnliUnnbidjXKr+AqZtvjwRzxIswZbFWp1LNooa6tDBjwEWZdfSg7MdbRxCGLhoVPFtugFC9A89GyebGkReQJGu5oq3TcF9IrSRUkAkW6tZrbimVtArW4uKBXWzMOQ60drQQLV2EtjSBjY6USugq2S5Zwwcb73tW9hWmjs4FQZjxuVYXUaWrXSSOtYf7H5EceTDZBbrQ1bq+R7p0rL8mC0JxsgrYFfrTJlnluzdx8U/lwYeNF1Ls6deSz3UVQUOhoGhe7bUs2fj8xhEvLyQ1JpnIGX9I0lmlB8PxPc1O6r5PQ6peRUxuTzNj2oq/og0UuESTTBfyXQdadWpv1NEuRkRspMZsb0ytGvJtsXEs4GRkJ/u71zEXbtwvBTj5pj1K6Cl2zkLOknWy0aUi1gwvWrOEU/T05ZbFi48sKst0kUbikW0sn+ijPVuqYwPxSxJLDuKFjsaO/JG+Q/O21NVeC2mKqHxd1Ol7daxQjtLJuF8CQOLghiL9KN8o3PjkokWVozxbUbUqrSYd4siESPFIPd69aphNcCPHgdNMjxa2IHegpWGI0z7GPPk4/uaDXqRtVVauAq+vavLDURlQQwINczpb4QC5MuM+pshNZaqsinHIug+Ql2GqnqameSfJdaiSguhmjYEP17Ui9WuTKr4RLMjK54MQPpTK2kaqqiFPG7JenVcMl0sokWW4aa39KMVDY1T7qC+jDqaB8MKVAUKyKdGJF+lbaBH2Icygt1BoUyLW02J5eQbW3oaNCI5kmkgMgve1htTFaCjNKvPyLMToRYXG2lbI52+SiPIKixGnrQOoFlIwT8lBXbvWdTK0hSzhymUjkCVPau6GUy7Wk6k7nQLZD60LqX0oqobZChuBfuaH5Bs2xLwAvsbdxRq3ANrQzi/4jxGtE+SW9m/JQZGYDQcvSlxANkgkinO9vpWOyJL61mEcMDcjyP2ru5O7pMB0CKDexFanIVE2pAKJOPFbtRTA7x5ECF45R42o+yaM7TaCuJuTFJU+hvSrL5RbTjhM97cZIsQPSulmVbmWFyKiuiQ4lFsM0UkXlYGpr1aZRWepJkwK5JBv9KfS0E1uG2SKOEqldGpr5RFLtdFAyXVrsQwNB0TKOimEUJNGRxe9uhpTq/gorX4QYVwx42ZT3oZUDW0nAM2KxNyAo9KKlyfTRTwJMDKp0uKZ2Ed5MvI/xycjcC+9UV5EuvXk68ilfBvWsgVpVvyCJWZQWkt6Cuj9HZ0X4GpITsxrmh9uCpFRgeTWNqS2TXu24RPISGtuAKYkdXOBbQLJ5KbdxRK0FVXHImXHCrc6j0olaQbXdvBPHkoCYyth60fUKmTXkodlMYINrbGgg2/iRq5L+xYHlehdZZM696n/0V4+Sr8bafUV+pWqAlEDJGmjcGxZTrehUNDXRSd/YYt2B3vQtcFeWK7AvMOPh+XeuquRu6/nkCHPkiuZE5KT+VHaknlVpPgp/ZjJBQX+tL6lTp0QyaRGQEr5CsqoIfYmxmyzMshFhY7U5VIbZwyvCZib8rEdBQXRV67SNVY1lQH+7rU0wyi+krgn4ZEcrcSSp6UbaaMxqlZtjwXKkEWIoPkdo1AFplBJXxvc0XDEJpJi5EjkOg3GvSiTaEtckjQKrWY2PSm9htGwmTx7HvWJjW+BDe+osFuDRcHVooFtyKkuP5FEEojgdFILLcXA30oGje0wcZYeZZb3bpWqYEWbkJXkF0sQOhroQNo8FONkyr0uu2tKvRMZjVLkfcMCTYA0HgTpaPApoY42JHWjVmzqSlAPusjdh2FbEm9YDMkbkW3FDDQq6ck8zKJbk2HejXgm24sWY+VHw11tsaTejJrNvk0Y8lXT/Ha47VM8+eTa5z5GQTTHa+nSsvSqK11pUvRpBH+It1qSyTYqewgyJYhybelNVX8BUp1qBLjROl4217Gjro0+UBpZxyQfrhWs9yD2qhXnwbh54AGQIX8fxO96J07IPVP5GPLiSpe/kd6X1siXWVUKKSNFN3v2tS7J2ZAna7hHjJqODFh2pipC5L88VRJDUnJfiUNx1NC6fsZZcxIyWLlrcX7UNbQUJEUimM8lNj2p9XI9V4JpYVmYMxJPpTVaCa90nwHFDxNumwobXAeo5mKIQALjpQRIvSXUYqPPF5WUf1oJVXwOwVUhceFb8Ty70dtS3G/wLlPtG40t0o68mbNxJ1ZWYclH3rOqJM6JuQJhLbla4oqwP0hIdFjGWLU0u14YzG66wTZGMyAEjQakmmUvIPsacSUxiKwJNri5FLtJlHazFnK9lzY+Nc6dkejlg15HiX34tBe29JVetirRKtYFGFv9nGnqx5uun7EHGCSFr6Gmd5RLW8MaYZCgKbUPZTyc7J+SSfGkI5KNt6bW6Ds0lJJ+iWm1uO9H9kENt13HGMxJfUjah7SHfRusmfnYqSBmUi666UdXBK1E/kFML3oQysAy9KL7ID++UDPiyLDbS4re0h3vNReH8i8H+OQ8hfYVrzkdjnFTfTLSQjix22qbpBfsocHJshkYXufWurWRFsjy5QY8WsFPeu6QD05E5OPAfJHsTrR1s/kXvZ+CH33gY8yWSj6yT559nweWdZCTGxv2ousF9c+q5KDOOC31dRQdRGiejSQyH5fJXwUa0F8anq4enXwxsfy0hcs54sOhpbxUQVLFLx4Rb7kE4udXPQUlJ1MtPwJtMkjWLBdrU3hoGqUsJWZri1mHesgC9kiuP3hH5jxpNokzuuvB1ooZFIC8iO9crNE6lshmwwL8hoKctCzLx/gz8nCUryUA1RS4jbSSUY2QmyXWmOyZ2VqpeRrRMkd3XSl9uS/P+lwB+4FA6joBXOo1ZNjsXPDSAAEXpelOBtKQ+TUWaQrte9TqiQnWLMS0zglSt/tTlUlvVHeam11t3rUhdjgEa37V3LAlpMJJWTZgF9K11kkaGe6si3H5UMQB1EyDyF9qNHWUMB1sL7+lamMS4OArJHsQR0Fd4ZyUoTwDLY6Ed6OTXbrUYkbIltCKFsGj7IU7EaE/YVpfnnCOA3tZ7Hsa427hFOOU/F2v1oLoVWzfAwsm6m3e9YkI0mZZw8G0/rXE92URQgJyH49+tLtYkvvIxBxbegbkmTlnHuTY6H0rUEqS4EyMUYgrcd6YlJcs+YJHkjLXBMbDampMF1aGLFHORdzzFC7QDW39eAvbdWYNe4rpKquWwJSwsUGo3FbUodeDqtI62a1Y1AaiBuKIwSjLqexoNJ8nV0aCyEaIlkva21ZRz5E7ckwM7G4iJtpTeF8kuVapzIQxMq4LCwPS1Z9lRl96LwXY+DIyflrva1Ivqkw8d0w1inUjQEetD2TO01Q9RGdHvQOfgntdt8CZYiOXEm2+lHWw2lImTPyMcSxlCNelU1tAu/gzRjPqjAj1p3ZCaXTZOceZCRe/ajlD6NJDseSQMVYnT0oLQR6aTaEVxyBnTud70tqDqrrD/JRJApa5Nh6UKsM7f1IrgUVtdKKZNT4YaQJNGLb+lY7QHk4XJDl/Fsb6HTqKbXVDlczZEyMdSpN19abKYdodQIsyRBYm69q11FdElB//0uQ8YyhYch1r9QtyeX9jbUGlJNFLEOKhamSaZ7OWLiX5JZMMyDpat78npZtUr+yRoRBe4uNqoryeb7OzscAYaKCUPSiF0qqrkaYnKHgONqFPkLS668nlWYxlS+o3FdxIhNR4JJ1Nr7mjRDs5LPjP8jW2PUUrRwKz2hwa8Y9qQA6a1O+UUW0gvWIyIeNgaldofI3HmZJpUlja5Fx1NOq00btZfAasrqRYVjUM6q4Ip44x5JfTpTqNm9X5BGOJBqLj+tb2g5aKQf0ytxY8ehrfsk56h/rug5K1x2NZ3kG2khDCjkUFgLHesejRi2hQhQ+PEb+LHiaL7ZQH3QefE0PC/Ida5X/JtbTyyaZXU3ZiWHSmVYT5Y3HVJLbg+tDZwdbWOEVxwBmtzH2pVrkr15Kf0Fa4JUH660r7R/2y4J5sMC2lh3ptdAraRyT/AKyiTwPLvR9+ORP2OZYvJxSQCRfvW1uI204kCDGdDopK9jWO6ZLnp2Y5FZW5ICvcCtb45PQrbqpZZFK4A3K9elItVMQv6sNTLdJOIDWPSheaaPQrkq+SpGhZSWOvY0lp/BJe7twgjHFIv+Pcb62rOzXk6WlyI/BrHT703yFmo5FZOKsikgi1FTSDrszZI/aAB2G5FPTkj0btCEY87pOVUsQdr0bpwblRVfJauQ4bUcbUt1Qy/BZBle4fA+Q3FT2zjyKzpNpZWJEJuw8vWldX8Ho1q2+PAE0aOtwR9KKlmhmvChGe3INYIbDZqp4/J590l5ZwSOpsxsR3rIkS0UmaMrcgajel9HI2ub0cIk/acOVSxHYU7ooPTywVFyMx8jz34nqLVl6cG5KbSMyigF3XkD1oM0xfsJ2cLwZ4yRE1rnj9Nqp6SdnjCDbLsLhgwPQ0KoZpnIUGeI7Flup6ihvlI718oXA2fISWEhCTespSHyDfDtwZrZGWGtx2Nr07qj0csKURQEEqgl/MdKV4Kb3hcD8eV1Fr7fauvVMhteRxmlINjc9qFVRDqkkGvB1IZbOKFyiaXbhArNwcBtVrXWUFHUo5Ky+It1NKfHkRtaFySuoQlnF1v0oq8+CDKrbkGVlKEKnJDTUi90hc+TKzESNyyLZCNbU+stcitKtcv8CMZ/8AHyWxUnWtqhXqUnlgymQniBcX2pig9B0S8k82D5cl8Wou4OuxfF4lS/TTSlv9DLauzUFuQyNGDGSLDrSqeeS2+f8AMsRHjzy3DAaf3Gjdkib7a1CMKQG7jlbSh7O3gkd7aW4JJlYyMFBEbbXptfBas65zJ6LCDXK+LCsehJf2eRseHy0vYisdyz0vMsVNiey/Ikkna9dW8nr9n8eCiGBZlsbBt6Cz6gfbPB4rJCV4g3B1NcoYxvhNlCTyEanW96W6oHqmA+Y8UgLrdT1o60lEPtcPg18XMSWMWFxuaj0zaZudYQDywxOGTruKJJtQwqZ2mWPSKGeM8hv2pF7OrRTlbhwZmRge0bgkp9NquprJ5+mgKRSR2Ifkp1INa7Jk/fs4jgrOJFNEOa35VJbRpnv+vaKqDLyPhzG3hex20qqm8jlp8ERheJ9G8hT5TQt2llUORN/uP3pbojW0UkrIBc2P1oEoJ7OWcWNidL/WikmvpyPWBSPMb0LsIvt8I4I41exN1NbLaEO7TCGN5kxW41nf8md+vLCfEmFuQHHqaFaIF6rydGKFBuQy13eQ1o2IaLgfBdKYrT5GVUeRUkjLvHpRJfsX07PyJMxB0XStgvyy6jVXHkU2PFxrQ8oO92+DskKkA7n0rq2E3u+BaRlX00om5NraBgiDbn7Vkk+mkDI7qLEabA0LZ52mvyNjHEkK1xQMQn8HizKb3PrXQFAyPIVwAN6F0gfjn8sYVU/kNaxMe3+CebHjY/8AHqaZWz/Im9n+SJoJEdShK23tTVZMZlCgb5Ac2brQlSfykUERkBxqDuaXyHZuz4J5gLXT+lHV8lCpFeSfnZha/KmQcqyx4yDcBxQdBHsWlwgY8v8AXl/I8DvW2p2R5lq8/ovTMvax0PU70h5idKwy7GaM2Ia5qe6ZTi2kUPGGF7ilK0G+WQzc10tf+lU1hlNMoXJyOXmLBuDdq51gZHHIhmQMdDzB3piTILy2Syglhrrvam1ArQW0XK5K2Pet7GXv+CRWZZjfUdaKCKi/uRplNhwAAFaq/kqrn8sP3bLcnXvWdR6rKPHIuLbiu6hXrCCx8gIdBxFZasi86wWMyst78lNKSgqzpLkz8nF5ggKLGn1uFaEZUuAUfkuhpv2EO28H/9PLXO6cipHev1V1Fet6svlF+NlGXx/qaTasHspJGhDKYwvIXFJdJEaXkKeISX4ga61tLQefs0pAGLdN7EUXfkXS8qRbwS8LA6iiVkFpZdeQ44Da7DWsdib7p8Cp8fuNDXKxLpYzlLwT+JI10pqUi8q88mxD8nHInFm/yjuKRbGH+it5O5di/JSBhyFr9aRpgmiutFVcF07rIgcGx6ikUTTgDavAuJ8d05A2YdDRWVk4M9etmpAkhUgncHe1FWwelvgj1x5DqWU9N6f/ALIRVTYIZpDFb8vQ0P1nWy5gI5SkaoR9Nq5UGLKETmV1J4En0o+qfk5ZwcbMJA5AhhWrMC2UjsfLEhKg+XY0Fs4OrTmD0wRgCQARvbWurJ2z6onY8PxJb0tamLkRSnEs7HMrEgrxb0rHUylZZSkrlhcadxS3VFtUq8juBYWF2H/tQTAjS/5AN0IJFlvXTJBpf5GyspXx1B9KUyX2GcxUVmtqPSstaBWNupY2Kq625KegFK+5sbpsxkeESDYgL2NY9oKvVsqptjf+uhI0fypf/S/wbr7VrnIoEU8ZLGx3rraP4E12dSiODE5EXtSnpeA6Xt25CmwIGF9GFZT2LFLuzMzYooATxJX0q7G7sUrKzUmJlLI5bgLg6ir6QvJiyrWWyHHaVZeLIRajtDPMdk7+TREgk7X7GktQHo45ZTiWjbloDSbf0L9du9v0aYj90ciQT6VO7dT2qNLhC2iW4I06GiVhXsbdVIuSJDfg3kOlbWz+UeYqu75IcpeWraE1VRwVusIRDBIbqrXFHeyPQ9NKvnyKl5wOGUEGjrDR3sWlyV42U41dRZuo3pV6L4E5pN8DpXXTqh70uqKnSCaTEVlPFgQelNWgtMjmwJVAJ2ptdEbbVQegx3QWF2G+uldayYdNOIGxRE7EjuDQWsNysNfHEgFm8u1ArQO0uHHBoLjiR1FY7C/tB4hCRxub7mimSW1nDHCRGU6WPegaZFebHo5nvZtRWuqDzqq/5GcVcaD+aCYEaWjz5BacREKRYHc1jpJHqnZwGrmRuI1Qiu69SqlK5+QJcbhqG4jqKOt5DTnlkGXIsakMeSnS9OpWQHi7MwVklimKpcxk3AqpVUDqZrJQzQN78je/YUpsRtp2fB3JP+PkUNgd6xIy9f5k9HNEJLXIHrROrKc6PtJpxiBhYEMancoZ7Oz/ANUKfMELhbXHW1as5EZ+s25Ypi7uTe6tsKYuCuK5yH+qHQdCKB3gj33kmeN0bwJY9qYufIvKkuWdTLaJruAD611qSexhlPjwaCTQZERVgrG2lqndXVyU38dURCeOKTiUsQd6c1KAxysvkr/ZWQWXX0NJVIHa15CSNy1ytr1zYp6qvgXlQtwsFuKOliTRSuReNIg0uQdq3RFPrJvksCKdb3vSFwN0vLheAoJGgJu5selDpVWNy8MGbPnS6izqe9MrkmR6eunwZ0vyTxyf5EPE9qcs1A7H01PHgpw/lTayglT3pGmMs9FZpVgvb5CN0A6jcVL9cMOnrt8szJZVLHiutXUXAi9OQCWa2lu9EgLNJHgpA8dT61oM8SzySurEEG9a0QvljBNdhfbtWdTLKByjnaxsKB8E1rcnWnMDarde9Z17Cb1dmO/eLLYLdTQfUP8ApSR1J1O/j61zqHnSAZJY1/uuD1rUmM+tsjlcE2GopqH55dfJ6PHjcEkWPaudmjL7N8IMQAE7fas7C/sgZw0tbahkxvg77JNxbau7AW0gXKkcWtx9qKrbJruz5F3mLDhbj2Na4+SW/VPkOKQ2PIWINC0BnzyFLZl8SbitrwWdIUsCNpIzdRc3rWkwKLu/0VpPLIP8gH2pLql4KGqzCEZDi4sSLdKZRGXzg4s11YA69q11Opn2cCJJHIIKixoki/61WsAwPupNvSu0Qz1qnZGdVuovWV8jrKUcR+QuVsaJoltb8HXjVu4P9K5Mk1vBw4kxFgQR6132IhvqjscMytZtqx2TFLRNl8EUgFw1jSbWRVXRMshmnGjNcUi9UUYVQU/lqDrQ5uCzVQIMIbfxPem9hHYjlWSM2I5C+9Oq0yWynk54nUjWtEaX/B7rb+09KwnbgkliBc6W9aZVmZVhyxIfhpuL60cD2mVRxq5Flup1oG4Hd4cHpsNgL7CuWgF9JEG6XseQ7Ua5G5UnkKLImUFRYKelZaqZ6NKKteRha4uPy+tZBHo+zgzPkJn43tYg02tSfTDiT//Umb4mNvIflX6l9g3HWEDFjGKSxvpWtyjLbuTQjlQKAbUp1Ou3A12UoStzYbChRPZNnMeZCuxBrbVYqkvge83UC421paqI9pwPxfbcFG0NLvKIa6RwFNiLbx2NZXQ2flkMnxjE3Cg9abXZA00mwg4DKSSONv5pv2It+5I0Ma3sLyBLDrSLPk3GzuilZEYb8T1pTqyx+JG4/wAfG125XJ7UGmzQGXsRwj02HkxaoTatprV+TrXTXJOVmYa731FMlA1gU+Ohk8t/SjV3BnZu/AP60oaymwOxJre6Dvol5DfAyD1+4oVrUx61JpcGZT5tem10TMtqvhC44OMgJY3H2onbgXTRyVizi17W7UnwL2uEY4uPENdh965Ng8tck4AV/MaE696M6r6lsUYIBj27UmzjyFbT8jvZYNcggClO6Jdt4cjUEXHQfUmlNuSGXblk+Wre3yR9e1Mq18m6VissHBy7SWkFqXek+CLJO1+C2bKB8QfHpasrlB6d8eq5GwvFwuWsfWhsn+AqtxCCE0N7Bte96zpYdTJryTTZEkT3vdb06uashdsuRi5kcptyIb0ofqdStZQOEkx/FtB3pbqi3OlfkJ4TLHYkMTQVt1Y3W66wZs8EsR/EWA2qyt00eP7GhCIRJJe3EncUytoPPw/2knykaBiRqKdX+h96u9oFQ5x42ZOVM+o9L18OlI+TRw82RlHAFfrU+mS+S2iVKyyx8h72Iu29JWaPN3r3tAs5pF2K6Ci+odj68+BUsqzoCL+opla9WNtmkgIkKtyS46VtnPkZi5cnMkgr5n+a6i/AHsc8IkUqBYAsO9OYzKnWpQJU4Bd79KV15KGm0AmRGjFSpHYiidWxXRtwebIW5ALC/eu6mfVLJJpciOS4uy9zTapNDnlVMKPJlDAnbrQ2ohlKpOStJIzY63tvS3VoXZuz4OmZyPDS3WsVTNKqq58jCVdeJc8x3rPBNZTwRmfi9nH3p3UFU6hiax/xi9Z1/Iu1flhtLdgSLf8A6UKqKdZZPPkeQI1HWjrUy+ccsYuVItig8fWheafkz65cssjyDLHZiNd6S6QynOiZLLhcyVbVO9NrpAy+izRKPi4g1g1tetDf2H4PnfZ9y1rQUCCNJOJ1XvXd2w1Z9gpYf8LBQLE1tbclSU15Jsn4oyMxU6m21NrtB6uVlJmK0+PkFZL8Qafw0ZX+tBxzlYcdP/NCqld8utZZTC7lDa1gNKCx5emiY+LImWRfEFTSnVMkpVWuheZPMshKrpTKVUHrL1UmLVY8nHs68X/rWNutj1Ma9aQSezJC4KORTZTOd4Us0IUM1r6v9KTbgBXTZ0wSK92BUHtXJqBO+6RoY08SRL7jEjrSb1bfB51Ha8ND53xpI7xk0qnZOGXVycSyNcNLkk7053CrrHCPGGaNTwJI6V3ZMNNQEplFgy6etDCY6zSSQxY1k04jU71zcEqtNoI8347U2kOuwrctpPTs+q8EQxp4z4sTanuygzNqzKEMt/IW6XqZVkv0uqrgZxW9NXg8m1nawXthxvatmBN9BghTjYNtQyxdrtk7jg1zf7U1ciUmcL3PjXQK04OqbNY3tXC0+RlpLW3Wh4NqkwX5BTxa/oK1FFaygY8iXZrW+ldaqG5UUnXYHoSKFIov/KHIMYre4VvWsckemlmdU2ewKkE6G9c/AqqhnnmlibQLa+4rlVM61F5GtJzUNQpQbfwdKFiOgNZMCrWUo40CLfS57mt7CNdG+CSb3Y2vaw6GjUEekIbAzEqAB96FoPJJND5Yivr6ChraSjRy4QhGXUbHtTIGZ1hHAkrHxaulFOSVeWcluv5C7DetqZebvgQrMWJIsKJ+Cr180hczSMtoz5Vy8lf1qJsIRclDcjXvRuAa2XwVrIeHm1rDSl9eQdrSoQIm1sNu9FBBp/KKOd0GlzQQQaOUcGQqsQUN+9Y6Nkrq2/ISyAsbHWs6m1pzB39meNtNR61vRMvzxQ5MqVjqLUq1EellmkWRzxMg56EUp0afArWzt4OmRToP5roEWrC5AkW62okya/JHIVQ3P49acuSWyYt5gy3hub1qrHkbnh/7WIpZuMl2BB605VGfXyD+xGdbC1d1Ym6aKIclQBxNA6AVq/kqE3NdTag6wVZ5k8mKXvbVT1o1cvziqE+wqdSPU0faQNdXAQBDDUMKwUvIvMg5xXstr1tLcm6LiT//1bVta7DS1fpbAThcASRoxBVb1qYtcOWeWFDdeAB9a52NVnZxIAMy3UWv2ouGFaEuQ8ZZW1PiQaGzRHnolyNkSQAkbmgTTJtbdiU5Usb3CnTcimKiYNclJZH8m/Ac2vpt1pVsV8HWznwdGW35a2IrlmgssUhWRNdbxA8j3oq1/IzbOK8j/j+csYDniR0pekLwM9a1a1hFy46+23Ignpaku/IS0d00if3ZoG5R6LTOqtww1RJGnj5izxAE3b1qPTLqzc6dkT5MEl+Vr07O6CvCJxG5uQBem9kLo5ETSsDYrqOoplUbpSA4c2VRYihtkmLVJHnIEqaoBpvS1SGa6JIlMSNvoenWmy0ZkoIpVkjl2PGn1hoyy/qRqO9xso3vQtI1tSGoHO1+Q6mgbJtL/wBFEbtE4KNp1pVl28kuluzgrfJllXyPj6UlZqvg29ar/IgXDFQTxPemeEDxRcjzEhj8SSamd23BHto9HBmyQuZdCbmrc4SLfTyVHLGASXIJsRtWtofe3ewUGRGHCy3NzWWo44DpK8FrRQMbx6HtSFa3yUWbkVLFdSGo62Mu4QJDxLclbDtWymHhXtyMTKnJ8NRS7Zo9Ouda8sox8sggFfKl3yPN3vLgbkTrNGRazCl0z6s8/wBinBkSzNA3LoNaspn2A9T1XdkU0wywbWvVNa9T1VjWhOmP7cg5g+tMd5Evbngvh9lWADWB6Ui0s53bf6KZIJW8wSF6MKWrLwOq1Mk/sTAFRdr/ANxo+yLKutKc/Ir3Jcdv8huvoKOFbwR3cvgsxsqF1Nib9NKTpRod6+bhi51Vr3FxRVYTUE5ijIsHI/8AUUzswqy/g7+q+nb0rO42+qBMDrubX2vW9kKVvkG8fa7Dqa0ZSrZyXnMtl0NZXgfZJLkn9jIAIpvZCbXUQNxprMFk3HQUN68cC625LTIgYdBSUmJ1l2ONKiy3tcd61VbQao05AlMRI7da2qYjVOQbxhroa3n5J7tux03Js23cVw3iiOTYw4niSB0Nq5XJtbyCIyqjXka2ZCpN4QImmV/FL9gK3qmj060rX5KRkSMByHBj0pNqo8f3dE+EIGWvuM0m3Sgrl+Dyccm7No7O0EtmXc06qa8nprNrljMZsb22V2sSdAaG3aeDqWteUvyNnyFR7KFKjrWVrKPdz9bryzMyEeWUMnEA71RVwjc861t2ZLNgKwNls4piuI9r2G+BEDTRMU36WvWuGeZ2T4Ko2yjKLbDpQtKCn16UVpNARyMlzYE0mUi211Y6EK2uCb6XAoW5LMnCkGbB5HRrenrW10gRtrNo+DmHHkwyMH/HYGiu6tElN12cF0tpE4jU9DSFwK9h8QLigawDGitYd6zSQ+OGNYzzJIO1LtZyV0u7LgldjETx1XpTa8nWr1TKUmBUC+tJuoG+vn3aRBmTSpJyvpenYpNFHs0VfByDLlY+DWNbpVJCvWxTfI6fK5gcyOQ60jGkHoexXjgnTIDC2hbtTbrkHHPrX9jg7SKQF4mhShgbNQBxuDf8h2prJU+BRZ0f0o1yhDXIfueW9hWQa1yGFDGxNwayRDtyTywshPEm3S1MVpJ7PzIIlfZibfStgFVQ2J9R5Eg96FoNOCtERl01JpLcDqNvgQ2O5ft9KJWKFZVGCORQL7dqyUT66yeMUIYc1rZYq12oSOtFBccSCV6ViszrNz/gYyK8djoelYnDO0vwHEpVLMBxHU0LcsQryjvPiRxFdALXywlbk1iNfWhaJrOWJzIiyHlb0AoqMG64Ig7wuCNhTok3OsuSv3i5PE70vrBeqKZYDaSAkH1NEvByX9HeYB0OtZA+tflgsrsO571sjaVQpIJCbXv6VtrIozaQftOhtYDvWJozTTs4BEYYbEmtkFOEe/UVvzGld2E32jwLyIIk4lfGjrZsh1tazQKMdBe4rWJbB5gFvU9ayBDXkYk0bC4tcVnVjsc2PVklW1vIdaFqD0EoRTDjuyeIuaVayTHV0UAgFGtIbWOwrfPgBP8AAz9iJXHIG16Ho2ifbs7BvlQq+/iaxZuAL5tMnmnxeVnN1NMrWwp5Wkn97HDWjbTsKZD+RtcrTyJnV3J5DxO1qKrgLVqnjySmBFBAvbsaLsQKzZxGSM9qLyOyq7MbHkn3LA3oXXg9BU6mhjzSMLXAPak3qgE0zk8sd/8AIvKtrV/AFqNvgmk9gm8Z4f8ArRqfkY6teToa8RVrXro5FaOawf/W0ocbknlqK/SLXI67Twhc8K8baoR1FFWxU1FREZmvob269aO0HYpLlgy5BRttetaqyTe1yHFmBTfSxobUIupV70UiXvY96X1aN6wpAfFDRFlNar8gVtKIngkja+4NOVkxnZD4EmK6fYUFmhmdqpclP6zuALWYdaU7pE2uys4BhgyoZeJBN+tba9WjHtWvBtYuJMw8xoe1Q6a1+Cr1dqzwKycExX5XKnamZ7dhmuk8I9hwyRsGUXQ9K7W6aEZbKYRohoHHFrofpUjVl45Du2xMmICLr5ijrr+R2Kjlmfl4qkfiVPe1VZ6BWlmd7LciA/8ANVdjuyr8DEjdOjW79KFtMRbSSlAvEn8x6UthZyyfIVXU2Ur9aZTg69YQhEI0Y6Wo2xVbCXdo2BA8a2BGnHL8lEM6g+a3HpSnX8E9E548jhk3t7ZspNZ9f5KKZRywHzJEcFh423rHmmSaqbSdgypSD7ZFjuBWfUl5NwySUsqQc2BDEONxQtwNdptCAkx5XXkV369bUVbpFGfWqJpcaVWDC41vrTFdMy102WQTyg6AE70m9UPqle0HsnNBXySxrqZFNvXkVDMhYoyeLbE0dqvzJRVdFElkcAuOGn0pDt+Sff2I4Gq4Da7jvQNHnKW5PTPGw0Op6VtasasXexmyYskwYWvfpVHdI9n161zqZRwXgn0DKRv2qr7U0eP7PszaCnl4673oIERJ6acQsCyEi29aqyVPJvhBr8s3Dx/HtQPFSejn6qrSWUx56SAW0NtaW8oFWp2YM6GVf91+1FVwY6rwQxyHGms5uO1Oa7IZWU+DQEkTryUXpENHW8FGPjI9iRa/al3vBJXeXwdkxeH4sRWV0kK1vycbFMsYvuOtd9kMoysokl/QCyXJue1N+2Ua9+RphSw0CkUKsZa78gNENetErCk5ZNLEqvyUj6U2tuDLNyNTi4u9hQPgF6RyWLhI8YswIApL1hhLbgmk+OZTpbj2pi2Qp68kZxmjkIP4ncU7vKE/ZDkfZUUWPjS2xG2jgpuhQeVwaWpOrVvkVHjSczw1U0buo5KcrKvkoWIKSL+Q6Up2kXrq7uF4JclgbMUIPcUXg8/2HCE/rFoTx0+tMo4GepSKyyZ4yoNjdhTk5K3NuCNpJAw5qOF6YkehjnXNT8mxAsbaKND3qW0ostq2+TkmJZtLXHWircl9jbqc9idwQLV3ZI8+tqtyzIzMaaGcMo1609WTE7WUlUElxcr5elC0Nz58Fsbq4/EqR3pTUHoVUVNHHQvB4sCQdqmu4sFXTtX/AMgSQMrXYEf6UVbpk2+v4BWNyLg6VsonyhKWERe1iAbVwdKu9iOV5UY63vvamKGetTJJQDE017E3U1lkiqnWqg7KzIupB9DRVRNevd/oXDPc2JP2pWyPW9PLqpE5iuRZH+xpmTgzTPs+UZ0Szh7ltqffk3N1ryaSujqNPPrekRBlm7MNUjex0Vh1rFIGmkDvaI/uv3rUyPTT5HIEVTcgmhZPVuwqe5W/HQUVfIbqkpFLGtj2Gpo5EO8gggN4+NaLfHLGe54EHU1kCVWSd1kO34nvRqA0khYk4Ec7WPbSiiQOfgsgle/hYqdqTepVSKKWXBeYFxdqTMCr3ng40EjC4Sw71qsgeyXImSCUAH1o1ZGSmLfne62J60SDsc/deEr7iBh6Vn1z4JdqzEMqTMx2usijidutLebXgKmTXg4Xh2j0rYfyK2leQo5BfXr1oHUjry5GO2M3jbXuaxKw91tZwRSQLISANO9PVoGpKvk4mM6NaxI71zumMWksNoyV63vWJj14Oe2FOq10yH2dnCAdpFvxGnauUFtM0BHkMGBGho3UV17MfyaU66XpUQG4TFhv15QGNwfSmR2RHrZyWAQyi4O9J5QhsW+LCw4u+/aiV38C+7b8GbJj+1IwDEjpenq0iZbcCJVlYErqKYoH50S5ZJxljc7j0o+GV0SRZjZB5A3t0INBaonS8G1iTWOjfao9KmUcsqmjik8ra0itmuCi7gmlxCdQLinV0Jr6JcnXxeUIN107Vy05CpbspI3xgTZjenK4ztAj9ThJqNO1H3lC7awxxjtGNbW6UE8kOunYTJEbX9aKrOouBBxHuSouKZ3RZnZVPGErrbyFd2B00dnCHxSM3E8SLbmgshqaopkv/VWSPlc37Uj7IZtdJ5J3x49bJZqYrMy1mydkcaMgseo3o0wW0kf/19MO0UttSvSv0hqUR4Zwxs5WS3iATS6cFuqgQIADy5W9Ka7E1Ly+BGXGjdbn0o6Ni9p8kHC1wAQadIhcLkfjtdSjGx6UFgFaeBsL5cYPtnS/Whaq/JtFWIYU08zL/kOvoKxVXwdpSscArkFVuBa1a6g9eAT8rkot+HJTuRWfRUyvrVVezfI0fMvp4Gx6mlW9ZEWuM8ybvw3zKOODuOXaofY9X5SHetWODWyvYliN1IJGjVFl2qy/2E65md+pkxNeMhh9atWtbLklwjwCc3LRuJj8h3ovpo/kqWNW/IxPkZeYBTX0pb9dR5KNM61XktVEyUBIMbVM7Oj/ACIrdf5M7O+MIuRZqsx9lMXpYz7ZSHiF4jsaq/li6pN/k4GcmxHFvTathF1Uqo87SLo4BWuST8EmzlwgLwsv4he5vet5QHNVJyXERo7oRe9B9jnk8/bV2AjxyZAGGm2m1H3GZ3hoa+FNEGZfw6UP3JjNNlDOrhe/COett6D7ofBKtVHBI2N7F+BIudBT1efI9NqvI6NpOVyCb6XFC0jatLktjyGRbE6b60m1Ezb+IKkfGmUXdeR6GkRavwdnVv4ENjtHKGQ3XbTanK8rkvwrFpBnxQ7Dkfy1rqaQj0dLw0kIWBll43uOlN7qCHXb+oKblWF9KVEk17drScyCePLna+1bT/BVXPiYFI0baMSWFFZNFFJqipAiaruKU5YjfVwKn4SasNq2iaPIVW3JDPjXW8YGpqmt/wAlSULk62EsqC7a22rvsgvrpxwAfi0MR47iu+7kdp7MUDgwJI9bXUiutqmRV9mSr9cgLYcQaV3KqW8Nicn4xZATe56UVNoCvr+CZcF41IBb7U16JiNfY/mAoJpsZwNWHrWWqrInxrLLz8gr2sp5f0qdYwXv1+z/AEDFmPyIZt9hattmg3RLhDWlSQeS2I6ihVWvAiyg86xHZQW71ybMvIHE8iGtbpRSauGIljS1uIv6UdWwWmyGQMjW5WHpT1yZoo4KsLKjF1a59aVpRg5yUNONOAuetzQKn5Atm+JJsjJBbVbd6OmYF8ZZBlZZCmxCin1zNt6/ByH5OH2gHfkR0Fc8nPAymNuvA6H5RCbRX02FDbH8mfQ15G/9kqyL7mnQmgeXHBPvTrEFEmXBMvFW9aQsmnyedbF2tyBC6FCL8rHWmtM9L1c21BDlw/5OSsQD96fS3B6VM1VySTYhGzlr7UytjdL9nCQHu5UE43K22rYVkP161ZojOdwOhpP1pHn+yk2NjyAGLM9gKB0JarltI7M2HOFJOvcUv+kQew7ScjgxgoKXLCjVrfJV6yt1llEccbp5Hi3ahdmmWUu2j0cc0JJj2Nc2n5H1aiBjZMrDg1rgXNCs0uRWua8CDktGnlt2o+ksyuX8nDMSOQW6ntXdfgvyzVKyU8OcQ0sP60luGUZ+JJuBj+nrTZk6k2ZHlupQgg69q5W5PUx9eKyTwME1Db0d0HVtj3LsQQL0FEbq0iaQhX00Pa1UVJLoqgjWQBm0IpduAfu/A14RbQ+VZVir24PBpwpXethCHFgQ8itrWxIThIrjlUKNj3FKdSPa08BN7TAk2AruQKp1TAkxUkiJisWHUGiV4fIp2bXIlYjfXcaUbZv2Hmiddjp2rlZGJimx1dPIfai7QYrcBwxMhAjsBtY0NrfkDXb8mvjC5BPbpUd2Jpr2sNJIBs1rd6AdWkiynvAAnWinqPrCRPJhMDfYdabXVCrayyeTDRjYNe9MWgu122LXDkjlsDde1E9E0FfdK0DJo5FNwB9qBNMl2tLAIe4BbTsKNQHVJDIpF1LXNC0HnLcnZJOqXFq5V/Jrz+WDDnITaTQjvXWyfwdhk2xhm5apYgmhVfyVXqqrkdEsbC7nXsKCzYOdn8FAgjeJihF6S7tWUlNLN1ckT4tm8h9xVCvIKt1PLCVsBe19612Aeh2bEjkTQkMOprK6NCNtG+CbhxFrE9L02ZOT/kJJeN9NuprHUBVkRky8tRqwo6VD+ghbIRnsDwendRjzgMMZBZyD61kQc4JJ4TGxIFjfS1GnIi7ktwcia9m2NL0qg6WSN3HnjZLHeob0aY1TYXI5KlRtRJA/X+RUMlgynUGjshtOKsP2+QGl/pQzBNe4uchNWU/SiryT6JvwSzy2Gm3Sm1qdbKEcimiIsTr2rnVgpPwURNE2gGt+tA5RqkGWIK/JtAK1Wk5254AknCp4EAddK1VnyNWLaljMTNFrcrmh0zHZ14gpcq5BOx7UtcGaPqcaGEDVr9q7syO97XcI/9DRVyxFzp3r9JaAov6QUkio17/ehqpR3stj8dEkG9ye1BdtEtLxwcycZbbWtW0uL2uSyYN15JamLUk+ySKSCaNiQvLtTVZMOUNx8phZZV40NqfgLKsvg7O2p9o6etdVfkbtSOGehAmSzji19TXNwKrZJHnxnWNlRt9a7vPkHS81hmflDJiAv5Ke1NrDAdKwU/EGR5LMCp9DrStGgMdkrQj6mHNeOMIx5DrfevNvgm5Kt33RUjxzr/icpJ2pFk6eVKH+vl+SHOjzUIZ9bDeqcb0fCL1SnlE/uTSR+AtIvrTuqT/RJtD8jcHOzkcK1t9b60vbGjRNXojYMpcDmAb156pHgHX+nCJJWQS+akKaponHACz624BkxIpfwsfpvWrV18jb6dfJNL8UQbk+PY02vtIRb2BRw4o0J43+lb9rsyV62uRyOVU8Rxt3p9amLOKyw8bI5AE60u9SZMuadP1xypDo54D0T6QgIJeRPEWBrXSPIGVIHSxQzjiEJYdaxWdfkpt+2QmLIhcAAgfSn9q2FtqUOb/LHoPIaEVi4ZXWnBMq8WIKWI601vgt9anIyJ8hTYk8DtessqsqbrVF8ckWgYXI61Nar+CfbVjSI2bTT6UtSiBJu37IMyf2TdE5X0uapzr28s9DP03Z8k8mUsqi417CmVpDPU0ySSqhStIzbcQNzTHBJvpXNfssRlhUOrEjrekNO3B5Gt7XGDKhdWsL6bUP1tDMcHDF2LkKbIOgo/B1mk0h0OJISRbTvS7aoZXZI7JEkakMdRWVs34Bu7WUIifMRPFGu3a9PWc+R2fquOQ/30BAc2PrWfUWXyhKCiLIQ9iD2pdqMmv5BkkiYkC9+orVVkts22SZMdybdBpTqWPTxygnCOjBi1hR+R7uvJZDF7u2/elWtBJ9qkJsaQEAkm/UViuguyBN4n8jvsK3ygXN7wvB1pwZPIWFYq8B3rFuDzxgtdPxO9crcDFw5ZHPEqkk6Cn1ZJdu1iM5CwvexZab1lDKZOZHfth0DL40HSGMdIUsYAs0dy2tqHwxdXPJNkYIdALbUyugdrwiL/rOLeG/YU37BVvY+AmhZGDMCDWTIHfs+AMpzKmlww2NbVQFrmkpZNj5EqyWJ02Na0iRQnJq4sxic8vxO9qVesot9dcljSw6bgHe9KVWM3lBrjwTDxYg+lC7tCq3aUs9NhIJLFtLbmurpwK22drkWRCYmuo5A9adW0itWMjiRx5DX0oXaAHpChCJI2STrxvXdiG9uSyNeMN4W5HrQzL5PQwo7LkS2fLE13F/pR/WmWrFJcFMXy6GwYhfrSrYjc/WbZNlfKqJLqLjuKOmXAWvqww4cuDJhKtYEd661HVmVpFYOk8UtG//AMVi88j3Wa8oZj5csejeXrQXzTDVVEFYvOpudT0qe76lXq0UkGbiEJa5FZ6+kuT19eKwjNSGVW8TtVrckysqlMc0iEc7WrHVQTz2tIciiQXU6/zW04EbW+Acd3V+JH3o7qSSr5L+SEajWp0oDvNnAltH3sDRrwc+A/b1Fv5NcmSexqNWEgi4AoXYjtqVrDjlPNem9qS7OeA6XtbwSSRtESY9B0pytPkZWsJtiPdYaNsaZ1FKh5pIyujWrkmMumqno3UN43f/AErLIj0s/BRzifZfIbGlNMjtNnBxcoxMAb2rXnKLscfCKP2TKpsNtqX0g9L61SocEsi6MNO9daqZD2ljxKxuDse9KdQLQgHSG9za4ok2T3s14OhkJ0sR2oYYhJu0sVOE/tH1plJHdG2Syqu6nXYU1MZeQQHOnG3rReB1YqjzEJe/81nkxyz0YRtSt71zkbioPOBawXjWoO6/JxElQ3/tFc2mFWyRVBkBVKmk3pLKaVirHCaGUABrN60HVom1lI6eCbnfauUsn5YuRrEX1FFVBKkCWaPtp2vRqQXVu0Ec7A7AEinVLKYwhJSVjckBbUcoJuqEzYYY8ho3cUSuT30lgRqwsG3HWibEO454wyAEXIoJF2fbgmsUfUadKMKvkugd76G47Uq6PQzhDzIy6sDx60ESHH4OLkxRvsxQ9LVzo2iPdtF8EsLAFfGp71aPOtZ/JYMeGeM6i5FI+x1YzJt8mfk/DqyePTrVNPZGW1ipnp8c8bnXT1pz2TI/+iWPQIj6g370LbZzu2yqQCWMcN+opdeHyXUzhSyWTFZlIt9RTlcrq1BnhHx5blfHrTplC625KP3uGnE8T3oPrkHWgwZCuNDQ9ICyxhH/0WRCQ2PKw9a/TrBVsqqSsRhksdaXMEul+xOkksMg4kgDe1G0mgK1jyXLle4l21uKS6QI058CPeaNvG/HsaPrIjpCDadGX/2oOrEaJvgKMxyfkguNia5yhlH0UyUSfGCRLrZdKWt4Yf29mZE0WTjSEHUXqurVkFSqbFPmScuJFEqIffFScbJLQsCLEVnQm0pKaRlpnTw5Y4sQCaZ9aBzwVLKTei+UyLA8efWkPFF6xVmWwfNFCGeNlP0pN/XngrWMLhm/BPDnY1welta8m9Hlcdx0MnMwMqGXlEx497V6OW1bLkgs6zLJociWKb/I9yD2o71Vlwjydb9r8Lg3ceYSjQEN/utpUGlOpXSEMeDNJsCrr260C0zX6NtaifIp45UHIqUPptTFZW4mSd27coFsiyXZeQ613188C7VlcC0WOW6oWBP9tG26+QVFFDBOE9m5JyHS+9LfsL4ZDr7E+CQwCPTiAewp1HIONXB4lVFpABRuX4H2bfCDgCO4HPio2FLvbr8civs6OPkuWT2WuNR6VO6u/kxJ2csLIdJ1UgWYUWdOhfTDw2QyQTIxYOO9V1un8FeVVa0JEshMoJGj05cHqVoq1kXHksh4TA6UVqTyiHW0ePJoxnHnx+Ud7rUr7VtyKzTspZKZeDAgkW3vTusor9fFtywmkjm05b0tJo9fr0Uiv0k5WV9eopv2cEeu8eTkimJhyNwdLVyc+Dxd9He0hxGEtbYHvWOTs05g7+q5Y+0d+td9i+SxWVVDFGGaNyZjsa3umuDztd5f8lkHyAjcAAkGk3w7eQscXa3I+bLhlNmW5pdc3VHs5er/AEY2ckfuke3bsRVuNm6lmlIfkVGI+JDjUbXpjn4IdtW+EU4747gKG4kdBS7poRn2bFzT+3Ibk6nS9FWsoesW7DTkLJGTY36Gl9YZd0/kWJFKea6d6OOeCSz44EpNJFKPaPJSaN1TXJN1Scs2IJ3dLs2vao70SMq1d8IVkElzZeXrW08HoLJVJJI5m3NrdBT6tAWdUMiZ0S5NiOhrLJMSrdwTKspANr9q5Vgx16wA2KhuCwudlFErgO/wLOLII28QR2ou6k2t1BMkcsZIUW6WpjaYdIS5G85QwWTQUML4A0amEKknWNxcmw7VvWSK9G2dkyI2FwLjuK1Vgrrj1UsCXEjlW6GzdK5XaAvef8GVPDJFLZzodiKcnJJ/tfgfA0jqQp1G2lZZHr0ilefJfFH7sOv5L3pTcMl02lFWO/AdRbpS7KRWc2OzzsWva1ZWo/TNV5Z5T7qBSRfc1z4ZBdy4JWaSOXxaw60yE0Y6pPk9/wAmrMSDfahXkThT7NCMySY7nVjGdwKdCZ9HjkqIP3EYH29GPQ6muiDLV7cBLje9rIAtqBsrros1KHH4YlRwkJ9KxbQRae32ZOvx88U/HcHpTHomjqbLtBYMScH8aT3RRbVNnY1kBKMOJrLNeTc4bg9HKyyWJINT7f0oR7PrZ9VLL3DSRC12O9R0/m0D7NNSZs0bR+RSxr06NM8u9p8BRRe6p5LYd66zhg/YqKEcOOYm8HJ9KNWkktdt8izLxa5Ug96KBVaNsemTKTYDT6Ut1RT1VfI9Y2bfQetDMEumiPEMi3FjXeTzL27chLmBbApr1rHnIH1uz8lWLOJAQp//AImlaVgprFVBYEVltwBpDcfIHbs/JFk43L+wC1UUv+xqXRSTfrImoI9QRTO7ZJrs2caJSfG9vTQV3YmdhLhon5ctOgo1yHnWXJQjpNbblQNNHp5qORsa8TYjTvQPky2ksHRWI1160QjwUI5P91KaEXsMkQtHcC/e1DVwzq1lSQ3eN+RBA/in8Myq5HpkwMLE3NA6NDerFu687KbDe9EkDakPk8cgxkE+QPQCu6SLdZYxsqFh5J4nuKBZv8j/AKn8AKuOz+B36A0TbGVlOD0yoDca2rqtjOrtYmJlD3Fwp/im8QOVUmPjIv5WJ9KW0G7cwj0oXmLJ00rqvgTom7HI5o2UxyNxI2Fa6vygYb4QwNGwsD96GGE5jknkLI19CKYuQ8s/k4TG6g21rkmmHtaEdMPJe47V3bkm7cCHiYGwvamKwtvknKsH1Ym1FJJa0uEESUflbQ13kbHILsp6aelakNpnAyEgKTfj6GhsPybsUxyq6gHUmlOsDNLdahyQnjrY+lYrHk7aSAjSBSANK2ELzSY/HyJlNl6d6C9EW0qkoKjmMQA+h70n6l8CNap+CLImKtcm4706lBKxhkc8xYXVtu1PrSCquCSlj8ebkq62egvUfX+oKfeYOfcYEdKX1/AxqbNJE2RwcErrTKcGOnVE0iJJHZjYimpwzqqSdAVUgNoKJj8/DP/SekUTL1vX6a20S6auB6Dg9jqKF8mUfMjP10bVdzQ92hbu2yXjNFJYGw+lMlNAWheRwUyL5E3NBMCbWEPE6tuABRdhV7qqLMKNH0VuTDtU97skWjvaCtUkDWIIPrQyoPUxSmCfKx5GBNtR6Uyl0ihVRlzxvsR5DaqUxejJ1Tk3FlIv1WjkDNpOSTP+PZW5Jfku162t5Fa37WDxc3IijsRqBW2qmep6mKuh/wC/PLGNbUCopLtM6Uoa/wAF8hNEQrvyQ7ipfaxVl+zz89U3CN6WeN0uJCb/ANtQUo0/An2VC8Gc/AOWMYOu7GnpN/J4EO1oTKsb5Ca4CgAdqXf16/Jdnml5L/8AslAHOMhvQ1K/Wb8MHWjtwmUR5+JOvAni3Y0m3r3o5+BqxaUCJsJWbxam13jyhWl+vBHMpgHO1yNDY01W78Hn6WdvAj/spiOIUhe5pi9Wq5YyvrVqpfkYjJJbYN1NZaUA38HJMWIsSzcidtaz7n4SMvq1wiGSUQyEKAw6U6mbfLF0xcyylJRLELaN6VvSGeljnNeT0mRNjeb3KVqor8Isrn9j/nwci+TgmBHAg9662Dr8no4et0R5nxnXihs41rUrJi9lZLkTKsUy2c2fvTKyvBEk3yQpLl4TEKboTTnWt0WetimjsmbFMbEeXrtS1Vo9vP1uiPLLEjA8rD0olVwS+1o2y4ZWIGDG9z1pTzseL7Dve8I682NMeF+PY7msVbV5AeTq+pLHwSbizFhfSm2bgVa7q4NSOeNRYAVJajYqztZip5IpQQurUVKNeQ8/WbZmzHJEoHT0qusQeznjWrQ1ElYgm+9JtB6dLJDSnIEEcW6cq6vB5/ubTIuTFiY+V+R6rTFdkH2NC0xPbYsBtsa16SF61nax7IDOv4+QG5rKOD1LVSQCRze35nT0rW1Jz0SpwCYZV0DEqelH2QmkErpKp8SbjpTE0R6NWcDvjsjJLlT3670vWigb6/Wsm2Gci5WxNQwkUXsmxU8fJCVNnFMo+RV1KJUQmwfTsac3+DaWVVCONAitqdOhrlZkmujdoQxlQi4I0rEwrOEeAkEZ42Nc4kLNLrLAHS9gw61omzlnJhGx1Fz0NbWQrJySSRO4IsCKYmkdlVeWTPAVTx0+lMVhm2n88j8UyBTzPjQWggWk+D00Ecg1AN+tZ26gaX+us/JbiYmD7d9A6jp3qa2t2yavsaXGssHDxXXvW1n5KsqPrLFRIxFuJGu9G2VYQkFkYsbC1yTvWUu0M9jRsznhMUgYsQvanq0ktbRyNZoup/IUPIi/a9uCNWaPI/xk8O1qbHB6Pq5KjUljQiWOx1vrSk4ZfpbiES/rhJdQFHU03tKEX16s0saKAgqLMx1uanu2I+21nB4e8kluO3bau4aOUTB2SR+QYABhXJI36+1jv7jMPNQGHeh+uCumU+CefJT3LEXbpxrn4PV9b1uZ+DzKVs4XXoetLz8clm1uzheCyHLkCWKXIHSp/rXaTtUusHX/AMqarY/zT68M83RpVFIWibUcl6g063KIaf1Y67I2qC3oKxT8hWQr2yTqBbsd6OQatIJYmB8Rb0ArJAvpyGeSXJBH11rPJFreeEdZ0dBYf/NclB3SFAhowdba3o5MbjwFxZWDrp3NZIN7wX480pFidL6Gp71QdISLvcRls6i/cVP1afAGjb8EsvsXa99drU2vYm6OSCY8b2OnrVFUbTKWSyXdf8YudqcuPJ6Nc1WvIKSTwMCw0rWkwLNN8FsOdjyrZxZu9Itm14OrRpB+4uy623rIJ9f2MjMci2Pi3cUDlE9WOjaWNTxcn6igsk/KH0UoXI0UptLe/cUdU6+A3Xp4Ffqwhro1/Si7v5MV7TLOvEqm5GhrlZsTro2+DqOpbiB4+lY0HnSHyA8ChipuwO1ErFkwIaLgwJ8bUatJibkYHT+08mNC0V0q/kU6ZBcApf70VWoA2tWvBTFjkMCQAdqC1yf7u1uBkmMWsdrfYUFbh2uJlw0LBmtfvR10C7w5Qp4eGxvRq0hKbOAHPMba11SvVqlTqi2l71p51rSPiSQ6qbWoLNCO6bgJopiNTWKyAdqkTwy82BpqsidRLAeJrC4saJMqXgXJEQLde9EmUfAMMFjq1/Q1trBLXqoRbGqiwJ/ikWZBtq7OEHOBuO296yp1qkxWYAFTTVAedUlIaSlXBYb70LrKNmbcDxPGW7UHVgWq2zsgSVSLVylFGeZn5GM3Hw0p9bDreIJ4vcjk8ibUb5OpbngqWde2vc0t1HqsIN5Ymj0biRvQpNMzo2iSSaIDU6nrTUmNWbVZBjdSNL2PWtaFNwj/01PO8b2N1N6/UkpJb0hSWw5XJCN2pToDEhpkSK4LCy1jqgISGSzhluBc9aBUEaZyIOYBuCPSj+s5ZcSEZ1kF7W0oXWCTYHGZopVkW4BOtqCJRLh5k3YckFgQeQPcVNbM9WleZKeBcEi1u1KmB9YM3Lw7ttb1NVU14J9bdWZ8kHAWW/IdhT62kTROxBmvJ1JHpTqJFd8kkFhY8OQh8AG71mlmj0/St1qBL8bLGxEbE+lEtE1yI9r2U3DGYOJKJbSkgemlBfRRwefX20nFTejlSOMIhue9R2q2+TvYvayUgNGZdb3be5rpVSWVRHlkMFg+3cV3Xt4CzTfJSWhlUFfsb0ENFdasH3F6DyB3reodk0hq5kmtzZT/ADQPJCK5p2kgy3yF8omvr1NPzrX5OvjVLkT+w8i/5HAPpR9EvCJrJPwhWPnokvFvLWwNDfNsjdWmXSZCNoSAAKXXOB6y68iMhQdEI23ptP2N+vmWKikyYksx07ijdaspxqmoQ8xzy6e5yB1saXKR7tVTNRAlMdkbyUgde1Mdkya28FhWDiTERzFJTfyT/wBaOWSSzOGB0B7U6tUGspYPJ5Dbe+woXwj08c0mckwjJ+XiR2oaXKd91VCWx1i0Y3qhWk8bbV2PJCSwIN06CudhNLQzhWUSEx+Nq3iOTbNVbb8heTFS2/Wls8rS/a0lcUqI45k8dt6B1b8DqS7cDHngSS63APXpQqra5PUxwfaWT5mQ6NyBBBGlq3NKIPTr6ybkVj58ysOSXXvR2yTA0hcJmgkkOT1IYdDSmnU8rS02glyJWhJUEi3am1r2Bvk2ex8hZRq55djWXpBTjXpXwacEcbxkHTvfWprtpg/bIuTGUAgEmircy9nEHUjYL5rpXOy+BavPCM/LBjYMoNu9UZ8i70glM7FiU0Pc0zqNrkqrk08HMlkjAkI061Lrmk+BucNcFD8Sbgg0uozTgRI6qux0plVLEuj6yKvzAIN1pngTVJOThhe/iNK7sjrXUjYQ2qbGht+TO3EHGJB84r+tcv0wKqOZBmWEi4HGtq2NvItYZLnjYqetE7IxWS8gvG6r+IFutdKZFteRCcl1FmBohFOENnCPHf8AHiLkdL0uWJ9i0gYvDgQp1ooZR6Wba5GGRkAu2natiS26nhDYslr3U6dqG1Ds6cnsvJe+ikG1dnRFWmCIpmkeK/ID0605JJiHmmoRlNmSxzAEmw70/ojfpVXJWnyCsLqgDdaW8xqxflsqXOVgNLEbigeZT9XB6YCZeR2rq8E1uWTK0kEgZCbUxpNHV8yyr9yQHkHJvuKV9aGLJNzAQypDqwuD1rHVDs81PAmYSubKSFO96HsevllWilnooTH1PMfehf5GPR24KEkdiATb60vqbaEWRqZEIB670p8MVbRJcnhCY/xJvTU5PM10kJY1ZiJBrXN/gQ7xwgzGq7WNYnIu9meaDntoe9q5WgJ26oARyx21uvpRdkyK2iD4xOL2N/U1ktASzhihsDx1713ZmuzgB3SM+VivpRJNgKrbEvk8XIjQFaJUnyZplD5ZTFNHIgJPFt7Ut1aYyi4GLPbS3IHrQugxVg45TdTY+tapAtViJI1csNyB9r0acFFK9ZJpYJYx/wCvpTK2TN/2JJI5HaytxJ2BpqaQd+tfJ6OORGtMpt3Fc2n4EvZLwVCMFC0Ta9jS5/JM7O3kCPMeKULIbeta801wLVOTSgybvYtyB2qa9OB64Y+WCKXUHie9Lrdo61o5JngjjBIbkw7U1XbFWtayOxzq3jJqBtWOjXgUlzwMAUHxUWrB1FzyMcclFvE96BcFMTAh4xfzHIHrTFb8DE+eAQiRuOK6HrWzKDbbYOTMwbetpVQJ2pNpFw5zKbOt6K2U+AaZ/gpMqyqATYGldYLK5xBK91biDe1Nrybav5OojSHbWss4HZQmeaPuNL6kVqZLtpLF+2oY8bmikldnMs7j80Y3vrWWhkivyytcjj1+9KdJO6tipplc3A17mjrSBlcCdrHQgn1FMRQkA8agA2v9aJM29hbjidt6JAMQk0nuMpHj3reqAzok2x6t4kX/AJoWjruRuhUC9jQmvwgOYXQrcHS9bAKR5jGdgARXKRlaMJJXB6fasaLM6pAyOtjyufpWpGWq/gkdhy0JI9RTUZWkBNxZfFdawqpSfItY/cJABv61zcD6tLydOBIVvyAPQVyuibf2VHB5MfIS4tetdkyBaKx//9TTzcL3oiLWddq/SM9IZFo/5IIMaVN19Kc7pk9d0VjHLaXpbvBl9Ug2xJAtzoKFaIxaKJFvijhp5A0Sua78GbNeC5sbUbco8/ZuB+NmWsLeJ70H1mYY8mhFkuV8V06GhdEexnmkuWUwZcqHc3pV80xiqnwMkzzKLOmo60FcOvgmtgmyX3ZJJLIuvSndUlydXNK3IvJwZplIePXvaipql8j7Xr8EEGPk4kwuOS36U61lZHU2VS9pbTEFNDbepreDy/f1/twxpEbDyFrdqGqaAwp1U/I5ViKjiRYb1jbHWs/nyDyQtZBa3Wuh/Ivq3bk60kg8THyU96JVX5Lq5pfIAPiDYratZTRdayNjuwJRgWHSgt+yW1uzCXUgSi3e1Y+PAdWqrgOTEj4MU3PegWjnkRpo7mXkJGNxrVdGzK0aRi57GKZSl+IqiqkG+P8ASbKYcqFivuubdjWWq/gdy7KEHPkxwtdPND61iq35KHhaz5OQfIf5ByuUO4rbZ8DqZqrNvClgl/AG9Ra1aO+xu3I+SBZfEObigraAG+eRCYTRknl/NG9ZDy0kEwRN4ymx9K3s/KH0b8IUccowMRuBoK3tPksq4UsfZiuu4oFwTb6dpAeMOLMtwetGrQQaXjwTPiWN0Jt2FNWn5OV+tZYTLIqXte+l6FNMlvbtySh3Unx5L3NGlJNlTswJWUpq1u1MR7OeXWklmIqOgXlcHvSNG0V42krb4wlQRqp71NTXkr9j2lWsC1+NsSBcnt0p72PIW7tYgnizIJtNgdhT62rZDKUqnLGvI8qXLBW6g0CUDbpPkmZJA11A33FMTQGtlVFuFNk2IvpSda1A9bq5bKZZZlubE37UulUFukz2PkzyABvEdzXXzSAoq0r+ylYPeWysGpbv1EUtL5M7Kxfbba9UZ3kZZtsRDHkByP7D0o7tQVev1qUgWAu1gN6Wdrp8lapG0ZIa+mt6U20xPZ2JfZZHPHVewpvaRHZI6A6n/wAE13ApuWE0qBhca96xIJ1chFuTAcvE1kQNVUnILQhSOb8lPSuVpB005hI4HSJjcXWtabJnLZ53ic6XAbpWQ0I14EMIUI/9dhRKWKrW1nBnZfySLyAJ31H0p9MSlek4li8P5CAjkB5db0Vs2Veri4LF9udR5C56LQcoZe0KECBJC3iDa/Wt4YK/ZomT3VIJ8gKnVYKdY5Jkgm2ZLg9aa7InzsqrzyyX5D45pV8RqNrUeeg20JcmWqywniw1HeqJTDo55LYZbrfiNaU0Fa4YmaMEEaetdEi604BkyytlY3Q+lcqjPo+BL5KD8QT9K6C7PBk65uWr2QMR611kmVZ4Vryy+DOdlAkWxGppLzgY12fA6PIkeSyMR6UDrwE0qPkqj91twARQWhCqNNydSWWJtW0vtW9U0I0csNsxg2imtrnwR705G/siRVbY+lZ0gS6wkGs0TWt96Hq0C01DY0Sqp8ST6UPUmvNmBJNJfTY9K2tUDbNI4hve+laxMwhyonHe42sKW2waN2FSxAE3Fl3o62KH/Il40DaW1o02S3bdv8geCta1x3ovJbnVo80oV7XsK5KUHasMbHJGWF/IUNkxVZdg3YLew0JoUpHOoIe5s3WtgYl1FtFGx0uSKLszz9dG2eMIcFSxFq7tAm1ziY5U3U/zXO8nUuKyYV5eWpNHWwduPB6O1lCmxFcxlX4krCuyaPqOlJ4TGymcDS/3betbCFXskKZN+Gp/80af5ArWFydjyXUcWBHrWOhRlnPI5JgRcyXHaluv6Ka1/CO+6OJs1h3ruoLXWrZQsSsqnkG0pbtAFbTAjJxyykgXtR53C2twITGc9P5pjuhWVk2eeGdCDx0B/pWKyZ6TaSDtfX+a5cCL2lyMh8Tcb+tDbkTbSEVLdtCBY0l8EjskLlx+BuCtaryS63bcInkUnrTqsKlYFhFOhNFJRQB14n0ok5HnFDE+lc2C7JHSAPWuFvnlnJICy33+lcrDE5RDLjuGudKcrAdlIpW3F9fWiOqpCXKtZW3HWs6DOg0PzNjoOlZEA2hDo41A1INA2bnZsPiFOgvQyVKWzoRWOo36V0g2tzCFy44BuCdOlErm15sIMZ70Uljt1qUYwgIJIPLuaC8nmX3s5NCOCB0sd/SprXaZBpu3wjjYqjQHaiWjGYz8n//V+kZioOtwa+/iTydOSRtXt09KauCZpVO2t5KSCPShmRLc8lK3KeS8hQPyUV8CnV+Nht0o00a0kiDKxQ6NcjWiVzz9Lz4IGxwgBAJAqqti3H+ayW4zEILXvS7Isz/qEUo0rtYCxHWluEU2daD4IJfctKbBqXfRRwedp7Kq4XllMmOsbhoh9xSa3nyKbdrcjPcldCHUm1Z1SfBZnRRJFk4xaxjUoRrdqfW8eRW1kvJHIj+8vNwSNT9q6ZfB5Nrd9CqDg7cSRWWbRW78wN9vHAJbQbaUKdhlHZKRDvDDL4HkDtTFVtchUytax3IyGYj+0dbVtKQeprkqJBJIwj5X5L3Nc0TaXiozHmwtyfLqBSrVuI9al7MCfIg5EKbHtR0oyu2FnaCcZBZr8iRTegaokwJkVj/81tWBZcwZ2ekQ/wCTW9PpPwJ3q20kZjS4iObm4FOSZRlldclMc2C8fibNQtOSlq/U5zTZCDbtWwL6teQsT5ZseUXNhfahvl2QFMmnJt/9xj8BJGPI1J9D8Ma/Wtbn4KMf5SGcWP50q+LqNx9eXHwC8cs7aKR61qskVN0z5Yf6UqR6va3ahWibA+3v8Ezyzx6qSwPenqqYjSqgWcyZm4k6DoKJZoQ8615Ge4nDexG9DDJbzYTJltCmo5oaJZyBfKak65RfkFXQ0fSB3reuqptjhjrLDqAG6EUPaGVq/ZQgMZJ4XAccl6GivDQVNFVG5BM/tgA6X61BaikXo+/H7Jps3JSawA0O4ptc6tB19WqsDLkmbdQO9bSnUbpRJiBiyNqALb3pjuhX2KqAki43DEelqJMkvZ2YmPIkiayD7midUynPPrXkvGQZFHK1+wpHSArw4g9HKwktpxHetdeCK3+0Hf24la5JA68aF5tlWWTquw6X2ZI+UZv9d6CrafIzo7eTLnlnik/HTqaqqk0PeaqMV3ljN9j2oYhiW1ByORoXtckHcVrXYEb+2qsQTYGh+sltm22cbKhZgdx6Vyoznm0xq+3JsbdTQuUd8h+0oIubg1nY6122ekSHiSL3HWsTZl24k9BCkgK3uTXXvBKtY4J8mD228TqKOlpB6tvkkN30Jsad4PR9TJLlkObgKE9zqTTKXC9nVtcCIMWI3u2tr+lG7Aevo3wjkeSYpOJ8bf3VrrJnXnk1MfLeSMgsCL0i1EmLcJNmh74QC6izdRSOshWTf/k9+2C4Ut4nQV318BrJVcsOZEKFkY3HWhq3PIyHaW/gzM7Fb2zJx5A1RS/MDqU7LgxHyJYmHEWF6pSk22SSLIsxXXz6i9BasDccuz4ETiZ1FgStZV8l7rWlZZ2KMoLlvtW2Bpd28DGkkcFUXWgQ90S8hYyT+6PcGldZJoWtqp8FrkKfAeVKXg5p2csbjmZjctxPY0NkgXpVFqY7PoPy7ml9oItNkNbGYMOXbXtWK/BFrtNkGmMjG1r1juD9sHWw41HkOIGxFYtH8C7bP4B9uNWsh5drVstmKfkJo76E2ArFYVvpHBwBVBtqK6ZJHZsoxpEKEXB9KVdMp9SjYMvEkqRa9HUouuYIJ8chw1iU7CqK24Mr/smL9r0sDrY1vYenJ4sikcwLGugVpZtnVaFWuNr1zTOomiuNYnQkG59aS20w+zaYZhjkW6aOtYrNPky9m0RtK6OQ62tTlWfBDZRyGZUtcafWh6sU6tnllD6De1d1goyzBdGk0tt1ok4C1skcTGKqbNb1rncTW8jFl9oi68h3oXWSlJwE0yS+P4msVWgXTrywHQKCQbEbUScmVTuxbZB05JcHrWqpdXOEFGATdeveusb36rkoGOGiKnfpSu8MmenZQCiTR2DA2HWts0ynGIQUksg1UnWsrVAbKRC5Eqya39KY6JoHLJJlLzsQLeXpSa1Lb0QnnqTsL02CW7gIEdSCP60JLewxXAOl6Fom0sUWVgPE3pUsGssQ4IYjja1NRRWnMExNyRcL0po5LryMRCRY2YULYDuA4KnyFh2rU5FtwEFLRkroKyeQqKRYd1uAaOExsAGSPkA5rYfwJ6t2hEmTEOfJfxplHwUKvVijilm8T9qPud3TYtVlifz2rpTJb6S+C2P2ivKluSnNuOCqJY5IzY/xSrSmOrZqoD4pUo8cn1BrVf4YjTTxwVR4zSg2P2pVrwU5aJAyYTxi5GnetrqmTex7EnIcSNgeR3rLas8r72+EEsUiNZDe1Z2T8hZ+eSlBKRZv60Dj4LqNI//W+pmicjlx09K+8rZHk3aSI5fDy2Ipi5PPvNmCuSNritdAbVhGhBGWjBABB61Na6QyuiVR/wCuAupBFtqS9ZfAi2rfgjkxldiiJ6XNPpaOWzcqQ+TOyPj3SS3KxNV12TRTe/MC44THJZmNqa7SizK0MKTIOPKCmtD07LkX7CbcvwW4+SMhlMniRUtqdfB5ya7cFazxISpkuL0t0b+CqlLN+BolgI3360LrZFGk0rB3JTHaMkm+mlqCjtJLorW8GMyRyEjbpV1JqKwz68vyRMDFIbDrVC5HUq5llsDRSIQ+gpVpXgt9dOzIsjEkR+UTkx76U6uifkuUV5Y6OOZlIHbrQtpCNdk3ycvkKvtuCF7138+RNuqr+wUAiJa4seta+S30s3yxU8sN+fK5PU1tU/Be82uSdHa91bwprRHVJOWMQTBgVNwd70LgRe6nkZkYgmHkbsOlZW8GuxBJ8TG4Nxb1FNWodNiNvg5L2jkJHbai+1FFfZS8oQ+BnQPdRcd6NXTFvWtnJwvLfzjNybE1pl2vhmlhxnh42It1pN2NrrKgrxU8r3sfSl3Nrr1RrxTSBbKSbdKldUIv/b5HHJAsXU3pPT8F1M+OPAjIhklHKMgAa06lo4YjR1qpfwSPCVAZgb9SKcrHmaa9uTxhXhdZLk9DXK36DpPXwJkjYxkGjT5DcdREcbqbAniaNsDvHH5GRzxxniGJO1qF1bKs6OA/3uLa29Kz6xX09rDY85zJ4nQUu+fBd6/rrtyemyZfdVgfreszqogftRdkdOQpN2vrRKhHv+g/fAbRjb1rOoi1OTjssp3AJ61yUHWr1BmUKt21tW1Z15a4Ow5kfGwW9q61GdTNxyKkyQZb8NNtaJV4OrjFpGmWC1zYDsKBJlVq2fCATJZTaP8ADvXWrJTnkqrk9kZicCGNz2rqUB1xduSKP5NkbjxPGnvOSeuEMbJkyNqoFjtQ1qbrmhfuKZLPoaKOBVuHwEuSke4utc6yTWTbGJ8nAklh1FA8m0b9Fk+SlflICQCCTQPFnPByGflIPbtb+lD9Lk63r26ky/JIX5R3B2tTPq/IjD1v67M5PnZB2UV1c0V39eoCZeRb/iA7kUTovyMVKqvkZ/jmhZZAbttQ8p8E9V3lLwY0+HlRMWQ2XpeqFZMswpWlZZDkY+S17jkR1FMTQVupJH8hlYctmU8eoNa1JHvmn4PpMX5P9lF2A7VPbOChUrVJlPuKqgkHfeggRDu5KcfOTiwDXv0tS7Z8jOrhosjf3EIcaGkXUPgqwqlVmXl/HxuCIxqaqpp+SO9m3BDjYoEvAqb7a0274KsdOnDLjgupC8rAjalK6O027WSJnhEb2uSa53lHo+tmSTrko949KOjTQesTycjXKkkHNuNG4gnV6K3BdjpxNiSfU0poXrvLLI5YQbDRu5oHVkW12lLNWJgUDaN9Kmsjz7aTyVIElj2AIpLmrMq5Qh/FrbfSmLlGvjkcnEjyBI70DkGrli5oSCCmg9KKlvyHdwKJJGutERaWOqzAcSvjWNCfA+GKEAkCxPWl2sz0fVmGDL7Xex2vRVkZpMA7jxOneiMpX8iv12J11v1NF3NeiRz9BWsDYkGt+6Ce2/wdGBZG03NZ93JtdZUCxjMvXQUXeSpadahqrLe23pWNyBV+WxM633Gvc0dWR7M9FjowIIBPSsd2Lpo2EuOQL/iBppXO49aQv2da40X+awnspfIsyqrWdS1F1/BTlmzrxs48BZe1cnBW4qpYmWBowG1FGrSTXv25H4vFlIZr370u4313Ix8U2FtR2oVcZpqkjqRFBYqLHrXO0kb07cBe8V0sPrWdZKcsjhy7aHX61nQtpiIeVmfw2pirCAvRdgeEpYHl9RRSoNpHYZ7THXUUCY7TRC3iKdbg0atJFe0ggXIANjWtwS7aKpRxsNTc0qZIrW7D4gxAN9qBsqyZ6UOSbroetdWC6tUuSV0W+p/pTUxF2zie4D4kAeta4FppeQpDxW7msXPgy3K4Bgym48VQlT1NdbMf6+SrWW+TrxljyH8VqcGaWSOR4hdgDp6mutpAquyqE+H7elxbuaxaSbbRsmZRE+liDTE5FOZET8eew+lHUx0hnYJDwZSt9dK6yK8K/wAsdE1z4ix7UNkMTjljgXVhoCfWgfJHpaWXY8zAX4gX7VPeiNT4KjIjxkMvI+tT9WnwS6y1CIWSzaaDtT0+CdRUdGD0YXoWHnyxlrOCf4rPgsT54P/X+ud2EZA2r7hV5PFuv5JZIndCeNxTa2SE1SSIZMa2pB7WFMepFtr+CzEkZYuIeyjoaTes/BtHxyVwftE/4xyB60m3ReQs3WeT00WZyBsQaKlqFedKzJn5n7PIc1II61Xmq/BSsquxE3uSGxuLdTpT+EPu65qWUrgwyw+J/wAg3Jqa+7TPG9n23ZQLSGSM25XK6UdWmpN9SvyyiNXvroK5tHpK6Q0tjgC4pcWYnR2sGuRHoq6A96zo/kasnwmZubK0Tc1N1v0qnOsmWwjkQ+TE9u53pio0bXFuyJA8qOdyjG/pTITPVxzWaK48plU21WluhNt/QLfIskgITT61v1SK+iHMlS5CzgeVmttSnXqBTPveBRiLmxHL6Vzse7klVQIyMRB+fj6Gjzsd7OrShEgSNDYG49KfMnmXs0oZRGSyjidqBky/ryO4TONCQaGUiqapCS88DnkLr1ooTF2hDzKrC6Wa24oYBdW2KkfluNdgKJIOtJZn5OO0t1BselqbW0D60S8mcuP8hjSkrcimSmG9aVNTFzMoAFgCRuKVaiJprbwamNn3IbiVPWpr58Dcc+1i66zacrntUqlcnqatV/lAENCzA34mnLk8re8toWcghbFLr3ouhA6cHmeEqt1Oo6VyTK60aqhE5VUuDb0plfJzo+pJI0pe4N1ApiSDzzqnL/B2Lg4CjWT1rnwFLs4FZEDCW7Cw7itpaUU3aq+A4YQDdCaCzkfneFLLVhjmTW4YdaU26sHvJFPFOgI3AOlPrZMVaIOQyzXIKgjpfetskIUT+x37UJADjiw2oOjF2pZ+ApJ4pLKDcdaFJo9BY9UpIGMMMur2B9af5QpK3bwdORCX/wCS47XrEnAVqNPwMDYwFwSR2oHJTlSzOM7Oh4Eqt6FeSjqkuTvs8rFiL7nvWrgXpqKEAWTXf1ps8Hm20/ooifg9iv8A8UDRPe7dh0367gEeLAbUNZR10/JyPDjlFnktXO7Qhbx8Df8AqMXRuVyval/exGnuXs+Pge2BESCmh2FYtWNezXLGn4sSIQEsbfkaD74Y3/ohEi/ENGdfId70370xOW8uEdnw4hrci3Q11bsq31Y6HH5xEIRfpQWvDJK6dlBO0U8bfhyPemKyZVSEoka0ImhPMcWHSg7Qx3aawjPyMV0YMo061RW8ib2+SLKwMeZWvYue9ErMi00dnCITC+MxKMAAdqbMldruGja+PmbIhsRc1PooY3CyVZG/psoB5WB1rO5i0kojYRxG8ptbak35Z6eFW6+CSSeUm6NpbS1OSQtZJOWSSZMgcHdu9NVUJeUuRn7czuLta3aluqSLcsa9kx6DnqT660lIq10hFAihlhNjZ161stM8293ZMmdJAT1I2p0iqpHY0yJDbiBbvpWNpAX0rXn5KhHBYcl87a9qU2zy99rXZRjSlTwDDielBep1ePJZEkqtctxU9qTZobW6qil40sOVz60pWYq1nZiUsrGxNjRvkKigoLIFu3kB2pcOeDLt28EeRMqPcLZadWjZLfJzIK5Kk2JA9K55gUzbsVwFGPcHSlXTPVxfU5NDEpAJAI1tXUs2ZpLcfgWGjW99DTGmCk2eZmIBvoNq6BNuQBKSw3BreorryjqzMpNwT1rHVMfSgUzqycl6b1lFDgotnwIXIjA1JB9aY6MTZMGWQSCyG5Naqx5JdKfBIJp0lsBoab1TQdKVqN/alXRzYUP1pmuiCXIZm6EVjokZTNSF7IkOmvcVnaCh2hwetNGpAuFreGDZpo8XcxhWHIHvWQpE6QqwHCsKnyH2FDaWO9eQnnjRTxb7GuVGzb0bFDJJsQ1xRdDqZJDLh7cdTQeC/Ov5FSRlG8xtW1c+CqzjhEss5W9jYdqfWon6vk9FIXHINrtXWUHVGGWUi3Im1CkjNYSHwuzKwK7bUNkQOyciZWUMBa1akefrLYUc8Zup0rnRhUoPx5Cjfl49qC1ZH58GihV0ANrVK1DKG4SFS4RtyU6daKuxLfT5F/q8db9d6L7ZJ/skcMJJAAx5fWge0DntB2P4sBrXt6Vj9kGns8nHwnjbWxFctlYVpt2cIFkha3LQjtRJtBUlcnWhiZbE3FcrtFKbIp8SEahr2qiujF2s2Ty46kbgHpTFY2zBihBWx8fWtdijK0VCRAhtfkO9Y3JPa7bGXFtSKBir2K4PcZPGw7Um0fJ1Gmd/zhrsLj+KxuoGl6rwMFmFuNiKWSeQeUsbg8dD1NGkmiqlUihXVt7GltQP/SP/0PrApjtybxO9fcO0+D57bWeEGZ4Igf71Pag+u1v0KVLW/wAGfkzliTGNKozyjyAvXSfJB+xJC3muhO9OulHAveypXg2vj/k4UB5k26aV51/WtbwI9bO1nJrR5mPkR2X8uhqV4Wo+T3fW9VtcmZ8jjzsCQTptpV/r6VPUeVa1Mh4Y3jBcsHB+lW92vHg8P2N3ZT8CIZjG5DMSL6UKp2PPxo72kpadTqoIPWjVD1a5HVyXKXY6Dp1rnRSUYZduSOfIF7oSD2NOrX8jrYx5Dj+SfQP00oXijaY/I2VhNGdPEihShjHRGb+hyJ4yWFUfYbloqqWhkOPNC4SQ8kPU0NrJ+CfT2ZsPbFUHfxoFc5WgCXFi4mxufSiV2ZpdtA4uEznyFrHcb117wO9bZU8eTRjgMWqkkX2qa1pK6aO7k7lRe5qU16E1mVoD9hryZskDKRdR9qqVjxtdJZ3GYxzFd1rLciqc2gs9zkBYWtS4KbcIZLCs0PrQ1tDDzUqTGnhaGbxuL1XW0ofbh8jY0cj/ACbdbULf4MWi+BkuHCQHQkHuaFXfg7TV+RTKLEKQz9q2Tz9G7PkAQiRgWHA7G1F2garqsJFWP8bKzGz3G+tK01UHo+ttWnnyWDGaJxbVra2pPZNDb7O1pF5HvhjcfzR0iBOqUkt5QbMbqe1N4J8qK1oQL++CLi6HatrBVtaq4K4sVXt/tO/WlO8Et/YlwDLgBC3nbsK2ushd254J/wBYk8gNRuaZ2GYv5DeL3EHkL+tCnA2z7MANZfIgsNraVrQ2stHY5dbMSKyyDquqHOsDjxY8+1DWUTb2bJ2EobVeI21G9MUCKJLkROsYF237EVvY9D1sXZyRzvPIAFARfTSur5PVedaKX5J48ORm89V/mnSQW9lJjH+ORdVNq5WEvZtlOLBw/O3HvuaVfkqz144KYbKeMZ5L1JoHyA7R5DN0JJA19a1Et32cITM0kh8UtajrwLvRL5Ejm+9wwOwoxFI8jeLWN1IoQd9eBkUrwuG4+PU0FlJ5l7SzQxciCUsAd96nvVoyn8y2aMGPiMq8ibjrUt9LzwT29i9ixJMZVtf/AM0l1ux1K3algNixSPdDcnWiWrS5Ks/5cEmZhuinmgI7mn5ap+GbveVCJcWXHV1HIr9tKdetoA9WtpQ6ZS3/AAnkTQVceSzSseQYTIr2kWttDXAHdTCByVHOwsoIvrW0fBmtYcGPkewknr1IqusiVnaSbMjj5EgXJFHRso2q5gijzJMSQ2J49qN1TQ71/Xn/AAVR/LZT/wBgYHr2pbzRdn61E4koXJkB81DA9qT1k9JqtKwgZWRFYi63piJvrbIZsi/4HbqaYjfp/JyObryF6xob4RYmQGj10YdqDrDFtSpOxZUiNbU63onVMlskuCuPKVt7gmgdCXXhFAc6MwuOpoIPMvbmTpZCLrqayGK6vyzvNBqAAdqyGa5NDHeR0sPx6Ui6SZ3ZeChLkcS1KY9NVRzkYmAYcl71sdkLSbYDyyKbAeBrVVMpeaqifIRWX133ptWybflQSonO+lmG5pswFguqkbFI0Julzrregsp8lWNXdyx0s5kBLLYnrS6Ugq3qlwj0ZkK3AveicEaaYoyGNzyu19hRRKBVZcImky2BBVSNaYqA2xhSyyGcypdgRSbVhjsarydsQBYkmuGXcVgOOBJL8wL0NrteCD7ZfAjIwypV0OlMppPkx2iGxbqRsdelEmBHZnCwLAMt64LVxwh0MKsdFAoLWgCmkeR367qQVP8AFB3QylpYLiQXB1HaiUDHCFhdba2rZJq/3Y40ci6jUGtTR6VUkjxg5Jd1vfeu7QzHpxwJMca9Wt2o5bOpLGJKwHidB2pd0ehhnPk9J/kFwTyoFwWdZZG+Ozj/ANhVNbQTbaJKAI4MiNrlvEntROyYjPRLkeCwItQknsacj8dpgTpp10pd4PPeiUlPsrItyLGk9oJq2lyIaAqbhQNd6arDJHQcr2a1j6UFoDrZFqrxUFSDU7f5D004KkZ+OouD1pFkpJk1YQ6uNrEU2sBqqQpZihsTr2onSRbUjf2b6G9xQ/WULPqgipccgx+lYnAttAtDJbeiV0Mq1AtuaNqLijUMoSFMQwIB3o0B1JZ42tflr6Cm1ZrQiKduPG9iO9G6h0pFf2De7G29ayfRxwM81XyANBwyaznhDoMgCxAtagtQZRQh5nZyAu9JdUvJLvCfI6B3EvF0Jv1tS7JRwwMkneBs0TsCCDbpXVskelCXAhUIcA39aa7cA94g/9Hdy5QrbkjvX6HnU8u2MckyyPbiCSKY0g+qrXkFZJo28tVNY0mQNp24I/kMmO3ix+nrWOjIPco5HYeUhi4sxv0vR/XB6PoYPqX4uU8cmjX7ClaZpo9niiPosXOhmh4yWV9r14+vr2raV4JNbO9YRl/KwKoJU3B2q3CzaPK3yaUGM6xkXLWIq+kjPXzcHOXiba360cHo1rwegikcFResu0izB1rWAMjCcrfqD96KmiMvooJjC0YJvxWmdpM7cFOLMtrFrjtS71MzYEsjRt4KeJ61tVIOlI8i2nmJBGoG9F1RN0UyPSVrXYb9DQOoyzUD45I2BHEA9aBpoTDfEnIplWQjiReudeA8aOWWxSNxNhvSL1PRzqoCyHPDzFxQ5r8G7qVwY+XNxc8T41bSvBBfGHLI/cZtSSD3FNiBdUqKfkvhyLRAX5HvSXXkylHcYua4IG2mwoHRHr4+ukJyJpGN7DTod6ZSqRN7FU7CIMuzcWGh3o7UJ46o0sd4ShB1qayckydrcAPjxyyeNkPetV2kLtfrb8iZMWRDcOLDW9GrpnJy/A7GzjyCG1+pob5cHo5ZxDZoiUEgnUdxUzrwOibwhOSxa9tiKLPga8uYMSZsmGQ6llP9KtrDQxZKig8cpmFix41qoS7VT4Fx/JHHlsWNt615ShNcG7F6/LwTwlSSHFTvJ1Zfn6rgjedySYyb9qckOriqrkR+7GmskhVhuOlH1OWVmuENT5LAbTRm73oHRhfTfwMDCU3jPADtrWJR5F62VfPI9Y5EIYefrtWSmeda/wBloBkzJmHAgfU1yolyW09aq8nI4Y3Y8zf6UuzZ6lb/AF1KP1cWGPkVBXuTXJtuDyfY9m9k2dEELKSlih6Ci7P5IaWa8gfr8RZEv9a7v+SjNOzhsnkhnFy/49AoreyZ6efWq4FmCQHkoNvXQUaaJ9tUi3EiSQBWA5jtS7uCL7/gfJiruALnoaBXEaaNiTiyhSeOnoKPugcmmRTu0Y8kJFNSkVsp8Ae+sh009K3rArpB2HJSPlqQ1BarZJaXJdFnuygBqX9SRVh66SljxmC/FiSewofrL/rHw5Th7xmxHQml2zUcgKvaxSc/3oyk2/pSlj1coZpkkuCSNMdpCALEd6c3ZIkrZ0L4RDG/5BRtUt3Zon02ta5U8CyAFbW70pXjyPq+vL8gS/FxzcToTbU1tfZdRq2myZk5nwqp5HUX6Vbn7Uir7tvgizPio2YcDc0/Pb8lWmkNSSn4aexDJyB6kUz70VYbVglj+NMMv+TRd6N6SuBuXsN24LlWEoFRgO9qTzJRpdxyP/Rikj1NzSbaNMpxu+smbkfHrGxst6qpeRd9H5Z6PCjdR4i/0rXaCa3sN8DFxfb6aVnaTXrwdaGLU3sw61yZLa7YDtZN7n0okT6+AsfInce0bj1rLVS5Jkq1XPkf7TWvyIag7Au/AfB0XkxHHuaFtCr6ccFnxswL8Q/IUjVCMbf1yaMySH8FOvWkVsvk9Pqlyyf/ADXta5Hem8DM6puWefHeQedx6VlbpBb7JLg4MFStjf61v3Hn23b4EtGY2PFfuaYnI3Ovyw4Y5GPiLE0N7IuxaR2TnH+a8qysPwDq+3gWJCDp16UcA0okgihdOR39KyYZytxIiYOI7oAaOvnkS6dhCTShrXJP+0bUbqixVVFBX7soXVaV1QjSLcImXLYScTdb9aZ9fApZqpWsvOK172pTrDFWXZHFjL9gBXO0APRVPNFY6HSh7Emt+RiSRBwLi/WsdWHlSzakYSQ48yUPasjjwXpQ1wedSTZTcGtTOvy4M6R8rHlPVD3p6VbI3PKslCZLMPLbrQOkFLqnwhf7HDlxPjRdZBWc8AtkI4ANcqwWUxiBa35HgTWPktUUXJXELC507mlvyKtpCCkAN7WPrW1PPv5AWNSLE0TYu1+qOjHtsNKF3PK125PK7oeFtDWNJk/WXB1cix4tcdK3oVUp1QTOiDkSCKGGxV24GxTwMLbihdLHZ1a5HCSMfgKW6t+Tbp28hxzuDqxt2rHmgklVFBaMi9iTSoZ0NipIUkG1iNaZWzQVKyyaT3UH4/em1hjr8oGKaYA2awNbalRNapyPXMkUeXkKW8kxyzTHmWOVLjftS1V1ZQ6wpJyiBbkW+lNTYnNNk72P43FNQx1jyJkg1D8bkUauKvf8CmR9Sot6VqaI3/TFLI7KVa4tvRwkNrVJHF5DbWtNqKlz3x5VZrBb9KB5diDajtfgtj+UeUhkPj3of+dIvz9etOX5NTFlaa1jc9dal0qqhd1PIUsLq3K5A60NbpiH/VuD/9L6XOxTIngunevvcdI8idKpLkyXRoievpVqckGluzgT7z8wCCQaLqhaoqk+Woa5WwPrQeWeZr/djsEUjoLMS46AU5tI971IVUh37EsLDn4ih6pjNf6fBfi5tyLHkDSL5gpQXO6zoQN9rVOq9WJ0r2ZmHHPMqdqq7cA9lQKOCON1Gnresd2xf2WbSKQ8FzYcSOxpbTLcqWbEZE9rgL160dalTwbcGNn/ACEimwjv60/NI9Bego8mT/2eaGuiWIqjqmZX1aV8scvzmSGUTjSs+pEPtUr8Glj5cDjlY60u1WeZDbgpPKReIU2GxoPA5pUX7BUTRtyXSt4YGcNyw1yWRgXFwd6F0kfnnL4GD5BU/uO+1LecnqZ+u4OyfI3VuTaetDXOGOeEyZ2VnINeJNV0oeb7GLYlctJRYHj6UXWCL6pcCucyHR9PU1vB6eOSqvA4ZiKvIv5UvryWWq+slME0eUoIYchvXNdTybXjk5LC6jkBpes7Hnb6fJTj8ChuxDUFgsW4BfNSDJQvYrWfW2hN87PRQViSHJc8LAHpQQ6ovyy625JsmL9dxIylgOgplbSoKKVte3AqP5gxv4qwTsa62Uovp63Xlla/JGQDoPSk/UN+pVU/Ibok62DXNtq5N1ERLMaWGWKXYFSdr1YmmiG7XY88QbUrqPSumB1FL4FrZXslye1qxvg9LOv58BSJklr8/bFZXwbe1U5GN8FLkRci/InWl/bDCXtVS4RHF8a0UpDRXI7VR2TRA/bbt5HrM0D2HiCdRWRKIPasauK7SsCo5A732qfRQgvVSTllAxkLeaWNL7QilaO1uGEyhG8I7ihpyuWb7Wn7HrDAyWZBc9DQuzTIb6NqPgmbDmjuYSF9KatE/INWlXkbDDlKVLqCp3oL2rHBRjpWVBSuLD1PkelJ7sPXdvheBWTilR5fjvtTKaSTNz4Mt2mjk5QDj61UkmuQa0S5sUx5ilR7t2cdaW8/wKsnfhcIdHMWU3a47UDqNpVVqInhDAgEn0plbQIvwiFsOwJXfsKYrySq/bghlSUScWPEdqYoCaqnA6OGRho9iK52PSxa/Byad4xqTyHUVySZbbOUdgzWcAg+VZapuGK8jv28rcjShVEBv1Q1PkQCeR1oXkeRpRtuCyP5LHdhdh9KU8mjvqaZoRZ4jcBW8e1T3xkHVOYNTG+QjcgNpeotPXa8G5U5BzPYKM3K1tbVuPaYKa4OG4Myfi6/42tVtOPIvZfkCLIZGKk301vW2pKHYZTYizEuS3G96bnY9PPFVRFJzB0AX6U+p11LgrxnZgAL3qe9SvskoGyi35fxW0PP9m8+BcXEt4rRshTh8la4yuCLXb+lJd4Ces8E8vx0puLaelMrsgnqqolfD4EWBvTFpJDrs2LZH5XU2I6VqZP5YQyJNuNmHeu6oc6JgvkSL+UYcetb0X5MvReExC5kscodE4i+y1v1prkXTNLls+jxflZuMZZbqR2qDT11yVuqbTNFJIJDyGjdb6VLatlwZy7QhcsrEFG26EUda/IOlEkRs8oPh2609VXyb62CblksmaVYCUX705Z/gr+mWo8AL8jFG35cfSteTYdcbDZcxZAeL3B70Fc4HaYwvAj3wo0XketN6k16toognUizHiD/AG0u1RDfwg3ihN/KwoVZjlNULkiUKCn9BRK35FWbalhwxs411+tDa0AU0Xk9LiFrGw3+9ctIJtdfkbjYTMDY2I6Uu+yQqnsHJMcwyXbUHcVy07eBbu2+BcyRyGy3A7UdW15GKsOWIaP2WD8OQ2tTVbsVYp2tJxs0xHnxITqK1ZzwU3zjkpg+TjZvGwBHUUm+DEPNp8lUsUORHcML21FJrZ1ZVSpmPiNE5YEuO1VrSUHS3Ip4jy1ouxVmuRJj8xe+nStT4KLWhlMcrp0AHagdUR73NbFEM8YDjWpNJq+CZbOOBv8A1oYnja1B/wBEeRNvYhiHxBEQCoHrR/bJ5/sbs8ygW9KyvJPSrbJ5ELsCOlOrwUUqkyeeGQMLDem1shu1kg0iuNVFzQO5M9O3HwF7DkHiOJru6HKySGxQzAgnUUDvVi1omyj2RoehpNtBe25djrGosW0qW9m/gyl2+BphUryjF6FXacMtyrFZZPNjXXY/en005NblGeceVWtpaqlomDVpHTjygE3uK5XRVRqD1iEO4Nd8jl/SgnJyL2Y+PamJIdFaI6Ea1dJFpeTvPw/Ii29Y0R6Pg54GzIRy63rlPyZnR/JLMsrhrDWnVhD+qSZOQR+Rswo5Bs+BUkEUhUuQb13ZomteIgdDjJH+J0obaM22zS5NDGLRuCuo2sKmvDXIuunMs1FVuHJ9u1Str4PQ9Ws8o//T+wKlWszeJGlfbJyuCbS02MvOiVXuNj1q3K0onvSOTOmhBS/uG++lUK36J7OV4MsycTYkn60yIRJZdUbOCY2jBQ8SO1IvJb6ktch5GN7iE6N6mureC1tQQ8GgkGug6CnTKFpt2gcnyEym4U8aB5JlFcV5F5HyDuNPEiirkkK19dLyLMzy8S9x60XWB2WaUP5BXKTHkuDb1JrHWUWZ5Wsw3+SgyV8W19KndWnB62Hq9F2sD+q25fwPUim1fAjbdN8EeVie2Q6lmQ7kU+lpPP3vBNPiI0RcSH6GjVjztdHZcID4yez+08lwTppWWRHlfr8Gz7kkTeJLClQmMuuz5GjJd9AmtD0geskl5DRGfRhrQ2cFvrVUnJPi5jqia0tar5PV+xeBP6MgB9xTR1shfse0q1hBDChkiICeXrTO7TPI+x2XkxMrHeCfQ8aoVpQ/DGbC5OcpPJ7drUKPWv1p4Q6LAjljA1J73rJhkft+90oUYOFJjy2W5W9DbRM+Xftu1oNT3E/FxpSYYLTtYEJe4UWvRyejklSvImbEiJVit2HWtV2Ivo25H4skUM45Ei/Sgum0bW1raJIulmgZrDyB/pUyTPoKYuqIMrHQnTY0/O46ygSpiisH2pnkVNrPg7HlhWb29BbrQ2rIzPKJkhzMyUNq4UfSn0qibXBL4Fw5gvb3S1621Q6Z9V4NKA40wvysw3pNk0d9jHmHGCaAyEnrQpsj9jWzUeC7FVdQotpYCkaG0vLgiz4MjkWUad6dldGvOtefkystJmXYXHWqKtEfsRElHxWa8bBXXTbSg1pKB9blmqvyX+SyJe/U1M8pR6VcOvLZS+QkkZLeJ9KXWkEulezbJi1kBQsfU0355OypKliWkyrEBzY0aSDdK/g9jvMp8pnb0Ndaq/BnZLwkXpllU1W/rSHnJPdSh0uRHILBiSRtSqVaZZbLrUknwXkjNja21qfXVJkel1EEEfuxSceP1Jp7hoRTlwMaV+R4jTvWJFrol5BaWRo7A2Yb1vVSS3qmiVMqZW3vrsaPohOWKbI86eRpOQtftTKVUFF/XXYHHzJWNnA17V1ql3rZKSiU8x2HU0FSvdqqAx4Qv4m5JorMkpo4gZKWQgkHjWIR7FvwcJjN2A+tbySc8sLlC1ipsRvWchuVyyzFlUkAub0myJXd2saMXNWBRiRSbQ/JR2Sg1XxppIeSm4trevOWiVoZ7CvVUMmWJ45ipb7V6NbJqTzbc38AW87k71z8Fua68lQw/chBDX9KR9kWHfbNSObFYGxF6oreRbtHIzGhj/3WI6Vl7MXXZtjngUgi1ydqCthOt5JGjdHttbYCnJpkbcuB0WRKG1U270FqIYkkyr3GcErSeqQvVoTMshG1qOrRLC8kMsbRPzA5DqKfVyAlLAkCygMo4nrY0S4Ko6qQPbZVuSWB9K6ZEVfbklneWO4Aup7CmJJhWzUcmh8ZOGTiz2YdDSNUL+3iDfwoRIo5gm/WvP1vHgd6+0HchvaPFVrKLtyymuDvabETNkOTxFrVQkkXVpSi5+BZw2chWG+5o/shArRdkRzfDcZDpyFMpvKG39iHAS4QCX2tW/ZyJtu7HDExFkNzW9vyJs58k3KWOWzfe9M4aBhTBak6sovr3pLrAzRh+5a638TQwI04R2FyjWW5rLKfJE2VidLjnprUt0/g8/2dOYRdjSxglkAIOmtS3q/knzmZZWP15dOK8+1Ji1fngrzq2R5WMgfRQpqvPRtD7VcpCDAWPE2NO7wejnFVBHl/GOoJ5XU9KfnumHfSVCM7iI5RewAFu1UeUKrLuW4+TiqSV3tSNKWPRwpez/QuXJN7K2h2oq1HLCBPvEn/AFouo6tI5D4iRSQSGFd4J73mWBJGwA6mjTIt7yijCeQNYniB0pWqRMtEuEaUeQ415WqW2aAheQcqZnXfWtzokJvjPLJEmI/IXB6050MqhgbkbrtQvg6zVRkyKYb63HUUurcibzZEYeRDcX40/qmZnRDVmm270FqozV1SKcd3Ub8vSkWSZPRyNeSUqCwsvYUFaL4N6L4AEpv4mwOmtN6fk9HHJVUsqxzNbwNyN6Tp1+RlrqIZVDM/4yC5qa9F5RPKfCBmEPI3Q3oqdo8mXTQQgjki8fFh0rHo6vkrw/15I3xmUkAa+oqlaplVHCFSRbXQE0dbfsXtf9iHjsT4XFNVv2T+WSSgnTYdtqdUx1SFxqUN1NzRNyZVyFJPKDZtvTasVUHeqQqR42Um2veiSYi1WSSz491AfyHS1H1sT3pbgM5C3GpWs6HPN2tAA+SaOXiGJFa8UwrYTaDc+PzGlQK1heot8o8Hueuq0rB//9T6hfdc8X0HRq+7cLwA7Vr/AJOZGGWhZGa46GtprzKJ9LzVmHlRSwr+N125VfSyYutIrLMjLjeRTwtcbU9Ed6r5G/DZGQh4lLW60OiTQeGlUvJ9HHwePya/pUTlMrq5XBLMsSyaXv8ASm1bgKtG2IlxjJfi9jvbaiV4PRyqp8GLnrmwSAjyHWwqnNpoLXKtrIlHyGQdCbelbZJFvr+pU8YJZzyeQgetLXJfbSma4RXiRQY4uH5kbi2la0edb2b6cfBcmQ8niBvsDtQdQLpUXJQivfi4B9KyTxfZ27WhC2+PimR1XxfoL1v2NC87RVpnzfyGFPiyciTvpaqK2TE0XZ8IKP5ae3Fr6bGi6I9SvrplKfL3F+XkKF0QVfW7PwUxfNxK1ybN33pVs5PQp6zRp4/zUw4sNUNTvBMHWlao1o8uHJUg2BpDzdDzLVm0GVle5FK1nunb0qmrTRVj66TlokkKFuXtc77lqYilV5mTi4wlF1AU9gKLtBFv7CSk87jDKF/xNBb+vB8/7V7aNQPhy4Zn5R6ClrNryT4YvvydQu0liOQNMcIsUVZYsTcfEWIpTsM7T5ETSW8W39KNIKuLs4IJWR5gTfQ074PUwx62TLYpkGin+amdT1HLlsuiXGmSz/l3pTmvgj22s+ENHxeHIbE8jQ22skDTeycEUuAsLEBfGnV07D1d1UsVlYGPLDysAR1NHS7TgRtq+sk8ODjOllQFx1FMtdoipvZqWw/0JksRFxHfpWfYn8jLbpLyUoECf5Cbr2oH+iVXd/A2DMCyiwv9aG+coorTq+TScRzoPLfpUlZqw9H8mTnY0SEhkv61Znds83bta0IyzFEJNTYCqJ4LfXq6F0UsQsAb/U0p1Y7W1n5LYRCyne5G96TaUBm3bgBCVutiwO1a+eRnhQGrkEgqOwFc0TWYMrAbLXVNrk24JJZZG0ZuK32FMSPQplWiHJKijxN2FD1F7Wd2EubkC5N1HrXPNEf1oW8qyuGay260SrCBdVm5XkoSO6jjxZTS2xfeXyJcKj66GjXIMN2IMlHDkj8adVluWKpySyRgjlxv6UaYM93IgRsrhgCAOlE3JVRqpWrqyAH+tLgyzdhJl9qQW29KOJFusFBmDoeeo6UHUmup8EvvnZRoN7UcG1z61l+Q0MfezHuaxyTXbbg5FkBZLEnSudRaUM18T5BuNhsNanvkjVXhtn1Pw+bHPFwYamvG9zF1coq9e8qCf5bDBk5Bbg9RTPT3msFl8+rkzeJClVG3erpBfK5GRSOE34260u1VI6kKg5uEsemrChU1ZPo5QmJSjk8RY6U2zlEj06yW2j4XJvbtU8uQJbJpVxyQetNq7CrdkeXHx3cEOb9qx3skBps0yj2BG2ikjvSnpJJps2xzLGU0NrdDS03I3Oju4MvKxDJc3CjvVtNILUlRGZLDHADqxPcVQrOwmztfgQMpgeLMwU7XpnQN0VEU36GzqelqTYh2t2cICEx8n4ixvWciKTyi7G+UkgPF28elL0wTR7X/AM/1OzKJc0ZQskh5dAKnpTqz6G+KouRUc+WgI9skg7mqXSr+Tx9WrfJWuXMxBdQtu29IeaXgJUrXlBTTFQrcbg9TWUrIreviPk7GYZrgAX6iutNQK8cE+TjlCHXYUzO88HW/IiSMsQ3CmJwC2pk9+lz1UlfSu+yDnslyF7BjIvrWd5IttnZj4ow5HHQUi148kdteeQXikDWvf1rFZeSVtTLO4nuxyBSCRe5oNGmL+zmDbx5Y3sGSzdxvUd6teGejinPkdJFA5UtcEd6Wr2Q692mmeeFUB0BXvRV0bHUTfIl442Q8dfQ0xWafI9JtGVlfHY8zEkDlV2ezSG5Jq3BlHGbHkKj8dqq79kepn/KGuiOlyALUCcMZZwpOxwAp4207VrtDJNNuBkaOpI4271jaJLaJDjCjR35ajoKX3ckN9G0IUrFMDa460blonU9i0GKTYlb0mGiyqAliZTexYd6KtpCu5ZKGQP5HbpTHJJezr4KUZW/HSkW48kl7fkujxw0fINcEa0h68jMr9iKbBlW5VrrfaqK7IPskiU+8j2tpROLEN2rWHY2SQxU6a9aXpUBuDWSCGWMEsT9Kl+y1X4LMbcScl+GLDlE5+lbX3UuGi37kyWOLJhkIcNe/SnWvWy4I7bJsvUciCwYEdalbj8BvRV5KZcWUoChv9aTXas8hSrci09yM+a69xTLRbwyvP8Ib76to66d6V9ceA9YopGjEikW4tSvvdWQLZ2ZLP8c4uVFU5+0vkcrpckU3x7G+lqqp7CAekshfBkRxYafSqVsmjfsSDbC5DW4rFtAS0lkE2C+oFwtUV1QTuqrklOAOYspv1Nb90kFtneyES4zI/LUi/WnVtJZR/JLmwTr/AJY7W60yjRQ6qOzNH4iZpFAbR70jZI2m08I//9XTT5+O/FhqO9foz9UXr67L4Pn8R1VW67ip7epaZQt+taEMkycOaKwAs3Q1laXTFWxsq8nz+fCquTFYWr0M3PklWLnkxYcmSDLIkNgaa0iZ1Vbwj6bBzFZQNgetS6Zno58IvAiddDqBvSG2hlZYqUcRooNutYnJ6uGcKWQZcLy3sPE9RT6WgoVEnL8mQ2NjoxDqf/yNUdpHJ2ShCpmjTiUUsPSjpyBsnCk7iyISbIdehrbolo4nkuspsT4npQeDzvd3fhFSlmAOlqWefKXI0JGQSg86GX8jsau7M/NxJZgwcr6Xp1LJFvWq4RjTfGurfjYdxtT1Ydncmf451fU2B7CumS6miT4DXHUaW17kVyO39hpGphkmIow22IoLLkipp2Q/HkeOW4BUeppeilDPXr/UsvLl76AhutT1RXq0g0xFKXGp7UTvyefpv/Ipo1jOmjdqJ2k8PfR2cIDMiV4lLrpsDXK0eBe760UCMPBBY+223Su+z8ifV1h8hTCSFwbm47Ua5KLLsymPJZgG5EUDqXevl2ZLkygSX39aOq4PTrhDkWyhiG5C1FI2vk6zwxLyIHrrQpSN1dmuCnFyoJiVV9e1DerRIk0+TQxm8ipOo0FI0XB2VuWyybHjliOpDAbVNnd1sO1vNZJVx43hKHftVDs05IfsbqZo5wSlE01qnyiN/wA+TVhV5hZmJqW9lUn13Uwg/wBKRDqAUO5oftTG56KikYPjlkUmMjkN6H748mrafIaQFOKvp6isd55Q/wC3wJycNmJUksh2tR00NqkmZE/x8SuRZr1XXRsO+jXB79OJit4zba4ru4Gm7Ucj8fGELHiSynYUF7yhmOj5KDKqEEJYjvS+si9E7PydOWGOsa131/sB5x8j09iVGuADSrt1LvUo3JFPixm/b0p2d2O30aUCAUiPggNv7jTYkjStZ8sF3d9bX/0rkoHqiqiZydjv1pqJNWFFkSDRWtasdUbnRRyMdnkN2fWh8FFKKfAqQyi6nyB2NaoHXS8EXOWM6jQ06ExCqkoHRSJICt/LsaFqDqqZRwDi3+TboRXB1f4OSAFbKPud65C7qfJM0Bax5MLUcjKNVQmaJ49btatTFaPsxKvZgQNPrWk/yGZWL6GsgVaq7Do8jIjubaVjSZrSfCNb4r5wpMoYka/ap9sE0NxziySPqZ/loJEsRe3avDxwaZ7+/qvyZGTmxq/ipr086tokt6zTO42bHKvFoyK6+bTkU/5Xksx1fX29B2pd2vki7qXIuUzxtc6jqDRVhkekN8DoMliLe2LHXegvT9jIVa8srjiEn9oBqe14IL7ci5keJgeFx6VtbK3yTX5Zz9qS9hdRWrJDqYqeTsU6XIkNbaj+C/NdE4HyYyyLeM3Wl10a8g2tHkik+N0JdSwPQU+u/wCAM7z4MbOx4kFgnEjrVlLNg7zBKPd0KvamcE6hKWLF1lNgeZ3NclJuNO1i+LHM58hcnvSdLQfXes65rgpGPl49jGFVe9ArVfArXZXcsU2RmpL/AMgK9RTFSrXghvWnbwUxzRSActG62pbq0bZtIq4CWGytqNgaTPWxteayyJZJIJrk2PUVQ6qyJqLtfgrOS0lww8T1FJVIH7qteD0cHNLcm+1da8HnvVJDoMQg2vc+tJvsQ29iXAybHAF5Dp2FLWv4E7bfgBItCFNh2Nan+ROS/JFmu8RDA7aVRSqY2+fEk8WRN7wcEkeld9aZPjmrXLxmTq6vsp7V31ViD2ela+C+P5B9ywYetS29dMX9fexbDnJKtiADUt8HVnoUy4Amhje7LcdwKKt2uGV0XVEfs2fQErVLvKBycWkVl4AcXA3rcdy29oJosQFSjLtVFr8yTvfiBYxpYz4Gwo+6ZG9EvIz22/vNjQ9l8Emmk+D0ckiXAF1NY6piOEjuj/Ws8A1Q2ONxYHUVjsiqlgmVgd/HtWJjG0uSDJiiDEkb06tmQatyIdgtit7UUfkTZfLKsDOmg5C10O16XpirD8KKGXx/IB7gAA71Nb14AeUuCCbL8rhfqafXEneMcsQMrHILNYEGs+uzfBGqWu+CyL5cx2VCONc/UT8nsV9WK8l+N883GzqCO9S6egn4YVcOBj/I+7biAOt6CvqqvkmfrKRUnyMmx0YdaavWQy3ryNxfmJePEkNS9PSr5Kq4VrTk0sXLhlNpBY1BtjavgVS39cFEuHE48GGo6VNX2bV8oT7OzfAlMR4tnJp/3q3wZ67niDkkzICC1jR1zT+C76ZXgib5ApJaQeJ62qpetK4Jb5Q+Dr5kDaLa4oVhZE+mTmDvuowBsD3tWqjRXhlCkhzeCXPfYVVlLA1zdvBiy5nty8jqtW0xkXj6024Ez5zMTxs6HpbWnVyPTr6iklaaQxlSmhpnVHXqmokz4c6XHyv7gL7Ux5poXnl1sf/WYfipZByDAW02r9O+1IxewrWkVJ8bkRsDyt/7VtdExmnsJcluNj5CkAsCO96XayJbeymw5YBY3ALb1isTa2bUGN8ph87SqnltprTq2gg1cf1JTgLMqLfQeprLNMr9bRXZX+zLFIdbDteluqaPZxw5HNn8ogGA/mpen9HsVwigIaSQXS47AUb4AqlMipPjpJpP8gP1o6acC9vYrR8An4lkUhdR601ao8nf258ikgWOTbWmO0kq0cnpeBIJH8UJH7FnI0RswsptaskZkk3yBD+xFLcKXB71toaLcon8D5FLG7pvQVD0sl4FtgxsDqbHpRLQD7IB/QgIAN7rW/YxtNbOCDOxkTRBtTaWkH2JiWKxZ1UFWFm6dK2yO9TN2OyS21c8R2FB5PXpmqrgogyoePiTcd650JdHa7g6flJYzYAgdzXLNMl3xVUGPkQ6sStx3rPrPKePlnXzy2OFuLL0ofqJ9cZqSY/yJjlJFgp0vei+o31fXhtssadJ08WBJ9a5VgqtSAIo8lDoQVrrNHqenWqQM7Se24WxJ0oHaGj1scFZNvwZMkOTzIZyBTq8haXpRQkUw4rPEAXuexrnwyZ7yiaQTQPcX31toKYoZNfg1fj87KYXSxI1ItSdKL5Ap1bNqLKzJYgCtr6XqF51Vim/RVFlM0SWsCO96anWCGzpVgPZnCuAHHWiPG9q82H4c0ocbEXsLVPpB5j0Scs+jgSGRAH37V5t72T4KaaOwD45idmQLbsDR107Lkqwo3Ztk80qutiOJFOrWGelTGFImNpdLMLfWmWSBpDfIqeD3JPM/YUVLwhHs6qtuAFgEZta46C9F3k8+tnZjowsg48ArD1oLNr5PTwr4UkmRitzPID+adTTgpbSfBI0DhvEf1p6shVrclEGLMLsV0PW9T6XTPTw1rWvAySDa+1dWxLtpzIoY8CmzNf0pnZk60sH+tER4HSh7sOlm3LM7LwORurkHtVFNDLW58EqwxjRn8hTGws7N/AQgY7MbetC2WKyqhnsyJrcEeu9dKE207MB4iwNk23ua1MU2kTCFwSUSxo5MrZJOWPSLIYAMpIoW0MraoBx5Ek814rWqyaEa7JMaqxqLWLUICbAljuPFCwPStTGNQvJmPiyKSfbYD6U1WJq2S+RYUB/FdfWuFKb3gXLNkgnx0NEkj0KYVXIoFzKrciNRpWlNYo5Ps8LGyJ4wyA7DWvIvFPJ6mvt0b8lTfEZDrdgVI6mhrvVHme171aqRuN8Q8b6ty9a6/tJo8C/v9rFseMqEkEg0h6SZXVsLJwEnj5Lfl6mhz36uGUX0iskq4vtN5Lt60569vB5993ZwjqvIsmga3pasdVACST5HTDnFc3v2JoacMrpnKkiME5Pimg21qjuh+fVfIcMErSAMlidzegvokvInb2apwmaMEc6KVGgqS96sleqfBSg6Mf5pLf4KsV8Ig+T+NgmUkb9qqw3svJ3sNnzc/xcqkKh616VdkyetlwmRHFzUe4BJB605Wqyv1+trFqzTpYyfe1K6o99tRwVK3OO9yb0qIZzaVRbRA2NiCOtMTPO0vzI5Iza4oXYRfU08RLpoB63qPV8m5aygcj45y3Pje9bTdeBltVRBR/HyEXta3rQ29hHmbe4mwgksN9iKF2ViO15ljE9xlZuNqXwhdISbO8WYAW+5NBa6QrS6HQYLMT19aB+wkM9fRTJPn/HSLCRam09lMP2NP5MiLGyImFtVNW0tVoH1YSll0MMhjsQLHvS7XUlP2p8DP0QdmsfrXfcX536oZHiZCgeQ/mgtrVl2GiYGRNkQtqbDrrQZqtj1nmokGDPkYeOtz1pumKPPpmm+S5HM0floRUjr1Y+zUQvgnKOsm+hqlNNHl6XSseZ0txYiuSZLdN8CJGv+NjTEo8g2pHkW0bm19BW9kKdkBxaNzpeimTF5KYZkcdQe1LtRopzUKR3TS4vSzrORE0PJtRejV4I9rpMmeBUW1HW7ZPVO7gSpQnjy8qdEF1awoPIR74uL2He1a/AdeLE+aJY0umx3F6KiT8i75yuTIbHyWJYXIbpVNXVDfXVKlWPjZAI5rZT60FtF8Ba+3VuEaMEYiJubqel6RZyAtX8FUcsVvFwCvS9KdWFjm7MGSWRzcG/3FFWqRVaiTCiykU6gBhvqKG9GyDazs4RbDndrG9T2wOpnBSc8AflxI6XpP0DVg7DIflJCSOQP3penqV/BXn66Xkpk9yZLhQb9anrFXBaqVgyciPLVuL/AIdNRXp52o1webdVkjMjpKb2C+pp/VNE/X+h8WaENgQL9b0u2MlDo4gpMzSx2JVtN6SqKrOtSqRAcMkm4UqapWgnFpCGwYhyCsL/AFFMWrKa2tZwZs6ZaE+S8b7VRV1ZtlWqET4RyFDAjkLUavAtWUyf/9k=";function E$1(t,e,n){n[0]=t[0]>e[0]?e[0]:t[0],n[1]=t[1]<e[1]?e[1]:t[1],n[2]=t[2]>e[2]?e[2]:t[2],n[3]=t[3]<e[3]?e[3]:t[3],n[4]=t[4]>e[4]?e[4]:t[4],n[5]=t[5]<e[5]?e[5]:t[5]}function Z$3(t,e,n){let i=!1;const r=t[0]>e[0]?e[0]:t[0],s=t[1]<e[1]?e[1]:t[1],a=t[2]>e[2]?e[2]:t[2],o=t[3]<e[3]?e[3]:t[3],c=t[4]>e[4]?e[4]:t[4],l=t[5]<e[5]?e[5]:t[5];return n[0]>r&&(n[0]=r,i=!0),n[1]<s&&(n[1]=s,i=!0),n[2]>a&&(n[2]=a,i=!0),n[3]<o&&(n[3]=o,i=!0),n[4]>c&&(n[4]=c,i=!0),n[5]<l&&(n[5]=l,i=!0),i}function g$o(t,e){return!(e[0]>t[0]||e[1]<t[1]||e[2]>t[2]||e[3]<t[3]||e[4]>t[4]||e[5]<t[5])}function v$f(t,e){let n=!1;return e[0]>t[0]&&(e[0]=t[0],n=!0),e[1]<t[1]&&(e[1]=t[1],n=!0),e[2]>t[2]&&(e[2]=t[2],n=!0),e[3]<t[3]&&(e[3]=t[3],n=!0),e[4]>t[4]&&(e[4]=t[4],n=!0),e[5]<t[5]&&(e[5]=t[5],n=!0),n}function w$a(t,e){t[0]-=e,t[1]+=e,t[2]-=e,t[3]+=e,t[4]-=e,t[5]+=e}function S$4(t){const e=t[1]-t[0],n=t[3]-t[2],i=t[5]-t[4];return 2*(e*n+n*i+i*e)}function _(t,e){const n=t[0]>e[0]?e[0]:t[0],i=t[1]<e[1]?e[1]:t[1],r=t[2]>e[2]?e[2]:t[2],s=t[3]<e[3]?e[3]:t[3],a=t[4]>e[4]?e[4]:t[4],o=i-n,c=s-r,l=(t[5]<e[5]?e[5]:t[5])-a;return 2*(o*c+c*l+l*o)}function H$b(t){const e=t[1]-t[0],n=t[3]-t[2],i=t[5]-t[4];return e>n?e>i?0:2:n>i?1:2}function D$3(t,e){const n=t[0]-e[0],i=e[0]-t[1];let r=n>i?n:i;r<0&&(r=0);const s=t[2]-e[1],a=e[1]-t[3];let o=s>a?s:a;o<0&&(o=0);const c=t[4]-e[2],l=e[2]-t[5];let u=c>l?c:l;return u<0&&(u=0),r*r+o*o+u*u}function Y$1(t,e){let n,i,r,s,a,o;const c=t[0]-e[0],l=e[0]-t[1];c>l?(n=c,i=l):(n=l,i=c),n<0&&(n=0);const u=t[2]-e[1],h=e[1]-t[3];u>h?(r=u,s=h):(r=h,s=u),r<0&&(r=0);const d=t[4]-e[2],p=e[2]-t[5];return d>p?(a=d,o=p):(a=p,o=d),a<0&&(a=0),{min:n*n+r*r+a*a,max:i*i+s*s+o*o}}let G$1=class{constructor(){this.array=[]}clear(){this.array=[]}push(t){const e=this.array,n=t.inheritedCost,i=e.length>6?e.length-6:0;let r;for(r=e.length-1;r>=i&&!(n<=e[r].inheritedCost);r--);r>e.length-7&&e.splice(r+1,0,t)}pop(){return this.array.pop()}};class ${constructor(t=!1){this.root=null,this._sortedList=new G$1,this.count=0,this.highPrecision=t,this._typeArray=t?Float64Array:Float32Array}createFromArray(t,e,n,i=0){const r=e.length,s=this._typeArray;s!==(4===e[0].BYTES_PER_ELEMENT?Float32Array:Float64Array)&&console.warn("Different precision.");const a=new s(6);let o,c;this.root=function r(l,u,h){if(1===u){const r=e[l];i>0&&w$a(r,i);const s={box:r,object:t[l],parent:h};return n&&n(s),s}const d=function(t,n){const r=new s(6),o=t+n;r[0]=1/0,r[1]=-1/0,r[2]=1/0,r[3]=-1/0,r[4]=1/0,r[5]=-1/0,a[0]=1/0,a[1]=-1/0,a[2]=1/0,a[3]=-1/0,a[4]=1/0,a[5]=-1/0;for(let i=t;i<o;i++){const t=e[i],n=t[0],s=t[1],o=t[2],c=t[3],l=t[4],u=t[5];r[0]>n&&(r[0]=n),r[1]<s&&(r[1]=s),r[2]>o&&(r[2]=o),r[3]<c&&(r[3]=c),r[4]>l&&(r[4]=l),r[5]<u&&(r[5]=u);const h=.5*(s+n),d=.5*(c+o),p=.5*(u+l);a[0]>h&&(a[0]=h),a[1]<h&&(a[1]=h),a[2]>d&&(a[2]=d),a[3]<d&&(a[3]=d),a[4]>p&&(a[4]=p),a[5]<p&&(a[5]=p)}return r[0]-=i,r[1]+=i,r[2]-=i,r[3]+=i,r[4]-=i,r[5]+=i,r}(l,u);o=2*H$b(a),c=.5*(a[o]+a[o+1]);let p=function(n,i){let r=n,s=n+i-1;for(;r<=s;){const n=e[r];if(.5*(n[o+1]+n[o])>=c)for(;;){const n=e[s];if(.5*(n[o+1]+n[o])<c){const n=t[r];t[r]=t[s],t[s]=n;const i=e[r];e[r]=e[s],e[s]=i,s--;break}if(s--,s<=r)return r}r++}return r}(l,u);(p===l||p===l+u)&&(p=l+(u>>1));const f={box:d,parent:h};return f.left=r(l,p-l,f),f.right=r(p,u-p+l,f),f}(0,r,null)}insert(t,e,n){n>0&&w$a(e,n);const i=this.createLeafNode(t,e);return null===this.root?this.root=i:this.insertLeaf(i),this.count++,i}insertRange(t,e,n,i){console.warn("Method not optimized yet. It just calls 'insert' N times.");const r=t.length,s=n>0?n:n?null:0;for(let a=0;a<r;a++){const r=this.insert(t[a],e[a],s??n[a]);i&&i(r)}}move(t,e){if(!t.parent||g$o(t.box,t.parent.box))return void(e>0&&w$a(t.box,e));e>0&&w$a(t.box,e);const n=this.delete(t);this.insertLeaf(t,n),this.count++}delete(t){const e=t.parent;if(null===e)return this.root=null,null;const n=e.parent,i=e.left===t?e.right:e.left;return i.parent=n,t.parent=null,null===n?(this.root=i,e):(n.left===e?n.left=i:n.right=i,this.refit(n),this.count--,e)}clear(){this.root=null}insertLeaf(t,e){const n=this.findBestSibling(t.box),i=n.parent;void 0===e?e=this.createInternalNode(i,n,t):(e.parent=i,e.left=n,e.right=t),n.parent=e,t.parent=e,null===i?this.root=e:i.left===n?i.left=e:i.right=e,this.refitAndRotate(t,n)}createLeafNode(t,e){return{box:e,object:t,parent:null}}createInternalNode(t,e,n){return{parent:t,left:e,right:n,box:new this._typeArray(6)}}findBestSibling(t){const e=this.root;let n=e,i=_(t,e.box);const r=S$4(t);if(void 0!==e.object)return e;const s=this._sortedList;s.clear();let a={node:e,inheritedCost:i-S$4(e.box)};do{const{node:e,inheritedCost:o}=a;if(r+o>=i)break;const c=e.left,l=e.right,u=_(t,c.box)+o,h=u-S$4(c.box),d=_(t,l.box)+o,p=d-S$4(l.box);if(u>d?i>d&&(n=l,i=d):i>u&&(n=c,i=u),p>h){if(r+h>=i||(void 0===c.object&&s.push({node:c,inheritedCost:h}),r+p>=i))continue;void 0===l.object&&s.push({node:l,inheritedCost:p})}else{if(r+p>=i||(void 0===l.object&&s.push({node:l,inheritedCost:p}),r+h>=i))continue;void 0===c.object&&s.push({node:c,inheritedCost:h})}}while(a=s.pop());return n}refit(t){for(E$1(t.left.box,t.right.box,t.box);t=t.parent;)if(!Z$3(t.left.box,t.right.box,t.box))return}refitAndRotate(t,e){const n=t.box,i=(t=t.parent).box;for(E$1(n,e.box,i);t=t.parent;){if(!v$f(n,t.box))return;const e=t.left,i=t.right,r=e.box,s=i.box;let a=null,o=null,c=0;if(void 0===i.object){const t=i.left,n=i.right,s=S$4(i.box),l=s-_(r,t.box),u=s-_(r,n.box);l>u?l>0&&(a=e,o=n,c=l):u>0&&(a=e,o=t,c=u)}if(void 0===e.object){const t=e.left,n=e.right,r=S$4(e.box),l=r-_(s,t.box),u=r-_(s,n.box);l>u?l>c&&(a=i,o=n):u>c&&(a=i,o=t)}null!==a&&this.swap(a,o)}}swap(t,e){const n=t.parent,i=e.parent,r=i.box;n.left===t?n.left=e:n.right=e,i.left===e?i.left=t:i.right=t,t.parent=i,e.parent=n,E$1(i.left.box,i.right.box,r)}}const X$2=0,U$1=1;let V$1=class{constructor(t,e){this.coordinateSystem=e,this.array=t?new Float64Array(24):new Float32Array(24)}setFromProjectionMatrix(t){if(this.updatePlane(0,t[3]+t[0],t[7]+t[4],t[11]+t[8],t[15]+t[12]),this.updatePlane(1,t[3]-t[0],t[7]-t[4],t[11]-t[8],t[15]-t[12]),this.updatePlane(2,t[3]-t[1],t[7]-t[5],t[11]-t[9],t[15]-t[13]),this.updatePlane(3,t[3]+t[1],t[7]+t[5],t[11]+t[9],t[15]+t[13]),this.updatePlane(4,t[3]-t[2],t[7]-t[6],t[11]-t[10],t[15]-t[14]),this.coordinateSystem===X$2)this.updatePlane(5,t[3]+t[2],t[7]+t[6],t[11]+t[10],t[15]+t[14]);else{if(this.coordinateSystem!==U$1)throw new Error("Invalid coordinate system: "+this.coordinateSystem);this.updatePlane(5,t[2],t[6],t[10],t[14])}return this}updatePlane(t,e,n,i,r){const s=this.array,a=4*t,o=Math.sqrt(e*e+n*n+i*i);s[a+0]=e/o,s[a+1]=n/o,s[a+2]=i/o,s[a+3]=r/o}intersectsBoxMask(t,e){const n=this.array;let i,r,s,a,o,c;for(let l=0;l<6;l++){if(!(e&32>>l))continue;const u=4*l,h=n[u+0],d=n[u+1],p=n[u+2],f=n[u+3];if(h>0?(i=t[1],a=t[0]):(i=t[0],a=t[1]),d>0?(r=t[3],o=t[2]):(r=t[2],o=t[3]),p>0?(s=t[5],c=t[4]):(s=t[4],c=t[5]),h*i+d*r+p*s<-f)return-1;h*a+d*o+p*c>-f&&(e^=32>>l)}return e}isIntersected(t,e){const n=this.array;for(let i=0;i<6;i++){if(!(e&32>>i))continue;const r=4*i,s=n[r+0],a=n[r+1],o=n[r+2],c=n[r+3];if(s*(s>0?t[1]:t[0])+a*(a>0?t[3]:t[2])+o*(o>0?t[5]:t[4])<-c)return!1}return!0}isIntersectedMargin(t,e,n){if(0===e)return!0;const i=this.array;for(let r=0;r<6;r++){if(!(e&32>>r))continue;const s=4*r,a=i[s+0],o=i[s+1],c=i[s+2],l=i[s+3];if(a*(a>0?t[1]-n:t[0]+n)+o*(o>0?t[3]-n:t[2]+n)+c*(c>0?t[5]-n:t[4]+n)<-l)return!1}return!0}};function q$3(t,e,n,i,r,s){let a=i[0],o=e[0],c=n[0],l=(t[a]-o)*c,u=(t[1^a]-o)*c,h=l>0?l:0,d=u<1/0?u:1/0;return a=i[1],o=e[1],c=n[1],l=(t[a+2]-o)*c,!(l>d||(u=(t[3^a]-o)*c,h>u)||(h=l>h?l:h,d=u<d?u:d,a=i[2],o=e[2],c=n[2],l=(t[a+4]-o)*c,l>d)||(u=(t[5^a]-o)*c,h>u))&&(h=l>h?l:h,d=u<d?u:d,h<=s&&d>=r)}function O$2(t,e){return t[1]>=e[0]&&e[1]>=t[0]&&t[3]>=e[2]&&e[3]>=t[2]&&t[5]>=e[4]&&e[5]>=t[4]}function W$1(t,e,n){return D$3(n,t)<=e*e}let k$9=class{constructor(t,e=X$2){this._sign=new Uint8Array(3),this.builder=t;const n=t.highPrecision;this.frustum=new V$1(n,e),this._dirInv=n?new Float64Array(3):new Float32Array(3)}get root(){return this.builder.root}createFromArray(t,e,n,i){(null==t?void 0:t.length)>0&&this.builder.createFromArray(t,e,n,i)}insert(t,e,n){return this.builder.insert(t,e,n)}insertRange(t,e,n,i){(null==t?void 0:t.length)>0&&this.builder.insertRange(t,e,n,i)}move(t,e){this.builder.move(t,e)}delete(t){return this.builder.delete(t)}clear(){this.builder.clear()}traverse(t){null!==this.root&&function e(n,i){if(void 0!==n.object)return void t(n,i);t(n,i)||(e(n.left,i+1),e(n.right,i+1))}(this.root,0)}intersectsRay(t,e,n,i=0,r=1/0){if(null===this.root)return!1;const s=this._dirInv,a=this._sign;return s[0]=1/t[0],s[1]=1/t[1],s[2]=1/t[2],a[0]=s[0]<0?1:0,a[1]=s[1]<0?1:0,a[2]=s[2]<0?1:0,function t(o){return!!q$3(o.box,e,s,a,i,r)&&(void 0!==o.object?n(o.object):t(o.left)||t(o.right))}(this.root)}intersectsBox(t,e){return null!==this.root&&function n(i){return!!O$2(t,i.box)&&(void 0!==i.object?e(i.object):n(i.left)||n(i.right))}(this.root)}intersectsSphere(t,e,n){return null!==this.root&&function i(r){return!!W$1(t,e,r.box)&&(void 0!==r.object?n(r.object):i(r.left)||i(r.right))}(this.root)}isNodeIntersected(t,e){const n=t.box;let i;for(;i=t.parent;){if(r(i.left===t?i.right:i.left))return!0;t=i}return!1;function r(t){return!!O$2(n,t.box)&&(void 0!==t.object?e(t.object):r(t.left)||r(t.right))}}rayIntersections(t,e,n,i=0,r=1/0){if(null===this.root)return;const s=this._dirInv,a=this._sign;s[0]=1/t[0],s[1]=1/t[1],s[2]=1/t[2],a[0]=s[0]<0?1:0,a[1]=s[1]<0?1:0,a[2]=s[2]<0?1:0,function t(o){if(q$3(o.box,e,s,a,i,r)){if(void 0!==o.object)return void n(o.object);t(o.left),t(o.right)}}(this.root)}frustumCulling(t,e){if(null===this.root)return;const n=this.frustum.setFromProjectionMatrix(t);function i(t){void 0===t.object?(i(t.left),i(t.right)):e(t,n,0)}!function t(r,s){if(void 0!==r.object)return void(n.isIntersected(r.box,s)&&e(r,n,s));if(!((s=n.intersectsBoxMask(r.box,s))<0)){if(0===s)return i(r.left),void i(r.right);t(r.left,s),t(r.right,s)}}(this.root,63)}frustumCullingLOD(t,e,n,i){if(null===this.root)return;const r=this.frustum.setFromProjectionMatrix(t);function s(t,e){null===e&&(e=a(t.box)),void 0===t.object?(s(t.left,e),s(t.right,e)):i(t,e,r,0)}function a(t){const{min:i,max:r}=Y$1(t,e);for(let e=n.length-1;e>0;e--)if(r>=n[e])return i>=n[e]?e:null;return 0}!function t(e,n,o){const c=e.box;if(null===o&&(o=a(c)),void 0!==e.object)return void(r.isIntersected(c,n)&&i(e,o,r,n));if(!((n=r.intersectsBoxMask(c,n))<0)){if(0===n)return s(e.left,o),void s(e.right,o);t(e.left,n,o),t(e.right,n,o)}}(this.root,63,null)}closestPointToPoint(t,e){if(null===this.root)return;let n=1/0;return function i(r){if(void 0!==r.object){if(e){const i=e(r.object)??D$3(r.box,t);i<n&&(n=i)}else n=D$3(r.box,t);return}const s=D$3(r.left.box,t),a=D$3(r.right.box,t);s<a?s<n&&(i(r.left),a<n&&i(r.right)):a<n&&(i(r.right),s<n&&i(r.left))}(this.root),Math.sqrt(n)}};function m$H(t,e){return e[0]=t.x,e[1]=t.y,e[2]=t.z,e}function B$b(t,e){const n=t.min,i=t.max;return e[0]=n.x,e[1]=i.x,e[2]=n.y,e[3]=i.y,e[4]=n.z,e[5]=i.z,e}class Ut{constructor(t,e,n){if(this.isInstanceEntity=!0,this.position=new Vector3,this.scale=new Vector3(1,1,1),this.quaternion=new Quaternion,this.id=e,this.owner=t,n){const t=this.quaternion,e=this.rotation=new Euler;e._onChange(()=>t.setFromEuler(e,!1)),t._onChange(()=>e.setFromQuaternion(t,void 0,!1))}}get visible(){return this.owner.getVisibilityAt(this.id)}set visible(t){this.owner.setVisibilityAt(this.id,t)}get active(){return this.owner.getActiveAt(this.id)}set active(t){this.owner.setActiveAt(this.id,t)}get color(){return this.owner.getColorAt(this.id)}set color(t){this.owner.setColorAt(this.id,t)}get opacity(){return this.owner.getOpacityAt(this.id)}set opacity(t){this.owner.setOpacityAt(this.id,t)}get morph(){return this.owner.getMorphAt(this.id)}set morph(t){this.owner.setMorphAt(this.id,t)}get matrix(){return this.owner.getMatrixAt(this.id)}get matrixWorld(){return this.matrix.premultiply(this.owner.matrixWorld)}setMatrixIdentity(){const t=this.owner,e=t.matricesTexture._data,n=this.id,i=16*n;e[i+0]=1,e[i+1]=0,e[i+2]=0,e[i+3]=0,e[i+4]=0,e[i+5]=1,e[i+6]=0,e[i+7]=0,e[i+8]=0,e[i+9]=0,e[i+10]=1,e[i+11]=0,e[i+12]=0,e[i+13]=0,e[i+14]=0,e[i+15]=1,t.matricesTexture.enqueueUpdate(n)}updateMatrix(){const t=this.owner,e=this.position,n=this.quaternion,i=this.scale,r=t.matricesTexture._data,s=this.id,a=16*s,o=n._x,c=n._y,l=n._z,u=n._w,h=o+o,d=c+c,p=l+l,f=o*h,m=o*d,g=o*p,A=c*d,v=c*p,y=l*p,S=u*h,b=u*d,x=u*p,M=i.x,T=i.y,I=i.z;r[a+0]=(1-(A+y))*M,r[a+1]=(m+x)*M,r[a+2]=(g-b)*M,r[a+3]=0,r[a+4]=(m-x)*T,r[a+5]=(1-(f+y))*T,r[a+6]=(v+S)*T,r[a+7]=0,r[a+8]=(g+b)*I,r[a+9]=(v-S)*I,r[a+10]=(1-(f+A))*I,r[a+11]=0,r[a+12]=e.x,r[a+13]=e.y,r[a+14]=e.z,r[a+15]=1,t.matricesTexture.enqueueUpdate(s),t.bvh&&t.autoUpdateBVH&&t.bvh.move(s)}updateMatrixPosition(){const t=this.owner,e=this.position,n=t.matricesTexture._data,i=this.id,r=16*i;n[r+12]=e.x,n[r+13]=e.y,n[r+14]=e.z,t.matricesTexture.enqueueUpdate(i),t.bvh&&t.autoUpdateBVH&&t.bvh.move(i)}getUniform(t,e){return this.owner.getUniformAt(this.id,t,e)}updateBones(t=!0,e){this.owner.setBonesAt(this.id,t,e)}setUniform(t,e){this.owner.setUniformAt(this.id,t,e)}copyTo(t){t.position.copy(this.position),t.scale.copy(this.scale),t.quaternion.copy(this.quaternion),this.rotation&&t.rotation.copy(this.rotation)}applyMatrix4(t){return this.matrix.premultiply(t).decompose(this.position,this.quaternion,this.scale),this}applyQuaternion(t){return this.quaternion.premultiply(t),this}rotateOnAxis(t,e){return X$1.setFromAxisAngle(t,e),this.quaternion.multiply(X$1),this}rotateOnWorldAxis(t,e){return X$1.setFromAxisAngle(t,e),this.quaternion.premultiply(X$1),this}rotateX(t){return this.rotateOnAxis(gt,t)}rotateY(t){return this.rotateOnAxis(yt,t)}rotateZ(t){return this.rotateOnAxis(bt,t)}translateOnAxis(t,e){return _t.copy(t).applyQuaternion(this.quaternion),this.position.add(_t.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(gt,t)}translateY(t){return this.translateOnAxis(yt,t)}translateZ(t){return this.translateOnAxis(bt,t)}remove(){return this.owner.removeInstances(this.id),this}}const X$1=new Quaternion,_t=new Vector3,gt=new Vector3(1,0,0),yt=new Vector3(0,1,0),bt=new Vector3(0,0,1);class te{constructor(t,e=0,n=!1,i=!0){this.nodesMap=new Map,this.LODsMap=new Map,this._geoBoundingSphere=null,this._sphereTarget=null,this.target=t,this.accurateCulling=i,this._margin=e;const r=t._geometry;if(r.boundingBox||r.computeBoundingBox(),this.geoBoundingBox=r.boundingBox,n){r.boundingSphere||r.computeBoundingSphere();const t=r.boundingSphere.center;0===t.x&&0===t.y&&0===t.z?(this._geoBoundingSphere=r.boundingSphere,this._sphereTarget={centerX:0,centerY:0,centerZ:0,maxScale:0}):(console.warn('"getBoxFromSphere" is ignored because geometry is not centered.'),n=!1)}this.bvh=new k$9(new $,X$2),this._origin=new Float32Array(3),this._dir=new Float32Array(3),this._cameraPos=new Float32Array(3),this._getBoxFromSphere=n}create(){const t=this.target._instancesCount,e=this.target._instancesArrayCount,n=new Array(t),i=new Uint32Array(t);let r=0;this.clear();for(let s=0;s<e;s++)this.target.getActiveAt(s)&&(n[r]=this.getBox(s,new Float32Array(6)),i[r]=s,r++);this.bvh.createFromArray(i,n,t=>{this.nodesMap.set(t.object,t)},this._margin)}insert(t){const e=this.bvh.insert(t,this.getBox(t,new Float32Array(6)),this._margin);this.nodesMap.set(t,e)}insertRange(t){const e=t.length,n=new Array(e);for(let i=0;i<e;i++)n[i]=this.getBox(t[i],new Float32Array(6));this.bvh.insertRange(t,n,this._margin,t=>{this.nodesMap.set(t.object,t)})}move(t){const e=this.nodesMap.get(t);e&&(this.getBox(t,e.box),this.bvh.move(e,this._margin))}delete(t){const e=this.nodesMap.get(t);e&&(this.bvh.delete(e),this.nodesMap.delete(t))}clear(){this.bvh.clear(),this.nodesMap.clear()}frustumCulling(t,e){this._margin>0&&this.accurateCulling?this.bvh.frustumCulling(t.elements,(t,n,i)=>{n.isIntersectedMargin(t.box,i,this._margin)&&e(t)}):this.bvh.frustumCulling(t.elements,e)}frustumCullingLOD(t,e,n,i){this.LODsMap.has(n)||this.LODsMap.set(n,new Float32Array(n.length));const r=this.LODsMap.get(n);for(let a=0;a<n.length;a++)r[a]=n[a].distance;const s=this._cameraPos;s[0]=e.x,s[1]=e.y,s[2]=e.z,this._margin>0&&this.accurateCulling?this.bvh.frustumCullingLOD(t.elements,s,r,(t,e,n,r)=>{n.isIntersectedMargin(t.box,r,this._margin)&&i(t,e)}):this.bvh.frustumCullingLOD(t.elements,s,r,i)}raycast(t,e){const n=t.ray,i=this._origin,r=this._dir;m$H(n.origin,i),m$H(n.direction,r),this.bvh.rayIntersections(r,i,e,t.near,t.far)}intersectBox(t,e){this._boxArray||(this._boxArray=new Float32Array(6));const n=this._boxArray;return B$b(t,n),this.bvh.intersectsBox(n,e)}getBox(t,e){if(this._getBoxFromSphere){const n=this.target.matricesTexture._data,{centerX:i,centerY:r,centerZ:s,maxScale:a}=this.getSphereFromMatrix_centeredGeometry(t,n,this._sphereTarget),o=this._geoBoundingSphere.radius*a;e[0]=i-o,e[1]=i+o,e[2]=r-o,e[3]=r+o,e[4]=s-o,e[5]=s+o}else At.copy(this.geoBoundingBox).applyMatrix4(this.target.getMatrixAt(t)),B$b(At,e);return e}getSphereFromMatrix_centeredGeometry(t,e,n){const i=16*t,r=e[i+0],s=e[i+1],a=e[i+2],o=e[i+4],c=e[i+5],l=e[i+6],u=e[i+8],h=e[i+9],d=e[i+10],p=r*r+s*s+a*a,f=o*o+c*c+l*l,m=u*u+h*h+d*d;return n.maxScale=Math.sqrt(Math.max(p,f,m)),n.centerX=e[i+12],n.centerY=e[i+13],n.centerZ=e[i+14],n}}const At=new Box3;class ee extends GLBufferAttribute{constructor(t,e,n,i,r,s=1){const a=t.createBuffer();super(a,e,n,i,r.length/n),this.isGLInstancedBufferAttribute=!0,this._needsUpdate=!1,this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s,this.array=r,this._cacheArray=r,t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW)}update(t,e){if(!this._needsUpdate||0===e)return;const n=t.getContext();n.bindBuffer(n.ARRAY_BUFFER,this.buffer),this.array===this._cacheArray?n.bufferSubData(n.ARRAY_BUFFER,0,this.array,0,e):(n.bufferData(n.ARRAY_BUFFER,this.array,n.DYNAMIC_DRAW),this._cacheArray=this.array),this._needsUpdate=!1}clone(){return this}}let st=null,J$3=null;const Z$2={};function ne(t){var e;return(null==(e=J$3.get(t))?void 0:e())??st(t)}function ie(t){if(J$3.has(t))return;const e={};J$3.set(t,()=>{if(t.isMeshDistanceMaterial){const n=st(t);e.light=n.light}return e})}function se(t,e,n){const i=e.properties;st=i.get;const r=`${!!t.colorsTexture}_${t._useOpacity}_${!!t.boneTexture}_${!!t.uniformsTexture}`;Z$2[r]??(Z$2[r]=new WeakMap),J$3=Z$2[r],i.get=ne,ie(n)}function re(t){t.properties.get=st}function Lt(t,e){return Math.max(e,Math.ceil(Math.sqrt(t/e))*e)}function oe(t,e,n,i){3===e&&(console.warn('"channels" cannot be 3. Set to 4. More info: https://github.com/mrdoob/three.js/pull/23228'),e=4);const r=Lt(i,n),s=new t(r*r*e),a=t.name.includes("Float"),o=t.name.includes("Uint"),c=a?FloatType:o?UnsignedIntType:IntType;let l;switch(e){case 1:l=a?RedFormat:RedIntegerFormat;break;case 2:l=a?RGFormat:RGIntegerFormat;break;case 4:l=a?RGBAFormat:RGBAIntegerFormat}return{array:s,size:r,type:c,format:l}}class tt extends DataTexture{constructor(t,e,n,i,r,s){3===e&&(e=4);const{array:a,format:o,size:c,type:l}=oe(t,e,n,i);super(a,c,c,o,l),this.partialUpdate=!0,this.maxUpdateCalls=1/0,this._utils=null,this._needsUpdate=!0,this._lastWidth=-1,this._data=a,this._channels=e,this._pixelsPerInstance=n,this._stride=n*e,this._rowToUpdate=new Array(c),this._uniformMap=r,this._fetchUniformsInFragmentShader=s,this.needsUpdate=!0}resize(t){const e=Lt(t,this._pixelsPerInstance);if(e===this.image.width)return;const n=this._data,i=this._channels;this._rowToUpdate.length=e;const r=n.constructor,s=new r(e*e*i),a=Math.min(n.length,s.length);s.set(new r(n.buffer,0,a)),this.dispose(),this.image={data:s,height:e,width:e},this._data=s}enqueueUpdate(t){if(this._needsUpdate=!0,!this.partialUpdate)return;const e=this.image.width/this._pixelsPerInstance,n=Math.floor(t/e);this._rowToUpdate[n]=!0}bindToProgram(t,e,n,i,r){if(!i[r])return;i[r].value=this;const s=this.getSlot(n,r);if(void 0===s)return;const a=t.properties.get(this);t.state.bindTexture(e.TEXTURE_2D,a.__webglTexture,e.TEXTURE0+s)}update(t,e,n){const i=t.properties.get(this),r=i.__version!==this.version;if(!this._needsUpdate&&!r)return;const s=this._lastWidth!==this.image.width;if(!i.__webglTexture||s)t.initTexture(this);else{const r=this.getSlot(e,n)??t.capabilities.maxTextures-1;this.partialUpdate?this.updatePartial(i,t,r):this.updateFull(i,t,r),i.__version=this.version}this._lastWidth=this.image.width,this._needsUpdate=!1}getSlot(t,e){var n;return null==(n=t[e])?void 0:n.cache[0]}updateFull(t,e,n){this.updateRows(t,e,[{row:0,count:this.image.height}],n)}updatePartial(t,e,n){const i=this.getUpdateRowsInfo();0!==i.length&&(i.length>this.maxUpdateCalls?this.updateFull(t,e,n):this.updateRows(t,e,i,n),this._rowToUpdate.fill(!1))}getUpdateRowsInfo(){const t=this._rowToUpdate,e=[];for(let n=0,i=t.length;n<i;n++)if(t[n]){const r=n;for(;n<i&&t[n];n++);e.push({row:r,count:n-r})}return e}updateRows(t,e,n,i){var r;const s=e.getContext();this._utils??(this._utils=new WebGLUtils(s,e.extensions,e.capabilities));const a=this._utils.convert(this.format),o=this._utils.convert(this.type),{data:c,width:l}=this.image,u=this._channels;e.state.activeTexture(s.TEXTURE0+i),e.state.bindTexture(s.TEXTURE_2D,t.__webglTexture,s.TEXTURE0+i);const h=ColorManagement.getPrimaries(ColorManagement.workingColorSpace),d=this.colorSpace===NoColorSpace?null:ColorManagement.getPrimaries(this.colorSpace),p=this.colorSpace===NoColorSpace||h===d?s.NONE:s.BROWSER_DEFAULT_WEBGL;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,this.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,p);for(const{count:f,row:m}of n)s.texSubImage2D(s.TEXTURE_2D,0,0,m,l,f,a,o,c,m*l*u);null==(r=this.onUpdate)||r.call(this,this)}setUniformAt(t,e,n){const{offset:i,size:r}=this._uniformMap.get(e),s=this._stride;1===r?this._data[t*s+i]=n:n.toArray(this._data,t*s+i)}getUniformAt(t,e,n){const{offset:i,size:r}=this._uniformMap.get(e),s=this._stride;return 1===r?this._data[t*s+i]:n.fromArray(this._data,t*s+i)}getUniformsGLSL(t,e,n){return{vertex:this.getUniformsVertexGLSL(t,e,n),fragment:this.getUniformsFragmentGLSL(t,e,n)}}getUniformsVertexGLSL(t,e,n){if(this._fetchUniformsInFragmentShader)return`\n flat varying ${n} ez_v${e}; \n void main() {\n ez_v${e} = ${e};`;const i=this.texelsFetchGLSL(t,e),r=this.getFromTexelsGLSL(),{assignVarying:s,declareVarying:a}=this.getVarying();return`\n uniform highp sampler2D ${t}; \n ${a}\n void main() {\n ${i}\n ${r}\n ${s}`}getUniformsFragmentGLSL(t,e,n){if(!this._fetchUniformsInFragmentShader){const{declareVarying:t,getVarying:e}=this.getVarying();return`\n ${t}\n void main() {\n ${e}`}return`\n uniform highp sampler2D ${t}; \n flat varying ${n} ez_v${e};\n void main() {\n ${this.texelsFetchGLSL(t,`ez_v${e}`)}\n ${this.getFromTexelsGLSL()}`}texelsFetchGLSL(t,e){const n=this._pixelsPerInstance;let i=`\n int size = textureSize(${t}, 0).x;\n int j = int(${e}) * ${n};\n int x = j % size;\n int y = j / size;\n `;for(let r=0;r<n;r++)i+=`vec4 ez_texel${r} = texelFetch(${t}, ivec2(x + ${r}, y), 0);\n`;return i}getFromTexelsGLSL(){const t=this._uniformMap;let e="";for(const[n,{type:i,offset:r,size:s}]of t){const t=Math.floor(r/this._channels);if("mat3"===i)e+=`mat3 ${n} = mat3(ez_texel${t}.rgb, vec3(ez_texel${t}.a, ez_texel${t+1}.rg), vec3(ez_texel${t+1}.ba, ez_texel${t+2}.r));\n`;else if("mat4"===i)e+=`mat4 ${n} = mat4(ez_texel${t}, ez_texel${t+1}, ez_texel${t+2}, ez_texel${t+3});\n`;else{e+=`${i} ${n} = ez_texel${t}.${this.getUniformComponents(r,s)};\n`}}return e}getVarying(){const t=this._uniformMap;let e="",n="",i="";for(const[r,{type:s}]of t)e+=`flat varying ${s} ez_v${r};\n`,n+=`ez_v${r} = ${r};\n`,i+=`${s} ${r} = ez_v${r};\n`;return{declareVarying:e,assignVarying:n,getVarying:i}}getUniformComponents(t,e){const n=t%this._channels;let i="";for(let r=0;r<e;r++)i+=ae[n+r];return i}copy(t){return super.copy(t),this.partialUpdate=t.partialUpdate,this.maxUpdateCalls=t.maxUpdateCalls,this._channels=t._channels,this._pixelsPerInstance=t._pixelsPerInstance,this._stride=t._stride,this._rowToUpdate=t._rowToUpdate,this._uniformMap=t._uniformMap,this._fetchUniformsInFragmentShader=t._fetchUniformsInFragmentShader,this}}const ae=["r","g","b","a"];let d$1=class extends Mesh{constructor(t,e,n={},i){if(!t)throw new Error('"geometry" is mandatory.');if(!e)throw new Error('"material" is mandatory.');const{allowsEuler:r,renderer:s,createEntities:a}=n;super(t,null),this.type="InstancedMesh2",this.isInstancedMesh2=!0,this.instances=null,this.instanceIndex=null,this.colorsTexture=null,this.morphTexture=null,this.boneTexture=null,this.uniformsTexture=null,this.boundingBox=null,this.boundingSphere=null,this.bvh=null,this.customSort=null,this.raycastOnlyFrustum=!1,this.LODinfo=null,this.autoUpdate=!0,this.bindMode=AttachedBindMode,this.bindMatrix=null,this.bindMatrixInverse=null,this.skeleton=null,this.autoUpdateBVH=!0,this.onFrustumEnter=null,this._renderer=null,this._instancesCount=0,this._instancesArrayCount=0,this._perObjectFrustumCulled=!0,this._sortObjects=!1,this._indexArrayNeedsUpdate=!1,this._useOpacity=!1,this._currentMaterial=null,this._customProgramCacheKeyBase=null,this._onBeforeCompileBase=null,this._definesBase=null,this._freeIds=[],this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(0),16),this.instanceColor=null,this._customProgramCacheKey=()=>`ez_${!!this.colorsTexture}_${this._useOpacity}_${!!this.boneTexture}_${!!this.uniformsTexture}_${this._customProgramCacheKeyBase.call(this._currentMaterial)}`,this._onBeforeCompile=(t,e)=>{if(this._onBeforeCompileBase&&this._onBeforeCompileBase.call(this._currentMaterial,t,e),t.defines={...t.defines},t.defines.USE_INSTANCING_INDIRECT="",t.uniforms.matricesTexture={value:this.matricesTexture},this.uniformsTexture){t.uniforms.uniformsTexture={value:this.uniformsTexture};const{vertex:e,fragment:n}=this.uniformsTexture.getUniformsGLSL("uniformsTexture","instanceIndex","uint");t.vertexShader=t.vertexShader.replace("void main() {",e),t.fragmentShader=t.fragmentShader.replace("void main() {",n)}this.colorsTexture&&t.fragmentShader.includes("#include <color_pars_fragment>")&&(t.defines.USE_INSTANCING_COLOR_INDIRECT="",t.uniforms.colorsTexture={value:this.colorsTexture},t.vertexShader=t.vertexShader.replace("<color_vertex>","<instanced_color_vertex>"),t.vertexColors&&(t.defines.USE_VERTEX_COLOR=""),this._useOpacity?t.defines.USE_COLOR_ALPHA="":t.defines.USE_COLOR=""),this.boneTexture&&(t.defines.USE_SKINNING="",t.defines.USE_INSTANCING_SKINNING="",t.uniforms.bindMatrix={value:this.bindMatrix},t.uniforms.bindMatrixInverse={value:this.bindMatrixInverse},t.uniforms.bonesPerInstance={value:this.skeleton.bones.length},t.uniforms.boneTexture={value:this.boneTexture})};const o=n.capacity>0?n.capacity:ce;this._renderer=s,this._capacity=o,this._parentLOD=i,this._geometry=t,this.material=e,this._allowsEuler=r??!1,this._tempInstance=new Ut(this,-1,r),this.availabilityArray=(null==i?void 0:i.availabilityArray)??new Array(2*o),this._createEntities=a,this.initLastRenderInfo(),this.initIndexAttribute(),this.initMatricesTexture()}get capacity(){return this._capacity}get instancesCount(){return this._instancesCount}get perObjectFrustumCulled(){return this._perObjectFrustumCulled}set perObjectFrustumCulled(t){this._perObjectFrustumCulled=t,this._indexArrayNeedsUpdate=!0}get sortObjects(){return this._sortObjects}set sortObjects(t){this._sortObjects=t,this._indexArrayNeedsUpdate=!0}get geometry(){return this._geometry}set geometry(t){this._geometry=t,this.patchGeometry(t)}onBeforeShadow(t,e,n,i,r,s,a){this.patchMaterial(t,s),this.updateTextures(t,s);const o=t.info.render.frame;this.instanceIndex&&this.autoUpdate&&!this.frustumCullingAlreadyPerformed(o,n,i)&&this.performFrustumCulling(i,n),0!==this.count&&(this.instanceIndex.update(this._renderer,this.count),this.bindTextures(t,s))}onBeforeRender(t,e,n,i,r,s){if(this.patchMaterial(t,r),this.updateTextures(t,r),!this.instanceIndex)return void(this._renderer=t);const a=t.info.render.frame;this.autoUpdate&&!this.frustumCullingAlreadyPerformed(a,n,null)&&this.performFrustumCulling(n),0!==this.count&&(this.instanceIndex.update(this._renderer,this.count),this.bindTextures(t,r))}onAfterShadow(t,e,n,i,r,s,a){this.unpatchMaterial(t,s)}onAfterRender(t,e,n,i,r,s){this.unpatchMaterial(t,r),!(this.instanceIndex||s&&!this.isLastGroup(s.materialIndex))&&this.initIndexAttribute()}updateTextures(t,e){var n,i,r;const s=t.properties.get(e);this.matricesTexture.update(t,s,"matricesTexture"),null==(n=this.colorsTexture)||n.update(t,s,"colorsTexture"),null==(i=this.uniformsTexture)||i.update(t,s,"uniformsTexture"),null==(r=this.boneTexture)||r.update(t,s,"boneTexture")}bindTextures(t,e){var n,i,r;const s=t.properties.get(e),a=s.uniforms;if(!a)return;const o=s.currentProgram,c=null==o?void 0:o.program;if(!c)return;const l=t.getContext(),u=o.getUniforms().map,h=l.getParameter(l.CURRENT_PROGRAM);t.state.useProgram(c),this.matricesTexture.bindToProgram(t,l,u,a,"matricesTexture"),null==(n=this.colorsTexture)||n.bindToProgram(t,l,u,a,"colorsTexture"),null==(i=this.uniformsTexture)||i.bindToProgram(t,l,u,a,"uniformsTexture"),null==(r=this.boneTexture)||r.bindToProgram(t,l,u,a,"boneTexture"),t.state.useProgram(h)}isLastGroup(t){const e=this.material;for(let n=e.length-1;n>=t;n--)if(e[n].visible)return n===t}initIndexAttribute(){if(!this._renderer)return void(this.count=0);const t=this._renderer.getContext(),e=this._capacity,n=new Uint32Array(e);for(let i=0;i<e;i++)n[i]=i;this.instanceIndex=new ee(t,t.UNSIGNED_INT,1,4,n),this._geometry.setAttribute("instanceIndex",this.instanceIndex)}initLastRenderInfo(){this._parentLOD||(this._lastRenderInfo={frame:-1,camera:null,shadowCamera:null})}initMatricesTexture(){this._parentLOD||(this.matricesTexture=new tt(Float32Array,4,4,this._capacity))}initColorsTexture(){this._parentLOD||(this.colorsTexture=new tt(Float32Array,4,1,this._capacity),this.colorsTexture.colorSpace=ColorManagement.workingColorSpace,this.colorsTexture._data.fill(1),this.materialsNeedsUpdate())}materialsNeedsUpdate(){if(this.material.isMaterial)this.material.needsUpdate=!0;else for(const t of this.material)t.needsUpdate=!0}patchGeometry(t){const e=t.getAttribute("instanceIndex");if(e){if(e===this.instanceIndex)return;console.warn("The geometry has been cloned because it was already used."),(t=t.clone()).deleteAttribute("instanceIndex")}this.instanceIndex&&t.setAttribute("instanceIndex",this.instanceIndex)}patchMaterial(t,e){this._currentMaterial=e,this._customProgramCacheKeyBase=e.customProgramCacheKey,this._onBeforeCompileBase=e.onBeforeCompile,this._definesBase=e.defines,e.customProgramCacheKey=this._customProgramCacheKey,e.onBeforeCompile=this._onBeforeCompile,se(this,t,e)}unpatchMaterial(t,e){this._currentMaterial=null,re(t),e.defines=this._definesBase,e.onBeforeCompile=this._onBeforeCompileBase,e.customProgramCacheKey=this._customProgramCacheKeyBase,this._onBeforeCompileBase=null,this._customProgramCacheKeyBase=null,this._definesBase=null}computeBVH(t={}){this.bvh||(this.bvh=new te(this,t.margin,t.getBBoxFromBSphere,t.accurateCulling)),this.bvh.clear(),this.bvh.create()}disposeBVH(){this.bvh=null}setMatrixAt(t,e){if(e.toArray(this.matricesTexture._data,16*t),this.instances){const n=this.instances[t];e.decompose(n.position,n.quaternion,n.scale)}this.matricesTexture.enqueueUpdate(t),this.bvh&&this.autoUpdateBVH&&this.bvh.move(t)}getMatrixAt(t,e=he){return e.fromArray(this.matricesTexture._data,16*t)}getPositionAt(t,e=ue){const n=16*t,i=this.matricesTexture._data;return e.x=i[n+12],e.y=i[n+13],e.z=i[n+14],e}getPositionAndMaxScaleOnAxisAt(t,e){const n=16*t,i=this.matricesTexture._data,r=i[n+0],s=i[n+1],a=i[n+2],o=r*r+s*s+a*a,c=i[n+4],l=i[n+5],u=i[n+6],h=c*c+l*l+u*u,d=i[n+8],p=i[n+9],f=i[n+10],m=d*d+p*p+f*f;return e.x=i[n+12],e.y=i[n+13],e.z=i[n+14],Math.sqrt(Math.max(o,h,m))}applyMatrixAtToSphere(t,e,n,i){const r=16*t,s=this.matricesTexture._data,a=s[r+0],o=s[r+1],c=s[r+2],l=s[r+3],u=s[r+4],h=s[r+5],d=s[r+6],p=s[r+7],f=s[r+8],m=s[r+9],g=s[r+10],A=s[r+11],v=s[r+12],y=s[r+13],S=s[r+14],b=s[r+15],x=e.center,M=n.x,T=n.y,I=n.z,R=1/(l*M+p*T+A*I+b);x.x=(a*M+u*T+f*I+v)*R,x.y=(o*M+h*T+m*I+y)*R,x.z=(c*M+d*T+g*I+S)*R;const E=a*a+o*o+c*c,w=u*u+h*h+d*d,C=f*f+m*m+g*g;e.radius=i*Math.sqrt(Math.max(E,w,C))}setVisibilityAt(t,e){this.availabilityArray[2*t]=e,this._indexArrayNeedsUpdate=!0}getVisibilityAt(t){return this.availabilityArray[2*t]}setActiveAt(t,e){this.availabilityArray[2*t+1]=e,this._indexArrayNeedsUpdate=!0}getActiveAt(t){return this.availabilityArray[2*t+1]}getActiveAndVisibilityAt(t){const e=2*t,n=this.availabilityArray;return n[e]&&n[e+1]}setActiveAndVisibilityAt(t,e){const n=2*t,i=this.availabilityArray;i[n]=e,i[n+1]=e,this._indexArrayNeedsUpdate=!0}setColorAt(t,e){null===this.colorsTexture&&this.initColorsTexture(),e.isColor?e.toArray(this.colorsTexture._data,4*t):It.set(e).toArray(this.colorsTexture._data,4*t),this.colorsTexture.enqueueUpdate(t)}getColorAt(t,e=It){return e.fromArray(this.colorsTexture._data,4*t)}setOpacityAt(t,e){this._useOpacity||(null===this.colorsTexture?this.initColorsTexture():this.materialsNeedsUpdate(),this._useOpacity=!0),this.colorsTexture._data[4*t+3]=e,this.colorsTexture.enqueueUpdate(t)}getOpacityAt(t){return this._useOpacity?this.colorsTexture._data[4*t+3]:1}copyTo(t,e){this.getMatrixAt(t,e.matrix).decompose(e.position,e.quaternion,e.scale)}computeBoundingBox(){const t=this._geometry,e=this._instancesArrayCount;this.boundingBox??(this.boundingBox=new Box3),null===t.boundingBox&&t.computeBoundingBox();const n=t.boundingBox,i=this.boundingBox;i.makeEmpty();for(let r=0;r<e;r++)this.getActiveAt(r)&&(vt.copy(n).applyMatrix4(this.getMatrixAt(r)),i.union(vt))}computeBoundingSphere(){const t=this._geometry,e=this._instancesArrayCount;this.boundingSphere??(this.boundingSphere=new Sphere),null===t.boundingSphere&&t.computeBoundingSphere();const n=t.boundingSphere,i=this.boundingSphere;i.makeEmpty();for(let r=0;r<e;r++)this.getActiveAt(r)&&(Tt.copy(n).applyMatrix4(this.getMatrixAt(r)),i.union(Tt))}clone(t){const e={capacity:this._capacity,renderer:this._renderer,allowsEuler:this._allowsEuler,createEntities:this._createEntities};return new this.constructor(this.geometry,this.material,e).copy(this,t)}copy(t,e){return super.copy(t,e),this.count=t._capacity,this._instancesCount=t._instancesCount,this._instancesArrayCount=t._instancesArrayCount,this._capacity=t._capacity,null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this.matricesTexture=t.matricesTexture.clone(),this.matricesTexture.image.data=this.matricesTexture.image.data.slice(),null!==t.colorsTexture&&(this.colorsTexture=t.colorsTexture.clone(),this.colorsTexture.image.data=this.colorsTexture.image.data.slice()),null!==t.uniformsTexture&&(this.uniformsTexture=t.uniformsTexture.clone(),this.uniformsTexture.image.data=this.uniformsTexture.image.data.slice()),null!==t.morphTexture&&(this.morphTexture=t.morphTexture.clone(),this.morphTexture.image.data=this.morphTexture.image.data.slice()),null!==t.boneTexture&&(this.boneTexture=t.boneTexture.clone(),this.boneTexture.image.data=this.boneTexture.image.data.slice()),this}dispose(){var t,e,n,i;this.dispatchEvent({type:"dispose"}),this.matricesTexture.dispose(),null==(t=this.colorsTexture)||t.dispose(),null==(e=this.morphTexture)||e.dispose(),null==(n=this.boneTexture)||n.dispose(),null==(i=this.uniformsTexture)||i.dispose()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.bindMatrixInverse&&(this.bindMode===AttachedBindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===DetachedBindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("Unrecognized bindMode: "+this.bindMode))}};const ce=1e3,vt=new Box3,Tt=new Sphere,he=new Matrix4,It=new Color,ue=new Vector3;function Ft(t,e){return t.depth-e.depth}function Dt(t,e){return e.depth-t.depth}d$1.prototype.resizeBuffers=function(t){var e;const n=this._capacity;this._capacity=t;const i=Math.min(t,n);if(this.instanceIndex){const e=new Uint32Array(t);e.set(new Uint32Array(this.instanceIndex.array.buffer,0,i)),this.instanceIndex.array=e}if(this.LODinfo)for(const r of this.LODinfo.objects)if(r._capacity=t,r.instanceIndex){const e=new Uint32Array(t);e.set(new Uint32Array(r.instanceIndex.array.buffer,0,i)),r.instanceIndex.array=e}if(this.availabilityArray.length=2*t,this.matricesTexture.resize(t),this.colorsTexture&&(this.colorsTexture.resize(t),t>n&&this.colorsTexture._data.fill(1,4*n)),this.morphTexture){const e=this.morphTexture.image.data,i=e.length/n;this.morphTexture.dispose(),this.morphTexture=new DataTexture(new Float32Array(i*t),i,t,RedFormat,FloatType),this.morphTexture.image.data.set(e)}return null==(e=this.uniformsTexture)||e.resize(t),this},d$1.prototype.setInstancesArrayCount=function(t){if(t<this._instancesArrayCount){const e=this.bvh;if(e)for(let n=this._instancesArrayCount-1;n>=t;n--)this.getActiveAt(n)&&e.delete(n);return void(this._instancesArrayCount=t)}if(t>this._capacity){let e=this._capacity+(this._capacity>>1)+512;for(;e<t;)e+=512+(e>>1);this.resizeBuffers(e)}const e=this._instancesArrayCount;this._instancesArrayCount=t,this._createEntities&&this.createEntities(e)};class le{constructor(){this.array=[],this.pool=[]}push(t,e){const n=this.pool,i=this.array,r=i.length;r>=n.length&&n.push({depth:null,index:null,depthSort:null});const s=n[r];s.depth=t,s.index=e,i.push(s)}reset(){this.array.length=0}}const et=new Frustum,C$1=new le,D$2=new Matrix4,P$7=new Matrix4,rt=new Vector3,j$1=new Vector3,N$1=new Vector3,fe=new Vector3,w$9=new Sphere;d$1.prototype.performFrustumCulling=function(t,e=t){const n=this._parentLOD??this,i=n.LODinfo;let r;if(i){r=t!==e?i.shadowRender??i.render:i.render;for(const t of i.objects)t.count=0}else n.count=0;0!==n._instancesArrayCount&&((null==r?void 0:r.levels.length)>0?n.frustumCullingLOD(r,t,e):n.frustumCulling(t))},d$1.prototype.updateLastRenderInfo=function(t,e,n){const i=this._lastRenderInfo;i.frame=t,i.camera=e,i.shadowCamera=n},d$1.prototype.frustumCullingAlreadyPerformed=function(t,e,n){const i=this._lastRenderInfo;return i.frame===t&&i.camera===e&&i.shadowCamera===n||(this.updateLastRenderInfo(t,e,n),!1)},d$1.prototype.frustumCulling=function(t){var e;const n=this._sortObjects,i=this._perObjectFrustumCulled,r=this.instanceIndex.array;if(this.instanceIndex._needsUpdate=!0,i||n){if(n&&(P$7.copy(this.matrixWorld).invert(),j$1.setFromMatrixPosition(t.matrixWorld).applyMatrix4(P$7),rt.set(0,0,-1).transformDirection(t.matrixWorld).transformDirection(P$7)),i?(D$2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse).multiply(this.matrixWorld),this.bvh?this.BVHCulling(t):this.linearCulling(t)):this.updateRenderList(),n){const t=this.customSort;null===t?C$1.array.sort(null!=(e=this.material)&&e.transparent?Dt:Ft):t(C$1.array);const n=C$1.array,i=n.length;for(let e=0;e<i;e++)r[e]=n[e].index;this.count=i,C$1.reset()}}else this.updateIndexArray()},d$1.prototype.updateIndexArray=function(){if(!this._indexArrayNeedsUpdate)return;const t=this.instanceIndex.array,e=this._instancesArrayCount;let n=0;for(let i=0;i<e;i++)this.getActiveAndVisibilityAt(i)&&(t[n++]=i);this.count=n,this._indexArrayNeedsUpdate=!1},d$1.prototype.updateRenderList=function(){const t=this._instancesArrayCount;for(let e=0;e<t;e++)if(this.getActiveAndVisibilityAt(e)){const t=this.getPositionAt(e).sub(j$1).dot(rt);C$1.push(t,e)}},d$1.prototype.BVHCulling=function(t){const e=this.instanceIndex.array,n=this._instancesArrayCount,i=this._sortObjects,r=this.onFrustumEnter;let s=0;this.bvh.frustumCulling(D$2,a=>{const o=a.object;if(o<n&&this.getVisibilityAt(o)&&(!r||r(o,t)))if(i){const t=this.getPositionAt(o).sub(j$1).dot(rt);C$1.push(t,o)}else e[s++]=o}),this.count=s},d$1.prototype.linearCulling=function(t){const e=this.instanceIndex.array;this.geometry.boundingSphere||this.geometry.computeBoundingSphere();const n=this._geometry.boundingSphere,i=n.radius,r=n.center,s=this._instancesArrayCount,a=0===r.x&&0===r.y&&0===r.z,o=this._sortObjects,c=this.onFrustumEnter;let l=0;et.setFromProjectionMatrix(D$2);for(let u=0;u<s;u++)if(this.getActiveAndVisibilityAt(u)){if(a){const t=this.getPositionAndMaxScaleOnAxisAt(u,w$9.center);w$9.radius=i*t}else this.applyMatrixAtToSphere(u,w$9,r,i);if(et.intersectsSphere(w$9)&&(!c||c(u,t)))if(o){const t=fe.subVectors(w$9.center,j$1).dot(rt);C$1.push(t,u)}else e[l++]=u}this.count=l},d$1.prototype.frustumCullingLOD=function(t,e,n){var i,r;const{count:s,levels:a}=t;for(let l=0;l<a.length;l++){if(!a[l].object.instanceIndex)return;s[l]=0,a[l].object.instanceIndex._needsUpdate=!0}const o=!(e!==n)&&this._sortObjects;D$2.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse).multiply(this.matrixWorld),P$7.copy(this.matrixWorld).invert(),j$1.setFromMatrixPosition(e.matrixWorld).applyMatrix4(P$7),N$1.setFromMatrixPosition(n.matrixWorld).applyMatrix4(P$7);const c=t.levels.map(t=>t.object.instanceIndex.array);if(this.bvh?this.BVHCullingLOD(t,c,o,e,n):this.linearCullingLOD(t,c,o,e,n),o){const t=this.customSort,e=C$1.array;let n=0,o=a[1].distance;null===t?e.sort(null!=(i=a[0].object.material)&&i.transparent?Dt:Ft):t(e);for(let i=0,l=e.length;i<l;i++){const t=e[i];t.depth>o&&(n++,o=(null==(r=a[n+1])?void 0:r.distance)??1/0),c[n][s[n]++]=t.index}C$1.reset()}for(let l=0;l<a.length;l++){a[l].object.count=s[l]}},d$1.prototype.BVHCullingLOD=function(t,e,n,i,r){const{count:s,levels:a}=t,o=this._instancesArrayCount,c=this.onFrustumEnter;n?this.bvh.frustumCulling(D$2,t=>{const e=t.object;if(e<o&&this.getVisibilityAt(e)&&(!c||c(e,i,r))){const t=this.getPositionAt(e).distanceToSquared(N$1);C$1.push(t,e)}}):this.bvh.frustumCullingLOD(D$2,N$1,a,(t,n)=>{const l=t.object;if(l<o&&this.getVisibilityAt(l)){if(null===n){const t=this.getPositionAt(l).distanceToSquared(N$1);n=this.getObjectLODIndexForDistance(a,t)}(!c||c(l,i,r,n))&&(e[n][s[n]++]=l)}})},d$1.prototype.linearCullingLOD=function(t,e,n,i,r){const{count:s,levels:a}=t;this.geometry.boundingSphere||this.geometry.computeBoundingSphere();const o=this._geometry.boundingSphere,c=o.radius,l=o.center,u=this._instancesArrayCount,h=0===l.x&&0===l.y&&0===l.z,d=this.onFrustumEnter;et.setFromProjectionMatrix(D$2);for(let p=0;p<u;p++)if(this.getActiveAndVisibilityAt(p)){if(h){const t=this.getPositionAndMaxScaleOnAxisAt(p,w$9.center);w$9.radius=c*t}else this.applyMatrixAtToSphere(p,w$9,l,c);if(et.intersectsSphere(w$9))if(n){if(!d||d(p,i,r)){const t=w$9.center.distanceToSquared(N$1);C$1.push(t,p)}}else{const t=w$9.center.distanceToSquared(N$1),n=this.getObjectLODIndexForDistance(a,t);(!d||d(p,i,r,n))&&(e[n][s[n]++]=p)}}},d$1.prototype.clearTempInstance=function(t){const e=this._tempInstance;return e.id=t,this.clearInstance(e)},d$1.prototype.clearTempInstancePosition=function(t){const e=this._tempInstance;return e.id=t,e.position.set(0,0,0),e},d$1.prototype.clearInstance=function(t){return t.position.set(0,0,0),t.scale.set(1,1,1),t.quaternion.identity(),t},d$1.prototype.updateInstances=function(t){const e=this._instancesArrayCount,n=this.instances;for(let i=0;i<e;i++){if(!this.getActiveAt(i))continue;const e=n?n[i]:this.clearTempInstance(i);t(e,i),e.updateMatrix()}return this},d$1.prototype.updateInstancesPosition=function(t){const e=this._instancesArrayCount,n=this.instances;for(let i=0;i<e;i++){if(!this.getActiveAt(i))continue;const e=n?n[i]:this.clearTempInstancePosition(i);t(e,i),e.updateMatrixPosition()}return this},d$1.prototype.createEntities=function(t){const e=this._instancesArrayCount;if(this.instances){if(!(this.instances.length<e))return this;this.instances.length=e}else this.instances=new Array(e);const n=this.instances;for(let i=t;i<e;i++)n[i]||(n[i]=new Ut(this,i,this._allowsEuler));return this},d$1.prototype.addInstances=function(t,e){!e&&this.bvh&&console.warn("InstancedMesh2: if `computeBVH()` has already been called, it is better to valorize the instances in the `onCreation` callback for better performance.");const n=this._freeIds;if(n.length>0){let i=-1;const r=Math.min(n.length,t),s=n.length-r;for(let t=n.length-1;t>=s;t--){const r=n[t];r>i&&(i=r),this.addInstance(r,e)}n.length-=r,t-=r,this._instancesArrayCount=Math.max(i+1,this._instancesArrayCount)}const i=this._instancesArrayCount,r=i+t;this.setInstancesArrayCount(r);for(let s=i;s<r;s++)this.addInstance(s,e);return this},d$1.prototype.addInstance=function(t,e){var n;this._instancesCount++,this.setActiveAndVisibilityAt(t,!0);const i=this.instances?this.clearInstance(this.instances[t]):this.clearTempInstance(t);e?(e(i,t),i.updateMatrix()):i.setMatrixIdentity(),null==(n=this.bvh)||n.insert(t)},d$1.prototype.removeInstances=function(...t){const e=this._freeIds,n=this.bvh;for(const i of t)i<this._instancesArrayCount&&this.getActiveAt(i)&&(this.setActiveAt(i,!1),e.push(i),null==n||n.delete(i),this._instancesCount--);for(let i=this._instancesArrayCount-1;i>=0&&!this.getActiveAt(i);i--)this._instancesArrayCount--;return this},d$1.prototype.clearInstances=function(){var t;if(this._instancesCount=0,this._instancesArrayCount=0,this._freeIds.length=0,null==(t=this.bvh)||t.clear(),this.LODinfo)for(const e of this.LODinfo.objects)e.count=0;return this},d$1.prototype.getObjectLODIndexForDistance=function(t,e){for(let n=t.length-1;n>0;n--){const i=t[n];if(e>=i.distance-i.distance*i.hysteresis)return n}return 0},d$1.prototype.setFirstLODDistance=function(t){if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");return this.LODinfo||(this.LODinfo={render:null,shadowRender:null,objects:[this]}),this.LODinfo.render||(this.LODinfo.render={levels:[{distance:t,hysteresis:0,object:this}],count:[0]}),this},d$1.prototype.addLOD=function(t,e,n=0,i=0){var r;if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");if((null==(r=this.LODinfo)||!r.render)&&0===n)throw new Error('Cannot set distance to 0 for the first LOD. Call "setFirstLODDistance" method before use "addLOD".');return this.setFirstLODDistance(0),this.addLevel(this.LODinfo.render,t,e,n,i),this},d$1.prototype.addShadowLOD=function(t,e=0,n=0){if(this._parentLOD)throw new Error("Cannot create LOD for this InstancedMesh2.");this.LODinfo||(this.LODinfo={render:null,shadowRender:null,objects:[this]}),this.LODinfo.shadowRender||(this.LODinfo.shadowRender={levels:[],count:[]});return this.addLevel(this.LODinfo.shadowRender,t,null,e,n).castShadow=!0,this.castShadow=!0,this},d$1.prototype.addLevel=function(t,e,n,i,r){const s=this.LODinfo.objects,a=t.levels;let o,c;i=i**2;const l=s.findIndex(t=>t.geometry===e);if(-1===l){const t={capacity:this._capacity,renderer:this._renderer};c=new d$1(e,n??new ShaderMaterial,t,this),c.frustumCulled=!1,this.patchLevel(c),s.push(c),this.add(c)}else c=s[l],n&&(c.material=n);for(o=0;o<a.length&&!(i<a[o].distance);o++);return a.splice(o,0,{distance:i,hysteresis:r,object:c}),t.count.push(0),c},d$1.prototype.updateLevel=function(t,e,n,i){if(!t)throw new Error("Render list is invalid.");const r=t.levels[e];if(!r)throw new Error("Cannot update an empty LOD.");if(null!=n&&!Number.isNaN(n)){const t=n**2;r.distance=t}return null!=i&&!Number.isNaN(i)&&(r.hysteresis=i),this},d$1.prototype.updateLOD=function(t,e,n){var i;const r=null==(i=null==this?void 0:this.LODinfo)?void 0:i.render;if(0===t)throw new Error("Cannot change distance for LOD0. It is the main mesh and must stay at 0.");return this.updateLevel(r,t,e,n)},d$1.prototype.updateShadowLOD=function(t,e,n){var i;return this.updateLevel(null==(i=this.LODinfo)?void 0:i.shadowRender,t,e,n)},d$1.prototype.updateAllLevels=function(t,e,n){var i;if(null==t||!t.levels)throw new Error("Invalid LOD list.");const r=t.levels,s=(null==(i=this.LODinfo)?void 0:i.render)===t,a=s?1:0;s&&(r[0].distance=0);const o=(null==e?void 0:e.length)>0;let c=[];o&&(c=s&&0===e[0]?e.slice(1,Math.min(r.length,e.length)):e.slice(0,Math.min(r.length-a,e.length)),c.every((t,e)=>{if(e>0&&t<=c[e-1])throw new Error(`LOD distances must be strictly increasing: d[${e-1}]=${c[e-1]} < d[${e}]=${t}`);return!0}));const l=o?c.length:r.length-a;for(let u=0;u<l;u++){const e=o?c[u]:void 0,i=Array.isArray(n)?n[u]:n;this.updateLevel(t,a+u,e,i)}return this},d$1.prototype.updateAllLOD=function(t,e){var n;return this.updateAllLevels(null==(n=this.LODinfo)?void 0:n.render,t,e)},d$1.prototype.updateAllShadowLOD=function(t,e){var n;return this.updateAllLevels(null==(n=this.LODinfo)?void 0:n.shadowRender,t,e)},d$1.prototype.disposeLOD=function(t){t.geometry.dispose();const e=t.material;if(Array.isArray(e))for(const n of e)n.dispose();else e.dispose()},d$1.prototype.removeLOD=function(t,e=!0){var n,i,r,s,a,o;const c=this.LODinfo,l=null==c?void 0:c.render;if(null==l||!l.levels)throw new Error("Invalid LOD list.");const u=l.levels.length;if(t<0||t>=u)throw new Error("Level index OOB");if(u>1&&0===t)throw new Error("Cannot remove LOD0 while others exist");const[h]=l.levels.splice(t,1);null==(i=null==(n=l.count)?void 0:n.splice)||i.call(n,t,1),l.levels.length<=1&&(c.render=null);const d=h.object,p=null==(r=this.LODinfo)?void 0:r.shadowRender;if(null!=p&&p.levels&&t<p.levels.length&&(p.levels.splice(t,1),null==(a=null==(s=p.count)?void 0:s.splice)||a.call(s,t,1),0===p.levels.length&&(this.LODinfo.shadowRender=null)),e&&d!==this)try{this.remove(d);const t=(null==(o=c.objects)?void 0:o.indexOf(d))??-1;-1!==t&&c.objects.splice(t,1),this.disposeLOD(d)}catch(f){console.error(f)}return this},d$1.prototype.patchLevel=function(t){Object.defineProperty(t,"renderOrder",{get(){return this._parentLOD.renderOrder}}),Object.defineProperty(t,"_lastRenderInfo",{get(){return this._parentLOD._lastRenderInfo}}),Object.defineProperty(t,"matricesTexture",{get(){return this._parentLOD.matricesTexture}}),Object.defineProperty(t,"colorsTexture",{get(){return this._parentLOD.colorsTexture}}),Object.defineProperty(t,"uniformsTexture",{get(){return this._parentLOD.uniformsTexture}}),Object.defineProperty(t,"morphTexture",{get(){return this._parentLOD.morphTexture}}),Object.defineProperty(t,"boneTexture",{get(){return this._parentLOD.boneTexture}}),Object.defineProperty(t,"skeleton",{get(){return this._parentLOD.skeleton}}),Object.defineProperty(t,"bindMatrixInverse",{get(){return this._parentLOD.bindMatrixInverse}}),Object.defineProperty(t,"bindMatrix",{get(){return this._parentLOD.bindMatrix}})};const de=new Mesh;d$1.prototype.getMorphAt=function(t,e=de){const n=e.morphTargetInfluences,i=this.morphTexture.source.data.data,r=t*(n.length+1)+1;for(let s=0;s<n.length;s++)n[s]=i[r+s];return e},d$1.prototype.setMorphAt=function(t,e){const n=e.morphTargetInfluences,i=n.length+1;null===this.morphTexture&&!this._parentLOD&&(this.morphTexture=new DataTexture(new Float32Array(i*this._capacity),i,this._capacity,RedFormat,FloatType));const r=this.morphTexture.source.data.data;let s=0;for(const c of n)s+=c;const a=this._geometry.morphTargetsRelative?1:1-s,o=i*t;r[o]=a,r.set(n,o+1),this.morphTexture.needsUpdate=!0};const ot=[],nt=new Mesh,pe=new Ray,wt=new Vector3,Ct=new Vector3,St=new Matrix4,Mt=new Sphere;d$1.prototype.raycast=function(t,e){if(this._parentLOD||!this.material||0===this._instancesArrayCount||!this.instanceIndex)return;nt.geometry=this._geometry,nt.material=this.material;const n=t.ray,i=t.near,r=t.far;St.copy(this.matrixWorld).invert(),Ct.setFromMatrixScale(this.matrixWorld),wt.copy(t.ray.direction).multiply(Ct);const s=wt.length();t.ray=pe.copy(t.ray).applyMatrix4(St),t.near/=s,t.far/=s,this.raycastInstances(t,e),t.ray=n,t.near=i,t.far=r},d$1.prototype.raycastInstances=function(t,e){if(this.bvh)this.bvh.raycast(t,n=>this.checkObjectIntersection(t,n,e));else{if(null===this.boundingSphere&&this.computeBoundingSphere(),Mt.copy(this.boundingSphere),!t.ray.intersectsSphere(Mt))return;const n=this.instanceIndex.array,i=this.raycastOnlyFrustum&&this._perObjectFrustumCulled?this.count:this._instancesArrayCount;for(let r=0;r<i;r++)this.checkObjectIntersection(t,n[r],e)}},d$1.prototype.checkObjectIntersection=function(t,e,n){if(!(e>this._instancesArrayCount)&&this.getActiveAndVisibilityAt(e)){this.getMatrixAt(e,nt.matrixWorld),nt.raycast(t,ot);for(const t of ot)t.instanceId=e,t.object=this,n.push(t);ot.length=0}},d$1.prototype.initSkeleton=function(t,e=!0){if(t&&this.skeleton!==t&&!this._parentLOD){const n=t.bones;if(this.skeleton=t,this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4,this.boneTexture=new tt(Float32Array,4,4*n.length,this._capacity),e)for(const t of n)t.matrixAutoUpdate=!1,t.matrixWorldAutoUpdate=!1;this.materialsNeedsUpdate()}},d$1.prototype.setBonesAt=function(t,e=!0,n){const i=this.skeleton;if(!i)throw new Error('"setBonesAt" cannot be called before "initSkeleton"');const r=i.bones,s=i.boneInverses;for(let a=0,o=r.length;a<o;a++){const i=r[a];e&&(null!=n&&n.has(i.name)||i.updateMatrix(),i.matrixWorld.multiplyMatrices(i.parent.matrixWorld,i.matrix)),this.multiplyBoneMatricesAt(t,a,i.matrixWorld,s[a])}this.boneTexture.enqueueUpdate(t)},d$1.prototype.multiplyBoneMatricesAt=function(t,e,n,i){const r=16*(t*this.skeleton.bones.length+e),s=n.elements,a=i.elements,o=this.boneTexture._data,c=s[0],l=s[4],u=s[8],h=s[12],d=s[1],p=s[5],f=s[9],m=s[13],g=s[2],A=s[6],v=s[10],y=s[14],S=s[3],b=s[7],x=s[11],M=s[15],T=a[0],I=a[4],R=a[8],E=a[12],w=a[1],C=a[5],_=a[9],k=a[13],L=a[2],U=a[6],F=a[10],N=a[14],V=a[3],P=a[7],B=a[11],W=a[15];o[r+0]=c*T+l*w+u*L+h*V,o[r+4]=c*I+l*C+u*U+h*P,o[r+8]=c*R+l*_+u*F+h*B,o[r+12]=c*E+l*k+u*N+h*W,o[r+1]=d*T+p*w+f*L+m*V,o[r+5]=d*I+p*C+f*U+m*P,o[r+9]=d*R+p*_+f*F+m*B,o[r+13]=d*E+p*k+f*N+m*W,o[r+2]=g*T+A*w+v*L+y*V,o[r+6]=g*I+A*C+v*U+y*P,o[r+10]=g*R+A*_+v*F+y*B,o[r+14]=g*E+A*k+v*N+y*W,o[r+3]=S*T+b*w+x*L+M*V,o[r+7]=S*I+b*C+x*U+M*P,o[r+11]=S*R+b*_+x*F+M*B,o[r+15]=S*E+b*k+x*N+M*W},d$1.prototype.getUniformAt=function(t,e,n){if(!this.uniformsTexture)throw new Error('Before get/set uniform, it\'s necessary to use "initUniformsPerInstance".');return this.uniformsTexture.getUniformAt(t,e,n)},d$1.prototype.setUniformAt=function(t,e,n){if(!this.uniformsTexture)throw new Error('Before get/set uniform, it\'s necessary to use "initUniformsPerInstance".');this.uniformsTexture.setUniformAt(t,e,n),this.uniformsTexture.enqueueUpdate(t)},d$1.prototype.initUniformsPerInstance=function(t){if(!this._parentLOD){const{channels:e,pixelsPerInstance:n,uniformMap:i,fetchInFragmentShader:r}=this.getUniformSchemaResult(t);this.uniformsTexture=new tt(Float32Array,e,n,this._capacity,i,r),this.materialsNeedsUpdate()}},d$1.prototype.getUniformSchemaResult=function(t){let e=0;const n=new Map,i=[],r=t.vertex??{},s=t.fragment??{};let a=!0;for(const l in r){const t=r[l],n=this.getUniformSize(t);e+=n,i.push({name:l,type:t,size:n}),a=!1}for(const l in s)if(!r[l]){const t=s[l],n=this.getUniformSize(t);e+=n,i.push({name:l,type:t,size:n})}i.sort((t,e)=>e.size-t.size);const o=[];for(const{name:l,size:u,type:h}of i){const t=this.getUniformOffset(u,o);n.set(l,{offset:t,size:u,type:h})}const c=Math.ceil(e/4);return{channels:Math.min(e,4),pixelsPerInstance:c,uniformMap:n,fetchInFragmentShader:a}},d$1.prototype.getUniformOffset=function(t,e){if(t<4)for(let i=0;i<e.length;i++)if(e[i]+t<=4){const n=4*i+e[i];return e[i]+=t,n}const n=4*e.length;for(;t>0;t-=4)e.push(t);return n},d$1.prototype.getUniformSize=function(t){switch(t){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;case"mat3":return 9;case"mat4":return 16;default:throw new Error(`Invalid uniform type: ${t}`)}};var me="#ifdef USE_INSTANCING_INDIRECT\r\n attribute uint instanceIndex;\r\n uniform highp sampler2D matricesTexture; \n\n mat4 getInstancedMatrix() {\r\n int size = textureSize( matricesTexture, 0 ).x;\r\n int j = int( instanceIndex ) * 4;\r\n int x = j % size;\r\n int y = j / size;\r\n vec4 v1 = texelFetch( matricesTexture, ivec2( x, y ), 0 );\r\n vec4 v2 = texelFetch( matricesTexture, ivec2( x + 1, y ), 0 );\r\n vec4 v3 = texelFetch( matricesTexture, ivec2( x + 2, y ), 0 );\r\n vec4 v4 = texelFetch( matricesTexture, ivec2( x + 3, y ), 0 );\r\n return mat4( v1, v2, v3, v4 );\r\n }\r\n#endif",xe="#ifdef USE_INSTANCING_COLOR_INDIRECT\r\n uniform highp sampler2D colorsTexture;\n\n #ifdef USE_COLOR_ALPHA\r\n vec4 getColorTexture() {\r\n int size = textureSize( colorsTexture, 0 ).x;\r\n int j = int( instanceIndex );\r\n int x = j % size;\r\n int y = j / size;\r\n return texelFetch( colorsTexture, ivec2( x, y ), 0 );\r\n }\r\n #else\r\n vec3 getColorTexture() {\r\n int size = textureSize( colorsTexture, 0 ).x;\r\n int j = int( instanceIndex );\r\n int x = j % size;\r\n int y = j / size;\r\n return texelFetch( colorsTexture, ivec2( x, y ), 0 ).rgb;\r\n }\r\n #endif\r\n#endif",_e="#ifdef USE_INSTANCING_INDIRECT\r\n mat4 instanceMatrix = getInstancedMatrix();\n\n #ifdef USE_INSTANCING_COLOR_INDIRECT\r\n vColor *= getColorTexture();\r\n #endif\r\n#endif",ge="#ifdef USE_INSTANCING_COLOR_INDIRECT\r\n #ifdef USE_VERTEX_COLOR\r\n vColor = color;\r\n #else\r\n #ifdef USE_COLOR_ALPHA\r\n vColor = vec4( 1.0 );\r\n #else\r\n vColor = vec3( 1.0 );\r\n #endif\r\n #endif\r\n#endif",ye="#ifdef USE_SKINNING\r\n uniform mat4 bindMatrix;\r\n uniform mat4 bindMatrixInverse;\r\n uniform highp sampler2D boneTexture;\n\n #ifdef USE_INSTANCING_SKINNING\r\n uniform int bonesPerInstance;\r\n #endif\n\n mat4 getBoneMatrix( const in float i ) {\r\n int size = textureSize( boneTexture, 0 ).x;\n\n #ifdef USE_INSTANCING_SKINNING\r\n int j = ( bonesPerInstance * int( instanceIndex ) + int( i ) ) * 4;\r\n #else\r\n int j = int( i ) * 4;\r\n #endif\n\n int x = j % size;\r\n int y = j / size;\r\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\r\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\r\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\r\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\r\n return mat4( v1, v2, v3, v4 );\r\n }\r\n#endif";function ft(t){return t.replace("#ifdef USE_INSTANCING","#if defined USE_INSTANCING || defined USE_INSTANCING_INDIRECT")}ShaderChunk.instanced_pars_vertex=me,ShaderChunk.instanced_color_pars_vertex=xe,ShaderChunk.instanced_vertex=_e,ShaderChunk.instanced_color_vertex=ge,ShaderChunk.project_vertex=ft(ShaderChunk.project_vertex),ShaderChunk.worldpos_vertex=ft(ShaderChunk.worldpos_vertex),ShaderChunk.defaultnormal_vertex=ft(ShaderChunk.defaultnormal_vertex),ShaderChunk.batching_pars_vertex=ShaderChunk.batching_pars_vertex.concat("\n#include <instanced_pars_vertex>"),ShaderChunk.color_pars_vertex=ShaderChunk.color_pars_vertex.concat("\n#include <instanced_color_pars_vertex>"),ShaderChunk.batching_vertex=ShaderChunk.batching_vertex.concat("\n#include <instanced_vertex>"),ShaderChunk.skinning_pars_vertex=ye,ShaderChunk.morphinstance_vertex&&(ShaderChunk.morphinstance_vertex=ShaderChunk.morphinstance_vertex.replaceAll("gl_InstanceID","instanceIndex"));class DebugEnvironment extends Scene{constructor(){super();const t=new BoxGeometry;t.deleteAttribute("uv");const e=new MeshStandardMaterial({metalness:0,side:BackSide}),n=new Mesh(t,e);n.scale.setScalar(10),this.add(n);const i=new PointLight(16777215,50,0,2);this.add(i);const r=new MeshLambertMaterial({color:16711680,emissive:16777215,emissiveIntensity:10}),s=new Mesh(t,r);s.position.set(-5,2,0),s.scale.set(.1,1,1),this.add(s);const a=new MeshLambertMaterial({color:65280,emissive:16777215,emissiveIntensity:10}),o=new Mesh(t,a);o.position.set(0,5,0),o.scale.set(1,.1,1),this.add(o);const c=new MeshLambertMaterial({color:255,emissive:16777215,emissiveIntensity:10}),l=new Mesh(t,c);l.position.set(2,1,5),l.scale.set(1.5,2,.1),this.add(l)}}const _box$1=new Box3,_vector$1=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(t){const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==e&&(e.applyMatrix4(t),n.applyMatrix4(t),e.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));const n=new InstancedInterleavedBuffer(e,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(n,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(t){let e;t instanceof Float32Array?e=t:Array.isArray(t)&&(e=new Float32Array(t));const n=new InstancedInterleavedBuffer(e,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(n,3,3)),this}fromWireframeGeometry(t){return this.setPositions(t.attributes.position.array),this}fromEdgesGeometry(t){return this.setPositions(t.attributes.position.array),this}fromMesh(t){return this.fromWireframeGeometry(new WireframeGeometry(t.geometry)),this}fromLineSegments(t){const e=t.geometry;return this.setPositions(e.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const t=this.attributes.instanceStart,e=this.attributes.instanceEnd;void 0!==t&&void 0!==e&&(this.boundingBox.setFromBufferAttribute(t),_box$1.setFromBufferAttribute(e),this.boundingBox.union(_box$1))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere),null===this.boundingBox&&this.computeBoundingBox();const t=this.attributes.instanceStart,e=this.attributes.instanceEnd;if(void 0!==t&&void 0!==e){const n=this.boundingSphere.center;this.boundingBox.getCenter(n);let i=0;for(let r=0,s=t.count;r<s;r++)_vector$1.fromBufferAttribute(t,r),i=Math.max(i,n.distanceToSquared(_vector$1)),_vector$1.fromBufferAttribute(e,r),i=Math.max(i,n.distanceToSquared(_vector$1));this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(t){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(t)}}UniformsLib.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}},ShaderLib.line={uniforms:UniformsUtils.merge([UniformsLib.common,UniformsLib.fog,UniformsLib.line]),vertexShader:"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 tmpFwd = normalize( mix( start.xyz, end.xyz, 0.5 ) );\n\t\t\t\tvec3 worldUp = normalize( cross( worldDir, tmpFwd ) );\n\t\t\t\tvec3 worldFwd = cross( worldDir, worldUp );\n\t\t\t\tworldPos = position.y < 0.5 ? start: end;\n\n\t\t\t\t// height offset\n\t\t\t\tfloat hw = linewidth * 0.5;\n\t\t\t\tworldPos.xyz += position.x < 0.0 ? hw * worldUp : - hw * worldUp;\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// cap extension\n\t\t\t\t\tworldPos.xyz += position.y < 0.5 ? - hw * worldDir : hw * worldDir;\n\n\t\t\t\t\t// add width to the box\n\t\t\t\t\tworldPos.xyz += worldFwd * hw;\n\n\t\t\t\t\t// endcaps\n\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\tworldPos.xyz -= worldFwd * 2.0 * hw;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t",fragmentShader:"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha = opacity;\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <colorspace_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"};class LineMaterial extends ShaderMaterial{constructor(t){super({type:"LineMaterial",uniforms:UniformsUtils.clone(ShaderLib.line.uniforms),vertexShader:ShaderLib.line.vertexShader,fragmentShader:ShaderLib.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(t)}get color(){return this.uniforms.diffuse.value}set color(t){this.uniforms.diffuse.value=t}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(t){!0===t?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(t){this.uniforms.linewidth&&(this.uniforms.linewidth.value=t)}get dashed(){return"USE_DASH"in this.defines}set dashed(t){!0===t!==this.dashed&&(this.needsUpdate=!0),!0===t?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(t){this.uniforms.dashScale.value=t}get dashSize(){return this.uniforms.dashSize.value}set dashSize(t){this.uniforms.dashSize.value=t}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(t){this.uniforms.dashOffset.value=t}get gapSize(){return this.uniforms.gapSize.value}set gapSize(t){this.uniforms.gapSize.value=t}get opacity(){return this.uniforms.opacity.value}set opacity(t){this.uniforms&&(this.uniforms.opacity.value=t)}get resolution(){return this.uniforms.resolution.value}set resolution(t){this.uniforms.resolution.value.copy(t)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(t){this.defines&&(!0===t!==this.alphaToCoverage&&(this.needsUpdate=!0),!0===t?this.defines.USE_ALPHA_TO_COVERAGE="":delete this.defines.USE_ALPHA_TO_COVERAGE)}}const _viewport=new Vector4,_start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere=new Sphere,_clipToWorldVector=new Vector4;let _ray,_lineWidth;function getWorldSpaceHalfWidth(t,e,n){return _clipToWorldVector.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/n.width,_clipToWorldVector.y=_lineWidth/n.height,_clipToWorldVector.applyMatrix4(t.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(t,e){const n=t.matrixWorld,i=t.geometry,r=i.attributes.instanceStart,s=i.attributes.instanceEnd;for(let a=0,o=Math.min(i.instanceCount,r.count);a<o;a++){_line.start.fromBufferAttribute(r,a),_line.end.fromBufferAttribute(s,a),_line.applyMatrix4(n);const i=new Vector3,o=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,o,i);o.distanceTo(i)<.5*_lineWidth&&e.push({point:o,pointOnLine:i,distance:_ray.origin.distanceTo(o),object:t,face:null,faceIndex:a,uv:null,uv1:null})}}function raycastScreenSpace(t,e,n){const i=e.projectionMatrix,r=t.material.resolution,s=t.matrixWorld,a=t.geometry,o=a.attributes.instanceStart,c=a.attributes.instanceEnd,l=Math.min(a.instanceCount,o.count),u=-e.near;_ray.at(1,_ssOrigin),_ssOrigin.w=1,_ssOrigin.applyMatrix4(e.matrixWorldInverse),_ssOrigin.applyMatrix4(i),_ssOrigin.multiplyScalar(1/_ssOrigin.w),_ssOrigin.x*=r.x/2,_ssOrigin.y*=r.y/2,_ssOrigin.z=0,_ssOrigin3.copy(_ssOrigin),_mvMatrix.multiplyMatrices(e.matrixWorldInverse,s);for(let h=0,d=l;h<d;h++){_start4.fromBufferAttribute(o,h),_end4.fromBufferAttribute(c,h),_start4.w=1,_end4.w=1,_start4.applyMatrix4(_mvMatrix),_end4.applyMatrix4(_mvMatrix);if(_start4.z>u&&_end4.z>u)continue;if(_start4.z>u){const t=_start4.z-_end4.z,e=(_start4.z-u)/t;_start4.lerp(_end4,e)}else if(_end4.z>u){const t=_end4.z-_start4.z,e=(_end4.z-u)/t;_end4.lerp(_start4,e)}_start4.applyMatrix4(i),_end4.applyMatrix4(i),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=r.x/2,_start4.y*=r.y/2,_end4.x*=r.x/2,_end4.y*=r.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const e=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(e,_closestPoint);const a=MathUtils.lerp(_start4.z,_end4.z,e),l=a>=-1&&a<=1,d=_ssOrigin3.distanceTo(_closestPoint)<.5*_lineWidth;if(l&&d){_line.start.fromBufferAttribute(o,h),_line.end.fromBufferAttribute(c,h),_line.start.applyMatrix4(s),_line.end.applyMatrix4(s);const e=new Vector3,i=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,i,e),n.push({point:i,pointOnLine:e,distance:_ray.origin.distanceTo(i),object:t,face:null,faceIndex:h,uv:null,uv1:null})}}}class LineSegments2 extends Mesh{constructor(t=new LineSegmentsGeometry,e=new LineMaterial({color:16777215*Math.random()})){super(t,e),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const t=this.geometry,e=t.attributes.instanceStart,n=t.attributes.instanceEnd,i=new Float32Array(2*e.count);for(let s=0,a=0,o=e.count;s<o;s++,a+=2)_start.fromBufferAttribute(e,s),_end.fromBufferAttribute(n,s),i[a]=0===a?0:i[a-1],i[a+1]=i[a]+_start.distanceTo(_end);const r=new InstancedInterleavedBuffer(i,2,1);return t.setAttribute("instanceDistanceStart",new InterleavedBufferAttribute(r,1,0)),t.setAttribute("instanceDistanceEnd",new InterleavedBufferAttribute(r,1,1)),this}raycast(t,e){const n=this.material.worldUnits,i=t.camera;null!==i||n||console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const r=void 0!==t.params.Line2&&t.params.Line2.threshold||0;_ray=t.ray;const s=this.matrixWorld,a=this.geometry,o=this.material;let c,l;if(_lineWidth=o.linewidth+r,null===a.boundingSphere&&a.computeBoundingSphere(),_sphere.copy(a.boundingSphere).applyMatrix4(s),n)c=.5*_lineWidth;else{c=getWorldSpaceHalfWidth(i,Math.max(i.near,_sphere.distanceToPoint(_ray.origin)),o.resolution)}if(_sphere.radius+=c,!1!==_ray.intersectsSphere(_sphere)){if(null===a.boundingBox&&a.computeBoundingBox(),_box.copy(a.boundingBox).applyMatrix4(s),n)l=.5*_lineWidth;else{l=getWorldSpaceHalfWidth(i,Math.max(i.near,_box.distanceToPoint(_ray.origin)),o.resolution)}_box.expandByScalar(l),!1!==_ray.intersectsBox(_box)&&(n?raycastWorldUnits(this,e):raycastScreenSpace(this,i,e))}}onBeforeRender(t){const e=this.material.uniforms;e&&e.resolution&&(t.getViewport(_viewport),this.material.uniforms.resolution.value.set(_viewport.z,_viewport.w))}}class LineGeometry extends LineSegmentsGeometry{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(t){const e=t.length-3,n=new Float32Array(2*e);for(let i=0;i<e;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return super.setPositions(n),this}setColors(t){const e=t.length-3,n=new Float32Array(2*e);for(let i=0;i<e;i+=3)n[2*i]=t[i],n[2*i+1]=t[i+1],n[2*i+2]=t[i+2],n[2*i+3]=t[i+3],n[2*i+4]=t[i+4],n[2*i+5]=t[i+5];return super.setColors(n),this}fromLine(t){const e=t.geometry;return this.setPositions(e.attributes.position.array),this}}class Line2 extends LineSegments2{constructor(t=new LineGeometry,e=new LineMaterial({color:16777215*Math.random()})){super(t,e),this.isLine2=!0,this.type="Line2"}}class Pass{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const _camera=new OrthographicCamera(-1,1,1,-1,0,1);class FullscreenTriangleGeometry extends BufferGeometry{constructor(){super(),this.setAttribute("position",new Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Float32BufferAttribute([0,2,0,0,2,0],2))}}const _geometry=new FullscreenTriangleGeometry;class FullScreenQuad{constructor(t){this._mesh=new Mesh(_geometry,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,_camera)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}const CopyShader={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ShaderPass extends Pass{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof ShaderMaterial?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=UniformsUtils.clone(t.uniforms),this.material=new ShaderMaterial({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new FullScreenQuad(this.material)}render(t,e,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class MaskPass extends Pass{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,n){const i=t.getContext(),r=t.state;let s,a;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,s,4294967295),r.buffers.stencil.setClear(a),r.buffers.stencil.setLocked(!0),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.color.setMask(!0),r.buffers.depth.setMask(!0),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}}class ClearMaskPass extends Pass{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}class EffectComposer{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const n=t.getSize(new Vector2);this._width=n.width,this._height=n.height,(e=new WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:HalfFloatType})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new ShaderPass(CopyShader),this.copyPass.material.blending=NoBlending,this.clock=new Clock}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;e<this.passes.length;e++)if(this.passes[e].enabled)return!1;return!0}render(t){void 0===t&&(t=this.clock.getDelta());const e=this.renderer.getRenderTarget();let n=!1;for(let i=0,r=this.passes.length;i<r;i++){const e=this.passes[i];if(!1!==e.enabled){if(e.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(i),e.render(this.renderer,this.writeBuffer,this.readBuffer,t,n),e.needsSwap){if(n){const e=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(e.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,t),n.setFunc(e.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==MaskPass&&(e instanceof MaskPass?n=!0:e instanceof ClearMaskPass&&(n=!1))}}this.renderer.setRenderTarget(e)}reset(t){if(void 0===t){const e=this.renderer.getSize(new Vector2);this._pixelRatio=this.renderer.getPixelRatio(),this._width=e.width,this._height=e.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(t,e){this._width=t,this._height=e;const n=this._width*this._pixelRatio,i=this._height*this._pixelRatio;this.renderTarget1.setSize(n,i),this.renderTarget2.setSize(n,i);for(let r=0;r<this.passes.length;r++)this.passes[r].setSize(n,i)}setPixelRatio(t){this._pixelRatio=t,this.setSize(this._width,this._height)}dispose(){this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.copyPass.dispose()}}class RenderPass extends Pass{constructor(t,e,n=null,i=null,r=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=n,this.clearColor=i,this.clearAlpha=r,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Color}render(t,e,n){const i=t.autoClear;let r,s;t.autoClear=!1,null!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(r=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:n),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(r),null!==this.overrideMaterial&&(this.scene.overrideMaterial=s),t.autoClear=i}}class CSS2DObject extends Object3D{constructor(t=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new Vector2(.5,.5),this.addEventListener("removed",function(){this.traverse(function(t){t.element instanceof Element&&null!==t.element.parentNode&&t.element.parentNode.removeChild(t.element)})})}copy(t,e){return super.copy(t,e),this.element=t.element.cloneNode(!0),this.center=t.center,this}}const _vector=new Vector3,_viewMatrix=new Matrix4,_viewProjectionMatrix=new Matrix4,_a=new Vector3,_b=new Vector3;class CSS2DRenderer{constructor(t={}){const e=this;let n,i,r,s;const a={objects:new WeakMap},o=void 0!==t.element?t.element:document.createElement("div");function c(t){t.isCSS2DObject&&(t.element.style.display="none");for(let e=0,n=t.children.length;e<n;e++)c(t.children[e])}function l(t,n,i){if(!1!==t.visible){if(t.isCSS2DObject){_vector.setFromMatrixPosition(t.matrixWorld),_vector.applyMatrix4(_viewProjectionMatrix);const c=_vector.z>=-1&&_vector.z<=1&&!0===t.layers.test(i.layers),l=t.element;l.style.display=!0===c?"":"none",!0===c&&(t.onBeforeRender(e,n,i),l.style.transform="translate("+-100*t.center.x+"%,"+-100*t.center.y+"%)translate("+(_vector.x*r+r)+"px,"+(-_vector.y*s+s)+"px)",l.parentNode!==o&&o.appendChild(l),t.onAfterRender(e,n,i));const h={distanceToCameraSquared:u(i,t)};a.objects.set(t,h)}for(let e=0,r=t.children.length;e<r;e++)l(t.children[e],n,i)}else c(t)}function u(t,e){return _a.setFromMatrixPosition(t.matrixWorld),_b.setFromMatrixPosition(e.matrixWorld),_a.distanceToSquared(_b)}o.style.overflow="hidden",this.domElement=o,this.getSize=function(){return{width:n,height:i}},this.render=function(t,e){!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===e.parent&&!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),_viewMatrix.copy(e.matrixWorldInverse),_viewProjectionMatrix.multiplyMatrices(e.projectionMatrix,_viewMatrix),l(t,t,e),function(t){const e=function(t){const e=[];return t.traverseVisible(function(t){t.isCSS2DObject&&e.push(t)}),e}(t).sort(function(t,e){if(t.renderOrder!==e.renderOrder)return e.renderOrder-t.renderOrder;return a.objects.get(t).distanceToCameraSquared-a.objects.get(e).distanceToCameraSquared}),n=e.length;for(let i=0,r=e.length;i<r;i++)e[i].element.style.zIndex=n-i}(t)},this.setSize=function(t,e){n=t,i=e,r=n/2,s=i/2,o.style.width=t+"px",o.style.height=e+"px"}}}var Stats=function(){var t=0,e=document.createElement("div");function n(t){return e.appendChild(t.dom),t}function i(n){for(var i=0;i<e.children.length;i++)e.children[i].style.display=i===n?"block":"none";t=n}e.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e.addEventListener("click",function(n){n.preventDefault(),i(++t%e.children.length)},!1);var r=(performance||Date).now(),s=r,a=0,o=n(new Stats.Panel("FPS","#0ff","#002")),c=n(new Stats.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var l=n(new Stats.Panel("MB","#f08","#201"));return i(0),{REVISION:16,dom:e,addPanel:n,showPanel:i,begin:function(){r=(performance||Date).now()},end:function(){a++;var t=(performance||Date).now();if(c.update(t-r,200),t>=s+1e3&&(o.update(1e3*a/(t-s),100),s=t,a=0,l)){var e=performance.memory;l.update(e.usedJSHeapSize/1048576,e.jsHeapSizeLimit/1048576)}return t},update:function(){r=this.end()},domElement:e,setMode:i}};Stats.Panel=function(t,e,n){var i=1/0,r=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,c=48*a,l=3*a,u=2*a,h=3*a,d=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=c,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,o,c),g.fillStyle=e,g.fillText(t,l,u),g.fillRect(h,d,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(h,d,p,f),{dom:m,update:function(c,A){i=Math.min(i,c),r=Math.max(r,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=e,g.fillText(s(c)+" "+t+" ("+s(i)+"-"+s(r)+")",l,u),g.drawImage(m,h+a,d,p-a,f,h,d,p-a,f),g.fillRect(h+p-a,d,a,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(h+p-a,d,a,s((1-c/A)*f))}}};const M9=m$G;!function(t,e){const n=m$G,i=t();for(;;)try{if(418267===parseInt(n(433))/1+-parseInt(n(411))/2+-parseInt(n(467))/3*(-parseInt(n(317))/4)+parseInt(n(448))/5*(parseInt(n(339))/6)+parseInt(n(328))/7+-parseInt(n(259))/8*(parseInt(n(445))/9)+-parseInt(n(353))/10*(parseInt(n(322))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$G);let g$n=class{constructor(){__publicField(this,_v),__publicField(this,_u),__publicField(this,_t2),__publicField(this,"up"),__publicField(this,_s),__publicField(this,_r),__publicField(this,_q2);const t=M9,e={XfqYA:t(417)}[t(438)][t(390)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(442)]=new Vector3;continue;case"1":this[t(297)]=1;continue;case"2":this[t(281)]=!1;continue;case"3":this[t(459)]=new Vector3;continue;case"4":this.up=new Vector3;continue;case"5":this[t(446)]=0;continue;case"6":this[t(361)]=new Vector3;continue}break}}[(_v=M9(442),_u=M9(361),_t2=M9(459),_s=M9(446),_r=M9(297),_q2=M9(281),M9(270))](t,e,n){const i=M9,r={aOcaB:i(395),VmXAH:function(t,e){return t+e},bfzLq:function(t,e){return t*e},nlTGO:function(t,e){return t-e},WiNRJ:function(t,e){return t*e}},s=r[i(383)][i(390)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(297)]=r[i(327)](r[i(310)](r[i(464)](e[i(297)],t[i(297)]),n),t[i(297)]);continue;case"1":this[i(361)][i(406)](t[i(361)],e[i(361)],n);continue;case"2":this[i(442)][i(406)](t[i(442)],e[i(442)],n);continue;case"3":this[i(459)][i(406)](t[i(459)],e[i(459)],n);continue;case"4":this.up[i(406)](t.up,e.up,n);continue;case"5":this[i(446)]=r[i(327)](r[i(424)](r[i(464)](e[i(446)],t[i(446)]),n),t[i(446)]);continue}break}}[M9(337)](t){const e=M9,n={AQusd:e(326)}[e(268)][e(390)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(361)][e(337)](t[e(361)]);continue;case"1":this[e(297)]=t[e(297)];continue;case"2":this.up[e(337)](t.up);continue;case"3":this[e(446)]=t[e(446)];continue;case"4":this[e(442)][e(337)](t[e(442)]);continue;case"5":this[e(459)][e(337)](t[e(459)]);continue}break}}};class PathGeometry extends BufferGeometry{constructor(t=3e3,e=!1){const n=M9;super(),{mxMcH:function(t,e){return t(e)}}[n(278)](isNaN,t)?this[n(325)](t[n(400)],t[n(329)],t[n(444)],e):this[n(307)](t,e)}[M9(307)](t,e){const n=M9,i={Ttshg:n(321),rpLbu:n(369),RNbnC:function(t,e){return t*e},lZqTH:n(456),JlDWD:function(t,e){return t*e},CcHvh:n(265),STaGg:function(t,e){return t>e}},r=i[n(469)][n(390)]("|");let s=0;for(;;){switch(r[s++]){case"0":e&&this[n(412)](i[n(454)],new BufferAttribute(new Float32Array(i[n(258)](t,2)),2)[n(355)](DynamicDrawUsage));continue;case"1":this[n(412)](i[n(286)],new BufferAttribute(new Float32Array(i[n(258)](t,3)),3)[n(355)](DynamicDrawUsage));continue;case"2":this[n(431)][n(352)]=0;continue;case"3":this[n(412)]("uv",new BufferAttribute(new Float32Array(i[n(302)](t,2)),2)[n(355)](DynamicDrawUsage));continue;case"4":this[n(412)](i[n(427)],new BufferAttribute(new Float32Array(i[n(258)](t,3)),3)[n(355)](DynamicDrawUsage));continue;case"5":this[n(388)](i[n(419)](t,65536)?new Uint32BufferAttribute(i[n(302)](t,3),1):new Uint16BufferAttribute(i[n(302)](t,3),1));continue;case"6":this[n(431)][n(458)]=0;continue}break}}[M9(325)](t,e={},n,i){const r=M9,s={ddwSo:function(t,e,n,i){return t(e,n,i)},IcuHv:function(t,e){return t!==e},xAhTm:r(262),Ejqyl:function(t,e){return t>e},RtYly:function(t,e){return t/e},dQHdP:r(265),zKRyS:function(t,e){return t||e},EkwNx:r(369),KiHrN:function(t,e){return t||e},usBlc:r(456)},a=s[r(401)](l$f,t,e,i);if(a&&s[r(428)](a[r(352)],0)){const t=s[r(357)][r(390)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[r(388)](s[r(410)](s[r(314)](a[r(265)][r(403)],3),65536)?new Uint32BufferAttribute(a[r(336)],1):new Uint16BufferAttribute(a[r(336)],1));continue;case"1":this[r(290)]=a[r(290)];continue;case"2":this[r(412)](s[r(282)],new BufferAttribute(new Float32Array(a[r(265)]),3)[r(355)](s[r(463)](n,StaticDrawUsage)));continue;case"3":i&&this[r(412)](s[r(408)],new BufferAttribute(new Float32Array(a[r(369)]),2)[r(355)](s[r(463)](n,StaticDrawUsage)));continue;case"4":this[r(412)]("uv",new BufferAttribute(new Float32Array(a.uv),2)[r(355)](s[r(421)](n,StaticDrawUsage)));continue;case"5":this[r(412)](s[r(437)],new BufferAttribute(new Float32Array(a[r(456)]),3)[r(355)](s[r(421)](n,StaticDrawUsage)));continue}break}}else this[r(307)](2,i)}[M9(434)](t,e={}){const n=M9,i={HelGv:n(369),dVZLP:function(t,e,n,i){return t(e,n,i)}},r=!!this[n(269)](i[n(371)]),s=i[n(389)](l$f,t,e,r);s?(this[n(290)]=s[n(290)],this[n(331)](s[n(265)],s[n(456)],s.uv,r?s[n(369)]:null,s[n(336)]),this[n(431)][n(352)]=s[n(352)]):this[n(431)][n(352)]=0}[M9(350)](t,e){const n=M9,i={lFUbm:function(t,e){return t<e},eQlHq:function(t,e){return t*e}};let r=this[n(269)](t);for(;i[n(468)](r[n(289)][n(403)],e);){const e=r[n(289)][n(403)],s=new BufferAttribute(new Float32Array(i[n(405)](e,2)),r[n(465)],r[n(363)]);s[n(409)]=r[n(409)],s[n(444)]=r[n(444)],this[n(412)](t,s),r=s}}[M9(453)](t){const e=M9,n={NTIYS:function(t,e){return t<e},maWxW:function(t,e){return t>e},YgeWg:function(t,e){return t*e},eeKDD:function(t,e){return t*e}};let i=this[e(280)]();for(;n[e(404)](i[e(289)][e(403)],t);){const t=i[e(289)][e(403)],r=new BufferAttribute(n[e(320)](n[e(449)](t,2),65535)?new Uint32Array(n[e(449)](t,2)):new Uint16Array(n[e(295)](t,2)),1);r[e(409)]=i[e(409)],r[e(444)]=i[e(444)],this[e(388)](r),i=r}}[M9(331)](t,e,n,i,r){const s=M9,a={xCYrB:s(265),zYvyo:s(456),ZKCbn:s(369)};this[s(350)](a[s(306)],t[s(403)]);const o=this[s(269)](a[s(306)]);o[s(289)][s(332)](t,0),o[s(285)](0,t[s(403)]),o[s(257)]=!0,this[s(350)](a[s(372)],e[s(403)]);const c=this[s(269)](a[s(372)]);c[s(289)][s(332)](e,0),c[s(285)](0,e[s(403)]),c[s(257)]=!0,this[s(350)]("uv",n[s(403)]);const l=this[s(269)]("uv");if(l[s(289)][s(332)](n,0),l[s(285)](0,n[s(403)]),l[s(257)]=!0,i){this[s(350)](a[s(309)],i[s(403)]);const t=this[s(269)](a[s(309)]);t[s(289)][s(332)](i,0),t[s(285)](0,i[s(403)]),t[s(257)]=!0}this[s(453)](r[s(403)]);const u=this[s(280)]();u[s(332)](r,0),u[s(285)](0,r[s(403)]),u[s(257)]=!0}}function m$G(t,e){t-=251;return M$G()[t]}function M$G(){const t=["AHJTf","dSAdZ","JNQqa","OWEdl","ZNvDj","uv2","dot","HelGv","zYvyo","IhTIG","qmSpV","qsqWY","PJvbW","JhJjV","max","add","PathPointList: points length less than 2.","EPSILON","DsVGT","aOcaB","QmEKd","multiplyScalar","crossVectors","CyJrV","setIndex","dVZLP","split","TNKbe","aDiPW","tFOcx","arrow","2|1|4|3|5|0","zdLtI","gVIYg","CZqgo","tSJUv","pathPointList","ddwSo","fojDe","length","NTIYS","eQlHq","lerpVectors","UfBGI","EkwNx","name","Ejqyl","28722JPDTcn","setAttribute","subVectors","_start","ysSlo","equals","0|6|3|4|5|1|2","UPVKf","STaGg","XYYka","KiHrN","JHFKU","pTfCE","WiNRJ","krRoH","JwrKf","CcHvh","IcuHv","applyMatrix4","distance","drawRange","sub","607809DQsyoe","update","VnZGy","GeJSM","usBlc","XfqYA","SbPOO","AogKE","normalize","pos","cUbPW","usage","189xdEvCC","dist","_corner","55MJAWUf","YgeWg","_getByIndex","MAX_VALUE","iOIeB","_resizeIndex","rpLbu","warn","normal","hGWNh","start","right","push","wNPKE","slice","zKRyS","nlTGO","itemSize","PgWUL","391827sZMSAc","lFUbm","Ttshg","min","uGmUN","lrVzR","ixiHD","jRMvv","FTIRV","needsUpdate","RNbnC","130024SDtGGq","acos","ywmtk","1|2|5|4|3|0","ldjGL","rueoz","position","tgEHz","Xfcjd","AQusd","getAttribute","lerpPathPoints","Fxnzl","both","mavgA","FuoNH","side","JwBJM","EQdpA","mxMcH","getPoints","getIndex","sharp","dQHdP","FxzLg","sqrt","addUpdateRange","lZqTH","Atjru","WSEcD","array","totalDistance","RMChO","BrYAV","addVectors","tvIlP","eeKDD","UeFuo","widthScale","_sharpCorner","progress","DLhgG","fromArray","JlDWD","eBMrz","YYIvq","wZfPP","xCYrB","_initByMaxVertex","UseyW","ZKCbn","bfzLq","klBOX","abs","YrlAn","RtYly","YNQkr","makeRotationAxis","4nVjPzH","qWUvA","OWWwq","maWxW","4|1|3|0|6|2|5","55vBotMy","ATgQI","wwHwJ","_initByData","4|0|2|5|3|1","VmXAH","5624598YVsAWT","options","apSLZ","_updateAttributes","set","uSbPp","XaJuV","khqnp","indices","copy","_end","104874SCGTAa","EhAxk","EQNfN","ZYOTi","left","GmGiD","bnYyk","QGkVU","hZWhQ","0|1|4|2|3|5","LVNux","_resizeAttribute","EllCr","count","1920520hDkwfd","width","setUsage","joCTY","xAhTm","alFxj","yUFBQ","setLength","dir","naGAE","normalized"];return(M$G=function(){return t})()}function l$f(t,e,n=!1){const i=M9,r={EllCr:function(t,e){return t===e},rueoz:function(t,e){return t/e},aDiPW:function(t,e){return t!==e},qWUvA:i(343),EhAxk:function(t,e){return t*e},FxzLg:function(t,e){return t!==e},dSAdZ:i(459),DsVGT:function(t,e){return t-e},wwHwJ:function(t,e){return t-e},VnZGy:function(t,e){return t>e},UPVKf:function(t,e){return t>e},tvIlP:function(t,e){return t-e},tSJUv:function(t,e){return t-e},EQNfN:function(t,e){return t-e},BrYAV:function(t,e){return t-e},UfBGI:function(t,e){return t-e},iOIeB:function(t,e){return t-e},qsqWY:function(t,e){return t-e},SbPOO:function(t,e){return t-e},OWWwq:function(t,e){return t-e},ZNvDj:function(t,e){return t-e},eBMrz:function(t,e){return t-e},fojDe:function(t,e){return t-e},WSEcD:function(t,e){return t-e},mavgA:function(t,e){return t-e},QGkVU:function(t,e){return t+e},CZqgo:i(348),LVNux:function(t,e){return t-e},naGAE:function(t,e){return t-e},qmSpV:function(t,e){return t-e},pTfCE:function(t,e){return t/e},alFxj:function(t,e){return t*e},klBOX:function(t,e){return t!==e},DLhgG:function(t,e){return t*e},RMChO:function(t,e){return t!==e},uSbPp:i(272),YYIvq:function(t,e){return t!==e},TNKbe:function(t,e){return t!==e},GmGiD:function(t,e){return t!==e},Xfcjd:function(t,e){return t!==e},FTIRV:function(t,e){return t!==e},wZfPP:function(t,e){return t!==e},IhTIG:function(t,e){return t+e},khqnp:function(t,e){return t-e},YNQkr:function(t,e){return t!==e},ldjGL:function(t,e){return t/e},hZWhQ:function(t,e){return t!==e},Fxnzl:function(t,e){return t/e},PgWUL:function(t,e){return t*e},lrVzR:function(t,e){return t/e},JHFKU:function(t,e){return t>e},joCTY:function(t,e){return t<e},JNQqa:function(t,e){return t>e},tgEHz:function(t,e){return t-e},AogKE:function(t,e){return t/e},ixiHD:function(t,e){return t-e},krRoH:function(t,e){return t(e)}},s=e[i(354)]||.1,a=r[i(344)](e[i(299)],void 0)?e[i(299)]:1,o=!r[i(304)](e[i(394)],void 0)||e[i(394)],c=r[i(315)](e[i(275)],void 0)?e[i(275)]:r[i(333)],l=r[i(263)](s,2),u=r[i(347)](c,r[i(333)])?r[i(271)](s,2):s,h=t[i(430)](),d=r[i(466)](a,h);if(r[i(351)](h,0))return null;const p=r[i(271)](l,u),f=r[i(253)](l,h);let m=0;const g=[],A=[],v=[],y=[],S=[];let b=0;const x=new Vector3,M=new Vector3,T=new Vector3,I=new Vector3,R=new Vector3,E=new Vector3;function w(t){const e=i,s=r[e(351)](g[e(403)],0),a=t[e(281)]&&!s,o=r[e(264)](t[e(446)],u),d=r[e(264)](t[e(446)],h),w=t[e(361)],C=t.up,_=t[e(459)];if(r[e(392)](c,r[e(318)])?x[e(337)](_)[e(385)](r[e(340)](l,t[e(297)])):x[e(332)](0,0,0),r[e(283)](c,r[e(365)])?M[e(337)](_)[e(385)](r[e(340)](-l,t[e(297)])):M[e(332)](0,0,0),x[e(379)](t[e(442)]),M[e(379)](t[e(442)]),a){T[e(301)](g,r[e(382)](g[e(403)],6))[e(432)](M),I[e(301)](g,r[e(324)](g[e(403)],3))[e(432)](x);const t=T[e(403)](),i=I[e(403)](),s=r[e(324)](t,i);let a,c;r[e(435)](s,0)?(a=T,c=M):(a=I,c=x),R[e(337)](a)[e(360)](Math[e(312)](s))[e(379)](c);let l=E[e(337)](c)[e(432)](R)[e(441)]()[e(370)](w),u=E[e(337)](c)[e(432)](R)[e(403)](),h=r[e(340)](r[e(340)](l,u),2);E[e(337)](w)[e(360)](h)[e(379)](R),r[e(418)](s,0)?(g[e(460)](R.x,R.y,R.z,x.x,x.y,x.z,M.x,M.y,M.z,x.x,x.y,x.z,E.x,E.y,E.z,x.x,x.y,x.z),b+=6,S[e(460)](r[e(294)](b,6),r[e(294)](b,8),r[e(399)](b,7),r[e(399)](b,6),r[e(341)](b,7),r[e(382)](b,5),r[e(292)](b,4),r[e(324)](b,6),r[e(407)](b,5),r[e(452)](b,2),r[e(375)](b,4),r[e(452)](b,1)),m+=12):(g[e(460)](M.x,M.y,M.z,R.x,R.y,R.z,M.x,M.y,M.z,x.x,x.y,x.z,M.x,M.y,M.z,E.x,E.y,E.z),b+=6,S[e(460)](r[e(439)](b,6),r[e(324)](b,8),r[e(452)](b,7),r[e(319)](b,6),r[e(341)](b,7),r[e(368)](b,5),r[e(319)](b,6),r[e(303)](b,5),r[e(402)](b,3),r[e(402)](b,2),r[e(288)](b,3),r[e(439)](b,1)),m+=12),A[e(460)](C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z,C.x,C.y,C.z),v[e(460)](r[e(273)](o,p),0,r[e(375)](o,p),1,o,0,o,1,r[e(346)](o,p),0,r[e(346)](o,p),1),n&&y[e(460)](r[e(341)](d,f),0,r[e(273)](d,f),1,d,0,d,1,r[e(346)](d,f),0,r[e(346)](d,f),1)}else{const t=r[e(398)][e(390)]("|");let i=0;for(;;){switch(t[i++]){case"0":g[e(460)](M.x,M.y,M.z,x.x,x.y,x.z);continue;case"1":A[e(460)](C.x,C.y,C.z,C.x,C.y,C.z);continue;case"2":n&&y[e(460)](d,0,d,1);continue;case"3":b+=2;continue;case"4":v[e(460)](o,0,o,1);continue;case"5":!s&&(S[e(460)](r[e(349)](b,2),r[e(362)](b,4),r[e(349)](b,3),r[e(374)](b,2),r[e(319)](b,3),r[e(362)](b,1)),m+=6);continue}break}}}const C=new Vector3;let _;if(r[i(422)](d,0))for(let k=0;r[i(356)](k,t[i(352)]);k++){const e=t[i(289)][k];if(r[i(366)](e[i(446)],d)){const n=t[i(289)][r[i(266)](k,1)];_=new g$n;const s=r[i(440)](r[i(254)](d,n[i(446)]),r[i(368)](e[i(446)],n[i(446)]));_[i(270)](n,e,s),r[i(425)](w,_);break}r[i(425)](w,e)}else _=t[i(289)][0];return o&&(_=_||t[i(289)][r[i(335)](t[i(352)],1)],r[i(425)](function(t){const e=i,a=t[e(361)],o=t.up,d=t[e(459)],p=r[e(423)](t[e(446)],u),f=r[e(264)](t[e(446)],h);r[e(392)](c,r[e(318)])?x[e(337)](d)[e(385)](r[e(358)](l,2)):x[e(332)](0,0,0),r[e(311)](c,r[e(365)])?M[e(337)](d)[e(385)](r[e(358)](-l,2)):M[e(332)](0,0,0),C[e(337)](a)[e(360)](r[e(300)](l,3)),x[e(379)](t[e(442)]),M[e(379)](t[e(442)]),C[e(379)](t[e(442)]),g[e(460)](M.x,M.y,M.z,x.x,x.y,x.z,C.x,C.y,C.z),A[e(460)](o.x,o.y,o.z,o.x,o.y,o.z,o.x,o.y,o.z),v[e(460)](p,r[e(291)](c,r[e(333)])?r[e(304)](c,r[e(365)])?-2:0:-.5,p,r[e(311)](c,r[e(333)])?r[e(391)](c,r[e(318)])?2:0:1.5,r[e(346)](p,1.5),r[e(344)](c,r[e(333)])?0:.5),n&&y[e(460)](f,r[e(267)](c,r[e(333)])?r[e(256)](c,r[e(365)])?-2:0:-.5,f,r[e(305)](c,r[e(333)])?r[e(311)](c,r[e(318)])?2:0:1.5,r[e(373)](f,r[e(264)](r[e(300)](1.5,s),h)),r[e(305)](c,r[e(333)])?0:.5),b+=3,S[e(460)](r[e(452)](b,1),r[e(303)](b,3),r[e(335)](b,2)),m+=3},_)),{totalDistance:h,position:g,normal:A,uv:v,uv2:y,indices:S,count:m}}const v$e=new Vector3,z$9=new Vector3,B$a=new Vector3,r$a=new Matrix4,w$8=new QuadraticBezierCurve3;function H$a(t,e,n,i,r,s){const a=M9,o={CyJrV:function(t,e){return t*e},OWEdl:function(t,e){return t/e},hGWNh:function(t,e){return t/e}},c=v$e[a(413)](e,t),l=z$9[a(413)](n,e),u=c[a(403)](),h=l[a(403)]();c[a(441)](),l[a(441)]();const d=Math[a(251)](o[a(387)](r?o[a(367)](u,2):u,.999999),i);s.v0[a(337)](e)[a(432)](c[a(385)](d)),s.v1[a(337)](e);const p=Math[a(251)](o[a(387)](o[a(457)](h,2),.999999),i);return s.v2[a(337)](e)[a(379)](l[a(385)](p)),s}class PathPointList{constructor(){__publicField(this,_x2),__publicField(this,_w);const t=M9;this[t(289)]=[],this[t(352)]=0}[(_x2=M9(289),_w=M9(352),M9(332))](t,e=.1,n=10,i=null,r=!1){const s=M9,a={gVIYg:function(t,e){return t<e},apSLZ:s(380),cUbPW:function(t,e){return t-e},UeFuo:function(t,e){return t<e},ATgQI:function(t,e){return t===e},YrlAn:function(t,e){return t+e},JhJjV:function(t,e){return t-e},PJvbW:function(t,e){return t+e}};if(t=t[s(462)](0),a[s(397)](t[s(403)],2))return console[s(455)](a[s(330)]),void(this[s(352)]=0);r&&!t[0][s(416)](t[a[s(443)](t[s(403)],1)])&&t[s(460)]((new Vector3)[s(337)](t[0]));for(let o=0,c=t[s(403)];a[s(296)](o,c);o++)if(a[s(323)](o,0))this[s(414)](t[o],t[a[s(313)](o,1)],i);else if(a[s(323)](o,a[s(377)](c,1)))if(r){this[s(447)](t[o],t[1],e,n,i);const r=this[s(289)][0][s(446)];this[s(289)][0][s(337)](this[s(289)][a[s(443)](this[s(352)],1)]),this[s(289)][0][s(446)]=r}else this[s(338)](t[o]);else this[s(447)](t[o],t[a[s(376)](o,1)],e,n,i)}[M9(430)](){const t=M9,e={ywmtk:function(t,e){return t>e},ysSlo:function(t,e){return t-e}};return e[t(261)](this[t(352)],0)?this[t(289)][e[t(415)](this[t(352)],1)][t(446)]:0}[M9(450)](t){const e=M9;return!this[e(289)][t]&&(this[e(289)][t]=new g$n),this[e(289)][t]}[M9(414)](t,e,n){const i=M9,r={Atjru:function(t,e){return t<e},yUFBQ:function(t,e){return t<e}};this[i(352)]=0;const s=this[i(450)](this[i(352)]);if(s[i(442)][i(337)](t),s[i(361)][i(413)](e,t),n)s.up[i(337)](n);else{let t=Number[i(451)];const e=Math[i(312)](s[i(361)].x),n=Math[i(312)](s[i(361)].y),a=Math[i(312)](s[i(361)].z);r[i(287)](e,t)&&(t=e,s.up[i(332)](1,0,0)),r[i(359)](n,t)&&(t=n,s.up[i(332)](0,1,0)),r[i(287)](a,t)&&s.up[i(332)](0,0,1)}s[i(459)][i(386)](s[i(361)],s.up)[i(441)](),s.up[i(386)](s[i(459)],s[i(361)])[i(441)](),s[i(446)]=0,s[i(297)]=1,s[i(281)]=!1,s[i(361)][i(441)](),this[i(352)]++}[M9(338)](t){const e=M9,n={FuoNH:function(t,e){return t-e},GeJSM:function(t,e){return t>e},tFOcx:function(t,e){return t+e}},i=this[e(289)][n[e(274)](this[e(352)],1)],r=this[e(450)](this[e(352)]);r[e(442)][e(337)](t),r[e(361)][e(413)](t,i[e(442)]);const s=r[e(361)][e(403)]();r[e(361)][e(441)](),r.up[e(337)](i.up);const a=v$e[e(386)](i[e(361)],r[e(361)]);if(n[e(436)](a[e(403)](),Number[e(381)])){a[e(441)]();const t=Math[e(260)](Math[e(251)](Math[e(378)](i[e(361)][e(370)](r[e(361)]),-1),1));r.up[e(429)](r$a[e(316)](a,t))}r[e(459)][e(386)](r[e(361)],r.up)[e(441)](),r[e(446)]=n[e(393)](i[e(446)],s),r[e(297)]=1,r[e(281)]=!1,this[e(352)]++}[M9(447)](t,e,n,i,r){const s=M9,a={uGmUN:function(t,e){return t>e},wNPKE:function(t,e){return t-e},UseyW:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},JwBJM:function(t,e){return t===e},QmEKd:function(t,e){return t<e},ZYOTi:function(t,e){return t+e}};if(a[s(252)](n,0)&&a[s(252)](i,0)){const o=this[s(289)][a[s(461)](this[s(352)],1)],c=a[s(308)](H$a,o[s(442)],t,e,n,a[s(276)](a[s(461)](this[s(352)],1),0),w$8)[s(279)](i);for(let t=0;a[s(384)](t,i);t++)this[s(298)](c[t],c[a[s(342)](t,1)],r,a[s(276)](t,0)?1:0);!c[i][s(416)](e)&&this[s(298)](c[i],e,r,2)}else this[s(298)](t,e,r,0,!0)}[M9(298)](t,e,n,i=0,r=!1){const s=M9,a={XaJuV:function(t,e){return t-e},AHJTf:function(t,e){return t===e},zdLtI:function(t,e){return t===e},jRMvv:function(t,e){return t===e},EQdpA:function(t,e){return t>e},bnYyk:function(t,e){return t+e},XYYka:function(t,e){return t/e},JwrKf:function(t,e){return t/e}},o=this[s(289)][a[s(334)](this[s(352)],1)],c=this[s(450)](this[s(352)]),l=v$e[s(413)](t,o[s(442)]),u=z$9[s(413)](e,t),h=l[s(403)]();if(l[s(441)](),u[s(441)](),c[s(442)][s(337)](t),a[s(364)](i,1)?c[s(361)][s(337)](l):a[s(396)](i,2)?c[s(361)][s(337)](u):(c[s(361)][s(293)](l,u),c[s(361)][s(441)]()),n)a[s(255)](c[s(361)][s(370)](n),1)?c[s(459)][s(386)](u,n)[s(441)]():c[s(459)][s(386)](c[s(361)],n)[s(441)](),c.up[s(386)](c[s(459)],c[s(361)])[s(441)]();else{c.up[s(337)](o.up);const t=B$a[s(386)](o[s(361)],c[s(361)]);if(a[s(277)](t[s(403)](),Number[s(381)])){t[s(441)]();const e=Math[s(260)](Math[s(251)](Math[s(378)](o[s(361)][s(370)](c[s(361)]),-1),1));c.up[s(429)](r$a[s(316)](t,e))}c[s(459)][s(386)](c[s(361)],c.up)[s(441)]()}c[s(446)]=a[s(345)](o[s(446)],h);const d=l[s(370)](u);c[s(297)]=Math[s(251)](a[s(420)](1,Math[s(284)](a[s(426)](a[s(345)](1,d),2))),1.415)||1,c[s(281)]=a[s(277)](Math[s(312)](a[s(334)](d,1)),.05)&&r,this[s(352)]++}}const S$3=m$F;function M$F(){const t=["minFilter","clientWidth","fill","FTnCR","JMEMb","dashSize","setIndex","TxhnN","4hWlXGR","BQsay","blue","#999","NaQep","viewchange","OnZZd","indexs","877779xHnQZK","22LSkhuE","VVxjT","points","beginPath","amap","sjKqx","width","getContext","GMGSV","options","AjNsf","lZFKt","EsgOy","QKwKz","PBHdP","navi","3|6|1|2|5|0|4","shadowOffsetX","qjVyt","repeat","RAFID","wrapT","wvzOw","addEventListener","glFSV","uniforms","computeLineDistances","clientHeight","createElement","1279660UueqRA","\n uniform sampler2D map;\n uniform vec3 color;\n uniform float resolution;\n uniform float xRepeat;\n uniform vec3 bgc;\n varying vec2 vUv;\n varying vec3 vPos;\n\n void main() {\n float localX = vUv.x * resolution /9.999;\n vec4 data = texture2D(map, vec2(vUv.x * xRepeat, vUv.y));\n vec3 texColor = data.rgb * color;\n\n // 混合贴图色与背景色(这里 0.7 可调整为你想要的混合权重)\n vec3 finalColor = data.rgb * color;\n if (data.a < 0.01) {\n // 如果贴图透明,显示背景色\n\n if (localX < 1.0 / 3.0 ) {\n // 左段用红色\n finalColor = vec3(0.5, 0.5, 0.5);\n } else if (localX < 2.0 / 3.0 ) {\n // 中段用贴图\n finalColor = vec3(0.0, 0.0, 1.0);\n } else if (localX <= 1.0 ) {\n // 中段用贴图\n finalColor = vec3(1.0, 0.0, 1.0);\n } else {\n // 右段用绿色\n finalColor = vec3(0.0, 1.0, 1.0);\n }\n // finalColor = bgc;\n } \n\n\n gl_FragColor = vec4(finalColor, 1.0);\n }\n ","dplMd","pxNGX","canvas","#fff","NypjT","update","154493BiNmLE","qKofJ","40NkBqQO","fillStyle","dashed","LksZA","XZqoK","needsUpdate","animate","roadLineWidth","kBvHW","zWPwY","push","vqVpd","YIThK","rGBEO","\n uniform float time;\n varying vec2 vUv;\n varying vec3 vPos;\n \n void main() {\n vUv = uv;\n vPos = position;\n // 原始位置处理(保持原有路径几何)\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ","reduce","frustumCulled","3146980KwEFnB","offset","resolution","renderer","setAttribute","RXyqL","isNavi","color","colors","6|0|5|1|4|2|3","red","xRepeat","5|2|4|1|3|6|0","closePath","XLJJj","Fzrxv","ZHQSA","gapSize","position","value","7494nKGvTI","globalAlpha","72423vnhsHF","ROeOF","length","raycast","status","287wbXqDV","white","set","transparent","dNjNZ","geometry","dispose","lineTo","_width","keepDashSize","setTexture2","image","map","isSimulate","shadowColor","handleResize","stopAnimation","getResolution","1858088wERxIR","updateLine","shadowOffsetY","height","setTexture","RovdY","fillRect","addLine","wrapS","assign","shadowBlur","removeEventListener","qvdXd","clearRect","resize","material","setPositions","off","euTyL","ptxkj","split","AOPSF","moveTo","domElement","wAcBD","toFixed"];return(M$F=function(){return t})()}function m$F(t,e){t-=207;return M$F()[t]}!function(t,e){const n=m$F,i=t();for(;;)try{if(272217===parseInt(n(252))/1*(parseInt(n(350))/2)+parseInt(n(214))/3+parseInt(n(316))/4+-parseInt(n(244))/5+parseInt(n(291))/6*(parseInt(n(298))/7)+-parseInt(n(254))/8*(-parseInt(n(293))/9)+-parseInt(n(271))/10*(parseInt(n(215))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$F);class FatLine extends Line2{constructor(t,e={},n){var i=(...t)=>(super(...t),__publicField(this,_y2),this);const r=m$F,s={sjKqx:r(283),rGBEO:r(208),vqVpd:r(330)},a=s[r(220)][r(336)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(251)]();continue;case"1":this[r(313)]=()=>{const t=r;this[t(331)][t(273)][t(300)](n[t(343)],n[t(242)])};continue;case"2":this[r(217)]=t;continue;case"3":this[r(313)]();continue;case"4":this[r(339)]=n;continue;case"5":i(new LineGeometry,new LineMaterial(Object[r(325)]({color:s[r(267)],linewidth:1,opacity:1,resolution:new Vector2},e)));continue;case"6":n[r(238)](s[r(265)],this[r(313)]);continue}break}}[(_y2=S$3(217),S$3(251))](t){const e=S$3;this[e(217)]=t||this[e(217)];const n=this[e(217)][e(269)]((t,n)=>(t[e(264)](n.x,n.y,n.z),t),[]);this[e(303)][e(332)](n),this[e(241)]()}[S$3(304)](){const t=S$3,e={XZqoK:t(330)};this[t(339)][t(327)](e[t(258)],this[t(313)]),super[t(304)]()}}class RoadLine extends Mesh{constructor(t,e={},n){const i=S$3,r={dplMd:i(248),ROeOF:function(t,e){return t===e},ptxkj:i(256)};super(),__publicField(this,_E),__publicField(this,_D),__publicField(this,_C),__publicField(this,_B),__publicField(this,_A),__publicField(this,_z2);const{bgc:s,color:a,width:o,style:c}=e;this[i(310)]=n,this[i(217)]=t,this[i(224)]=e,this[i(221)]=o||this[i(310)][i(224)][i(261)]||(ua.pc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(243)](r[i(246)]));l[i(342)]=LinearFilter,l[i(324)]=l[i(236)]=RepeatWrapping,l[i(234)].x=.3,this[i(331)]=new MeshBasicMaterial({transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,map:l}),r[i(294)](c,r[i(335)])?this[i(308)](s,a):this[i(320)](s,a),this[i(251)](),this[i(260)]()}[(_E=S$3(217),_D=S$3(310),_C=S$3(224),S$3(320))](t=S$3(208),e=S$3(281)){const n=S$3,i={kBvHW:function(t,e){return t*e},EsgOy:n(209),BQsay:function(t,e){return t-e}};let r=this[n(331)][n(310)][n(309)],s=r[n(222)]("2d");r[n(221)]=i[n(262)](256,3),r[n(319)]=256,s[n(329)](0,0,r[n(221)],r[n(319)]),s[n(255)]=i[n(227)],s[n(322)](0,0,r[n(221)],r[n(319)]),s[n(255)]=t,s[n(322)](0,30,r[n(221)],i[n(207)](r[n(319)],60)),s[n(218)](),s[n(338)](0,30),s[n(305)](70,30),s[n(305)](170,128),s[n(305)](70,226),s[n(305)](0,226),s[n(305)](100,128),s[n(284)](),s[n(255)]=e,s[n(344)](),this[n(331)][n(310)][n(259)]=!0}[S$3(308)](t=S$3(208),e=S$3(281)){const n=S$3,i={euTyL:function(t,e){return t*e},LksZA:n(249),glFSV:function(t,e){return t-e},AOPSF:function(t,e){return t+e},JMEMb:n(301)};let r=this[n(331)][n(310)][n(309)],s=r[n(222)]("2d");r[n(221)]=i[n(334)](256,3),r[n(319)]=256,s[n(312)]=i[n(257)],s[n(326)]=100,s[n(232)]=0,s[n(318)]=0,s[n(292)]=.01,s[n(329)](0,0,r[n(221)],r[n(319)]),s[n(255)]=t,s[n(322)](0,0,r[n(221)],r[n(319)]),s[n(255)]=t,s[n(322)](0,30,r[n(221)],i[n(239)](r[n(319)],60)),s[n(292)]=1;s[n(218)](),s[n(338)](0,30),s[n(305)](i[n(337)](70,350),30),s[n(305)](i[n(337)](170,350),128),s[n(305)](i[n(337)](70,350),226),s[n(305)](0,226),s[n(305)](100,128),s[n(284)](),s[n(255)]=t,s[n(344)](),s[n(312)]=i[n(346)],s[n(326)]=0,this[n(331)][n(310)][n(259)]=!0}[S$3(251)](t){const e=S$3,n={ZHQSA:e(280)}[e(287)][e(336)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(303)]&&this[e(303)][e(304)]();continue;case"1":s[e(300)](this[e(217)],.5,10,this.up,!1);continue;case"2":r[e(251)](s,{width:this[e(306)],arrow:!1});continue;case"3":this[e(303)]=r;continue;case"4":var r=new PathGeometry;continue;case"5":var s=new PathPointList;continue;case"6":t&&(this[e(217)]=t);continue}break}}[(_B=S$3(235),_A=S$3(306),_z2=S$3(221),S$3(260))](){var t;const e=S$3,n={qKofJ:function(t,e){return t(e)},TxhnN:function(t,e){return t*e},XLJJj:function(t,e){return t*e},QKwKz:function(t,e){return t!==e}};this[e(235)]=n[e(253)](requestAnimationFrame,()=>this[e(260)]()),this[e(310)][e(230)][e(297)][e(277)]||this[e(310)][e(230)][e(297)][e(311)]||(null==(t=this[e(224)])?void 0:t[e(314)])||(this[e(331)][e(310)][e(272)].x-=.01);let i=n[e(349)](n[e(285)](this[e(310)][e(219)][e(315)](),this[e(221)]),15);i=+i[e(341)](1),n[e(228)](this[e(306)],i)&&(this[e(306)]=i,this[e(251)]())}[S$3(304)](){const t=S$3;({Fzrxv:function(t,e){return t(e)}})[t(286)](cancelAnimationFrame,this[t(235)]),super[t(304)]()}}class PolygonLine extends Line2{constructor(t,e={},n){const i=S$3,r={RovdY:function(t,e){return t*e},NaQep:i(208),wvzOw:i(211)};let s=new LineMaterial(Object[i(325)]({color:r[i(210)],linewidth:1,opacity:1,transparent:!0,resolution:new Vector2},e));super(new LineGeometry,s),__publicField(this,_H),__publicField(this,_G),__publicField(this,_F),this[i(310)]=n,this[i(217)]=t,this[i(251)](),this[i(313)]=()=>{const t=i;s[t(273)][t(300)](n[t(274)][t(339)][t(343)],n[t(274)][t(339)][t(242)]),e[t(307)]&&(s[t(288)]=s[t(347)]=r[t(321)](n[t(219)][t(315)](),20))},this[i(313)](),n[i(219)].on(r[i(237)],this[i(313)])}[(_H=S$3(310),_G=S$3(217),_F=S$3(313),S$3(251))](t){const e=S$3;this[e(217)]=t||this[e(217)];const n=this[e(217)][e(269)]((t,n)=>(t[e(264)](n.x,n.y,n.z),t),[]);this[e(303)][e(332)](n),this[e(241)]()}[S$3(304)](){const t=S$3,e={pxNGX:t(211)};super[t(304)](),this[t(310)][t(219)][t(333)](e[t(247)],this[t(313)])}}class MultipleLine extends Line{constructor(){const t=S$3;super(new BufferGeometry,new MeshBasicMaterial({vertexColors:!0})),__publicField(this,_K,[]),__publicField(this,_J,[]),__publicField(this,_I,[]),this[t(270)]=!1}[(_K=S$3(217),_J=S$3(213),_I=S$3(279),S$3(323))](t,e,n){const i=S$3,r={PBHdP:function(t,e){return t/e}};let s=new Color(e);[...t,t[0]][i(310)](t=>{const e=i;this[e(213)][e(264)](r[e(229)](this[e(217)][e(295)],3)),this[e(217)][e(264)](t.x,t.y,n||t.z||0),this[e(279)][e(264)](s.r,s.g,s.b)}),this[i(213)][i(264)](65535)}[S$3(296)](){}[S$3(317)](){const t=S$3,e={wAcBD:t(289),YIThK:t(278)};this[t(303)][t(275)](e[t(340)],new Float32BufferAttribute(this[t(217)],3)),this[t(303)][t(275)](e[t(266)],new Float32BufferAttribute(this[t(279)],3)),this[t(303)][t(348)](new Uint16BufferAttribute(this[t(213)],1))}}class RoadLine2 extends Mesh{constructor(t,e={},n){const i=S$3,r={NypjT:i(248),qjVyt:i(299),qvdXd:i(208)};super(),__publicField(this,_Q),__publicField(this,_P),__publicField(this,_O,.3),__publicField(this,_N),__publicField(this,_M),__publicField(this,_L);const{bgc:s,color:a,width:o,style:c}=e;this[i(310)]=n,this[i(217)]=t,this[i(221)]=o||this[i(310)][i(224)][i(261)]||(isPc?.6:.4),this.up=new Vector3(0,0,1);const l=new Texture(document[i(243)](r[i(250)]));l[i(342)]=LinearFilter,l[i(324)]=l[i(236)]=RepeatWrapping,l[i(234)].x=this[i(282)],this[i(331)]=new ShaderMaterial({uniforms:{map:{value:l},lineLength:{value:1},xRepeat:{value:this[i(282)]},resolution:{value:1},color:{value:new Color(r[i(233)])},bgc:{value:new Color(r[i(328)])}},vertexShader:i(268),fragmentShader:i(245),transparent:!0,depthTest:!1,depthWrite:!1}),this[i(320)](),this[i(251)](),this[i(260)]()}[(_Q=S$3(217),_P=S$3(310),_O=S$3(282),S$3(320))](t=S$3(299)){const e=S$3,n={FTnCR:function(t,e){return t*e},lZFKt:e(209),VVxjT:function(t,e){return t-e}};let i=this[e(331)][e(240)][e(310)][e(290)][e(309)],r=i[e(222)]("2d");i[e(221)]=n[e(345)](256,2),i[e(319)]=256,r[e(329)](0,0,i[e(221)],i[e(319)]),r[e(255)]=n[e(226)],r[e(322)](0,0,i[e(221)],i[e(319)]),r[e(329)](0,30,i[e(221)],n[e(216)](i[e(319)],60)),r[e(218)](),r[e(338)](0,30),r[e(305)](70,30),r[e(305)](170,128),r[e(305)](70,226),r[e(305)](0,226),r[e(305)](100,128),r[e(284)](),r[e(255)]=t,r[e(344)](),this[e(331)][e(240)][e(310)][e(290)][e(259)]=!0}[S$3(251)](t){const e=S$3,n={RXyqL:e(231)}[e(276)][e(336)]("|");let i=0;for(;;){switch(n[i++]){case"0":s[e(251)](r,{width:this[e(306)],arrow:!1});continue;case"1":var r=new PathPointList;continue;case"2":r[e(300)](this[e(217)],.5,10,this.up,!1);continue;case"3":t&&(this[e(217)]=t);continue;case"4":this[e(303)]=s;continue;case"5":var s=new PathGeometry;continue;case"6":this[e(303)]&&this[e(303)][e(304)]();continue}break}}[(_N=S$3(235),_M=S$3(306),_L=S$3(221),S$3(260))](){const t=S$3,e={AjNsf:function(t,e){return t(e)},GMGSV:function(t,e){return t*e},OnZZd:function(t,e){return t*e},zWPwY:function(t,e){return t!==e}};this[t(235)]=e[t(225)](requestAnimationFrame,()=>this[t(260)]());let n=this[t(310)][t(219)][t(315)](),i=e[t(223)](e[t(212)](n,this[t(221)]),15);i=+i[t(341)](1),this[t(331)][t(240)][t(273)][t(290)]=n,e[t(263)](this[t(306)],i)&&(this[t(306)]=i,this[t(251)]())}[S$3(304)](){const t=S$3;({dNjNZ:function(t,e){return t(e)}})[t(302)](cancelAnimationFrame,this[t(235)]),super[t(304)]()}}function m$E(t,e){t-=121;return M$E()[t]}const a$1=m$E;!function(t,e){const n=m$E,i=t();for(;;)try{if(436950===parseInt(n(141))/1+parseInt(n(202))/2*(parseInt(n(210))/3)+parseInt(n(171))/4+parseInt(n(160))/5+-parseInt(n(164))/6+-parseInt(n(170))/7+-parseInt(n(169))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$E);let g$m=(_W=class extends Mesh{constructor(t,e={}){const n=a$1,i={RcJva:n(184),ktWqa:function(t,e){return t>e},fVxcm:function(t,e){return t===e},jiKjK:function(t,e){return t/e},yzZfK:function(t,e){return t+e},YrPAl:function(t,e){return t/e},UDdIm:function(t,e){return t+e},xbUxE:function(t,e){return t/e},LuyJx:function(t,e){return t+e},sdAAC:function(t,e){return t-e},iIQIS:function(t,e){return t===e},rllcU:function(t,e){return t!==e},BdfXb:n(214),nUIVL:function(t,e){return t!==e},OdIgK:function(t,e){return t!==e},vFOuz:n(193),KYNja:n(191),KaYAV:n(186),nwCDS:n(207)};super(t),__publicField(this,_V),__publicField(this,_U),__publicField(this,_T),__publicField(this,_R),this[n(151)]=!0,this[n(199)]=i[n(179)],this[n(129)]=!1,this[n(146)]=new PerspectiveCamera;const r=this,s=i[n(124)](e[n(186)],void 0)?new Color(e[n(186)]):new Color(8355711),a=e[n(172)]||512,o=e[n(180)]||512,c=e[n(128)]||0,l=e[n(155)]||_W[n(144)],u=i[n(203)](e[n(149)],void 0)?e[n(149)]:4,h=new Plane,d=new Vector3,p=new Vector3,f=new Vector3,m=new Matrix4,g=new Vector3(0,0,-1),A=new Vector4,v=new Vector3,y=new Vector3,S=new Vector4,b=new Matrix4,x=this[n(146)],M=new WebGLRenderTarget(a,o,{samples:u,type:HalfFloatType}),T=new ShaderMaterial({name:i[n(190)](l[n(126)],void 0)?l[n(126)]:i[n(161)],uniforms:UniformsUtils[n(145)](l[n(158)]),transparent:e[n(162)]||!1,fragmentShader:l[n(152)],vertexShader:l[n(156)]});T[n(158)][i[n(204)]][n(183)]=M[n(154)],T[n(158)][i[n(212)]][n(183)]=s,T[n(158)][i[n(121)]][n(183)]=e[n(184)]||1,T[n(158)][i[n(205)]][n(183)]=b,Object[n(150)](T,i[n(121)],{get:function(){const t=n;return T[t(158)][i[t(121)]][t(183)]},set:function(t){const e=n;T[e(158)][i[e(121)]][e(183)]=t}}),this[n(194)]=T,this[n(174)]=function(t,e,s){const a=n;p[a(201)](r[a(157)]),f[a(201)](s[a(157)]),m[a(142)](r[a(157)]),d[a(189)](0,0,1),d[a(215)](m),v[a(131)](p,f);const o=i[a(125)](v[a(206)](d),0);if(i[a(178)](o,!0)&&i[a(178)](this[a(129)],!1))return;v[a(147)](d)[a(168)](),v[a(181)](p),m[a(142)](s[a(157)]),g[a(189)](0,0,-1),g[a(215)](m),g[a(181)](f),y[a(131)](p,g),y[a(147)](d)[a(168)](),y[a(181)](p),x[a(176)][a(192)](v),x.up[a(189)](0,1,0),x.up[a(215)](m),x.up[a(147)](d),x[a(187)](y),x[a(167)]=s[a(167)],x[a(130)](),x[a(134)][a(192)](s[a(134)]),b[a(189)](.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b[a(159)](x[a(134)]),b[a(159)](x[a(136)]),b[a(159)](r[a(157)]),h[a(175)](d,p),h[a(215)](x[a(136)]),A[a(189)](h[a(200)].x,h[a(200)].y,h[a(200)].z,h[a(143)]);const l=x[a(134)];S.x=i[a(196)](i[a(123)](Math[a(133)](A.x),l[a(137)][8]),l[a(137)][0]),S.y=i[a(182)](i[a(211)](Math[a(133)](A.y),l[a(137)][9]),l[a(137)][5]),S.z=-1,S.w=i[a(135)](i[a(197)](1,l[a(137)][10]),l[a(137)][14]),A[a(213)](i[a(196)](2,A[a(206)](S))),l[a(137)][2]=A.x,l[a(137)][6]=A.y,l[a(137)][10]=i[a(132)](i[a(197)](A.z,1),c),l[a(137)][14]=A.w,r[a(148)]=!1;const u=t[a(188)](),T=t.xr[a(127)],I=t[a(153)][a(195)];t.xr[a(127)]=!1,t[a(153)][a(195)]=!1,t[a(198)](M),t[a(166)][a(177)][a(185)][a(138)](!0),i[a(122)](t[a(173)],!1)&&t[a(165)](),t[a(208)](e,x),t.xr[a(127)]=T,t[a(153)][a(195)]=I,t[a(198)](u);const R=s[a(163)];i[a(124)](R,void 0)&&t[a(166)][a(163)](R),r[a(148)]=!0,this[a(129)]=!1},this[n(188)]=function(){return M}}[(_V=a$1(151),_U=a$1(129),_T=a$1(146),_S=a$1(144),_R=a$1(188),a$1(140))](){const t=a$1;super[t(140)](),this[t(188)]()[t(140)]()}},__publicField(_W,_S),_W);function M$E(){const t=["state","far","negate","5904680iefeIP","2325729XErpFx","2701000cXxbrh","textureWidth","autoClear","onBeforeRender","setFromNormalAndCoplanarPoint","position","buffers","fVxcm","BdfXb","textureHeight","add","YrPAl","value","opacity","depth","color","lookAt","getRenderTarget","set","OdIgK","tDiffuse","copy","unspecified","material","autoUpdate","jiKjK","LuyJx","setRenderTarget","type","normal","setFromMatrixPosition","30946aViVLA","nUIVL","KYNja","nwCDS","dot","textureMatrix","render","\n\t\tuniform vec3 color;\n\t\tuniform float opacity;\n\t\tuniform sampler2D tDiffuse;\n\t\tvarying vec4 vUv;\n\n\t\t#include <logdepthbuf_pars_fragment>\n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <logdepthbuf_fragment>\n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), opacity );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <colorspace_fragment>\n\n\t\t}","33txjeiq","UDdIm","KaYAV","multiplyScalar","Reflector","applyMatrix4","RcJva","iIQIS","yzZfK","rllcU","ktWqa","name","enabled","clipBias","forceUpdate","updateMatrixWorld","subVectors","sdAAC","sign","projectionMatrix","xbUxE","matrixWorldInverse","elements","setMask","\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\t#include <common>\n\t\t#include <logdepthbuf_pars_vertex>\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t#include <logdepthbuf_vertex>\n\n\t\t}","dispose","532605IqTiDf","extractRotation","constant","ReflectorShader","clone","camera","reflect","visible","multisample","defineProperty","isReflector","fragmentShader","shadowMap","texture","shader","vertexShader","matrixWorld","uniforms","multiply","4061940QVAysQ","vFOuz","transparent","viewport","4098984LEhiRC","clear"];return(M$E=function(){return t})()}g$m[a$1(144)]={name:a$1(144),uniforms:{opacity:{value:1},color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:a$1(139),fragmentShader:a$1(209)};var c$1=m$D;function m$D(t,e){return t-=277,M$D()[t]}!function(t,e){for(var n=m$D,i=t();;)try{if(266361===-parseInt(n(283))/1*(-parseInt(n(286))/2)+parseInt(n(353))/3+parseInt(n(294))/4+-parseInt(n(337))/5+parseInt(n(305))/6+-parseInt(n(370))/7+parseInt(n(297))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$D);const g$l={};function l$e(t,e,n,i,r){var s=m$D;return[n,i,r,{gURkU:function(t,e){return t+e}}[s(293)](e,"px"),t][s(366)](" ")}function M$D(){var t=["reduce","FVmWS","gmTyB","ceXCA","oMnNg","UMzfK","textBaseline","389610rbzTYW","fontVariant","zaBxe","rgba(255,255,255,+0.005)","BwNod","font","_iconHeight","assign","left","3|0|5|2|4|6|1","src","fillText","prototype","fontStyle","greQq","measureText","anFAQ","alphabetic","fillRect","redraw","bgColor","getContext","strokeText","fillStyle","image","YFKyk","clearRect","_height","ZEZVx","UtiOP","wlNKu","addEventListener","1933735ucNepf","ijYJi","areaType","lineGap","TyvAi","crossOrigin","uarQm","#000","iconHeight","anonymous","then","sans-serif","needsRedraw","IarWv","hNFBb","UHavD","1341693dcXCWJ","Bjpcf","nmNOl","split","snyhZ","fTMOs","miterLimit","HVMgk","PgPET","textAlign","width","fill","createElement","join","nStOt","#fff","wkXwR","2788674FCEZjd","drawImage","UHwte","ZVnmF","emAxC","length","center","OKyvU","FKcLM","defineProperty","PyQTo","text","mlCPH","entries","map","fontWeight","IprQI","right","GgWem","strokeWidth","needsUpdate","normal","rXjFH","SKvpW","min","YiUrC","strokeStyle","textHeight","vVweP","max","roundRect","forEach","globalAlpha","padding","canvas","lineWidth","fontFamily","41nwzdcg","align","height","4498LVLjUD","fontSize","_width","_loadPromise","lines","textWidth","load","gURkU","368412ufStYI","KiMTS","aVdUd","2840096ksdfsF"];return(M$D=function(){return t})()}let v$d=class extends Texture{constructor(t={}){var e=m$D,n={vVweP:e(280),uarQm:e(376),snyhZ:e(368),wkXwR:e(348),PyQTo:function(t,e){return t*e},YiUrC:e(391),zaBxe:e(344),TyvAi:function(t,e){return t*e}};super(document[e(365)](n[e(398)]),void 0,void 0,void 0,LinearFilter,LinearMipmapLinearFilter),Object[e(312)](this,{_align:t[e(284)]||n[e(343)],_fillStyle:t[e(328)]||n[e(357)],_fontFamily:t[e(282)]||n[e(369)],_fontSize:n[e(380)](t[e(287)]?+t[e(287)]:16,devicePixelRatio),_fontStyle:t[e(318)]||n[e(395)],_fontVariant:t[e(306)]||n[e(395)],_fontWeight:t[e(385)]||n[e(395)],_lineGap:t[e(340)]||.15,_padding:t[e(279)]||.25,_strokeStyle:t[e(396)]||n[e(307)],_strokeWidth:t[e(389)]||0,_text:t[e(381)]||"",_src:t[e(315)]||null,_areaType:t[e(339)],_bgColor:t[e(325)],_iconHeight:t[e(345)],needsRedraw:!0}),this[e(345)]=n[e(341)](this[e(311)]||36,devicePixelRatio),this[e(324)]()}get[c$1(290)](){var t=c$1;return this[t(381)]?this[t(381)][t(356)]("\n"):[]}get[c$1(291)](){for(var t=c$1,e={oMnNg:t(314),gmTyB:t(280),YFKyk:function(t,e,n,i,r,s){return t(e,n,i,r,s)}},n=e[t(302)][t(356)]("|"),i=0;;){switch(n[i++]){case"0":var r=this[t(318)];continue;case"1":return 0;case"2":var s=this[t(385)];continue;case"3":var a=this[t(282)];continue;case"4":var o=this[t(290)];continue;case"5":var c=this[t(306)];continue;case"6":if(o[t(375)]){var l=document[t(365)](e[t(300)])[t(326)]("2d");return l[t(310)]=e[t(330)](l$e,a,1,r,c,s),o[t(384)](function(e){var n=t;return l[n(320)](e)[n(363)]})[t(298)](function(e,n){return Math[t(399)](e,n)})}continue}break}}get[c$1(397)](){var t=c$1,e={rXjFH:function(t,e){return t+e},greQq:function(t,e){return t*e},FKcLM:function(t,e){return t-e}},n=this[t(290)][t(375)];return n?e[t(392)](n,e[t(319)](this[t(340)],e[t(378)](n,1))):0}get[c$1(363)](){var t=c$1,e={nStOt:function(t,e){return t>e},BwNod:function(t,e){return t/e},ZEZVx:function(t,e){return t/e},GgWem:function(t,e){return t/e},KiMTS:function(t,e){return t+e},Bjpcf:function(t,e){return t*e}};if(!this[t(288)]){let{padding:n,strokeWidth:i,textWidth:r,text:s}=this;s&&(e[t(367)](e[t(309)](r,s[t(375)])?e[t(333)](r,s[t(375)]):1,1.5)&&(r=e[t(333)](r,8)),n+=e[t(388)](i,2),this[t(288)]=e[t(295)](e[t(354)](2,n),r))}return this[t(288)]}get[c$1(285)](){var t=c$1,e={OKyvU:function(t,e){return t+e},UHavD:function(t,e){return t*e},ZVnmF:function(t,e){return t+e},IarWv:function(t,e){return t/e},anFAQ:function(t,e){return t/e}};return!this[t(332)]&&(this[t(332)]=e[t(377)](e[t(377)](e[t(352)](2,e[t(373)](this[t(279)],e[t(350)](this[t(389)],2))),this[t(397)]),this[t(315)]?e[t(321)](this[t(345)],e[t(377)](e[t(373)](this[t(279)],this[t(389)]),this[t(287)])):0)),this[t(332)]}[c$1(324)](){var t=c$1,e={wlNKu:function(t,e){return t/e},IprQI:function(t,e){return t-e},UtiOP:function(t,e){return t>e},hNFBb:function(t,e){return t*e},SKvpW:function(t,e){return t+e},HVMgk:function(t){return t()},aVdUd:t(292),ijYJi:t(346),FVmWS:function(t,e,n,i,r,s){return t(e,n,i,r,s)},ceXCA:t(313),UMzfK:t(387),mlCPH:function(t,e){return t-e},UHwte:t(376),emAxC:t(322),fTMOs:function(t,e){return t/e},PgPET:t(308)};if(this[t(349)]){var n=this[t(329)];if(n){let{fontSize:S,height:b,width:x}=this;var i=n[t(326)]("2d");if(i[t(331)](0,0,n[t(363)],n[t(285)]),b*=S,(x*=S)&&b){var r,s=this[t(284)],a=this[t(328)],o=this[t(282)],c=this[t(318)],l=this[t(306)],u=this[t(385)],h=this[t(340)],d=this[t(290)],p=this[t(279)],f=this[t(396)],m=this[t(389)],g=this[t(315)],A=this[t(325)],v=0;if(n[t(363)]=x,n[t(285)]=A?e[t(351)](1.2,b):b,g){let n=g$l[g];v=this[t(345)];let r=()=>{var r=t;let s=e[r(335)](n[r(363)],n[r(285)]);i[r(371)](n,0,0,n[r(363)],n[r(285)],e[r(335)](e[r(386)](this[r(329)][r(363)],e[r(334)](s,1)?v:e[r(351)](v,s)),2),0,e[r(334)](s,1)?v:e[r(351)](v,s),e[r(334)](s,1)?e[r(335)](v,s):v),this[r(390)]=!0,v=Math[r(394)](e[r(351)](s,v),e[r(335)](v,s))};if(!n){n=new Image;let{promise:i,resolve:r}=e[t(360)](getPromise);n[t(289)]=i,n[t(336)](e[t(296)],r),n[t(342)]=e[t(338)],n[t(315)]=g,g$l[g]=n}n[t(289)][t(347)](r)}switch(p+=e[t(335)](m,2),m*=S,h*=S,p*=S,i[t(310)]=e[t(299)](l$e,o,S,c,l,u),s){case e[t(301)]:i[t(362)]=e[t(301)],r=p;break;case e[t(303)]:i[t(362)]=e[t(303)],r=e[t(382)](x,p);break;case e[t(372)]:i[t(362)]=e[t(372)],r=e[t(335)](x,2)}i[t(304)]=e[t(374)];var y=e[t(393)](e[t(393)](e[t(358)](p,2),S),v);A?(i[t(328)]=A,i[t(400)]&&i[t(400)](0,0,x,b,8),i[t(278)]=.7,i[t(364)]()):(i[t(328)]=e[t(361)],i[t(323)](0,0,x,b)),i[t(278)]=1,i[t(328)]=a,i[t(359)]=1,i[t(281)]=m,i[t(396)]=f,d[t(277)](function(n){var s=t;m&&i[s(327)](n,r,y),i[s(316)](n,r,y),y+=e[s(393)](S,h)})}else n[t(363)]=n[t(285)]=1;this[t(349)]=!1,this[t(390)]=!0}}}};Object[c$1(383)]({_align:c$1(284),_fillStyle:c$1(328),_fontFamily:c$1(282),_fontSize:c$1(287),_fontStyle:c$1(318),_fontVariant:c$1(306),_fontWeight:c$1(385),_lineGap:c$1(340),_padding:c$1(279),_strokeStyle:c$1(396),_strokeWidth:c$1(389),_text:c$1(381),_src:c$1(315),_bgColor:c$1(325),_areaType:c$1(339)})[c$1(277)](function(t){var e=c$1,n={nmNOl:function(t,e){return t!==e}},i=t[0],r=t[1];Object[e(379)](v$d[e(317)],r,{get:function(){return this[i]},set:function(t){var r=e;n[r(355)](this[i],t)&&(this[i]=t,this[r(349)]=!0)}})});const O$1=m$C;function M$C(){const t=["get","push","704072wlcaAM","magFilter","fontSize","src","handleMarkerCollision","48047QqiIOi","6YHqZPs","visible","24295092EIfyNh","_hide","129830hRyMwO","vmap","AFuHy","parent","map","dispose","set","markerCollisionPool","482400fhpAdt","bgColor","option","__hide","center","strokeStyle","inSight","7099036jKUCbY","material","MeQkS","markerPool","slice","VTLib","obwPu","isCollision","group","sizeRatio","text","hrBBQ","279zFrpXv","rYTRq","width","position","yOoVY","kdYAn","sort","15qxkDGh","amap","generateMipmaps","1284732cxGodc","8zpEakH","image","dZoqM","splice","minFilter","collision","zIndex","camera","onOKJ","height","fillStyle","indexOf","strokeWidth","cJWYJ","11RAGBXj"];return(M$C=function(){return t})()}let l$d;function m$C(t,e){t-=296;return M$C()[t]}!function(t,e){const n=m$C,i=t();for(;;)try{if(533903===-parseInt(n(330))/1*(-parseInt(n(331))/2)+-parseInt(n(304))/3*(-parseInt(n(325))/4)+-parseInt(n(343))/5+parseInt(n(307))/6+parseInt(n(350))/7*(parseInt(n(308))/8)+-parseInt(n(297))/9*(-parseInt(n(335))/10)+-parseInt(n(322))/11*(parseInt(n(333))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$C);const v$c=new Map;class TextSprite extends Sprite{constructor(t){const e=O$1,n={kdYAn:function(t,e){return t+e},onOKJ:function(t,e){return t+e},AFuHy:function(t,e){return t===e},yOoVY:function(t,e,n,i){return t(e,n,i)},MeQkS:function(t,e){return t(e)},rYTRq:function(t,e,n){return t(e,n)}};let i=n[e(302)](n[e(302)](n[e(316)](n[e(302)](n[e(316)](n[e(316)](t[e(360)],(t[e(328)]||"")[e(354)](-10)),t[e(344)]),t[e(318)]),t[e(327)]),t[e(348)]),t[e(320)]),r=v$c[e(323)](i);if(!r){let n=new v$d(t);isPc?(n[e(312)]=LinearMipMapLinearFilter,n[e(326)]=LinearFilter,n[e(306)]=!1):(n[e(312)]=LinearFilter,n[e(326)]=NearestFilter),r=new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,depthWrite:!1,map:n}),v$c[e(341)](i,r)}super(r),__publicField(this,__),__publicField(this,_Z),__publicField(this,_Y,!1),__publicField(this,_X),this[e(345)]=t,this[e(347)][e(341)](.5,t[e(328)]?.5:0),this[e(357)]=!!n[e(337)](this[e(345)][e(357)],void 0)||this[e(345)][e(357)],this[e(358)]=t[e(358)]||".",n[e(301)](setSize,this,1,t[e(336)][e(359)]),this[e(345)][e(336)][e(353)][e(324)](this),!this[e(345)][e(336)][e(342)][this[e(358)]]&&(this[e(345)][e(336)][e(342)][this[e(358)]]=new Collision),n[e(352)](clearTimeout,l$d),l$d=n[e(298)](setTimeout,()=>{const t=e;this[t(345)][t(336)][t(353)][t(303)]((e,n)=>n[t(345)][t(314)]-e[t(345)][t(314)]),this[t(345)][t(336)][t(329)]()},50),this[e(313)]()}get[(__=O$1(345),_Z=O$1(357),_Y=O$1(346),O$1(334))](){return this[O$1(346)]}set[O$1(334)](t){const e=O$1;this[e(346)]=t,{obwPu:function(t,e){return t===e}}[e(356)](!t,this[e(332)])||this[e(313)]()}[(_X=O$1(358),O$1(313))](){var t;const e=O$1,n={dZoqM:function(t,e,n,i){return t(e,n,i)},cJWYJ:function(t,e){return t-e},VTLib:function(t,e){return t*e},hrBBQ:function(t,e){return t-e}};if(this[e(334)])return void(this[e(332)]=!1);if(!this[e(357)]||!(null==(t=this[e(338)])?void 0:t[e(332)]))return;let i=n[e(310)](convert3dTo2d,this[e(300)],this[e(345)][e(336)][e(315)],{clientWidth:this[e(345)][e(336)][e(305)][e(299)],clientHeight:this[e(345)][e(336)][e(305)][e(317)]});if(!i[e(349)])return void(this[e(332)]=!1);let{pos:r}=i;const s=this[e(351)][e(339)][e(309)];let a=s[e(317)],o=s[e(299)],c=this[e(347)].x,l=this[e(347)].y,u={w:o/=devicePixelRatio,h:a/=devicePixelRatio,x:n[e(321)](r.x,n[e(355)](o,c)),y:n[e(296)](r.y,n[e(355)](a,n[e(321)](1,l)))},h=this[e(345)][e(336)][e(342)][this[e(358)]][e(324)](u);this[e(332)]=!h}[O$1(340)](){const t=O$1;this[t(345)][t(336)][t(353)][t(311)](this[t(345)][t(336)][t(353)][t(319)](this),1),super[t(340)]()}}function M$B(){const t=["distortionScale","ltTLt","depth","333FVySUN","vbBit","vxIEE","textureWidth","LnwvP","copy","onBeforeRender","projectionMatrix","name","WzfZK","MirrorShader","setFromNormalAndCoplanarPoint","textureMatrix","extractRotation","147EIESDm","matrixWorld","defineProperty","normal","textureHeight","clone","position","autoUpdate","state","84064AIbskH","eye","sunDirection","138KWMDif","pGnpU","waterNormals","opacity","\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tuniform float time;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n // varying vec4 lPosition;\n\n\t\t\t\t#include <common>\n\t\t\t\t#include <fog_pars_vertex>\n\t\t\t\t#include <shadowmap_pars_vertex>\n\t\t\t\t#include <logdepthbuf_pars_vertex>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tmirrorCoord = modelMatrix * vec4( position, 1.0 );\n\t\t\t\t\tworldPosition = mirrorCoord.xyzw;\n // lPosition = vec4(position, 1.0);\n\t\t\t\t\tmirrorCoord = textureMatrix * mirrorCoord;\n // mirrorCoord = textureMatrix * vec4(position, 1.0);\n\n\t\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n #include <beginnormal_vertex>\n #include <defaultnormal_vertex>\n #include <logdepthbuf_vertex>\n #include <fog_vertex>\n #include <shadowmap_vertex>\n\t\t\t}","15245aHURJo","buffers","add","applyMatrix4","surjt","pnqqf","viewport","set","multiply","PDtqc","lights","reflect","sCxQh","652944jXsdBg","cOAzu","\n\t\t\t\tuniform sampler2D mirrorSampler;\n\t\t\t\tuniform float alpha;\n\t\t\t\tuniform float time;\n\t\t\t\tuniform float size;\n\t\t\t\tuniform float distortionScale;\n\t\t\t\tuniform sampler2D normalSampler;\n\t\t\t\tuniform vec3 sunColor;\n\t\t\t\tuniform vec3 noiseXyz;\n\t\t\t\tuniform vec3 sunDirection;\n\t\t\t\tuniform vec3 eye;\n\t\t\t\tuniform vec3 waterColor;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n // varying vec4 lPosition;\n\n\t\t\t\tvec4 getNoise( vec2 uv ) {\n\t\t\t\t\tvec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);\n\t\t\t\t\tvec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );\n\t\t\t\t\tvec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );\n\t\t\t\t\tvec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );\n\t\t\t\t\tvec4 noise = texture2D( normalSampler, uv0 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv1 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv2 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv3 );\n\t\t\t\t\treturn noise * 0.5 - 1.0;\n\t\t\t\t}\n\n\t\t\t\tvoid sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {\n\t\t\t\t\tvec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );\n\t\t\t\t\tfloat direction = max( 0.0, dot( eyeDirection, reflection ) );\n\t\t\t\t\tspecularColor += pow( direction, shiny ) * sunColor * spec;\n\t\t\t\t\tdiffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;\n\t\t\t\t}\n\n\t\t\t\t#include <common>\n\t\t\t\t#include <packing>\n\t\t\t\t#include <bsdfs>\n\t\t\t\t#include <fog_pars_fragment>\n\t\t\t\t#include <logdepthbuf_pars_fragment>\n\t\t\t\t#include <lights_pars_begin>\n\t\t\t\t#include <shadowmap_pars_fragment>\n\t\t\t\t#include <shadowmask_pars_fragment>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include <logdepthbuf_fragment>\n\t\t\t\t\tvec4 noise = getNoise( worldPosition.xy * size );\n\t\t\t\t\t// vec4 noise = getNoise( lPosition.xy * size );\n\t\t\t\t\tvec3 surfaceNormal = normalize( noise.xyz * noiseXyz );\n\t\t\t\t\t// vec3 surfaceNormal = normalize( noise.xyz * vec3( 1.5, 1.0, 1.5) );\n\n\t\t\t\t\tvec3 diffuseLight = vec3(0.0);\n\t\t\t\t\tvec3 specularLight = vec3(0.0);\n\n\t\t\t\t\tvec3 worldToEye = eye-worldPosition.xyz;\n\t\t\t\t\tvec3 eyeDirection = normalize( worldToEye );\n\t\t\t\t\tsunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );\n\n\t\t\t\t\tfloat distance = length(worldToEye);\n\n\t\t\t\t\tvec2 distortion = surfaceNormal.xy * ( 0.001 + 1.0 / distance ) * distortionScale;\n\t\t\t\t\tvec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );\n\n\t\t\t\t\tfloat theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );\n\t\t\t\t\tfloat rf0 = 0.3;\n\t\t\t\t\tfloat reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );\n\t\t\t\t\tvec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;\n\t\t\t\t\tvec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);\n\t\t\t\t\tvec3 outgoingLight = albedo;\n\t\t\t\t\tgl_FragColor = vec4( outgoingLight, alpha );\n\n\t\t\t\t\t#include <tonemapping_fragment>\n\t\t\t\t\t#include <colorspace_fragment>\n\t\t\t\t\t#include <fog_fragment>\t\n\t\t\t\t}","mirrorSampler","value","bsLcK","jZvbc","hQCPv","66590iOpIfr","vertexShader","ecknt","dBRjG","texture","FJnRh","161381zrUgTp","shadowMap","time","sign","fragmentShader","setRenderTarget","autoClear","multiplyScalar","Peued","constant","lookAt","subVectors","PGGNu","aiuMA","1248xRKmQR","material","merge","isWater","negate","updateMatrixWorld","mUoVX","matrixWorldInverse","side","mZyAC","786166Bscrvi","far","pmOxp","JzsbX","alpha","1oTQzkM","sunColor","setMask","visible","normalSampler","cJobU","getRenderTarget","fog","waterColor","1024680eVHVGa","clear","render","vjTih","setFromMatrixPosition","clipBias","dot","uniforms","elements","enabled"];return(M$B=function(){return t})()}function m$B(t,e){t-=102;return M$B()[t]}!function(t,e){const n=m$B,i=t();for(;;)try{if(261959===parseInt(n(183))/1*(-parseInt(n(178))/2)+-parseInt(n(140))/3+-parseInt(n(192))/4+parseInt(n(127))/5*(parseInt(n(122))/6)+parseInt(n(110))/7*(-parseInt(n(119))/8)+parseInt(n(205))/9*(-parseInt(n(148))/10)+parseInt(n(154))/11*(parseInt(n(168))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$B);let g$k=class extends Mesh{constructor(t,e={}){const n=m$B,i={JzsbX:n(182),vbBit:n(156),hQCPv:function(t,e){return t/e},WzfZK:function(t,e){return t>e},bsLcK:function(t,e){return t+e},ecknt:function(t,e){return t+e},sCxQh:function(t,e){return t/e},surjt:function(t,e){return t-e},pGnpU:function(t,e){return t+e},mUoVX:function(t,e){return t===e},cOAzu:function(t,e){return t!==e},pnqqf:function(t,e){return t!==e},mZyAC:function(t,e){return t!==e},dBRjG:function(t,e){return t!==e},PGGNu:n(106),LnwvP:n(190),PDtqc:n(137),ltTLt:n(125),jZvbc:n(143),Peued:n(108),pmOxp:n(187),aiuMA:n(184),cJobU:n(191),FJnRh:n(121),vjTih:n(202),vxIEE:n(120)};super(t),this[n(171)]=!0;const r=i[n(141)](e[n(208)],void 0)?e[n(208)]:512,s=i[n(132)](e[n(114)],void 0)?e[n(114)]:512,a=i[n(141)](e[n(197)],void 0)?e[n(197)]:0,o=i[n(132)](e[n(182)],void 0)?e[n(182)]:1,c=i[n(141)](e[n(156)],void 0)?e[n(156)]:0,l=i[n(132)](e[n(124)],void 0)?e[n(124)]:null,u=i[n(132)](e[n(121)],void 0)?e[n(121)]:new Vector3(.70707,0,.70707),h=new Color(i[n(132)](e[n(184)],void 0)?e[n(184)]:16777215),d=new Color(i[n(141)](e[n(191)],void 0)?e[n(191)]:8355711),p=i[n(177)](e[n(120)],void 0)?e[n(120)]:new Vector3(0,0,0),f=i[n(151)](e[n(202)],void 0)?e[n(202)]:20,m=i[n(141)](e[n(176)],void 0)?e[n(176)]:FrontSide,g=!!i[n(151)](e[n(190)],void 0)&&e[n(190)],A=new Plane,v=new Vector3,y=new Vector3,S=new Vector3,b=new Matrix4,x=new Vector3(0,0,-1),M=new Vector4,T=new Vector3,I=new Vector3,R=new Vector4,E=new Matrix4,w=new PerspectiveCamera,C=new WebGLRenderTarget(r,s),_={name:i[n(166)],uniforms:UniformsUtils[n(170)]([UniformsLib[i[n(209)]],UniformsLib[i[n(136)]],{normalSampler:{value:null},mirrorSampler:{value:null},alpha:{value:1},time:{value:0},size:{value:1},distortionScale:{value:20},textureMatrix:{value:new Matrix4},sunColor:{value:new Color(8355711)},sunDirection:{value:new Vector3(.70707,.70707,0)},noiseXyz:{value:new Vector3(1.5,1.5,1)},eye:{value:new Vector3},waterColor:{value:new Color(5592405)}}]),vertexShader:n(126),fragmentShader:n(142)},k=new ShaderMaterial({name:_[n(104)],uniforms:UniformsUtils[n(115)](_[n(199)]),vertexShader:_[n(149)],fragmentShader:_[n(158)],lights:!0,side:m,fog:g});Object[n(112)](k,i[n(203)],{get:function(){const t=n;return k[t(199)][i[t(181)]][t(144)]},set:function(t){const e=n;k[e(199)][i[e(181)]][e(144)]=t}}),k[n(199)][i[n(146)]][n(144)]=C[n(152)],k[n(199)][i[n(162)]][n(144)]=E,k[n(199)][i[n(181)]][n(144)]=o,k[n(199)][i[n(206)]][n(144)]=c,k[n(199)][i[n(180)]][n(144)]=l,k[n(199)][i[n(167)]][n(144)]=h,k[n(199)][i[n(188)]][n(144)]=d,k[n(199)][i[n(153)]][n(144)]=u,k[n(199)][i[n(195)]][n(144)]=f,k[n(199)][i[n(207)]][n(144)]=p,this[n(169)]=k,this[n(102)]=function(t,e,r){const s=n;if(y[s(196)](this[s(111)]),S[s(196)](r[s(111)]),k[s(199)][i[s(206)]][s(144)]+=i[s(147)](1,240),b[s(109)](this[s(111)]),v[s(134)](0,0,1),v[s(130)](b),T[s(165)](y,S),i[s(105)](T[s(198)](v),0))return;T[s(138)](v)[s(172)](),T[s(129)](y),b[s(109)](r[s(111)]),x[s(134)](0,0,-1),x[s(130)](b),x[s(129)](S),I[s(165)](y,x),I[s(138)](v)[s(172)](),I[s(129)](y),w[s(116)][s(210)](T),w.up[s(134)](0,1,0),w.up[s(130)](b),w.up[s(138)](v),w[s(164)](I),w[s(179)]=r[s(179)],w[s(173)](),w[s(103)][s(210)](r[s(103)]),E[s(134)](.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),E[s(135)](w[s(103)]),E[s(135)](w[s(175)]),A[s(107)](v,y),A[s(130)](w[s(175)]),M[s(134)](A[s(113)].x,A[s(113)].y,A[s(113)].z,A[s(163)]);const o=w[s(103)];R.x=i[s(147)](i[s(145)](Math[s(157)](M.x),o[s(200)][8]),o[s(200)][0]),R.y=i[s(147)](i[s(150)](Math[s(157)](M.y),o[s(200)][9]),o[s(200)][5]),R.z=-1,R.w=i[s(147)](i[s(150)](1,o[s(200)][10]),o[s(200)][14]),M[s(161)](i[s(139)](2,M[s(198)](R))),o[s(200)][2]=M.x,o[s(200)][6]=M.y,o[s(200)][10]=i[s(131)](i[s(123)](M.z,1),a),o[s(200)][14]=M.w,p[s(196)](r[s(111)]);const c=t[s(189)](),l=t.xr[s(201)],u=t[s(155)][s(117)];this[s(186)]=!1,t.xr[s(201)]=!1,t[s(155)][s(117)]=!1,t[s(159)](C),t[s(118)][s(128)][s(204)][s(185)](!0),i[s(174)](t[s(160)],!1)&&t[s(193)](),t[s(194)](e,w),this[s(186)]=!0,t.xr[s(201)]=l,t[s(155)][s(117)]=u,t[s(159)](c);const h=r[s(133)];i[s(141)](h,void 0)&&t[s(118)][s(133)](h)}}};function m$A(t,e){t-=244;return M$A()[t]}function M$A(){const t=["101058QZedKP","NEiQt","1898792xPTVFN","52vNGgxH","1310YehuCS","4191099XDwcvQ","\n vPosition = position;\n vNormal = normalize(normalMatrix * normal);\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n ","replace","clone","227635nNorEH","483264FjRitH","301fxfVXW","setValues","fragmentShader","#include <common>","standard","vertexShader","assign","2499488JWZjaB","27wWgaBq","\n varying vec3 vPosition;\n varying vec2 vUv;\n uniform vec3 color;\n uniform vec3 colorA;\n uniform vec3 colorB;\n #include <common>\n ","501853IEAFom","uniforms","\nvarying vec3 vPosition;\nvarying vec2 vUv;\n#include <common>\n ","\n float ct = 1.9;\n float pw = 15.0;\n\n float gradient = smoothstep(-1.0, 0.6, vPosition.z); // (vPosition.z + 0.7);\n float flow = tan(gradient * 1.0);\n vec3 finalColor = mix(colorA, colorB, flow);\n\n\n float intensity = pow(abs((vUv.x - 0.5) * ct), pw) \n + pow(abs((vUv.y - 0.5) * ct), pw);\n\n vec3 highlightedColor = finalColor + intensity * finalColor ;\n gl_FragColor = vec4(highlightedColor, 0.98);\n}\n "];return(M$A=function(){return t})()}!function(t,e){const n=m$A,i=t();for(;;)try{if(818425===-parseInt(n(259))/1+-parseInt(n(267))/2+-parseInt(n(254))/3+parseInt(n(252))/4*(-parseInt(n(258))/5)+-parseInt(n(249))/6*(parseInt(n(260))/7)+-parseInt(n(251))/8*(parseInt(n(268))/9)+parseInt(n(253))/10*(parseInt(n(245))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$A);class StandardShaderMaterial extends ShaderMaterial{constructor(t={}){const e=m$A,n={NEiQt:e(263)},i=ShaderLib[e(264)],r=UniformsUtils[e(257)](i[e(246)]),{uniforms:s,...a}=t;Object[e(266)](r,s);let o=i[e(265)][e(256)](n[e(250)],e(247));o=o[e(256)]("}",e(255));let c=i[e(262)][e(256)](n[e(250)],e(244));c=c[e(256)]("}",e(248)),super({vertexShader:o,fragmentShader:c,uniforms:r,lights:!0,transparent:!0}),this[e(261)](a)}}const x$1=m$z;!function(t,e){const n=m$z,i=t();for(;;)try{if(320768===-parseInt(n(528))/1+parseInt(n(305))/2*(parseInt(n(241))/3)+parseInt(n(420))/4*(-parseInt(n(307))/5)+-parseInt(n(235))/6+parseInt(n(567))/7*(-parseInt(n(185))/8)+-parseInt(n(612))/9*(-parseInt(n(446))/10)+-parseInt(n(444))/11*(-parseInt(n(272))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$z);const z$8={};let B$9={};console[x$1(532)](x$1(311),B$9);const r$9={};let w$7=new Clock,H$9=[];function o$8(){const t=x$1;({iiEai:function(t,e){return t(e)}})[t(229)](requestAnimationFrame,o$8),H$9[t(250)]&&H$9[t(287)](e=>e[t(593)](w$7[t(450)]()))}function M$z(){const t=["sideMapSize","#ccc","polygonLoaded","polygonDataArr","src","addModel","rotateAround","zufIt","jMDph","instanceArr","JQcVu","beaconData","sourceColor","kwOlx","OqFBL","floorId","circleInstanceMesh","DdLDi","mKFEu","zqBmA","tpMRF","receiveShadow","text","eecnq","options","values","intersectObjectsBy2D","set","fromEntries","QQTkC","block","topMapMoveY","blue","emit","GGumR","ids","pathOptions","POrhz","#555","intersectObjectsByLine","XqKBW","ssKSs","topLogo","addNaviLine","tZvSU","jPSGv","modelGroup","mat","addLine","700","geo","#666","TBlgQ","polygonGroup","OXEwv","1716622714522963968","minFilter","themeColor","computeBVH","EditMarker","addLogo","hikPd","Xssuo","NUUhG","yRlfo","traverse","round","IsdUN","cornerRadius","3968SGCyLk","_click","hSPdN","isWater","modelLayer","flat","onBeforeRender","xpdXt","Jaxue","bWtZr","qWqnc","areaZoom","removeFloorTitle","JXnyk","removeNaviLine","hjcuM","center","topMapMoveX","qEAKa","topLogoScale","material","drmXB","includes","bgc","10674246XNsCxc","#049EF4","10110XNMhml","rotation","addEventListener","VYEjy","getDelta","removeFromParent","mirrorRes","sideMap","some","EJAYT","amap","floorTitle","__colorSpace","updateMatrix","weVmA","status","WRhLM","interact","multipleLine","arr","createPolygonGeometry","removeCustomMarker","ayeBK","geometry","FjcVG","hbmXx","grIUE","navi","copy","geos","isPass","Uatvd","car","initLanguageListener","isMesh","parent","setZ","manCar","cornerSplit","texList","topLogoRotation","parentArea","scene","domElement","rwhVG","uKwEe","bvjOt","JeIcS","bottom","xjDmQ","instanceType","translate","dashScale","UTAzF","DnWIK","wrapS","object","colorMap","points","UhssK","_debugPathGroup","ZHjwb","initModel","initPolgon","zovLV","sideMapRotation","addFloorTitle","isInstanceEntity","clipAction","naviLine","findByName","naturalWidth","opacity","bJkLP","count","FCyAj","modelData","stopRender","YqckB","forEach","sans-serif","load","353159GWqslM","language","lMhdY","createMirror","log","fontWeight","OvVaH","topMapRotation","$language","kRmSa","isModel","circle","path","addInstances","yGcLA","dMHDG","add","areaPolygon","bFjgP","LRGnp","height","targetColor","AfHeA","floor","setFromPoints","TmCVh","markerLayer","mITRA","hide","tGkrd","ENTtx","HxcHy","show","pjxWY","ESpKN","polygon-","XemgW","color","linewidth","198471SLUtuV","GwWzG","sub","children","rIsfv","addDomMarker","RlsdG","nutZW","width","createGlowPolygon","#fff","buildId","iTkDn","nrlrH","type","OZMBm","MKMrD","getDrawingBufferSize","dispose","lowPower","ayGTW","toArray","CsAIP","polygon","JNZyw","kRkIV","update","viewchange","MxjGp","addBeacon","hidePolygon","_noClick","floorModelAllLoaded","IgtIe","push","eaehQ","initMarker","addBgi","multiplyScalar","dWNXb","fgUiZ","GkfYN","filter","faceline","scale","963IDQJBS","LvoKP","repeat","createShapeGeo","tilecolorReplace","KUvqH","uMmmt","beacon","debugBeacon","customMarkerData","hideName","#7f7f7f","naturalHeight","customNaviLine","rect","addFaceLine","dashed","polygonData","mapId","fQEcR","oWvVl","name","awVJi","facelineType","clone","5|0|2|3|4|1","visible","createFaceLine","MMthj","bXhHs","8JkrKPP","find","#ff994a","VTebn","isReplaceAllColor","image","addMarker","XRzsI","frustumCulled","GgeCV","isMirror","plane","6|3|0|7|9|5|8|2|1|4","#477df5","GUVcX","instanceScale","sizeRatio","topMap","topMapSize","depthWrite","tUGeD","updateLine","lHDqU","clientWidth","BOpVG","transparent","IlQQv","LOsHT","AZRti","worldUnits","QLGHS","isaEH","EXiXm","lfKzt","NZHwm","7|3|9|5|6|4|1|2|8|0|10","VoPrq","cGCGQ","instances","createPolygon","markerGroup","depthTest","getZoom","renderer","iiEai","areaPolygonGroup","mapData","iKhma","polygons","#cccccc","2361954oePYWx","data","GiIqo","markCount","DWUOH","rectInstanceMesh","960pNYjZk","UbOis","huIIx","fontSize","getMarkerById","bbwbu","floorHeight","intersectArea","number","length","fontColor","point","__hide","style","omShU","clientHeight","isShowBaseColor","loadAsync","toString","🚀 ~ bgi.url:","ROAhj","_model","man","addEditMarker","userData","castShadow","zIndex","line","topLineColor","PhkSG","position","12odfVOF","build","#FFFFFF","addLocationPoint","TioEw","object3d","generateMipmaps","toUpperCase","jwdEe","customMarker","addCustomMarker","shadow","bgi","createWater","computeBoundsTree","map","fog","BtOmq","play","routeGroup","lwdrs","enableDistanceDetect","UsAqz","replaceColorMap","evacuate","getPolygonDataById","https://","mapObject","rotateZ","keepDashSize","polygonLayer","glowShader","removeAllCustomMarker","3004HyWKBE","GsElh","2335kxRNid","rsVEa","instanceRotation","areaSpriteGroup","TCL: geo","languageChanged","HarBd","RNMId","getModelById","1716622714522963969","renderOrder","GdVda","iqBEm","EQdUf","toFixed","ikFWm","route","xwnRp","PIwOr","eRywW","qKIqC","fontIcon","polygonType","addCustomNaviLine","getPolygonById","split","url","PzGVK","SBwSC","tpvKv","createLine","BOIlW","MxIUu","NpeGt","BTdDy","addPolygon","XzEHX","Vezbr","offset","getPointsFit","wrapT","extrasMaterial","debugPath","topLogoOffset"];return(M$z=function(){return t})()}function F$8(t=30){const e=x$1,n={eecnq:function(t,e){return t*e},MMthj:function(t,e){return t/e},GdVda:function(t,e){return t<e}};let i=[],r=n[e(374)](n[e(183)](360,t),DEG2RAD),s=new Vector2(0,0),a=new Vector2(1,0);for(let o=0;n[e(318)](o,t);o++){let t=a[e(179)]()[e(357)](s,n[e(374)](o,r));i[e(601)](new Vector3(t.x,t.y,0))}return i}function m$z(t,e){t-=176;return M$z()[t]}function k$8(t,e,n){const i=x$1,r=new AnimationMixer(t),s=AnimationClip[i(516)](e,n);if(r[i(262)]=t,s){r[i(514)](s)[i(290)]()}return r}o$8();let P$6=class extends g$q{constructor(t,e){var n,i,r;const s=x$1,a={Vezbr:function(t,e){return t===e},hikPd:s(316),GUVcX:s(406),RNMId:function(t,e){return t===e},NpeGt:function(t,e){return t!==e},yGcLA:function(t,e){return t+e},lMhdY:s(551),kwOlx:function(t){return t()},BtOmq:s(394),XqKBW:s(434),ayGTW:s(275),DdLDi:s(304),PhkSG:s(282),NUUhG:s(467)};super(),__publicField(this,_sa),__publicField(this,_ra),__publicField(this,_qa),__publicField(this,_pa),__publicField(this,_oa),__publicField(this,_na,{}),__publicField(this,_ma,{}),__publicField(this,_la,{}),__publicField(this,_ka,{}),__publicField(this,_ja,!0),__publicField(this,_ia),__publicField(this,_ha),__publicField(this,_ga),__publicField(this,_fa),__publicField(this,_ea,{[CrossType[x$1(381)]]:0,[CrossType[x$1(478)]]:255,[CrossType[x$1(263)]]:65280,[CrossType[x$1(483)]]:16711680}),__publicField(this,_da),__publicField(this,_ca,new Object3D),__publicField(this,_ba,new Object3D),__publicField(this,_aa,0),__publicField(this,_$,new Object3D),this[s(236)]=t,this[s(277)]=new Group$1,this[s(277)][s(265)][s(299)]=this,this[s(277)][s(176)]=a[s(530)],this[s(287)]=e,this[s(295)]=Object[s(379)]((null==(r=null==(i=null==(n=null==e?void 0:e[s(231)])?void 0:n[s(375)])?void 0:i[s(616)])?void 0:r[s(287)](t=>{var e;return[null==(e=t[s(363)])?void 0:e[s(279)](),t[s(549)]]}))??[]);let o=this[s(287)][s(375)][s(586)]?new MeshBasicMaterial({transparent:!0,alphaTest:.1}):[new(this[s(287)][s(283)]?MeshStandardMaterial:MeshBasicMaterial)({transparent:!0,alphaTest:.1}),new MeshStandardMaterial({transparent:!0,alphaTest:.1})];this[s(240)]=new d$1(this[s(466)]({points:[{x:.5,y:.5,z:0},{x:.5,y:-.5,z:0},{x:-.5,y:-.5,z:0},{x:-.5,y:.5,z:0}],height:1}),o,{createEntities:!0,renderer:e[s(228)]}),this[s(240)][s(421)]=!0,this[s(367)]=new d$1(this[s(466)]({points:a[s(364)](F$8),height:1}),o,{createEntities:!0,renderer:e[s(228)]}),this[s(367)][s(421)]=!0,this[s(367)][s(317)]=this[s(240)][s(317)]=t[s(247)]||0,this[s(367)][s(193)]=this[s(240)][s(193)]=!1,this[s(240)][s(409)](),this[s(367)][s(409)](),this[s(277)][s(544)](this[s(240)],this[s(367)]),this[s(464)]=new MultipleLine,this[s(277)][s(544)](this[s(464)]),this[s(509)](t),this[s(603)](t),this[s(508)](t),(!debug||!this[s(287)][s(375)][s(586)])&&this[s(604)](),this[s(596)](),debug&&this[s(349)](),this[s(394)](),this[s(282)](),this[s(236)][s(481)]&&this[s(512)](),this[s(479)](),this[s(287)].on(a[s(289)],()=>{const t=s;(a[t(344)](this[t(287)][t(231)][t(630)],a[t(412)])||a[t(344)](this[t(287)][t(231)][t(630)],a[t(199)]))&&(this[t(277)][t(181)]=!0),this[t(394)]()}),this[s(287)].on(a[s(391)],()=>{var t;const e=s;(a[e(314)](this[e(287)][e(231)][e(630)],a[e(412)])||a[e(314)](this[e(287)][e(231)][e(630)],a[e(199)]))&&(this[e(277)][e(181)]=!0),null==(t=this[e(515)])||t[e(585)]()}),this[s(287)].on(a[s(587)],({floorId:t,marker:e})=>{const n=s;a[n(344)](t,this[n(236)].id)&&a[n(340)](e[n(481)],this[n(277)])&&(this[n(277)][n(544)](e),e[n(317)]=a[n(542)](this[n(236)][n(247)],1))}),this[s(287)].on(a[s(368)],()=>{this[s(304)]()}),this[s(287)].on(a[s(270)],()=>{this[s(282)]()}),this[s(287)].on(a[s(414)],t=>{this[s(467)](t)})}[(_sa=x$1(236),_ra=x$1(284),_qa=x$1(240),_pa=x$1(367),_oa=x$1(464),_na=x$1(295),x$1(479))](){const t=x$1,e={TBlgQ:t(312)};window[t(448)](e[t(403)],e=>{this[t(603)]()})}[(_ma=x$1(230),_la=x$1(310),_ka=x$1(545),_ja=x$1(293),x$1(248))](){const t=x$1,e={TioEw:function(t,e,n){return t(e,n)},hjcuM:function(t,e,n,i){return t(e,n,i)},LvoKP:function(t,e){return t/e},iqBEm:function(t,e){return t/e},PIwOr:function(t){return t()},QQTkC:function(t,e){return t!==e},GwWzG:function(t,e){return t<=e},BTdDy:t(594),KUvqH:function(t){return t()}};let n=new Vector3(0,0,-1),i=()=>{const i=t,r={lfKzt:function(t,n){return e[m$z(380)](t,n)},CsAIP:function(t,n){return e[m$z(568)](t,n)},Xssuo:function(t,n,i,r){return e[m$z(435)](t,n,i,r)}};if(!this[i(277)][i(181)]||!this[i(277)][i(481)]||!this[i(293)])return;this[i(293)]=!1;const s=()=>{var t;const s=i,a={OqFBL:function(t,n,i){return e[m$z(276)](t,n,i)},ZHjwb:function(t,n,i,r){return e[m$z(435)](t,n,i,r)}};let o=Object[s(376)](this[s(545)]),c=e[s(613)](this[s(287)][s(228)][s(489)][s(208)],2),l=e[s(319)](this[s(287)][s(228)][s(489)][s(256)],2);const u=(t,e,n)=>{var i,a;const o=s;n=r[o(218)](n,void 0)?n:r[o(589)](t[o(431)],this[o(287)][o(456)][o(227)]());let c=this[o(230)][t.id];c&&(c[o(181)]=n,c[o(360)][o(287)](t=>{const e=o;t[e(181)]=n,t[e(459)]()}));let l=this[o(310)][t.id];l&&(l[o(181)]=n),e[o(181)]=!n,e[o(421)]=!n;const u=this[o(245)](null==(a=null==(i=e[o(265)])?void 0:i[o(629)])?void 0:a.id);u&&(u[o(181)]=!n,u[o(253)]=n)};o[s(287)](t=>{const e=s;r[e(413)](u,t[e(265)][e(629)],t,!1)});let h=this[s(287)][s(463)][s(390)](this[s(287)][s(463)][s(377)]({x:c,y:l},[this[s(287)][s(463)][s(196)]])[0][s(252)][s(482)](1e3),n,o)[0],d=null==h?void 0:h[s(502)][s(265)][s(629)];if(d&&e[s(276)](u,d,h[s(502)]),this[s(287)][s(473)][s(461)][s(323)][s(250)]){let e=null==(t=this[s(287)][s(473)])?void 0:t[s(461)][s(323)][s(609)](t=>t[s(551)].id===this[s(236)].id)[s(287)](t=>t[s(252)]);o[s(287)](t=>{const n=s,i={grIUE:function(t,e,n){return a[m$z(365)](t,e,n)}};if(e[n(186)](e=>{const r=n;return i[r(472)](pointInPolygon,e,t[r(265)][r(629)][r(504)])})){let e=t[n(265)][n(629)];a[n(507)](u,e,t,!0)}})}};e[i(325)](s),e[i(276)](setTimeout,()=>{const t=i;this[t(293)]=!0,e[t(325)](s)},300)};this[t(287)][t(456)].on(e[t(341)],i),e[t(617)](i)}async[x$1(604)](){const t=x$1,e={dWNXb:t(260),QLGHS:function(t,e){return t*e},omShU:function(t,e){return t/e},mITRA:function(t,e){return t-e},AZRti:t(284)},{bgi:n}=this[t(236)];if(!n||!n[t(333)]||!n[t(560)])return;let i=100;const r=await texureLoader[t(258)](n[t(333)]);console[t(532)](e[t(606)],n[t(333)]),r[t(278)]=!0;const{image:s}=r;i=e[t(215)](e[t(255)](s[t(624)],s[t(517)]),100);const a=new(this[t(287)][t(283)]?MeshStandardMaterial:MeshBasicMaterial)({map:r,transparent:!0,depthWrite:!1,opacity:n[t(518)]}),o=new PlaneGeometry(100,i),c=new Mesh(o,a);this[t(277)][t(544)](c),this[t(284)]=c,n[t(271)]&&c[t(271)][t(474)](n[t(271)]),c[t(447)].z=n[t(447)]||0,n[t(611)]&&c[t(611)][t(605)](n[t(611)]),c[t(317)]=e[t(555)](this[t(236)][t(247)],1),c[t(265)][t(236)]=this[t(236)],c[t(176)]=e[t(213)],c[t(598)]=!0,this[t(287)][t(283)]&&(c[t(372)]=!0)}[(_ia=x$1(515),x$1(394))](){var t,e,n,i;const r=x$1,s={GgeCV:r(234),rIsfv:r(198),xjDmQ:r(577),MxjGp:function(t,e){return t+e},MKMrD:function(t,e){return t===e},qEAKa:r(316),JNZyw:r(406)};if(s[r(583)](this[r(287)][r(231)][r(630)],s[r(438)])||s[r(583)](this[r(287)][r(231)][r(630)],s[r(591)])){let e=null==(t=this[r(287)][r(473)])?void 0:t[r(461)][r(323)];!(null==e?void 0:e[r(250)])&&(this[r(277)][r(181)]=!0)}null==(e=this[r(515)])||e[r(585)](),this[r(515)]=new Group$1,null==(i=null==(n=this[r(287)][r(473)])?void 0:n[r(461)][r(291)][this[r(236)].id])||i[r(287)](t=>{var e,n;const i=r;let a=new RoadLine(t[i(287)](t=>new Vector3(t[i(252)].x,t[i(252)].y,0)),{bgc:t[0][i(476)]?s[i(194)]:(null==(e=this[i(287)][i(375)][i(387)])?void 0:e[i(443)])||s[i(571)],color:s[i(495)],style:(null==(n=this[i(287)][i(375)][i(387)])?void 0:n[i(254)])||""},this[i(287)]);a[i(317)]=s[i(595)](t[0][i(551)][i(247)],1),this[i(515)][i(544)](a)}),this[r(277)][r(544)](this[r(515)])}[(_ha=x$1(457),x$1(512))](t=!1){var e;const n=x$1,i={tpMRF:n(400),yRlfo:n(274),eaehQ:n(187),isaEH:n(383),uKwEe:function(t,e){return t+e}};null==(e=this[n(457)])||e[n(585)]();let r=this[n(457)]=new TextSprite({text:this[n(236)][n(176)],vmap:this[n(287)],isCollision:!1,zIndex:999,fontWeight:i[n(371)],lineGap:.25,...t?{fontSize:22,fillStyle:i[n(415)],strokeStyle:i[n(415)],bgColor:i[n(602)]}:{fontSize:18,strokeWidth:.15,fillStyle:i[n(216)],strokeStyle:i[n(415)]}});const{position:s}=this[n(287)][n(346)](this[n(236)][n(629)][n(287)](t=>t[n(504)])[n(425)]());s.z+=2,r[n(271)][n(474)](s),r[n(317)]=i[n(491)](this[n(236)][n(247)],3),r[n(598)]=!0,this[n(277)][n(544)](r)}[x$1(432)](){var t;const e=x$1;null==(t=this[e(457)])||t[e(585)]()}[(_ga=x$1(625),x$1(330))](t,e){const n=x$1,i={XemgW:n(198),JXnyk:n(577),tUGeD:function(t,e){return t+e}};!this[n(625)]&&(this[n(625)]=new Group$1,this[n(277)][n(544)](this[n(625)]));let r=new RoadLine(t[n(287)](t=>new Vector3(t.x,t.y,0)),{...e,bgc:e[n(443)]??i[n(564)],color:e[n(565)]??i[n(433)],style:e[n(254)]??"",width:e[n(575)]??void 0},this[n(287)]);return r[n(317)]=e[n(317)]||i[n(205)](this[n(236)][n(247)],1),this[n(625)][n(544)](r),r}[x$1(191)](t){const e=x$1,n={ESpKN:function(t,e,n,i){return t(e,n,i)}};!this[e(281)]&&(this[e(281)]=new Group$1,this[e(277)][e(544)](this[e(281)]));let i={group:this[e(236)].id,...t,vmap:this[e(287)]},r=i[e(373)]?new TextSprite(i):new Sprite(new SpriteMaterial({map:texureLoader[e(527)](i[e(355)],()=>{const t=e;n[t(562)](setSize,r,i[t(611)]||1,this[t(287)][t(201)])}),sizeAttenuation:!1,depthTest:!1,transparent:!0}));return r[e(440)][e(287)]&&(r[e(440)][e(287)][e(407)]=LinearFilter),r[e(436)][e(378)](.5,0),i[e(611)]&&r[e(611)][e(605)](i[e(611)]),i[e(271)]&&r[e(271)][e(474)](i[e(271)]),r[e(317)]=i[e(317)]||0,r[e(265)][e(236)]=i,this[e(281)][e(544)](r),r}[x$1(572)](t){const e=x$1;!this[e(281)]&&(this[e(281)]=new Group$1,this[e(277)][e(544)](this[e(281)]));const n=new CSS2DObject(t);return n[e(436)][e(378)](.5,.5),this[e(281)][e(544)](n),n}[(_fa=x$1(281),x$1(282))](){const t=x$1,e={bXhHs:function(t,e,n,i){return t(e,n,i)}};this[t(236)][t(621)]&&(!this[t(281)]&&(this[t(281)]=new Group$1,this[t(277)][t(544)](this[t(281)])),this[t(236)][t(621)][t(287)](n=>{const i=t,r={DnWIK:function(t,n,i,r){return e[m$z(184)](t,n,i,r)}};if((n[i(355)]||n[i(373)])&&!this[i(281)][i(570)][i(186)](t=>t[i(265)][i(236)].id===n.id)){let t={group:this[i(236)].id,...n,vmap:this[i(287)]},e=t[i(373)]?new TextSprite(t):new Sprite(new SpriteMaterial({map:texureLoader[i(527)](t[i(355)],()=>{const n=i;r[n(500)](setSize,e,t[n(611)]||1,this[n(287)][n(201)])}),sizeAttenuation:!1,depthTest:!1,transparent:!0}));e[i(440)][i(287)]&&(e[i(440)][i(287)][i(407)]=LinearFilter),e[i(436)][i(378)](.5,0),t[i(611)]&&e[i(611)][i(605)](t[i(611)]),t[i(271)]&&e[i(271)][i(474)](t[i(271)]),e[i(317)]=t[i(317)]||9999,e[i(265)][i(236)]=t,this[i(281)][i(544)](e)}}))}[x$1(467)](t){var e,n;const i=x$1;null==(n=null==(e=this[i(281)])?void 0:e[i(570)][i(186)](e=>e[i(265)][i(236)].id===t))||n[i(585)]()}[x$1(304)](){var t;const e=x$1;null==(t=this[e(281)])||t[e(585)](),this[e(281)]=void 0}[x$1(315)](t){const e=x$1;return this[e(397)][e(570)][e(186)](n=>{var i;return(null==(i=n[e(265)][e(522)])?void 0:i.id)===t})}[x$1(331)](t){var e,n;const i=x$1;return Object[i(376)](this[i(230)])[i(425)]()[i(186)](e=>{var n;return(null==(n=e[i(265)][i(629)])?void 0:n.id)===t})||this[i(404)][i(570)][i(186)](e=>{var n,r;return(null==(n=e[i(265)][i(629)])?void 0:n.id)===t||(null==(r=e[i(265)][i(354)])?void 0:r[i(454)](e=>e.id===t))})||(null==(e=this[i(240)][i(223)])?void 0:e[i(186)](e=>{var n;return(null==(n=e[i(265)][i(629)])?void 0:n.id)===t}))||(null==(n=this[i(367)][i(223)])?void 0:n[i(186)](e=>{var n;return(null==(n=e[i(265)][i(629)])?void 0:n.id)===t}))}[x$1(245)](t){const e=x$1;return Object[e(376)](this[e(310)])[e(425)]()[e(186)](n=>{var i;return(null==(i=n[e(265)][e(629)])?void 0:i.id)===t})||this[e(225)][e(570)][e(186)](n=>{var i;return(null==(i=n[e(265)][e(629)])?void 0:i.id)===t})}[x$1(596)](){const t=x$1,e={tGkrd:t(383),GsElh:t(274)};if(!debug||!localStorage[t(620)])return;let n=this[t(287)][t(231)][t(362)][t(609)](e=>e[t(366)]===this[t(236)].id),i=this.bc=this.bc||new Object3D;this[t(277)][t(544)](i),n[t(287)](n=>{const r=t;let s=new TextSprite({vmap:this[r(287)],text:n.id,fillStyle:e[r(557)],strokeStyle:e[r(306)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:10});s[r(271)][r(474)](n)[r(482)](0),i[r(544)](s),s[r(317)]=renderOrderConfig[r(619)]})}[(_ea=x$1(503),_da=x$1(506),x$1(349))](){const t=x$1,e={YqckB:function(t,e){return t>e},FjcVG:function(t,e,n){return t(e,n)},XRzsI:function(t,e){return t+e},LRGnp:function(t,e,n){return t(e,n)}};if(this[t(506)]&&this[t(506)][t(585)](),!debug||!localStorage[t(349)])return;let n=this[t(506)]=new MultipleLine;function i(n,i){return e[t(524)](n,i)?n+","+i:i+","+n}n[t(440)][t(226)]=!1,n[t(440)][t(204)]=!1,n[t(440)][t(210)]=!0,n[t(317)]=1111111,n[t(271)].z=.1;let r=this[t(287)][t(231)][t(540)][t(609)](e=>e[t(366)]===this[t(236)].id),s={};r[t(287)](a=>{const o=t;for(const t in a[o(386)]){if(EnterType[a[o(386)][t]])continue;let c=r[o(186)](e=>+t===+e.id);if(!c||s[e[o(470)](i,a.id,c.id)])continue;let l=+a[o(386)][c.id],u=+c[o(386)][a.id],h=e[o(192)](this[o(503)][l]||6710886,this[o(503)][u]||6710886);s[e[o(547)](i,a.id,c.id)]=1,n[o(399)]([a,c],h,.5)}}),n[t(206)](),this[t(277)][t(544)](n)}[(_ca=x$1(404),x$1(509))](t=this[x$1(236)]){const e=x$1,n={lHDqU:function(t,e){return t>e},VYEjy:function(t,e){return t(e)},rsVEa:function(t,e){return t>=e},iKhma:e(353),hSPdN:function(t,e,n){return t(e,n)},hbmXx:function(t,e,n){return t(e,n)},GiIqo:function(t){return t()},nrlrH:function(t,e,n){return t(e,n)},cGCGQ:e(302)};H$9=H$9[e(609)](t=>t[e(262)][e(481)]),g$m[e(523)]=g$k[e(523)]=!0;let i=0;this[e(404)][e(176)]=n[e(222)],this[e(277)][e(544)](this[e(404)]);const r=()=>{const r=e;n[r(308)](++i,t[r(629)][r(250)])&&(this[r(384)](n[r(232)]),this[r(464)][r(206)](),n[r(422)](setTimeout,()=>{const t=r;g$m[t(523)]=g$k[t(523)]=!1},1e3),Object[r(376)](this[r(545)])[r(250)]&&n[r(471)](setTimeout,()=>{this[r(248)]()},100),this[r(287)][r(375)][r(586)]&&Object[r(376)](z$8)[r(287)](t=>{const e=r;if(n[e(207)](t[e(465)][e(250)],1)){let i=n[e(449)](mergeGeometries,t[e(465)][e(287)](t=>{const n=e;return t[n(469)][n(497)](0,0,t[n(271)].z),t[n(469)]})),r=new Mesh(i,t);r[e(317)]=t[e(465)][0][e(265)][e(629)][e(481)][e(247)]||0,this[e(404)][e(544)](r),t[e(465)][e(287)](t=>t[e(451)]())}}))};this[e(627)](),t[e(629)][e(287)](t=>{const i=e;n[i(207)](t[i(504)][i(250)],1)?n[i(580)](setTimeout,()=>{const e=i;this[e(342)](t),n[e(237)](r)},0):n[i(237)](r)})}[x$1(627)](){const t=x$1,e={OvVaH:function(t,e){return t+e},IgtIe:function(t,e){return t+e},IlQQv:function(t,e){return t===e},AfHeA:t(249),lwdrs:function(t,e){return t(e)},jPSGv:t(402),ENTtx:function(t,e){return t===e},fQEcR:t(296)};let n={};this[t(236)][t(629)][t(609)](e=>e[t(329)]===t(610)&&!e[t(487)])[t(287)](i=>{const r=t;let s=e[r(534)](e[r(600)](e[r(534)](e[r(534)](e[r(534)](e[r(534)]("",i[r(202)]),i[r(203)]),i[r(535)]),i[r(565)]),i[r(437)]),i[r(382)]),a=n[s]=n[s]||{mat:null,geos:[],polygon:i,polygons:[]};if(a[r(233)][r(601)](i),!a[r(398)]){let t=null;i[r(202)]&&(t=texureLoader[r(527)](i[r(202)]),t[r(501)]=t[r(347)]=RepeatWrapping,i[r(203)]&&(e[r(211)](typeof i[r(203)],e[r(550)])&&(i[r(203)]=new Vector2(i[r(203)],i[r(203)])),t[r(614)][r(474)](i[r(203)])),t[r(447)]=i[r(535)]||0);const n=(null==i?void 0:i[r(565)])?this[r(295)][i[r(565)][r(279)]()]:"",s=!this[r(287)][r(231)][r(375)][r(257)]&&this[r(287)][r(231)][r(375)][r(189)]&&n||i[r(565)];a[r(398)]=new(this[r(287)][r(283)]?MeshStandardMaterial:MeshBasicMaterial)({transparent:!0,color:s,opacity:1,alphaTest:.1,side:2,map:t})}var o=new PathPointList;let c=new Vector3(0,0,0);c[i.up||"z"]=1,i[r(504)][r(287)](t=>t.z=0),o[r(378)](i[r(504)],i[r(419)]||.5,i[r(484)]||10,c,!1);var l=new PathGeometry;l[r(593)](o,{width:i[r(566)],arrow:!1}),i[r(494)]&&l[r(497)](0,0,i[r(494)]),a[r(475)][r(601)](l)});for(const i in n){let{polygon:r,polygons:s,mat:a,geos:o}=n[i],c=e[t(292)](mergeGeometries,o),l=new Mesh(c,this[t(287)][t(375)][t(586)]?new MeshBasicMaterial({color:e[t(396)]}):a);l[t(317)]=this[t(236)][t(247)]||0,(r[t(437)]||r[t(382)])&&a[t(287)]&&(l[t(426)]=()=>{const e=t;r[e(437)]&&(a[e(287)][e(345)].x+=r[e(437)]),r[e(382)]&&(a[e(287)][e(345)].y+=r[e(382)])}),e[t(558)](null==r?void 0:r[t(178)],e[t(631)])&&(l[t(181)]=!1),l[t(598)]=!0,l[t(265)][t(354)]=s,this[t(404)][t(544)](l)}}[x$1(342)](t){const e=x$1,n={EQdUf:function(t,e){return t+e},BOpVG:function(t,e){return t(e)},HxcHy:e(220),bvjOt:e(197),jMDph:function(t,e){return t===e},LOsHT:e(268),NZHwm:function(t,e){return t===e},ssKSs:e(610),OZMBm:e(626),GkfYN:function(t,e){return t===e},JQcVu:e(303),qWqnc:function(t,e){return t===e},huIIx:function(t,e){return t===e},awVJi:e(539),drmXB:function(t,e){return t+e},eRywW:e(180),FCyAj:e(230)};let i=(new Vector3)[e(474)](t[e(504)][0]),r="";if(!this[e(287)][e(231)][e(375)][e(257)]){const n=(null==t?void 0:t[e(565)])?this[e(295)][t[e(565)][e(279)]()]:"";t={...t,color:this[e(287)][e(231)][e(375)][e(189)]&&n||t[e(565)]}}t[e(504)][e(287)](s=>{const a=e;let o=(new Vector3)[a(474)](s)[a(569)](i);o.x=+o.x[a(321)](3),o.y=+o.y[a(321)](3),o.z=+o.z[a(321)](3),r+=n[a(320)](o[a(588)]()[a(259)](),n[a(209)](String,t[a(548)]))});let s=new Object3D;n[e(359)](t[e(329)],n[e(212)])?s=this[e(337)](t):n[e(219)](t[e(329)],n[e(392)])?t[e(487)]&&(s=this[e(182)](t)):t[e(423)]?s=this[e(285)](t):t[e(195)]?s=this[e(531)](t):n[e(219)](t[e(496)],n[e(582)])&&n[e(608)](t[e(348)],n[e(361)])?s=this[e(576)](t):n[e(430)](t[e(496)],n[e(582)])?this[e(240)][e(541)](1,(i,r)=>{const a=e,o=n[a(559)][a(332)]("|");let c=0;for(;;){switch(o[c++]){case"0":i[a(421)]=!0;continue;case"1":i[a(518)]=t[a(518)]||1;continue;case"2":i[a(265)]=i[a(265)]||{};continue;case"3":this[a(240)][a(265)][a(354)][a(601)](t);continue;case"4":i[a(565)]=new Color(t[a(408)]||t[a(565)]);continue;case"5":i[a(300)](t[a(309)]);continue;case"6":i[a(271)][a(474)](t[a(436)])[a(482)](t[a(494)]||0);continue;case"7":this[a(240)][a(265)][a(354)]=this[a(240)][a(265)][a(354)]||[];continue;case"8":i[a(265)][a(629)]=t;continue;case"9":i[a(611)][a(474)](t[a(200)]);continue;case"10":s=i;continue}break}}):n[e(243)](t[e(496)],n[e(177)])?this[e(367)][e(541)](1,(i,r)=>{const a=e,o=n[a(492)][a(332)]("|");let c=0;for(;;){switch(o[c++]){case"0":i[a(611)][a(474)](t[a(200)]);continue;case"1":i[a(421)]=!0;continue;case"2":i[a(265)][a(629)]=t;continue;case"3":this[a(367)][a(265)][a(354)][a(601)](t);continue;case"4":s=i;continue;case"5":i[a(518)]=t[a(518)]||1;continue;case"6":this[a(367)][a(265)][a(354)]=this[a(367)][a(265)][a(354)]||[];continue;case"7":i[a(271)][a(474)](t[a(436)])[a(482)](t[a(494)]||0);continue;case"8":i[a(265)]=i[a(265)]||{};continue;case"9":i[a(565)]=new Color(t[a(408)]||t[a(565)]);continue}break}}):s=this[e(224)](t,r),t[e(269)]&&this[e(464)][e(399)](t[e(504)],t[e(269)],n[e(441)](n[e(320)](t[e(548)]||1,t[e(494)]||0),.001)),this[e(411)](t,s),t[e(431)]&&(this[e(545)][t.id]=s);let a=t[e(487)]&&this[e(287)][e(297)](t[e(487)]);if(t[e(487)]&&(null==a?void 0:a[e(431)])){if(!this[e(230)][t[e(487)]]){const i=n[e(326)][e(332)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(230)][t[e(487)]][e(176)]=n[e(521)];continue;case"1":this[e(404)][e(544)](this[e(230)][t[e(487)]]);continue;case"2":this[e(230)][t[e(487)]][e(181)]=!1;continue;case"3":this[e(230)][t[e(487)]][e(265)][e(629)]=a;continue;case"4":this[e(230)][t[e(487)]][e(360)]=[];continue;case"5":this[e(230)][t[e(487)]]=new Object3D;continue}break}}s[e(513)]?this[e(230)][t[e(487)]][e(360)][e(601)](s):this[e(230)][t[e(487)]][e(544)](s)}else!s[e(513)]&&this[e(404)][e(544)](s)}[x$1(411)](t,e){const n=x$1,i={zqBmA:function(t,e){return t*e},JeIcS:function(t,e){return t+e},xwnRp:function(t,e){return t+e}};let r=t[n(393)];if(r){let s=t[n(439)]||1;texureLoader[n(527)](r,r=>{const a=n;let o=r[a(190)][a(575)],c=r[a(190)][a(548)],l=new PlaneGeometry(i[a(370)](o,s),i[a(370)](c,s),1),u=new MeshBasicMaterial({map:r,side:FrontSide,alphaTest:.1,transparent:!0,depthTest:!0,depthWrite:!0}),h=new Mesh(l,u);h[a(271)][a(474)](t[a(436)]),t[a(350)]&&(h[a(271)].x+=t[a(350)].x,h[a(271)].y+=t[a(350)].y),h[a(271)].z=i[a(493)](i[a(324)](t[a(548)]||0,t[a(494)]||0),.01),h[a(447)].z=t[a(486)]||0,e[a(544)](h)})}}[x$1(466)](t){const e=x$1,n=new Shape;n[e(552)](t[e(504)]);const i={curveSegments:1,steps:1,depth:t[e(548)],bevelEnabled:!1},r=new ExtrudeGeometry(n,i);return r[e(286)](),r}[x$1(337)](t){const e=x$1;let n=new PolygonLine(t[e(504)],{linewidth:t[e(566)],color:t[e(565)],dashed:t[e(628)],dashScale:t[e(498)],worldUnits:t[e(214)],depthTest:!1,keepDashSize:t[e(301)]},this[e(287)]);return n[e(265)][e(629)]=t,n[e(317)]=t[e(481)][e(247)]||0,n[e(271)].z=t[e(494)]||0,n[e(181)]=!t[e(597)],n}[x$1(182)](t){const e=x$1,n={qKIqC:function(t,e){return t===e},MxIUu:e(249)};let i=null;t[e(202)]&&(i=texureLoader[e(527)](t[e(202)]),i[e(501)]=i[e(347)]=RepeatWrapping,t[e(203)]&&(n[e(327)](typeof t[e(203)],n[e(339)])&&(t[e(203)]=new Vector2(t[e(203)],t[e(203)])),i[e(614)][e(474)](t[e(203)])),i[e(447)]=t[e(535)]||0);let r=new(this[e(287)][e(283)]?MeshStandardMaterial:MeshBasicMaterial)({transparent:!0,color:t[e(565)],opacity:1,alphaTest:.1,side:2,map:i});var s=new PathPointList;let a=new Vector3(0,0,0);a[t.up||"z"]=1,t[e(504)][e(287)](t=>t.z=0),s[e(378)](t[e(504)],t[e(419)]||.5,t[e(484)]||10,a,!1);var o=new PathGeometry;o[e(593)](s,{width:t[e(566)],arrow:!1});let c=new Mesh(o,r);return c[e(265)][e(629)]=t,c[e(317)]=t[e(481)][e(247)]||0,c[e(271)].z=t[e(494)]||0,c[e(181)]=!t[e(597)],(t[e(437)]||t[e(382)])&&i&&(c[e(426)]=()=>{const n=e;i[n(345)].x+=t[n(437)],i[n(345)].y+=t[n(382)]}),c}[x$1(615)](t){const e=x$1,n=new Shape;return n[e(552)](t[e(504)]),new ShapeGeometry(n)}[x$1(285)](t){const e=x$1,n={UTAzF:function(t,e){return t!==e},GGumR:e(445),rwhVG:function(t,e){return t<e},IsdUN:function(t,e){return t+e},ayeBK:e(563),zovLV:e(590)};let i=new g$k(this[e(615)](t),{alpha:t[e(518)],textureWidth:512,textureHeight:512,waterNormals:texureLoader[e(527)](g$p,function(t){const n=e;t[n(501)]=t[n(347)]=RepeatWrapping,t[n(458)]=NoColorSpace}),distortionScale:3.7,fog:n[e(499)](this[e(287)][e(488)][e(288)],void 0),waterColor:t[e(565)]||n[e(385)]});return i[e(440)][e(210)]=t[e(518)]&&n[e(490)](t[e(518)],1),i[e(265)].id=t.id,i[e(176)]=n[e(418)](n[e(468)],t.id),i[e(265)][e(581)]=n[e(510)],i[e(271)].z=t[e(494)]||0,i[e(181)]=!t[e(597)],i[e(523)]=!0,i}[x$1(531)](t){const e=x$1,n={TmCVh:function(t,e){return t<e},zufIt:function(t,e){return t+e},uMmmt:e(563),nutZW:e(590)};let i=new Vector2;this[e(287)][e(228)][e(584)](i),i[e(605)](t[e(452)]||1)[e(417)]();let r=new g$m(this[e(615)](t),{transparent:!(!t[e(518)]||!n[e(553)](t[e(518)],1)),clipBias:.003,opacity:t[e(518)],textureWidth:i[e(575)],textureHeight:i[e(548)],color:t[e(565)]||11908533});return r[e(265)].id=t.id,r[e(176)]=n[e(358)](n[e(618)],t.id),r[e(265)][e(581)]=n[e(574)],r[e(271)].z=t[e(494)]||0,r[e(181)]=!t[e(597)],r}[x$1(576)](t){const e=x$1,n={fgUiZ:e(623),xpdXt:function(t,e){return t+e},tZvSU:function(t,e){return t/e}},i=new BoxGeometry(1,1,1),r=new StandardShaderMaterial({uniforms:{colorA:{value:new Color(n[e(607)])},colorB:{value:new Color(t[e(408)]||t[e(565)])}}}),s=new Mesh(i,r);return s[e(611)][e(474)](t[e(200)]),s[e(300)](t[e(309)]),s[e(271)][e(474)](t[e(436)])[e(482)](n[e(427)](t[e(494)]||0,n[e(395)]((null==t?void 0:t[e(548)])||0,2))),s[e(265)]=s[e(265)]||{},s[e(265)][e(629)]=t,s[e(317)]=t[e(481)][e(247)]||0,s[e(421)]=!0,s}[x$1(224)](t,e){var n,i,r,s;const a=x$1,o={HarBd:function(t,e){return t+e},ROAhj:function(t,e){return t+e},bbwbu:function(t,e){return t+e},bJkLP:a(577),pjxWY:a(556),kRmSa:function(t,e){return t!==e},UsAqz:function(t,e){return t===e},XzEHX:a(249),weVmA:function(t,e){return t===e},dMHDG:function(t,e){return t<e},Jaxue:a(402),RlsdG:a(352)};let c=o[a(313)](o[a(313)](o[a(313)](o[a(313)](o[a(261)](o[a(313)](o[a(246)](o[a(261)](t[a(408)]||t[a(565)]||o[a(519)],t[a(202)]),null==(n=t[a(203)])?void 0:n.x),null==(i=t[a(203)])?void 0:i.y),t[a(453)]),null==(r=t[a(351)])?void 0:r.x),null==(s=t[a(351)])?void 0:s.y),t[a(518)]),t[a(597)]);c=t[a(597)]?o[a(561)]:c;let l,u=z$8[c],h=o[a(537)](t[a(518)],void 0)?t[a(518)]:1;if(!u){let e=null;t[a(202)]&&(e=texureLoader[a(527)](t[a(202)]),e[a(501)]=e[a(347)]=RepeatWrapping,t[a(203)]&&(o[a(294)](typeof t[a(203)],o[a(343)])&&(t[a(203)]=new Vector2(t[a(203)],t[a(203)])),e[a(614)][a(474)](t[a(203)])),e[a(447)]=t[a(535)]||0);let n=null;t[a(453)]&&(n=texureLoader[a(527)](t[a(453)]),n[a(501)]=n[a(347)]=RepeatWrapping,t[a(351)]&&(o[a(460)](typeof t[a(351)],o[a(343)])&&(t[a(351)]=new Vector2(t[a(351)],t[a(351)])),n[a(614)][a(474)](t[a(351)])),n[a(447)]=t[a(511)]||0),l=new(this[a(287)][a(283)]?MeshStandardMaterial:MeshBasicMaterial)({color:t[a(408)]||t[a(565)]||(this[a(287)][a(375)][a(586)]?o[a(543)](t[a(504)][a(250)],50)?o[a(428)]:o[a(573)]:""),transparent:!0,map:this[a(287)][a(375)][a(586)]?null:e,alphaTest:.1,opacity:h});let i=new MeshStandardMaterial({color:new Color(t[a(408)]||t[a(565)]||o[a(519)]),map:n,transparent:!0,alphaTest:.1,opacity:h});u=z$8[c]=this[a(287)][a(375)][a(586)]?l:[l,i],z$8[c][a(520)]=0,z$8[c][a(465)]=[]}!B$9[e]&&(B$9[e]={geo:this[a(466)](t),v3:t[a(504)][0]});let d=new Mesh(B$9[e][a(401)],u);return!t[a(597)]&&!t[a(176)]&&!t[a(431)]&&z$8[c][a(465)][a(601)](d),this[a(287)][a(375)][a(586)]?delete B$9[e]:d[a(271)][a(474)](t[a(504)][0])[a(569)](B$9[e].v3),d[a(265)][a(629)]=t,d[a(317)]=t[a(481)][a(247)]||0,d[a(271)].z=t[a(494)]||0,this[a(287)][a(283)]&&(d[a(372)]=d[a(266)]=!0),d[a(181)]=!t[a(597)],d[a(421)]=!0,d}[(_ba=x$1(225),x$1(603))](t=this[x$1(236)]){const e=x$1,n={POrhz:function(t,e){return t===e},mKFEu:e(410),VoPrq:function(t,e,n){return t(e,n)},Uatvd:e(554)};this[e(225)][e(176)]=n[e(477)],this[e(277)][e(544)](this[e(225)]);const i=[];this[e(277)][e(416)](t=>{const r=e;n[r(388)](t[r(265)][r(581)],n[r(369)])&&i[r(601)](t)}),i[e(525)](t=>t[e(585)]()),t[e(629)][e(287)](t=>{const i=e;n[i(221)](setTimeout,()=>{const e=i;!t[e(622)]&&t[e(176)]&&this[e(264)](t)},0)})}[(_aa=x$1(238),x$1(264))](t){var e,n;const i=x$1,r={PzGVK:i(274),iTkDn:i(526),BOIlW:i(389),UhssK:function(t,e){return t+e},OXEwv:i(410),EXiXm:i(310)};if(!t[i(176)])return;let s;for(const o in H$c[i(485)])if(t[i(176)][i(442)](o)){s=H$c[i(485)][o];break}let a=new TextSprite({vmap:this[i(287)],text:(null==(e=t[i(529)])?void 0:e[window[i(536)]])||t[i(176)],bgColor:"",strokeStyle:r[i(334)],src:t[i(328)]||s,zIndex:t[i(267)]||0,fontSize:t[i(244)],fontWeight:isPc?t[i(533)]?700:500:700,lineGap:.25,fontFamily:r[i(579)],strokeWidth:.15,group:t[i(487)]||t[i(481)].id,fillStyle:t[i(251)]||r[i(338)]});a[i(317)]=r[i(505)](t[i(481)][i(247)],3),a[i(271)][i(474)](t[i(436)]),a[i(271)].z=r[i(505)](t[i(548)]||0,t[i(494)]||0),a[i(265)][i(581)]=r[i(405)],a[i(265)][i(629)]=t,a[i(598)]=!0,t[i(487)]&&(null==(n=this[i(287)][i(297)](t[i(487)]))?void 0:n[i(431)])?(!this[i(310)][t[i(487)]]&&(this[i(310)][t[i(487)]]=new Object3D,this[i(310)][t[i(487)]][i(181)]=!1,this[i(310)][t[i(487)]][i(176)]=r[i(217)],this[i(225)][i(544)](this[i(310)][t[i(487)]])),this[i(310)][t[i(487)]][i(544)](a)):this[i(225)][i(544)](a)}[(_$=x$1(397),x$1(508))](t=this[x$1(236)]){const e=x$1,n={UbOis:function(t,e){return t<=e},WRhLM:e(599),DWUOH:e(424)};let i=t[e(522)][e(250)];this[e(397)][e(176)]=n[e(239)],this[e(277)][e(544)](this[e(397)]),!this[e(287)][e(375)][e(586)]&&t[e(522)][e(287)](r=>{const s=e,a={VTebn:function(t,e){return n[m$z(242)](t,e)},ikFWm:n[s(462)]};this[s(356)](r,()=>{const e=s;a[e(188)](--i,0)&&(this[e(287)][e(384)](a[e(322)],t),this[e(384)](a[e(322)],t))})})}[x$1(356)](t,e){var n;const i=x$1,r={bWtZr:function(t,e){return t+e},jwdEe:function(t,e){return t(e)},EJAYT:function(t,e){return t===e},oWvVl:function(t,e,n,i){return t(e,n,i)},bFjgP:function(t,e){return t(e)},SBwSC:function(t,e){return t(e)},kRkIV:i(298)};let s=r$9[t[i(333)]];s&&!(null==(n=s[i(570)])?void 0:n[i(250)])&&(s=void 0,delete r$9[t[i(333)]]);const a=n=>{const s=i,a={tpvKv:function(t,e){return r[m$z(429)](t,e)}};t[s(271)]&&n[s(271)][s(474)](t[s(271)]),t[s(611)]&&n[s(611)][s(474)](t[s(611)]),t[s(447)]&&n[s(447)][s(474)](t[s(447)]),n[s(176)]=t[s(333)],n[s(265)][s(522)]=t,n[s(265)][s(538)]=!0,n[s(416)](t=>{var e;const n=s;t[n(440)]&&(t[n(317)]=a[n(336)](this[n(236)][n(247)],2),t[n(480)]&&(null==(e=t[n(469)])||e[n(286)]()))}),this[s(397)][s(544)](n),e&&r[s(280)](e,this)};if(s)s=s[i(179)](),r[i(335)](a,s);else{const e=r[i(429)]("./",t[i(333)][i(332)](r[i(592)])[1]);gltfLoader[i(527)](e,e=>{var n;const s=i,{scene:o,animations:c}=e;t[s(578)]&&r[s(455)](null==(n=this[s(287)][s(461)][s(273)])?void 0:n[s(236)].id,t[s(578)])&&(o[s(181)]=!1,o[s(421)]=!1),this[s(287)][s(283)]&&o[s(416)](t=>{const e=s;t[e(372)]=t[e(266)]=!0}),c[s(250)]&&H$9[s(601)](r[s(632)](k$8,o,c,c[0][s(176)])),r[s(546)](a,o),r$9[t[s(333)]]=o})}}};const I$4=m$y;function M$y(){const t=["mapId","removeFromParent","dispose","setZ","length","userData","renderOrder","mapObject","46795zfZBTn","Wygcz","vLZkN","dAkcW","removeFloor","isSimulate","position","lnglat","setOneFloorMode","ufVQe","data","NnmhC","setCenter","ySbkv","13233339zpuJkJ","302470fxEiEb","ZrlhW","children","manyFloorMode","switchFloor","addFloorTitle","getMapDataById","8762YsoExV","1716622714522963968","381aaDZIS","handleMarkerCollision","357841UouxQG","name","Quadratic","startEnd","slice","kKnEf","addDefaultFloor","amap","1716622714522963969","esuaK","JxJNN","floorHeight","sort","options","log","8BIsyWd","error","default","easing","object3d","manyFloorStartFloor","RvwfT","OtHRY","childrenPool","UiQMA","BaZjH"," 的楼层","nNPNw","navi","isNavi","Wtbov","route","SeJjA","removeAmapFeatures","mapData","426loRYcc","floor","split","find","1264020oHkHCA","point","4|8|6|5|3|1|7|2|0","mobileView","ALNBA","gwsNg","add","crossFloorLine","addCrossFloorNaviLine","view","#477df5","LlWCy","remove","recoverOtherBuild","push","Out","indexOf","OIbJI","addNaviLine","addFromChildrnPool","pQmTl","switchFloor: 找不到 id:","UZrbw","6190208IZNcFK","status","getFloorById","ASNJA","gKbqW","parent","addFloor","build","recoverAmapFeatures","setView","removeOtherBuild","removeNaviLine","AERcm","470TJHrBA","bboxView","KInGb","start","map","setManyFloorMode","curentFloor","aySOG","visible"];return(M$y=function(){return t})()}function m$y(t,e){t-=419;return M$y()[t]}!function(t,e){const n=m$y,i=t();for(;;)try{if(866570===parseInt(n(500))/1+-parseInt(n(457))/2*(-parseInt(n(459))/3)+-parseInt(n(523))/4+parseInt(n(450))/5+-parseInt(n(496))/6*(-parseInt(n(435))/7)+parseInt(n(476))/8*(-parseInt(n(449))/9)+parseInt(n(536))/10*(parseInt(n(461))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$y);let v$b=class extends g$q{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_ya),__publicField(this,_xa),__publicField(this,_wa,!1),__publicField(this,_va),__publicField(this,_ua,[]),__publicField(this,_ta),this);const i=I$4,r={ALNBA:i(502),RvwfT:i(534),Wygcz:i(530),pQmTl:i(518)},s=r[i(504)][i(498)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(422)].on(r[i(482)],()=>{var t;const e=i;null==(t=this[e(507)])||t[e(429)]()});continue;case"1":this[i(480)][i(462)]=r[i(436)];continue;case"2":this[i(422)].on(r[i(520)],()=>{this[i(508)]()});continue;case"3":this[i(480)][i(432)][i(434)]=this;continue;case"4":n();continue;case"5":this[i(480)]=new Group$1;continue;case"6":this[i(422)]=e;continue;case"7":this[i(508)]();continue;case"8":this[i(445)]=t;continue}break}}[(_ya=I$4(445),_xa=I$4(424),_wa=I$4(453),_va=I$4(481),_ua=I$4(452),I$4(467))](){const t=I$4;if(this[t(424)])return void(this[t(422)][t(524)][t(497)]=this[t(424)]);let e=this[t(445)][t(497)][t(499)](e=>e[t(478)])||this[t(445)][t(497)][0];e&&this[t(529)](e.id)}[(_ta=I$4(507),I$4(508))](){var t,e,n;const i=I$4,r={SeJjA:function(t,e){return t!==e},gKbqW:function(t,e){return t<e},JxJNN:function(t,e){return t-e},ASNJA:function(t,e){return t!==e},OtHRY:function(t,e){return t!==e},ufVQe:function(t,e){return t-e},esuaK:i(510)};null==(t=this[i(507)])||t[i(429)]();let s=null==(n=null==(e=this[i(422)][i(489)])?void 0:e[i(524)])?void 0:n[i(492)];if(this[i(453)]&&(null==s?void 0:s[i(431)])&&!r[i(493)](this[i(422)][i(524)][i(530)],this)){this[i(507)]=new Group$1;for(let t=1;r[i(527)](t,s[i(431)]);t++){let e=s[r[i(471)](t,1)],n=s[t];if(!r[i(526)](e[i(497)][i(528)],this[i(445)])&&!r[i(526)](n[i(497)][i(528)],this[i(445)])&&r[i(483)](e[i(497)].id,n[i(497)].id)){console[i(475)](e[i(497)][i(462)],n[i(497)][i(462)]);let t=e,s=n,a=new PolygonLine([new Vector3(t[i(501)].x,t[i(501)].y,r[i(444)](t[i(497)][i(472)],this[i(481)][i(445)][i(472)])),new Vector3(s[i(501)].x,s[i(501)].y,r[i(444)](s[i(497)][i(472)],this[i(481)][i(445)][i(472)]))],{dashed:!0,dashScale:2,depthTest:!1,transparent:!0,opacity:.5,worldUnits:!1,keepDashSize:!0,color:r[i(470)],linewidth:5},this[i(422)]);a[i(433)]=renderOrderConfig[i(464)],this[i(507)][i(506)](a)}}this[i(480)][i(506)](this[i(507)])}}[I$4(529)](t){const e=I$4;if(this[e(452)][e(499)](n=>n[e(445)].id===t))return;let n=this[e(519)](t);if(!n){let i=this[e(445)][e(497)][e(499)](e=>e.id===t);i&&(n=new P$6(i,this[e(422)]),this[e(506)](n))}this[e(453)]?new Tween(n[e(480)][e(441)]).to({z:{UiQMA:function(t,e){return t-e}}[e(485)](n[e(445)][e(472)],this[e(481)][e(445)][e(472)])},300)[e(421)]():n[e(480)][e(441)][e(430)](0),!this[e(453)]&&(this[e(422)][e(524)][e(497)]=this[e(424)]=n),this[e(453)]&&this[e(452)][e(422)](t=>t[e(455)]&&t[e(455)](this[e(424)]===t))}[I$4(439)](t){const e=I$4;let n=this[e(452)][e(499)](n=>n[e(445)].id===t);n&&this[e(512)](n)}[I$4(454)](t){var e;const n=I$4,i={aySOG:function(t,e){return t-e},KInGb:function(t,e){return t===e},BaZjH:function(t){return t()},NnmhC:function(t){return t()},LlWCy:function(t,e,n){return t(e,n)}};let r=this[n(422)][n(456)](t);const s=()=>{const e=n;if(!this[e(453)])return;let s=this[e(452)][e(499)](n=>n[e(445)].id===t);if(!s)return console[e(477)](e(521)+t+e(487)),s;this[e(422)][e(524)][e(497)]=this[e(424)]=s,!this[e(422)][e(489)][e(524)][e(490)]&&!this[e(422)][e(489)][e(524)][e(440)]&&(new Tween(this[e(480)][e(441)]).to({z:i[e(425)](this[e(481)][e(445)][e(472)],s[e(445)][e(472)])},300)[e(479)](Easing[e(463)][e(515)])[e(421)](),this[e(422)][e(468)][e(447)](r[e(419)][e(442)],300))};if(this[n(424)]&&i[n(420)](t,this[n(424)][n(445)].id))return i[n(486)](s),this[n(424)];if(i[n(446)](s),!this[n(453)]&&(this[n(424)]&&this[n(439)](this[n(424)][n(445)].id),this[n(529)](t),!this[n(422)][n(489)][n(524)][n(490)]&&!this[n(422)][n(489)][n(524)][n(440)])){const t=!isPc&&(null==(e=null==r?void 0:r[n(474)])?void 0:e[n(503)])||(null==r?void 0:r[n(509)]);this[n(422)][n(532)](t)}return i[n(511)](setTimeout,()=>{const t=n;this[t(422)][t(460)]()},0),this[n(453)]&&this[n(452)][n(422)](t=>t[n(455)]&&t[n(455)](this[n(424)]===t)),this[n(422)][n(524)][n(497)]=this[n(424)],this[n(422)][n(524)][n(497)]}[I$4(423)](){const t=I$4,e={Wtbov:function(t,e){return t>=e},AERcm:function(t,e){return t<=e},dAkcW:function(t,e){return t-e},vLZkN:function(t,e){return t===e},OIbJI:t(469),ySbkv:t(458)};this[t(453)]||(this[t(481)]=this[t(424)],this[t(422)][t(524)][t(453)]=!0,this[t(422)][t(494)](),this[t(422)][t(533)](),this[t(453)]=!0,this[t(445)][t(497)][t(422)](e=>{this[t(529)](e.id)}),this[t(508)](),(e[t(437)](this[t(422)][t(495)][t(427)],e[t(517)])||e[t(437)](this[t(422)][t(495)][t(427)],e[t(448)]))&&this[t(452)][t(422)](n=>{var i;const r=t;n[r(480)][r(426)]=!this[r(422)][r(489)][r(524)][r(492)][r(431)];let s=null==(i=this[r(422)][r(489)])?void 0:i[r(524)][r(492)];if(!(null==s?void 0:s[r(431)]))return;let a=[...new Set(s[r(422)](t=>this[r(445)][r(497)][r(516)](t[r(497)])))][r(473)](),o=this[r(445)][r(497)][r(516)](n[r(445)]);n[r(480)][r(426)]=e[r(491)](o,a[0])&&e[r(535)](o,a[e[r(438)](a[r(431)],1)])}))}[I$4(443)](){var t;const e=I$4,n={UZrbw:function(t,e){return t!==e},kKnEf:function(t,e){return t===e},ZrlhW:e(469),gwsNg:function(t,e){return t===e},nNPNw:e(458)};(n[e(466)](this[e(422)][e(495)][e(427)],n[e(451)])||n[e(505)](this[e(422)][e(495)][e(427)],n[e(488)]))&&this[e(452)][e(422)](t=>t[e(480)][e(426)]=!0),this[e(453)]&&(this[e(480)][e(441)][e(430)](0),this[e(422)][e(524)][e(453)]=!1,this[e(422)][e(531)](),this[e(422)][e(513)](),this[e(453)]=!1,this[e(452)][e(465)]()[e(422)](t=>{const i=e;t[i(480)][i(441)][i(430)](0),n[i(522)](t[i(445)].id,this[i(424)][i(445)].id)&&t[i(428)]()}),null==(t=this[e(507)])||t[e(429)](),this[e(452)][e(422)](t=>t[e(455)]&&t[e(455)]()))}[I$4(525)](t){const e=I$4;let n=[...this[e(452)],...this[e(484)]][e(499)](n=>{var i;return(null==(i=n[e(445)])?void 0:i.id)===t});if(n)return n;{let i=this[e(445)][e(497)][e(499)](e=>e.id===t);if(i)return n=new P$6(i,this[e(422)]),this[e(484)][e(514)](n),n}}};var k$7=m$x;function m$x(t,e){return t-=489,M$x()[t]}!function(t,e){for(var n=m$x,i=t();;)try{if(619421===-parseInt(n(495))/1+-parseInt(n(523))/2+parseInt(n(494))/3*(parseInt(n(521))/4)+parseInt(n(498))/5*(-parseInt(n(504))/6)+-parseInt(n(515))/7+-parseInt(n(516))/8*(-parseInt(n(520))/9)+parseInt(n(527))/10*(parseInt(n(503))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$x);var commonjsGlobal=typeof globalThis!==k$7(496)?globalThis:typeof window!==k$7(496)?window:typeof global!==k$7(496)?global:typeof self!==k$7(496)?self:{};function M$x(){var t=["994946rwpjNT","undefined","hasOwnProperty","5BXVNiI","function","MwSnV","bffVm","apply","31128372vkTWVv","2879460lQXHJQ","constructor","prototype","defineProperty","eDGwM","BGekK","call","construct","get","split","length","7750729bEuxcv","4616rJpuXZ","yFefN","twEsj","3|0|5|6|4|2|1","2637PtAViS","1556908gSJPCZ","aCpnt","373232ZYhowt","getOwnPropertyDescriptor","forEach","default","10OdFoVz","__esModule","obGsd","DaeHb","axsFZ","keys","3uWLHyE"];return(M$x=function(){return t})()}function getDefaultExportFromCjs(t){var e=k$7,n={MwSnV:e(526)};return t&&t[e(489)]&&Object[e(506)][e(497)][e(510)](t,n[e(500)])?t[n[e(500)]]:t}function commonjsRequire(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jszip_min={exports:{}},module2;
|
||
/*!
|
||
|
||
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
||
<http://stuartk.com/jszip>
|
||
|
||
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
||
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
|
||
|
||
JSZip uses the library pako released under the MIT license :
|
||
https://github.com/nodeca/pako/blob/main/LICENSE
|
||
*/module2=jszip_min,module2.exports=function t(e,n,i){function r(a,o){if(!n[a]){if(!e[a]){var c="function"==typeof commonjsRequire&&commonjsRequire;if(!o&&c)return c(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){return r(e[a][1][t]||t)},u,u.exports,t,e,n,i)}return n[a].exports}for(var s="function"==typeof commonjsRequire&&commonjsRequire,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(t,e,n){var i=t("./utils"),r=t("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(t){for(var e,n,r,a,o,c,l,u=[],h=0,d=t.length,p=d,f="string"!==i.getTypeOf(t);h<t.length;)p=d-h,r=f?(e=t[h++],n=h<d?t[h++]:0,h<d?t[h++]:0):(e=t.charCodeAt(h++),n=h<d?t.charCodeAt(h++):0,h<d?t.charCodeAt(h++):0),a=e>>2,o=(3&e)<<4|n>>4,c=1<p?(15&n)<<2|r>>6:64,l=2<p?63&r:64,u.push(s.charAt(a)+s.charAt(o)+s.charAt(c)+s.charAt(l));return u.join("")},n.decode=function(t){var e,n,i,a,o,c,l=0,u=0,h="data:";if(t.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var d,p=3*(t=t.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(t.charAt(t.length-1)===s.charAt(64)&&p--,t.charAt(t.length-2)===s.charAt(64)&&p--,p%1!=0)throw new Error("Invalid base64 input, bad content length.");for(d=r.uint8array?new Uint8Array(0|p):new Array(0|p);l<t.length;)e=s.indexOf(t.charAt(l++))<<2|(a=s.indexOf(t.charAt(l++)))>>4,n=(15&a)<<4|(o=s.indexOf(t.charAt(l++)))>>2,i=(3&o)<<6|(c=s.indexOf(t.charAt(l++))),d[u++]=e,64!==o&&(d[u++]=n),64!==c&&(d[u++]=i);return d}},{"./support":30,"./utils":32}],2:[function(t,e,n){var i=t("./external"),r=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function o(t,e,n,i,r){this.compressedSize=t,this.uncompressedSize=e,this.crc32=n,this.compression=i,this.compressedContent=r}o.prototype={getContentWorker:function(){var t=new r(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new r(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,n){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(n)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,n){var i=t("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},n.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,n){var i=t("./utils"),r=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,n,i){var s=r,a=i+n;t^=-1;for(var o=i;o<a;o++)t=t>>>8^s[255&(t^e[o])];return-1^t}(0|e,t,t.length,0):function(t,e,n,i){var s=r,a=i+n;t^=-1;for(var o=i;o<a;o++)t=t>>>8^s[255&(t^e.charCodeAt(o))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,n){n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(t,e,n){var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,n){var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,r=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";function c(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}n.magic="\b\0",s.inherits(c,a),c.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},c.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new r[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},n.compressWorker=function(t){return new c("Deflate",t)},n.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,n){function i(t,e){var n,i="";for(n=0;n<e;n++)i+=String.fromCharCode(255&t),t>>>=8;return i}function r(t,e,n,r,a,u){var h,d,p=t.file,f=t.compression,m=u!==o.utf8encode,g=s.transformTo("string",u(p.name)),A=s.transformTo("string",o.utf8encode(p.name)),v=p.comment,y=s.transformTo("string",u(v)),S=s.transformTo("string",o.utf8encode(v)),b=A.length!==p.name.length,x=S.length!==v.length,M="",T="",I="",R=p.dir,E=p.date,w={crc32:0,compressedSize:0,uncompressedSize:0};e&&!n||(w.crc32=t.crc32,w.compressedSize=t.compressedSize,w.uncompressedSize=t.uncompressedSize);var C=0;e&&(C|=8),m||!b&&!x||(C|=2048);var _,k,L,U=0,F=0;R&&(U|=16),"UNIX"===a?(F=798,U|=(_=p.unixPermissions,k=R,L=_,_||(L=k?16893:33204),(65535&L)<<16)):(F=20,U|=function(t){return 63&(t||0)}(p.dosPermissions)),h=E.getUTCHours(),h<<=6,h|=E.getUTCMinutes(),h<<=5,h|=E.getUTCSeconds()/2,d=E.getUTCFullYear()-1980,d<<=4,d|=E.getUTCMonth()+1,d<<=5,d|=E.getUTCDate(),b&&(T=i(1,1)+i(c(g),4)+A,M+="up"+i(T.length,2)+T),x&&(I=i(1,1)+i(c(y),4)+S,M+="uc"+i(I.length,2)+I);var N="";return N+="\n\0",N+=i(C,2),N+=f.magic,N+=i(h,2),N+=i(d,2),N+=i(w.crc32,4),N+=i(w.compressedSize,4),N+=i(w.uncompressedSize,4),N+=i(g.length,2),N+=i(M.length,2),{fileRecord:l.LOCAL_FILE_HEADER+N+g+M,dirRecord:l.CENTRAL_FILE_HEADER+i(F,2)+N+i(y.length,2)+"\0\0\0\0"+i(U,4)+i(r,4)+g+M+y}}var s=t("../utils"),a=t("../stream/GenericWorker"),o=t("../utf8"),c=t("../crc32"),l=t("../signature");function u(t,e,n,i){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=n,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(u,a),u.prototype.push=function(t){var e=t.meta.percent||0,n=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,a.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:n?(e+100*(n-i-1))/n:100}}))},u.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var n=r(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(t){this.accumulate=!1;var e,n=this.streamFiles&&!t.file.dir,s=r(t,n,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(s.dirRecord),n)this.push({data:(e=t,l.DATA_DESCRIPTOR+i(e.crc32,4)+i(e.compressedSize,4)+i(e.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:s.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var n,r,a,o,c,u,h=this.bytesWritten-t,d=(n=this.dirRecords.length,r=h,a=t,o=this.zipComment,c=this.encodeFileName,u=s.transformTo("string",c(o)),l.CENTRAL_DIRECTORY_END+"\0\0\0\0"+i(n,2)+i(n,2)+i(r,4)+i(a,4)+i(u.length,2)+u);this.push({data:d,meta:{percent:100}})},u.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},u.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on("data",function(t){e.processChunk(t)}),t.on("end",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()}),t.on("error",function(t){e.error(t)}),this},u.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},u.prototype.error=function(t){var e=this._sources;if(!a.prototype.error.call(this,t))return!1;for(var n=0;n<e.length;n++)try{e[n].error(t)}catch(i){}return!0},u.prototype.lock=function(){a.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=u},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,e,n){var i=t("../compressions"),r=t("./ZipFileWorker");n.generateWorker=function(t,e,n){var s=new r(e.streamFiles,n,e.platform,e.encodeFileName),a=0;try{t.forEach(function(t,n){a++;var r=function(t,e){var n=t||e,r=i[n];if(!r)throw new Error(n+" is not a valid compression method !");return r}(n.options.compression,e.compression),o=n.options.compressionOptions||e.compressionOptions||{},c=n.dir,l=n.date;n._compressWorker(r,o).withStreamInfo("file",{name:t,dir:c,date:l,comment:n.comment||"",unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions}).pipe(s)}),s.entriesCount=a}catch(o){s.error(o)}return s}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,e,n){function i(){if(!(this instanceof i))return new i;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var t=new i;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}(i.prototype=t("./object")).loadAsync=t("./load"),i.support=t("./support"),i.defaults=t("./defaults"),i.version="3.10.1",i.loadAsync=function(t,e){return(new i).loadAsync(t,e)},i.external=t("./external"),e.exports=i},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,e,n){var i=t("./utils"),r=t("./external"),s=t("./utf8"),a=t("./zipEntries"),o=t("./stream/Crc32Probe"),c=t("./nodejsUtils");function l(t){return new r.Promise(function(e,n){var i=t.decompressed.getContentWorker().pipe(new o);i.on("error",function(t){n(t)}).on("end",function(){i.streamInfo.crc32!==t.decompressed.crc32?n(new Error("Corrupted zip : CRC32 mismatch")):e()}).resume()})}e.exports=function(t,e){var n=this;return e=i.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),c.isNode&&c.isStream(t)?r.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):i.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then(function(t){var n=new a(e);return n.load(t),n}).then(function(t){var n=[r.Promise.resolve(t)],i=t.files;if(e.checkCRC32)for(var s=0;s<i.length;s++)n.push(l(i[s]));return r.Promise.all(n)}).then(function(t){for(var r=t.shift(),s=r.files,a=0;a<s.length;a++){var o=s[a],c=o.fileNameStr,l=i.resolve(o.fileNameStr);n.file(l,o.decompressed,{binary:!0,optimizedBinaryString:!0,date:o.date,dir:o.dir,comment:o.fileCommentStr.length?o.fileCommentStr:null,unixPermissions:o.unixPermissions,dosPermissions:o.dosPermissions,createFolders:e.createFolders}),o.dir||(n.file(l).unsafeOriginalName=c)}return r.zipComment.length&&(n.comment=r.zipComment),n})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,e,n){var i=t("../utils"),r=t("../stream/GenericWorker");function s(t,e){r.call(this,"Nodejs stream input adapter for "+t),this._upstreamEnded=!1,this._bindStream(e)}i.inherits(s,r),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on("data",function(t){e.push({data:t,meta:{percent:0}})}).on("error",function(t){e.isPaused?this.generatedError=t:e.error(t)}).on("end",function(){e.isPaused?e._upstreamEnded=!0:e.end()})},s.prototype.pause=function(){return!!r.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!r.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,e,n){var i=t("readable-stream").Readable;function r(t,e,n){i.call(this,e),this._helper=t;var r=this;t.on("data",function(t,e){r.push(t)||r._helper.pause(),n&&n(e)}).on("error",function(t){r.emit("error",t)}).on("end",function(){r.push(null)})}t("../utils").inherits(r,i),r.prototype._read=function(){this._helper.resume()},e.exports=r},{"../utils":32,"readable-stream":16}],14:[function(t,e,n){e.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}}},{}],15:[function(t,e,n){function i(t,e,n){var i,r=s.getTypeOf(e),o=s.extend(n||{},c);o.date=o.date||new Date,null!==o.compression&&(o.compression=o.compression.toUpperCase()),"string"==typeof o.unixPermissions&&(o.unixPermissions=parseInt(o.unixPermissions,8)),o.unixPermissions&&16384&o.unixPermissions&&(o.dir=!0),o.dosPermissions&&16&o.dosPermissions&&(o.dir=!0),o.dir&&(t=m(t)),o.createFolders&&(i=f(t))&&g.call(this,i,!0);var h="string"===r&&!1===o.binary&&!1===o.base64;n&&void 0!==n.binary||(o.binary=!h),(e instanceof l&&0===e.uncompressedSize||o.dir||!e||0===e.length)&&(o.base64=!1,o.binary=!0,e="",o.compression="STORE",r="string");var A=null;A=e instanceof l||e instanceof a?e:d.isNode&&d.isStream(e)?new p(t,e):s.prepareContent(t,e,o.binary,o.optimizedBinaryString,o.base64);var v=new u(t,A,o);this.files[t]=v}var r=t("./utf8"),s=t("./utils"),a=t("./stream/GenericWorker"),o=t("./stream/StreamHelper"),c=t("./defaults"),l=t("./compressedObject"),u=t("./zipObject"),h=t("./generate"),d=t("./nodejsUtils"),p=t("./nodejs/NodejsStreamInputAdapter"),f=function(t){"/"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return 0<e?t.substring(0,e):""},m=function(t){return"/"!==t.slice(-1)&&(t+="/"),t},g=function(t,e){return e=void 0!==e?e:c.createFolders,t=m(t),this.files[t]||i.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function A(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var v={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,n,i;for(e in this.files)i=this.files[e],(n=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(n,i)},filter:function(t){var e=[];return this.forEach(function(n,i){t(n,i)&&e.push(i)}),e},file:function(t,e,n){if(1!==arguments.length)return t=this.root+t,i.call(this,t,e,n),this;if(A(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}var s=this.files[this.root+t];return s&&!s.dir?s:null},folder:function(t){if(!t)return this;if(A(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=g.call(this,e),i=this.clone();return i.root=n.name,i},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),i=0;i<n.length;i++)delete this.files[n[i].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(t){var e,n={};try{if((n=s.extend(t||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:r.utf8encode})).type=n.type.toLowerCase(),n.compression=n.compression.toUpperCase(),"binarystring"===n.type&&(n.type="string"),!n.type)throw new Error("No output type specified.");s.checkSupport(n.type),"darwin"!==n.platform&&"freebsd"!==n.platform&&"linux"!==n.platform&&"sunos"!==n.platform||(n.platform="UNIX"),"win32"===n.platform&&(n.platform="DOS");var i=n.comment||this.comment||"";e=h.generateWorker(this,n,i)}catch(c){(e=new a("error")).error(c)}return new o(e,n.type||"string",n.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type="nodebuffer"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=v},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,e,n){e.exports=t("stream")},{stream:void 0}],17:[function(t,e,n){var i=t("./DataReader");function r(t){i.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t("../utils").inherits(r,i),r.prototype.byteAt=function(t){return this.data[this.zero+t]},r.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),n=t.charCodeAt(1),i=t.charCodeAt(2),r=t.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===e&&this.data[s+1]===n&&this.data[s+2]===i&&this.data[s+3]===r)return s-this.zero;return-1},r.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1),i=t.charCodeAt(2),r=t.charCodeAt(3),s=this.readData(4);return e===s[0]&&n===s[1]&&i===s[2]&&r===s[3]},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./DataReader":18}],18:[function(t,e,n){var i=t("../utils");function r(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=r},{"../utils":32}],19:[function(t,e,n){var i=t("./Uint8ArrayReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,n){var i=t("./DataReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},r.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},r.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./DataReader":18}],21:[function(t,e,n){var i=t("./ArrayReader");function r(t){i.call(this,t)}t("../utils").inherits(r,i),r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=r},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,n){var i=t("../utils"),r=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),c=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||r.uint8array?"nodebuffer"===e?new o(t):r.uint8array?new c(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,n){n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,n){var i=t("./GenericWorker"),r=t("../utils");function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}r.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:r.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,n){var i=t("./GenericWorker"),r=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=r(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,n){var i=t("../utils"),r=t("./GenericWorker");function s(t){r.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,r),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}r.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,n){var i=t("../utils"),r=t("./GenericWorker");function s(t){r.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,r),s.prototype.cleanUp=function(){r.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!r.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,n){function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var n=0;n<this._listeners[t].length;n++)this._listeners[t][n].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on("data",function(t){e.processChunk(t)}),t.on("end",function(){e.end()}),t.on("error",function(t){e.error(t)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t="Worker "+this.name;return this.previous?this.previous+" -> "+t:t}},e.exports=i},{}],29:[function(t,e,n){var i=t("../utils"),r=t("./ConvertWorker"),s=t("./GenericWorker"),a=t("../base64"),o=t("../support"),c=t("../external"),l=null;if(o.nodestream)try{l=t("../nodejs/NodejsStreamOutputAdapter")}catch(d){}function u(t,e){return new c.Promise(function(n,r){var s=[],o=t._internalType,c=t._outputType,l=t._mimeType;t.on("data",function(t,n){s.push(t),e&&e(n)}).on("error",function(t){s=[],r(t)}).on("end",function(){try{var t=function(t,e,n){switch(t){case"blob":return i.newBlob(i.transformTo("arraybuffer",e),n);case"base64":return a.encode(e);default:return i.transformTo(t,e)}}(c,function(t,e){var n,i=0,r=null,s=0;for(n=0;n<e.length;n++)s+=e[n].length;switch(t){case"string":return e.join("");case"array":return Array.prototype.concat.apply([],e);case"uint8array":for(r=new Uint8Array(s),n=0;n<e.length;n++)r.set(e[n],i),i+=e[n].length;return r;case"nodebuffer":return Buffer.concat(e);default:throw new Error("concat : unsupported type '"+t+"'")}}(o,s),l);n(t)}catch(e){r(e)}s=[]}).resume()})}function h(t,e,n){var a=e;switch(e){case"blob":case"arraybuffer":a="uint8array";break;case"base64":a="string"}try{this._internalType=a,this._outputType=e,this._mimeType=n,i.checkSupport(a),this._worker=t.pipe(new r(a)),t.lock()}catch(o){this._worker=new s("error"),this._worker.error(o)}}h.prototype={accumulate:function(t){return u(this,t)},on:function(t,e){var n=this;return"data"===t?this._worker.on(t,function(t){e.call(n,t.data,t.meta)}):this._worker.on(t,function(){i.delay(e,arguments,n)}),this},resume:function(){return i.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(i.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new l(this,{objectMode:"nodebuffer"!==this._outputType},t)}},e.exports=h},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,e,n){if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof Buffer,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var i=new ArrayBuffer(0);try{n.blob=0===new Blob([i],{type:"application/zip"}).size}catch(s){try{var r=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);r.append(i),n.blob=0===r.getBlob("application/zip").size}catch(a){n.blob=!1}}}try{n.nodestream=!!t("readable-stream").Readable}catch(s){n.nodestream=!1}},{"readable-stream":16}],31:[function(t,e,n){for(var i=t("./utils"),r=t("./support"),s=t("./nodejsUtils"),a=t("./stream/GenericWorker"),o=new Array(256),c=0;c<256;c++)o[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;function l(){a.call(this,"utf-8 decode"),this.leftOver=null}function u(){a.call(this,"utf-8 encode")}o[254]=o[254]=1,n.utf8encode=function(t){return r.nodebuffer?s.newBufferFrom(t,"utf-8"):function(t){var e,n,i,s,a,o=t.length,c=0;for(s=0;s<o;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(e=r.uint8array?new Uint8Array(c):new Array(c),s=a=0;a<c;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(i=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(i-56320),s++),n<128?e[a++]=n:(n<2048?e[a++]=192|n>>>6:(n<65536?e[a++]=224|n>>>12:(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63),e[a++]=128|n>>>6&63),e[a++]=128|63&n);return e}(t)},n.utf8decode=function(t){return r.nodebuffer?i.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,n,r,s,a=t.length,c=new Array(2*a);for(e=n=0;e<a;)if((r=t[e++])<128)c[n++]=r;else if(4<(s=o[r]))c[n++]=65533,e+=s-1;else{for(r&=2===s?31:3===s?15:7;1<s&&e<a;)r=r<<6|63&t[e++],s--;1<s?c[n++]=65533:r<65536?c[n++]=r:(r-=65536,c[n++]=55296|r>>10&1023,c[n++]=56320|1023&r)}return c.length!==n&&(c.subarray?c=c.subarray(0,n):c.length=n),i.applyFromCharCode(c)}(t=i.transformTo(r.uint8array?"uint8array":"array",t))},i.inherits(l,a),l.prototype.processChunk=function(t){var e=i.transformTo(r.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(r.uint8array){var s=e;(e=new Uint8Array(s.length+this.leftOver.length)).set(this.leftOver,0),e.set(s,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var a=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;0<=n&&128==(192&t[n]);)n--;return n<0||0===n?e:n+o[t[n]]>e?n:e}(e),c=e;a!==e.length&&(r.uint8array?(c=e.subarray(0,a),this.leftOver=e.subarray(a,e.length)):(c=e.slice(0,a),this.leftOver=e.slice(a,e.length))),this.push({data:n.utf8decode(c),meta:t.meta})},l.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=l,i.inherits(u,a),u.prototype.processChunk=function(t){this.push({data:n.utf8encode(t.data),meta:t.meta})},n.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,n){var i=t("./support"),r=t("./base64"),s=t("./nodejsUtils"),a=t("./external");function o(t){return t}function c(t,e){for(var n=0;n<t.length;++n)e[n]=255&t.charCodeAt(n);return e}t("setimmediate"),n.newBlob=function(t,e){n.checkSupport("blob");try{return new Blob([t],{type:e})}catch(r){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return i.append(t),i.getBlob(e)}catch(s){throw new Error("Bug : can't construct the Blob.")}}};var l={stringifyByChunk:function(t,e,n){var i=[],r=0,s=t.length;if(s<=n)return String.fromCharCode.apply(null,t);for(;r<s;)"array"===e||"nodebuffer"===e?i.push(String.fromCharCode.apply(null,t.slice(r,Math.min(r+n,s)))):i.push(String.fromCharCode.apply(null,t.subarray(r,Math.min(r+n,s)))),r+=n;return i.join("")},stringifyByChar:function(t){for(var e="",n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,s.allocBuffer(1)).length}catch(t){return!1}}()}};function u(t){var e=65536,i=n.getTypeOf(t),r=!0;if("uint8array"===i?r=l.applyCanBeUsed.uint8array:"nodebuffer"===i&&(r=l.applyCanBeUsed.nodebuffer),r)for(;1<e;)try{return l.stringifyByChunk(t,i,e)}catch(s){e=Math.floor(e/2)}return l.stringifyByChar(t)}function h(t,e){for(var n=0;n<t.length;n++)e[n]=t[n];return e}n.applyFromCharCode=u;var d={};d.string={string:o,array:function(t){return c(t,new Array(t.length))},arraybuffer:function(t){return d.string.uint8array(t).buffer},uint8array:function(t){return c(t,new Uint8Array(t.length))},nodebuffer:function(t){return c(t,s.allocBuffer(t.length))}},d.array={string:u,array:o,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return s.newBufferFrom(t)}},d.arraybuffer={string:function(t){return u(new Uint8Array(t))},array:function(t){return h(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:o,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return s.newBufferFrom(new Uint8Array(t))}},d.uint8array={string:u,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:o,nodebuffer:function(t){return s.newBufferFrom(t)}},d.nodebuffer={string:u,array:function(t){return h(t,new Array(t.length))},arraybuffer:function(t){return d.nodebuffer.uint8array(t).buffer},uint8array:function(t){return h(t,new Uint8Array(t.length))},nodebuffer:o},n.transformTo=function(t,e){if(e=e||"",!t)return e;n.checkSupport(t);var i=n.getTypeOf(e);return d[i][t](e)},n.resolve=function(t){for(var e=t.split("/"),n=[],i=0;i<e.length;i++){var r=e[i];"."===r||""===r&&0!==i&&i!==e.length-1||(".."===r?n.pop():n.push(r))}return n.join("/")},n.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":i.nodebuffer&&s.isBuffer(t)?"nodebuffer":i.uint8array&&t instanceof Uint8Array?"uint8array":i.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(t){if(!i[t.toLowerCase()])throw new Error(t+" is not supported by this platform")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(t){var e,n,i="";for(n=0;n<(t||"").length;n++)i+="\\x"+((e=t.charCodeAt(n))<16?"0":"")+e.toString(16).toUpperCase();return i},n.delay=function(t,e,n){setImmediate(function(){t.apply(n||null,e||[])})},n.inherits=function(t,e){function n(){}n.prototype=e.prototype,t.prototype=new n},n.extend=function(){var t,e,n={};for(t=0;t<arguments.length;t++)for(e in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],e)&&void 0===n[e]&&(n[e]=arguments[t][e]);return n},n.prepareContent=function(t,e,s,o,l){return a.Promise.resolve(e).then(function(t){return i.blob&&(t instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(t)))&&"undefined"!=typeof FileReader?new a.Promise(function(e,n){var i=new FileReader;i.onload=function(t){e(t.target.result)},i.onerror=function(t){n(t.target.error)},i.readAsArrayBuffer(t)}):t}).then(function(e){var u,h=n.getTypeOf(e);return h?("arraybuffer"===h?e=n.transformTo("uint8array",e):"string"===h&&(l?e=r.decode(e):s&&!0!==o&&(e=c(u=e,i.uint8array?new Uint8Array(u.length):new Array(u.length)))),e):a.Promise.reject(new Error("Can't read the data of '"+t+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(t,e,n){var i=t("./reader/readerFor"),r=t("./utils"),s=t("./signature"),a=t("./zipEntry"),o=t("./support");function c(t){this.files=[],this.loadOptions=t}c.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+r.pretty(e)+", expected "+r.pretty(t)+")")}},isSignature:function(t,e){var n=this.reader.index;this.reader.setIndex(t);var i=this.reader.readString(4)===e;return this.reader.setIndex(n),i},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=o.uint8array?"uint8array":"array",n=r.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(n)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,i=this.zip64EndOfCentralSize-44;0<i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(t=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(t<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(t);var e=t;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===r.MAX_VALUE_16BITS||this.diskWithCentralDirStart===r.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===r.MAX_VALUE_16BITS||this.centralDirRecords===r.MAX_VALUE_16BITS||this.centralDirSize===r.MAX_VALUE_32BITS||this.centralDirOffset===r.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(t),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var i=e-n;if(0<i)this.isSignature(e,s.CENTRAL_FILE_HEADER)||(this.reader.zero=i);else if(i<0)throw new Error("Corrupted zip: missing "+Math.abs(i)+" bytes.")},prepareReader:function(t){this.reader=i(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(t,e,n){var i=t("./reader/readerFor"),r=t("./utils"),s=t("./compressedObject"),a=t("./crc32"),o=t("./utf8"),c=t("./compressions"),l=t("./support");function u(t,e){this.options=t,this.loadOptions=e}u.prototype={isEncrypted:function(){return!(1&~this.bitFlag)},useUTF8:function(){return!(2048&~this.bitFlag)},readLocalPart:function(t){var e,n;if(t.skip(22),this.fileNameLength=t.readInt(2),n=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(n),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(e=function(t){for(var e in c)if(Object.prototype.hasOwnProperty.call(c,e)&&c[e].magic===t)return c[e];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+r.pretty(this.compressionMethod)+" unknown (inner file : "+r.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var t=i(this.extraFields[1].value);this.uncompressedSize===r.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===r.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===r.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===r.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(t){var e,n,i,r=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<r;)e=t.readInt(2),n=t.readInt(2),i=t.readData(n),this.extraFields[e]={id:e,length:n,value:i};t.setIndex(r)},handleUTF8:function(){var t=l.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var n=r.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(n)}var i=this.findExtraFieldUnicodeComment();if(null!==i)this.fileCommentStr=i;else{var s=r.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(s)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=i(t.value);return 1!==e.readInt(1)||a(this.fileName)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=i(t.value);return 1!==e.readInt(1)||a(this.fileComment)!==e.readInt(4)?null:o.utf8decode(e.readData(t.length-5))}return null}},e.exports=u},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,e,n){function i(t,e,n){this.name=t,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=e,this._dataBinary=n.binary,this.options={compression:n.compression,compressionOptions:n.compressionOptions}}var r=t("./stream/StreamHelper"),s=t("./stream/DataWorker"),a=t("./utf8"),o=t("./compressedObject"),c=t("./stream/GenericWorker");i.prototype={internalStream:function(t){var e=null,n="string";try{if(!t)throw new Error("No output type specified.");var i="string"===(n=t.toLowerCase())||"text"===n;"binarystring"!==n&&"text"!==n||(n="string"),e=this._decompressWorker();var s=!this._dataBinary;s&&!i&&(e=e.pipe(new a.Utf8EncodeWorker)),!s&&i&&(e=e.pipe(new a.Utf8DecodeWorker))}catch(o){(e=new c("error")).error(o)}return new r(e,n,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof o&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var n=this._decompressWorker();return this._dataBinary||(n=n.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(n,t,e)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof c?this._data:new s(this._data)}};for(var l=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],u=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},h=0;h<l.length;h++)i.prototype[l[h]]=u;e.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,e,n){(function(t){var n,i,r=t.MutationObserver||t.WebKitMutationObserver;if(r){var s=0,a=new r(u),o=t.document.createTextNode("");a.observe(o,{characterData:!0}),n=function(){o.data=s=++s%2}}else if(t.setImmediate||void 0===t.MessageChannel)n="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var c=new t.MessageChannel;c.port1.onmessage=u,n=function(){c.port2.postMessage(0)}}var l=[];function u(){var t,e;i=!0;for(var n=l.length;n;){for(e=l,l=[],t=-1;++t<n;)e[t]();n=l.length}i=!1}e.exports=function(t){1!==l.push(t)||i||n()}}).call(this,void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(t,e,n){var i=t("immediate");function r(){}var s={},a=["REJECTED"],o=["FULFILLED"],c=["PENDING"];function l(t){if("function"!=typeof t)throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,t!==r&&p(this,t)}function u(t,e,n){this.promise=t,"function"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function h(t,e,n){i(function(){var i;try{i=e(n)}catch(r){return s.reject(t,r)}i===t?s.reject(t,new TypeError("Cannot resolve promise with itself")):s.resolve(t,i)})}function d(t){var e=t&&t.then;if(t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof e)return function(){e.apply(t,arguments)}}function p(t,e){var n=!1;function i(e){n||(n=!0,s.reject(t,e))}function r(e){n||(n=!0,s.resolve(t,e))}var a=f(function(){e(r,i)});"error"===a.status&&i(a.value)}function f(t,e){var n={};try{n.value=t(e),n.status="success"}catch(i){n.status="error",n.value=i}return n}(e.exports=l).prototype.finally=function(t){if("function"!=typeof t)return this;var e=this.constructor;return this.then(function(n){return e.resolve(t()).then(function(){return n})},function(n){return e.resolve(t()).then(function(){throw n})})},l.prototype.catch=function(t){return this.then(null,t)},l.prototype.then=function(t,e){if("function"!=typeof t&&this.state===o||"function"!=typeof e&&this.state===a)return this;var n=new this.constructor(r);return this.state!==c?h(n,this.state===o?t:e,this.outcome):this.queue.push(new u(n,t,e)),n},u.prototype.callFulfilled=function(t){s.resolve(this.promise,t)},u.prototype.otherCallFulfilled=function(t){h(this.promise,this.onFulfilled,t)},u.prototype.callRejected=function(t){s.reject(this.promise,t)},u.prototype.otherCallRejected=function(t){h(this.promise,this.onRejected,t)},s.resolve=function(t,e){var n=f(d,e);if("error"===n.status)return s.reject(t,n.value);var i=n.value;if(i)p(t,i);else{t.state=o,t.outcome=e;for(var r=-1,a=t.queue.length;++r<a;)t.queue[r].callFulfilled(e)}return t},s.reject=function(t,e){t.state=a,t.outcome=e;for(var n=-1,i=t.queue.length;++n<i;)t.queue[n].callRejected(e);return t},l.resolve=function(t){return t instanceof this?t:s.resolve(new this(r),t)},l.reject=function(t){var e=new this(r);return s.reject(e,t)},l.all=function(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var n=t.length,i=!1;if(!n)return this.resolve([]);for(var a=new Array(n),o=0,c=-1,l=new this(r);++c<n;)u(t[c],c);return l;function u(t,r){e.resolve(t).then(function(t){a[r]=t,++o!==n||i||(i=!0,s.resolve(l,a))},function(t){i||(i=!0,s.reject(l,t))})}},l.race=function(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var n=t.length,i=!1;if(!n)return this.resolve([]);for(var a,o=-1,c=new this(r);++o<n;)a=t[o],e.resolve(a).then(function(t){i||(i=!0,s.resolve(c,t))},function(t){i||(i=!0,s.reject(c,t))});return c}},{immediate:36}],38:[function(t,e,n){var i={};(0,t("./lib/utils/common").assign)(i,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),e.exports=i},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,e,n){var i=t("./zlib/deflate"),r=t("./utils/common"),s=t("./utils/strings"),a=t("./zlib/messages"),o=t("./zlib/zstream"),c=Object.prototype.toString,l=0,u=-1,h=0,d=8;function p(t){if(!(this instanceof p))return new p(t);this.options=r.assign({level:u,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:h,to:""},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==l)throw new Error(a[n]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){var f;if(f="string"==typeof e.dictionary?s.string2buf(e.dictionary):"[object ArrayBuffer]"===c.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(n=i.deflateSetDictionary(this.strm,f))!==l)throw new Error(a[n]);this._dict_set=!0}}function f(t,e){var n=new p(e);if(n.push(t,!0),n.err)throw n.msg||a[n.err];return n.result}p.prototype.push=function(t,e){var n,a,o=this.strm,u=this.options.chunkSize;if(this.ended)return!1;a=e===~~e?e:!0===e?4:0,"string"==typeof t?o.input=s.string2buf(t):"[object ArrayBuffer]"===c.call(t)?o.input=new Uint8Array(t):o.input=t,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new r.Buf8(u),o.next_out=0,o.avail_out=u),1!==(n=i.deflate(o,a))&&n!==l)return this.onEnd(n),!(this.ended=!0);0!==o.avail_out&&(0!==o.avail_in||4!==a&&2!==a)||("string"===this.options.to?this.onData(s.buf2binstring(r.shrinkBuf(o.output,o.next_out))):this.onData(r.shrinkBuf(o.output,o.next_out)))}while((0<o.avail_in||0===o.avail_out)&&1!==n);return 4===a?(n=i.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===l):2!==a||(this.onEnd(l),!(o.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===l&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=p,n.deflate=f,n.deflateRaw=function(t,e){return(e=e||{}).raw=!0,f(t,e)},n.gzip=function(t,e){return(e=e||{}).gzip=!0,f(t,e)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,e,n){var i=t("./zlib/inflate"),r=t("./utils/common"),s=t("./utils/strings"),a=t("./zlib/constants"),o=t("./zlib/messages"),c=t("./zlib/zstream"),l=t("./zlib/gzheader"),u=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(t);this.options=r.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&!(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=i.inflateInit2(this.strm,e.windowBits);if(n!==a.Z_OK)throw new Error(o[n]);this.header=new l,i.inflateGetHeader(this.strm,this.header)}function d(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg||o[n.err];return n.result}h.prototype.push=function(t,e){var n,o,c,l,h,d,p=this.strm,f=this.options.chunkSize,m=this.options.dictionary,g=!1;if(this.ended)return!1;o=e===~~e?e:!0===e?a.Z_FINISH:a.Z_NO_FLUSH,"string"==typeof t?p.input=s.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?p.input=new Uint8Array(t):p.input=t,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new r.Buf8(f),p.next_out=0,p.avail_out=f),(n=i.inflate(p,a.Z_NO_FLUSH))===a.Z_NEED_DICT&&m&&(d="string"==typeof m?s.string2buf(m):"[object ArrayBuffer]"===u.call(m)?new Uint8Array(m):m,n=i.inflateSetDictionary(this.strm,d)),n===a.Z_BUF_ERROR&&!0===g&&(n=a.Z_OK,g=!1),n!==a.Z_STREAM_END&&n!==a.Z_OK)return this.onEnd(n),!(this.ended=!0);p.next_out&&(0!==p.avail_out&&n!==a.Z_STREAM_END&&(0!==p.avail_in||o!==a.Z_FINISH&&o!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(c=s.utf8border(p.output,p.next_out),l=p.next_out-c,h=s.buf2string(p.output,c),p.next_out=l,p.avail_out=f-l,l&&r.arraySet(p.output,p.output,c,l,0),this.onData(h)):this.onData(r.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(g=!0)}while((0<p.avail_in||0===p.avail_out)&&n!==a.Z_STREAM_END);return n===a.Z_STREAM_END&&(o=a.Z_FINISH),o===a.Z_FINISH?(n=i.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===a.Z_OK):o!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),!(p.avail_out=0))},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Inflate=h,n.inflate=d,n.inflateRaw=function(t,e){return(e=e||{}).raw=!0,d(t,e)},n.ungzip=d},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,e,n){var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var i in n)n.hasOwnProperty(i)&&(t[i]=n[i])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var r={arraySet:function(t,e,n,i,r){if(e.subarray&&t.subarray)t.set(e.subarray(n,n+i),r);else for(var s=0;s<i;s++)t[r+s]=e[n+s]},flattenChunks:function(t){var e,n,i,r,s,a;for(e=i=0,n=t.length;e<n;e++)i+=t[e].length;for(a=new Uint8Array(i),e=r=0,n=t.length;e<n;e++)s=t[e],a.set(s,r),r+=s.length;return a}},s={arraySet:function(t,e,n,i,r){for(var s=0;s<i;s++)t[r+s]=e[n+s]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,r)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,s))},n.setTyped(i)},{}],42:[function(t,e,n){var i=t("./common"),r=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(l){r=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(l){s=!1}for(var a=new i.Buf8(256),o=0;o<256;o++)a[o]=252<=o?6:248<=o?5:240<=o?4:224<=o?3:192<=o?2:1;function c(t,e){if(e<65537&&(t.subarray&&s||!t.subarray&&r))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",a=0;a<e;a++)n+=String.fromCharCode(t[a]);return n}a[254]=a[254]=1,n.string2buf=function(t){var e,n,r,s,a,o=t.length,c=0;for(s=0;s<o;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(r=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),c+=n<128?1:n<2048?2:n<65536?3:4;for(e=new i.Buf8(c),s=a=0;a<c;s++)55296==(64512&(n=t.charCodeAt(s)))&&s+1<o&&56320==(64512&(r=t.charCodeAt(s+1)))&&(n=65536+(n-55296<<10)+(r-56320),s++),n<128?e[a++]=n:(n<2048?e[a++]=192|n>>>6:(n<65536?e[a++]=224|n>>>12:(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63),e[a++]=128|n>>>6&63),e[a++]=128|63&n);return e},n.buf2binstring=function(t){return c(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n<r;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,r,s,o=e||t.length,l=new Array(2*o);for(n=i=0;n<o;)if((r=t[n++])<128)l[i++]=r;else if(4<(s=a[r]))l[i++]=65533,n+=s-1;else{for(r&=2===s?31:3===s?15:7;1<s&&n<o;)r=r<<6|63&t[n++],s--;1<s?l[i++]=65533:r<65536?l[i++]=r:(r-=65536,l[i++]=55296|r>>10&1023,l[i++]=56320|1023&r)}return c(l,i)},n.utf8border=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;0<=n&&128==(192&t[n]);)n--;return n<0||0===n?e:n+a[t[n]]>e?n:e}},{"./common":41}],43:[function(t,e,n){e.exports=function(t,e,n,i){for(var r=65535&t,s=t>>>16&65535,a=0;0!==n;){for(n-=a=2e3<n?2e3:n;s=s+(r=r+e[i++]|0)|0,--a;);r%=65521,s%=65521}return r|s<<16}},{}],44:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,n){var i=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();e.exports=function(t,e,n,r){var s=i,a=r+n;t^=-1;for(var o=r;o<a;o++)t=t>>>8^s[255&(t^e[o])];return-1^t}},{}],46:[function(t,e,n){var i,r=t("../utils/common"),s=t("./trees"),a=t("./adler32"),o=t("./crc32"),c=t("./messages"),l=0,u=4,h=0,d=-2,p=-1,f=4,m=2,g=8,A=9,v=286,y=30,S=19,b=2*v+1,x=15,M=3,T=258,I=T+M+1,R=42,E=113,w=1,C=2,_=3,k=4;function L(t,e){return t.msg=c[e],e}function U(t){return(t<<1)-(4<t?9:0)}function F(t){for(var e=t.length;0<=--e;)t[e]=0}function N(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(r.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function V(t,e){s._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,N(t.strm)}function P(t,e){t.pending_buf[t.pending++]=e}function B(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function W(t,e){var n,i,r=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,c=t.strstart>t.w_size-I?t.strstart-(t.w_size-I):0,l=t.window,u=t.w_mask,h=t.prev,d=t.strstart+T,p=l[s+a-1],f=l[s+a];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do{if(l[(n=e)+a]===f&&l[n+a-1]===p&&l[n]===l[s]&&l[++n]===l[s+1]){s+=2,n++;do{}while(l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&l[++s]===l[++n]&&s<d);if(i=T-(d-s),s=d-T,a<i){if(t.match_start=e,o<=(a=i))break;p=l[s+a-1],f=l[s+a]}}}while((e=h[e&u])>c&&0!=--r);return a<=t.lookahead?a:t.lookahead}function D(t){var e,n,i,s,c,l,u,h,d,p,f=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-I)){for(r.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=n=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--n;);for(e=n=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--n;);s+=f}if(0===t.strm.avail_in)break;if(l=t.strm,u=t.window,h=t.strstart+t.lookahead,p=void 0,(d=s)<(p=l.avail_in)&&(p=d),n=0===p?0:(l.avail_in-=p,r.arraySet(u,l.input,l.next_in,p,h),1===l.state.wrap?l.adler=a(l.adler,u,p,h):2===l.state.wrap&&(l.adler=o(l.adler,u,p,h)),l.next_in+=p,l.total_in+=p,p),t.lookahead+=n,t.lookahead+t.insert>=M)for(c=t.strstart-t.insert,t.ins_h=t.window[c],t.ins_h=(t.ins_h<<t.hash_shift^t.window[c+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[c+M-1])&t.hash_mask,t.prev[c&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=c,c++,t.insert--,!(t.lookahead+t.insert<M)););}while(t.lookahead<I&&0!==t.strm.avail_in)}function O(t,e){for(var n,i;;){if(t.lookahead<I){if(D(t),t.lookahead<I&&e===l)return w;if(0===t.lookahead)break}if(n=0,t.lookahead>=M&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-I&&(t.match_length=W(t,n)),t.match_length>=M)if(i=s._tr_tally(t,t.strstart-t.match_start,t.match_length-M),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=M){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else i=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(V(t,!1),0===t.strm.avail_out))return w}return t.insert=t.strstart<M-1?t.strstart:M-1,e===u?(V(t,!0),0===t.strm.avail_out?_:k):t.last_lit&&(V(t,!1),0===t.strm.avail_out)?w:C}function J(t,e){for(var n,i,r;;){if(t.lookahead<I){if(D(t),t.lookahead<I&&e===l)return w;if(0===t.lookahead)break}if(n=0,t.lookahead>=M&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=M-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-I&&(t.match_length=W(t,n),t.match_length<=5&&(1===t.strategy||t.match_length===M&&4096<t.strstart-t.match_start)&&(t.match_length=M-1)),t.prev_length>=M&&t.match_length<=t.prev_length){for(r=t.strstart+t.lookahead-M,i=s._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-M),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=r&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+M-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=M-1,t.strstart++,i&&(V(t,!1),0===t.strm.avail_out))return w}else if(t.match_available){if((i=s._tr_tally(t,0,t.window[t.strstart-1]))&&V(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return w}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=s._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<M-1?t.strstart:M-1,e===u?(V(t,!0),0===t.strm.avail_out?_:k):t.last_lit&&(V(t,!1),0===t.strm.avail_out)?w:C}function G(t,e,n,i,r){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=r}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=g,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(2*b),this.dyn_dtree=new r.Buf16(2*(2*y+1)),this.bl_tree=new r.Buf16(2*(2*S+1)),F(this.dyn_ltree),F(this.dyn_dtree),F(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(x+1),this.heap=new r.Buf16(2*v+1),F(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*v+1),F(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function q(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=m,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?R:E,t.adler=2===e.wrap?0:1,e.last_flush=l,s._tr_init(e),h):L(t,d)}function j(t){var e,n=q(t);return n===h&&((e=t.state).window_size=2*e.w_size,F(e.head),e.max_lazy_match=i[e.level].max_lazy,e.good_match=i[e.level].good_length,e.nice_match=i[e.level].nice_length,e.max_chain_length=i[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=M-1,e.match_available=0,e.ins_h=0),n}function K(t,e,n,i,s,a){if(!t)return d;var o=1;if(e===p&&(e=6),i<0?(o=0,i=-i):15<i&&(o=2,i-=16),s<1||A<s||n!==g||i<8||15<i||e<0||9<e||a<0||f<a)return L(t,d);8===i&&(i=9);var c=new H;return(t.state=c).strm=t,c.wrap=o,c.gzhead=null,c.w_bits=i,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=s+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+M-1)/M),c.window=new r.Buf8(2*c.w_size),c.head=new r.Buf16(c.hash_size),c.prev=new r.Buf16(c.w_size),c.lit_bufsize=1<<s+6,c.pending_buf_size=4*c.lit_bufsize,c.pending_buf=new r.Buf8(c.pending_buf_size),c.d_buf=1*c.lit_bufsize,c.l_buf=3*c.lit_bufsize,c.level=e,c.strategy=a,c.method=n,j(t)}i=[new G(0,0,0,0,function(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(D(t),0===t.lookahead&&e===l)return w;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,V(t,!1),0===t.strm.avail_out))return w;if(t.strstart-t.block_start>=t.w_size-I&&(V(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(V(t,!0),0===t.strm.avail_out?_:k):(t.strstart>t.block_start&&(V(t,!1),t.strm.avail_out),w)}),new G(4,4,8,4,O),new G(4,5,16,8,O),new G(4,6,32,32,O),new G(4,4,16,16,J),new G(8,16,32,32,J),new G(8,16,128,128,J),new G(8,32,128,256,J),new G(32,128,258,1024,J),new G(32,258,258,4096,J)],n.deflateInit=function(t,e){return K(t,e,g,15,8,0)},n.deflateInit2=K,n.deflateReset=j,n.deflateResetKeep=q,n.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?d:(t.state.gzhead=e,h):d},n.deflate=function(t,e){var n,r,a,c;if(!t||!t.state||5<e||e<0)return t?L(t,d):d;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||666===r.status&&e!==u)return L(t,0===t.avail_out?-5:d);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===R)if(2===r.wrap)t.adler=0,P(r,31),P(r,139),P(r,8),r.gzhead?(P(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),P(r,255&r.gzhead.time),P(r,r.gzhead.time>>8&255),P(r,r.gzhead.time>>16&255),P(r,r.gzhead.time>>24&255),P(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),P(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(P(r,255&r.gzhead.extra.length),P(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=o(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(P(r,0),P(r,0),P(r,0),P(r,0),P(r,0),P(r,9===r.level?2:2<=r.strategy||r.level<2?4:0),P(r,3),r.status=E);else{var p=g+(r.w_bits-8<<4)<<8;p|=(2<=r.strategy||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(p|=32),p+=31-p%31,r.status=E,B(r,p),0!==r.strstart&&(B(r,t.adler>>>16),B(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),N(t),a=r.pending,r.pending!==r.pending_buf_size));)P(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),N(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,P(r,c)}while(0!==c);r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),N(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,P(r,c)}while(0!==c);r.gzhead.hcrc&&r.pending>a&&(t.adler=o(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&N(t),r.pending+2<=r.pending_buf_size&&(P(r,255&t.adler),P(r,t.adler>>8&255),t.adler=0,r.status=E)):r.status=E),0!==r.pending){if(N(t),0===t.avail_out)return r.last_flush=-1,h}else if(0===t.avail_in&&U(e)<=U(n)&&e!==u)return L(t,-5);if(666===r.status&&0!==t.avail_in)return L(t,-5);if(0!==t.avail_in||0!==r.lookahead||e!==l&&666!==r.status){var f=2===r.strategy?function(t,e){for(var n;;){if(0===t.lookahead&&(D(t),0===t.lookahead)){if(e===l)return w;break}if(t.match_length=0,n=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(V(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(V(t,!0),0===t.strm.avail_out?_:k):t.last_lit&&(V(t,!1),0===t.strm.avail_out)?w:C}(r,e):3===r.strategy?function(t,e){for(var n,i,r,a,o=t.window;;){if(t.lookahead<=T){if(D(t),t.lookahead<=T&&e===l)return w;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=M&&0<t.strstart&&(i=o[r=t.strstart-1])===o[++r]&&i===o[++r]&&i===o[++r]){a=t.strstart+T;do{}while(i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&i===o[++r]&&r<a);t.match_length=T-(a-r),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=M?(n=s._tr_tally(t,1,t.match_length-M),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=s._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(V(t,!1),0===t.strm.avail_out))return w}return t.insert=0,e===u?(V(t,!0),0===t.strm.avail_out?_:k):t.last_lit&&(V(t,!1),0===t.strm.avail_out)?w:C}(r,e):i[r.level].func(r,e);if(f!==_&&f!==k||(r.status=666),f===w||f===_)return 0===t.avail_out&&(r.last_flush=-1),h;if(f===C&&(1===e?s._tr_align(r):5!==e&&(s._tr_stored_block(r,0,0,!1),3===e&&(F(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),N(t),0===t.avail_out))return r.last_flush=-1,h}return e!==u?h:r.wrap<=0?1:(2===r.wrap?(P(r,255&t.adler),P(r,t.adler>>8&255),P(r,t.adler>>16&255),P(r,t.adler>>24&255),P(r,255&t.total_in),P(r,t.total_in>>8&255),P(r,t.total_in>>16&255),P(r,t.total_in>>24&255)):(B(r,t.adler>>>16),B(r,65535&t.adler)),N(t),0<r.wrap&&(r.wrap=-r.wrap),0!==r.pending?h:1)},n.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==R&&69!==e&&73!==e&&91!==e&&103!==e&&e!==E&&666!==e?L(t,d):(t.state=null,e===E?L(t,-3):h):d},n.deflateSetDictionary=function(t,e){var n,i,s,o,c,l,u,p,f=e.length;if(!t||!t.state)return d;if(2===(o=(n=t.state).wrap)||1===o&&n.status!==R||n.lookahead)return d;for(1===o&&(t.adler=a(t.adler,e,f,0)),n.wrap=0,f>=n.w_size&&(0===o&&(F(n.head),n.strstart=0,n.block_start=0,n.insert=0),p=new r.Buf8(n.w_size),r.arraySet(p,e,f-n.w_size,n.w_size,0),e=p,f=n.w_size),c=t.avail_in,l=t.next_in,u=t.input,t.avail_in=f,t.next_in=0,t.input=e,D(n);n.lookahead>=M;){for(i=n.strstart,s=n.lookahead-(M-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[i+M-1])&n.hash_mask,n.prev[i&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=i,i++,--s;);n.strstart=i,n.lookahead=M-1,D(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=M-1,n.match_available=0,t.next_in=l,t.input=u,t.avail_in=c,n.wrap=o,h},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,e,n){e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,n){e.exports=function(t,e){var n,i,r,s,a,o,c,l,u,h,d,p,f,m,g,A,v,y,S,b,x,M,T,I,R;n=t.state,i=t.next_in,I=t.input,r=i+(t.avail_in-5),s=t.next_out,R=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),c=n.dmax,l=n.wsize,u=n.whave,h=n.wnext,d=n.window,p=n.hold,f=n.bits,m=n.lencode,g=n.distcode,A=(1<<n.lenbits)-1,v=(1<<n.distbits)-1;t:do{f<15&&(p+=I[i++]<<f,f+=8,p+=I[i++]<<f,f+=8),y=m[p&A];e:for(;;){if(p>>>=S=y>>>24,f-=S,0==(S=y>>>16&255))R[s++]=65535&y;else{if(!(16&S)){if(!(64&S)){y=m[(65535&y)+(p&(1<<S)-1)];continue e}if(32&S){n.mode=12;break t}t.msg="invalid literal/length code",n.mode=30;break t}b=65535&y,(S&=15)&&(f<S&&(p+=I[i++]<<f,f+=8),b+=p&(1<<S)-1,p>>>=S,f-=S),f<15&&(p+=I[i++]<<f,f+=8,p+=I[i++]<<f,f+=8),y=g[p&v];n:for(;;){if(p>>>=S=y>>>24,f-=S,!(16&(S=y>>>16&255))){if(!(64&S)){y=g[(65535&y)+(p&(1<<S)-1)];continue n}t.msg="invalid distance code",n.mode=30;break t}if(x=65535&y,f<(S&=15)&&(p+=I[i++]<<f,(f+=8)<S&&(p+=I[i++]<<f,f+=8)),c<(x+=p&(1<<S)-1)){t.msg="invalid distance too far back",n.mode=30;break t}if(p>>>=S,f-=S,(S=s-a)<x){if(u<(S=x-S)&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(T=d,(M=0)===h){if(M+=l-S,S<b){for(b-=S;R[s++]=d[M++],--S;);M=s-x,T=R}}else if(h<S){if(M+=l+h-S,(S-=h)<b){for(b-=S;R[s++]=d[M++],--S;);if(M=0,h<b){for(b-=S=h;R[s++]=d[M++],--S;);M=s-x,T=R}}}else if(M+=h-S,S<b){for(b-=S;R[s++]=d[M++],--S;);M=s-x,T=R}for(;2<b;)R[s++]=T[M++],R[s++]=T[M++],R[s++]=T[M++],b-=3;b&&(R[s++]=T[M++],1<b&&(R[s++]=T[M++]))}else{for(M=s-x;R[s++]=R[M++],R[s++]=R[M++],R[s++]=R[M++],2<(b-=3););b&&(R[s++]=R[M++],1<b&&(R[s++]=R[M++]))}break}}break}}while(i<r&&s<o);i-=b=f>>3,p&=(1<<(f-=b<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i<r?r-i+5:5-(i-r),t.avail_out=s<o?o-s+257:257-(s-o),n.hold=p,n.bits=f}},{}],49:[function(t,e,n){var i=t("../utils/common"),r=t("./adler32"),s=t("./crc32"),a=t("./inffast"),o=t("./inftrees"),c=1,l=2,u=0,h=-2,d=1,p=852,f=592;function m(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function A(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=d,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(p),e.distcode=e.distdyn=new i.Buf32(f),e.sane=1,e.back=-1,u):h}function v(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,A(t)):h}function y(t,e){var n,i;return t&&t.state?(i=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?h:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,v(t))):h}function S(t,e){var n,i;return t?(i=new g,(t.state=i).window=null,(n=y(t,e))!==u&&(t.state=null),n):h}var b,x,M=!0;function T(t){if(M){var e;for(b=new i.Buf32(512),x=new i.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(o(c,t.lens,0,288,b,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;o(l,t.lens,0,32,x,0,t.work,{bits:5}),M=!1}t.lencode=b,t.lenbits=9,t.distcode=x,t.distbits=5}function I(t,e,n,r){var s,a=t.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new i.Buf8(a.wsize)),r>=a.wsize?(i.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r<(s=a.wsize-a.wnext)&&(s=r),i.arraySet(a.window,e,n-r,s,a.wnext),(r-=s)?(i.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=s))),0}n.inflateReset=v,n.inflateReset2=y,n.inflateResetKeep=A,n.inflateInit=function(t){return S(t,15)},n.inflateInit2=S,n.inflate=function(t,e){var n,p,f,g,A,v,y,S,b,x,M,R,E,w,C,_,k,L,U,F,N,V,P,B,W=0,D=new i.Buf8(4),O=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return h;12===(n=t.state).mode&&(n.mode=13),A=t.next_out,f=t.output,y=t.avail_out,g=t.next_in,p=t.input,v=t.avail_in,S=n.hold,b=n.bits,x=v,M=y,V=u;t:for(;;)switch(n.mode){case d:if(0===n.wrap){n.mode=13;break}for(;b<16;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(2&n.wrap&&35615===S){D[n.check=0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0),b=S=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&S)<<8)+(S>>8))%31){t.msg="incorrect header check",n.mode=30;break}if(8!=(15&S)){t.msg="unknown compression method",n.mode=30;break}if(b-=4,N=8+(15&(S>>>=4)),0===n.wbits)n.wbits=N;else if(N>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<<N,t.adler=n.check=1,n.mode=512&S?10:12,b=S=0;break;case 2:for(;b<16;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(n.flags=S,8!=(255&n.flags)){t.msg="unknown compression method",n.mode=30;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=30;break}n.head&&(n.head.text=S>>8&1),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),b=S=0,n.mode=3;case 3:for(;b<32;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.head&&(n.head.time=S),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,D[2]=S>>>16&255,D[3]=S>>>24&255,n.check=s(n.check,D,4,0)),b=S=0,n.mode=4;case 4:for(;b<16;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.head&&(n.head.xflags=255&S,n.head.os=S>>8),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),b=S=0,n.mode=5;case 5:if(1024&n.flags){for(;b<16;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.length=S,n.head&&(n.head.extra_len=S),512&n.flags&&(D[0]=255&S,D[1]=S>>>8&255,n.check=s(n.check,D,2,0)),b=S=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(v<(R=n.length)&&(R=v),R&&(n.head&&(N=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),i.arraySet(n.head.extra,p,g,R,N)),512&n.flags&&(n.check=s(n.check,p,R,g)),v-=R,g+=R,n.length-=R),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===v)break t;for(R=0;N=p[g+R++],n.head&&N&&n.length<65536&&(n.head.name+=String.fromCharCode(N)),N&&R<v;);if(512&n.flags&&(n.check=s(n.check,p,R,g)),v-=R,g+=R,N)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===v)break t;for(R=0;N=p[g+R++],n.head&&N&&n.length<65536&&(n.head.comment+=String.fromCharCode(N)),N&&R<v;);if(512&n.flags&&(n.check=s(n.check,p,R,g)),v-=R,g+=R,N)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;b<16;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(S!==(65535&n.check)){t.msg="header crc mismatch",n.mode=30;break}b=S=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=12;break;case 10:for(;b<32;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}t.adler=n.check=m(S),b=S=0,n.mode=11;case 11:if(0===n.havedict)return t.next_out=A,t.avail_out=y,t.next_in=g,t.avail_in=v,n.hold=S,n.bits=b,2;t.adler=n.check=1,n.mode=12;case 12:if(5===e||6===e)break t;case 13:if(n.last){S>>>=7&b,b-=7&b,n.mode=27;break}for(;b<3;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}switch(n.last=1&S,b-=1,3&(S>>>=1)){case 0:n.mode=14;break;case 1:if(T(n),n.mode=20,6!==e)break;S>>>=2,b-=2;break t;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}S>>>=2,b-=2;break;case 14:for(S>>>=7&b,b-=7&b;b<32;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if((65535&S)!=(S>>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&S,b=S=0,n.mode=15,6===e)break t;case 15:n.mode=16;case 16:if(R=n.length){if(v<R&&(R=v),y<R&&(R=y),0===R)break t;i.arraySet(f,p,g,R,A),v-=R,g+=R,y-=R,A+=R,n.length-=R;break}n.mode=12;break;case 17:for(;b<14;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(n.nlen=257+(31&S),S>>>=5,b-=5,n.ndist=1+(31&S),S>>>=5,b-=5,n.ncode=4+(15&S),S>>>=4,b-=4,286<n.nlen||30<n.ndist){t.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;b<3;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.lens[O[n.have++]]=7&S,S>>>=3,b-=3}for(;n.have<19;)n.lens[O[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,P={bits:n.lenbits},V=o(0,n.lens,0,19,n.lencode,0,n.work,P),n.lenbits=P.bits,V){t.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;_=(W=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,k=65535&W,!((C=W>>>24)<=b);){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(k<16)S>>>=C,b-=C,n.lens[n.have++]=k;else{if(16===k){for(B=C+2;b<B;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(S>>>=C,b-=C,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}N=n.lens[n.have-1],R=3+(3&S),S>>>=2,b-=2}else if(17===k){for(B=C+3;b<B;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}b-=C,N=0,R=3+(7&(S>>>=C)),S>>>=3,b-=3}else{for(B=C+7;b<B;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}b-=C,N=0,R=11+(127&(S>>>=C)),S>>>=7,b-=7}if(n.have+R>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=30;break}for(;R--;)n.lens[n.have++]=N}}if(30===n.mode)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,P={bits:n.lenbits},V=o(c,n.lens,0,n.nlen,n.lencode,0,n.work,P),n.lenbits=P.bits,V){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,P={bits:n.distbits},V=o(l,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,P),n.distbits=P.bits,V){t.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===e)break t;case 20:n.mode=21;case 21:if(6<=v&&258<=y){t.next_out=A,t.avail_out=y,t.next_in=g,t.avail_in=v,n.hold=S,n.bits=b,a(t,M),A=t.next_out,f=t.output,y=t.avail_out,g=t.next_in,p=t.input,v=t.avail_in,S=n.hold,b=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;_=(W=n.lencode[S&(1<<n.lenbits)-1])>>>16&255,k=65535&W,!((C=W>>>24)<=b);){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(_&&!(240&_)){for(L=C,U=_,F=k;_=(W=n.lencode[F+((S&(1<<L+U)-1)>>L)])>>>16&255,k=65535&W,!(L+(C=W>>>24)<=b);){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}S>>>=L,b-=L,n.back+=L}if(S>>>=C,b-=C,n.back+=C,n.length=k,0===_){n.mode=26;break}if(32&_){n.back=-1,n.mode=12;break}if(64&_){t.msg="invalid literal/length code",n.mode=30;break}n.extra=15&_,n.mode=22;case 22:if(n.extra){for(B=n.extra;b<B;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.length+=S&(1<<n.extra)-1,S>>>=n.extra,b-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;_=(W=n.distcode[S&(1<<n.distbits)-1])>>>16&255,k=65535&W,!((C=W>>>24)<=b);){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(!(240&_)){for(L=C,U=_,F=k;_=(W=n.distcode[F+((S&(1<<L+U)-1)>>L)])>>>16&255,k=65535&W,!(L+(C=W>>>24)<=b);){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}S>>>=L,b-=L,n.back+=L}if(S>>>=C,b-=C,n.back+=C,64&_){t.msg="invalid distance code",n.mode=30;break}n.offset=k,n.extra=15&_,n.mode=24;case 24:if(n.extra){for(B=n.extra;b<B;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}n.offset+=S&(1<<n.extra)-1,S>>>=n.extra,b-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===y)break t;if(R=M-y,n.offset>R){if((R=n.offset-R)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}E=R>n.wnext?(R-=n.wnext,n.wsize-R):n.wnext-R,R>n.length&&(R=n.length),w=n.window}else w=f,E=A-n.offset,R=n.length;for(y<R&&(R=y),y-=R,n.length-=R;f[A++]=w[E++],--R;);0===n.length&&(n.mode=21);break;case 26:if(0===y)break t;f[A++]=n.length,y--,n.mode=21;break;case 27:if(n.wrap){for(;b<32;){if(0===v)break t;v--,S|=p[g++]<<b,b+=8}if(M-=y,t.total_out+=M,n.total+=M,M&&(t.adler=n.check=n.flags?s(n.check,f,M,A-M):r(n.check,f,M,A-M)),M=y,(n.flags?S:m(S))!==n.check){t.msg="incorrect data check",n.mode=30;break}b=S=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;b<32;){if(0===v)break t;v--,S+=p[g++]<<b,b+=8}if(S!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=30;break}b=S=0}n.mode=29;case 29:V=1;break t;case 30:V=-3;break t;case 31:return-4;default:return h}return t.next_out=A,t.avail_out=y,t.next_in=g,t.avail_in=v,n.hold=S,n.bits=b,(n.wsize||M!==t.avail_out&&n.mode<30&&(n.mode<27||4!==e))&&I(t,t.output,t.next_out,M-t.avail_out)?(n.mode=31,-4):(x-=t.avail_in,M-=t.avail_out,t.total_in+=x,t.total_out+=M,n.total+=M,n.wrap&&M&&(t.adler=n.check=n.flags?s(n.check,f,M,t.next_out-M):r(n.check,f,M,t.next_out-M)),t.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==x&&0===M||4===e)&&V===u&&(V=-5),V)},n.inflateEnd=function(t){if(!t||!t.state)return h;var e=t.state;return e.window&&(e.window=null),t.state=null,u},n.inflateGetHeader=function(t,e){var n;return t&&t.state&&2&(n=t.state).wrap?((n.head=e).done=!1,u):h},n.inflateSetDictionary=function(t,e){var n,i=e.length;return t&&t.state?0!==(n=t.state).wrap&&11!==n.mode?h:11===n.mode&&r(1,e,i,0)!==n.check?-3:I(t,e,i,i)?(n.mode=31,-4):(n.havedict=1,u):h},n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,e,n){var i=t("../utils/common"),r=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],o=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,n,c,l,u,h,d){var p,f,m,g,A,v,y,S,b,x=d.bits,M=0,T=0,I=0,R=0,E=0,w=0,C=0,_=0,k=0,L=0,U=null,F=0,N=new i.Buf16(16),V=new i.Buf16(16),P=null,B=0;for(M=0;M<=15;M++)N[M]=0;for(T=0;T<c;T++)N[e[n+T]]++;for(E=x,R=15;1<=R&&0===N[R];R--);if(R<E&&(E=R),0===R)return l[u++]=20971520,l[u++]=20971520,d.bits=1,0;for(I=1;I<R&&0===N[I];I++);for(E<I&&(E=I),M=_=1;M<=15;M++)if(_<<=1,(_-=N[M])<0)return-1;if(0<_&&(0===t||1!==R))return-1;for(V[1]=0,M=1;M<15;M++)V[M+1]=V[M]+N[M];for(T=0;T<c;T++)0!==e[n+T]&&(h[V[e[n+T]]++]=T);if(v=0===t?(U=P=h,19):1===t?(U=r,F-=257,P=s,B-=257,256):(U=a,P=o,-1),M=I,A=u,C=T=L=0,m=-1,g=(k=1<<(w=E))-1,1===t&&852<k||2===t&&592<k)return 1;for(;;){for(y=M-C,b=h[T]<v?(S=0,h[T]):h[T]>v?(S=P[B+h[T]],U[F+h[T]]):(S=96,0),p=1<<M-C,I=f=1<<w;l[A+(L>>C)+(f-=p)]=y<<24|S<<16|b,0!==f;);for(p=1<<M-1;L&p;)p>>=1;if(0!==p?(L&=p-1,L+=p):L=0,T++,0==--N[M]){if(M===R)break;M=e[n+h[T]]}if(E<M&&(L&g)!==m){for(0===C&&(C=E),A+=I,_=1<<(w=M-C);w+C<R&&!((_-=N[w+C])<=0);)w++,_<<=1;if(k+=1<<w,1===t&&852<k||2===t&&592<k)return 1;l[m=L&g]=E<<24|w<<16|A-u}}return 0!==L&&(l[A+L]=M-C<<24|64<<16),d.bits=E,0}},{"../utils/common":41}],51:[function(t,e,n){e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,e,n){var i=t("../utils/common"),r=0,s=1;function a(t){for(var e=t.length;0<=--e;)t[e]=0}var o=0,c=29,l=256,u=l+1+c,h=30,d=19,p=2*u+1,f=15,m=16,g=7,A=256,v=16,y=17,S=18,b=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],x=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],T=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],I=new Array(2*(u+2));a(I);var R=new Array(2*h);a(R);var E=new Array(512);a(E);var w=new Array(256);a(w);var C=new Array(c);a(C);var _,k,L,U=new Array(h);function F(t,e,n,i,r){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}function N(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function V(t){return t<256?E[t]:E[256+(t>>>7)]}function P(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function B(t,e,n){t.bi_valid>m-n?(t.bi_buf|=e<<t.bi_valid&65535,P(t,t.bi_buf),t.bi_buf=e>>m-t.bi_valid,t.bi_valid+=n-m):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function W(t,e,n){B(t,n[2*e],n[2*e+1])}function D(t,e){for(var n=0;n|=1&t,t>>>=1,n<<=1,0<--e;);return n>>>1}function O(t,e,n){var i,r,s=new Array(f+1),a=0;for(i=1;i<=f;i++)s[i]=a=a+n[i-1]<<1;for(r=0;r<=e;r++){var o=t[2*r+1];0!==o&&(t[2*r]=D(s[o]++,o))}}function J(t){var e;for(e=0;e<u;e++)t.dyn_ltree[2*e]=0;for(e=0;e<h;e++)t.dyn_dtree[2*e]=0;for(e=0;e<d;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*A]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function G(t){8<t.bi_valid?P(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function H(t,e,n,i){var r=2*e,s=2*n;return t[r]<t[s]||t[r]===t[s]&&i[e]<=i[n]}function q(t,e,n){for(var i=t.heap[n],r=n<<1;r<=t.heap_len&&(r<t.heap_len&&H(e,t.heap[r+1],t.heap[r],t.depth)&&r++,!H(e,i,t.heap[r],t.depth));)t.heap[n]=t.heap[r],n=r,r<<=1;t.heap[n]=i}function j(t,e,n){var i,r,s,a,o=0;if(0!==t.last_lit)for(;i=t.pending_buf[t.d_buf+2*o]<<8|t.pending_buf[t.d_buf+2*o+1],r=t.pending_buf[t.l_buf+o],o++,0===i?W(t,r,e):(W(t,(s=w[r])+l+1,e),0!==(a=b[s])&&B(t,r-=C[s],a),W(t,s=V(--i),n),0!==(a=x[s])&&B(t,i-=U[s],a)),o<t.last_lit;);W(t,A,e)}function K(t,e){var n,i,r,s=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.has_stree,c=e.stat_desc.elems,l=-1;for(t.heap_len=0,t.heap_max=p,n=0;n<c;n++)0!==s[2*n]?(t.heap[++t.heap_len]=l=n,t.depth[n]=0):s[2*n+1]=0;for(;t.heap_len<2;)s[2*(r=t.heap[++t.heap_len]=l<2?++l:0)]=1,t.depth[r]=0,t.opt_len--,o&&(t.static_len-=a[2*r+1]);for(e.max_code=l,n=t.heap_len>>1;1<=n;n--)q(t,s,n);for(r=c;n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],q(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=i,s[2*r]=s[2*n]+s[2*i],t.depth[r]=(t.depth[n]>=t.depth[i]?t.depth[n]:t.depth[i])+1,s[2*n+1]=s[2*i+1]=r,t.heap[1]=r++,q(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var n,i,r,s,a,o,c=e.dyn_tree,l=e.max_code,u=e.stat_desc.static_tree,h=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,m=e.stat_desc.extra_base,g=e.stat_desc.max_length,A=0;for(s=0;s<=f;s++)t.bl_count[s]=0;for(c[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<p;n++)g<(s=c[2*c[2*(i=t.heap[n])+1]+1]+1)&&(s=g,A++),c[2*i+1]=s,l<i||(t.bl_count[s]++,a=0,m<=i&&(a=d[i-m]),o=c[2*i],t.opt_len+=o*(s+a),h&&(t.static_len+=o*(u[2*i+1]+a)));if(0!==A){do{for(s=g-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[g]--,A-=2}while(0<A);for(s=g;0!==s;s--)for(i=t.bl_count[s];0!==i;)l<(r=t.heap[--n])||(c[2*r+1]!==s&&(t.opt_len+=(s-c[2*r+1])*c[2*r],c[2*r+1]=s),i--)}}(t,e),O(s,l,t.bl_count)}function z(t,e,n){var i,r,s=-1,a=e[1],o=0,c=7,l=4;for(0===a&&(c=138,l=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)r=a,a=e[2*(i+1)+1],++o<c&&r===a||(o<l?t.bl_tree[2*r]+=o:0!==r?(r!==s&&t.bl_tree[2*r]++,t.bl_tree[2*v]++):o<=10?t.bl_tree[2*y]++:t.bl_tree[2*S]++,s=r,l=(o=0)===a?(c=138,3):r===a?(c=6,3):(c=7,4))}function X(t,e,n){var i,r,s=-1,a=e[1],o=0,c=7,l=4;for(0===a&&(c=138,l=3),i=0;i<=n;i++)if(r=a,a=e[2*(i+1)+1],!(++o<c&&r===a)){if(o<l)for(;W(t,r,t.bl_tree),0!=--o;);else 0!==r?(r!==s&&(W(t,r,t.bl_tree),o--),W(t,v,t.bl_tree),B(t,o-3,2)):o<=10?(W(t,y,t.bl_tree),B(t,o-3,3)):(W(t,S,t.bl_tree),B(t,o-11,7));s=r,l=(o=0)===a?(c=138,3):r===a?(c=6,3):(c=7,4)}}a(U);var Z=!1;function Q(t,e,n,r){var s,a,c;B(t,(o<<1)+(r?1:0),3),a=e,c=n,G(s=t),P(s,c),P(s,~c),i.arraySet(s.pending_buf,s.window,a,c,s.pending),s.pending+=c}n._tr_init=function(t){Z||(function(){var t,e,n,i,r,s=new Array(f+1);for(i=n=0;i<c-1;i++)for(C[i]=n,t=0;t<1<<b[i];t++)w[n++]=i;for(w[n-1]=i,i=r=0;i<16;i++)for(U[i]=r,t=0;t<1<<x[i];t++)E[r++]=i;for(r>>=7;i<h;i++)for(U[i]=r<<7,t=0;t<1<<x[i]-7;t++)E[256+r++]=i;for(e=0;e<=f;e++)s[e]=0;for(t=0;t<=143;)I[2*t+1]=8,t++,s[8]++;for(;t<=255;)I[2*t+1]=9,t++,s[9]++;for(;t<=279;)I[2*t+1]=7,t++,s[7]++;for(;t<=287;)I[2*t+1]=8,t++,s[8]++;for(O(I,u+1,s),t=0;t<h;t++)R[2*t+1]=5,R[2*t]=D(t,5);_=new F(I,b,l+1,u,f),k=new F(R,x,0,h,f),L=new F(new Array(0),M,0,d,g)}(),Z=!0),t.l_desc=new N(t.dyn_ltree,_),t.d_desc=new N(t.dyn_dtree,k),t.bl_desc=new N(t.bl_tree,L),t.bi_buf=0,t.bi_valid=0,J(t)},n._tr_stored_block=Q,n._tr_flush_block=function(t,e,n,i){var a,o,c=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return r;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return s;for(e=32;e<l;e++)if(0!==t.dyn_ltree[2*e])return s;return r}(t)),K(t,t.l_desc),K(t,t.d_desc),c=function(t){var e;for(z(t,t.dyn_ltree,t.l_desc.max_code),z(t,t.dyn_dtree,t.d_desc.max_code),K(t,t.bl_desc),e=d-1;3<=e&&0===t.bl_tree[2*T[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),a=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=a&&(a=o)):a=o=n+5,n+4<=a&&-1!==e?Q(t,e,n,i):4===t.strategy||o===a?(B(t,2+(i?1:0),3),j(t,I,R)):(B(t,4+(i?1:0),3),function(t,e,n,i){var r;for(B(t,e-257,5),B(t,n-1,5),B(t,i-4,4),r=0;r<i;r++)B(t,t.bl_tree[2*T[r]+1],3);X(t,t.dyn_ltree,e-1),X(t,t.dyn_dtree,n-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,c+1),j(t,t.dyn_ltree,t.dyn_dtree)),J(t),i&&G(t)},n._tr_tally=function(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(w[n]+l+1)]++,t.dyn_dtree[2*V(e)]++),t.last_lit===t.lit_bufsize-1},n._tr_align=function(t){var e;B(t,2,3),W(t,A,I),16===(e=t).bi_valid?(P(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}},{"../utils/common":41}],53:[function(t,e,n){e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,n){(function(t){!function(t,e){if(!t.setImmediate){var n,i,r,s,a=1,o={},c=!1,l=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,n="[object process]"==={}.toString.call(t.process)?function(t){process.nextTick(function(){d(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?(s="setImmediate$"+Math.random()+"$",t.addEventListener?t.addEventListener("message",p,!1):t.attachEvent("onmessage",p),function(e){t.postMessage(s+e,"*")}):t.MessageChannel?((r=new MessageChannel).port1.onmessage=function(t){d(t.data)},function(t){r.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,function(t){var e=l.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):function(t){setTimeout(d,0,t)},u.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i<e.length;i++)e[i]=arguments[i+1];var r={callback:t,args:e};return o[a]=r,n(a),a++},u.clearImmediate=h}function h(t){delete o[t]}function d(t){if(c)setTimeout(d,0,t);else{var n=o[t];if(n){c=!0;try{!function(t){var n=t.callback,i=t.args;switch(i.length){case 0:n();break;case 1:n(i[0]);break;case 2:n(i[0],i[1]);break;case 3:n(i[0],i[1],i[2]);break;default:n.apply(e,i)}}(n)}finally{h(t),c=!1}}}}function p(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&d(+e.data.slice(s.length))}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10);var jszip_minExports=jszip_min.exports;const r$8=getDefaultExportFromCjs(jszip_minExports),MP=m$w;!function(t,e){const n=m$w,i=t();for(;;)try{if(990869===parseInt(n(129))/1*(-parseInt(n(158))/2)+-parseInt(n(159))/3*(parseInt(n(242))/4)+-parseInt(n(188))/5+-parseInt(n(209))/6*(parseInt(n(232))/7)+-parseInt(n(180))/8*(parseInt(n(117))/9)+parseInt(n(144))/10+parseInt(n(222))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$w);let g$j={UNCERTAIN:0,STATIC:1,WALKING:2,RUN:3,DRIVING:4},l$c={HOLD:0,OTHER:1},v$a=g$j[MP(191)],z$7=l$c[MP(127)],B$8=0,r$7={t:B$8,stepDetected:!1,step:null,phonePlacement:z$7,motionState:v$a,turnDetected:!1,turnAngle:0},w$6=25,H$8=new Array(w$6),o$7=0,F$7=[],k$6=4e3,P$5=5e3,i$2=0,S$2=0,K$3=0,t$3=[],n$3=0,O=100,X=0,e=100,q$2={peak:0,valley:100,pvDiff:0},C=4,b=!1,Y=0,V=0,j=10.5,Z$1=2,W=330,T=200,D$1=1500,d=(new Date)[MP(205)](),x=[],c=0,A=.65,Q=null,a=[],L=[],J$2,h$1;function md_sensorAcc(t){const e=MP,n={xtKTI:function(t,e,n,i){return t(e,n,i)}};if(t[e(244)]&&t[e(164)]){var i=t[e(244)];ua[e(141)]&&i&&(i.x=-i.x,i.y=-i.y,i.z=-i.z),n[e(153)](y,t[e(155)],t[e(164)],i)}return r$7}function y(t,e,n){const i=MP,r={upSTf:function(t,e,n,i,r){return t(e,n,i,r)},wIIkA:function(t,e,n){return t(e,n)},nwHFZ:function(t,e){return t(e)}};var s=r[i(192)](f,t,e,n,J$2);s&&(v$a=s[i(213)],s[i(202)]&&(r[i(237)](U,s.t,1),c+=1),r[i(132)](N,s[i(189)]))}function M$w(){const t=["cOAPj","MJDEH","XMZwO","OTHER","shift","assign","5586615OadbmU","hmpOv","PTuUB","push","fFhaQ","nQCeN","ProaI","length","cKEBb","SnxdI","HOLD","KDCLj","1KnDAwP","GGmDl","split","nwHFZ","RZRxv","4|0|5|1|3|2|6","khCJn","mMUzH","rIPFo","JwNiP","KFrES","kTMWN","ios","cqCmz","xefNJ","14409660PmlEqc","mdxwP","uYLwc","GVpos","yyjoD","sEpbQ","gxy_norm","lEUXN","OPVVF","xtKTI","PyssQ","timestamp","EYfrB","abs","47666ArUDoV","6321dMwqWi","wwfyD","YAyXv","rRTCs","kluQn","accelerationIncludingGravity","qmdYL","tWaiX","JnBNe","pvDiff","FlDmC","IseZT","retoz","BKrvY","fKHBj","AnmYp","wtdIL","luXEI","QPYIw","HqNzx","VcfCv","16oqqwtV","ZVNdw","lRQtN","srezR","reduce","zJxAy","ihLem","TYPhm","7518905pmKmQv","phonePlacement","XGcJr","UNCERTAIN","upSTf","map","mArkc","LZyRa","cnHsU","WALKING","JOADi","lgagZ","pWVev","OhjLH","step","dRVBp","nQtYB","getTime","FboNw","hAevx","ZSalQ","2700sdVSkE","norm","yGMpx","CHmHf","motionState","iobLH","uGcyh","LZuSN","ZvyyA","rEqXk","cnGgw","TUwty","slice","45877700GfZHwx","filter","nfahu","NJdwq","peak","turnDetected","VAPtY","BredY","mMgWT","STATIC","2289MqJQxR","GmwPv","DcLsw","xdTbR","BeUxN","wIIkA","oZCuP","QwpLO","wBfhx","Hvlap","3236SrWSmX","xRYng","gravity","AusuS","1|3|2|4|0","heading","RJLkv","HOKWf","sqrt","valley","iHXnC","gtzqt","lUoMD","OXdUL","4|2|0|1|3"];return(M$w=function(){return t})()}function N(t){({AnmYp:function(t,e){return t!==e}})[MP(174)](void 0,t)&&(z$7=t)}function U(t,e){({FlDmC:function(t,e){return t(e)}})[MP(169)](G,t)}function R$1(t,e){const n=MP,i={LZyRa:function(t,e){return t-e},kTMWN:function(t,e){return t>=e},rRTCs:function(t,e){return t<=e}};var r=i[n(195)](t,e);return i[n(140)](r,180)&&(r-=360),i[n(162)](r,-180)&&(r+=360),r}function G(t){const e=MP;({cnHsU:function(t,e){return t>e}})[e(196)](x[e(124)],2)&&x[e(115)](),x[e(120)](t)}function f(t,e,n,i){const r=MP,s={ZSalQ:r(134),HqNzx:function(t,e){return t+e},OXdUL:function(t,e){return t*e},cnGgw:function(t,e){return t*e},VcfCv:function(t,e){return t%e},YAyXv:function(t,e){return t+e},FboNw:function(t,e){return t-e},mArkc:function(t,e,n,i,r){return t(e,n,i,r)},BKrvY:function(t,e){return t>e},lUoMD:function(t,e){return t(e)},PTuUB:function(t,e){return t===e},tWaiX:function(t,e,n,i){return t(e,n,i)},GmwPv:function(t,e){return t>=e},VAPtY:function(t,e){return t(e)},srezR:function(t,e,n,i){return t(e,n,i)}},o=s[r(208)][r(131)]("|");let c=0;for(;;){switch(o[c++]){case"0":var l=Math[r(104)](s[r(178)](s[r(178)](s[r(109)](e.x,e.x),s[r(219)](e.y,e.y)),s[r(109)](e.z,e.z))),h=H$8[s[r(179)](s[r(161)](s[r(206)](o$7,1),w$6),w$6)];continue;case"1":var d,p=s[r(194)](E,t,l,h,i),f={turnDetected:!1,turnAngle:0};continue;case"2":for(;s[r(172)](a[r(124)],0)&&s[r(172)](s[r(206)](t,a[0].t),k$6);)a[r(115)]();continue;case"3":if(p){for(d={t,stepLen:A,heading:Q},a[r(120)](d),L[r(120)](d);s[r(172)](L[r(124)],0)&&s[r(172)](s[r(206)](t,L[0].t),4e3)||s[r(172)](L[r(124)],6);)L[r(115)]();(f=s[r(108)](s$1,L[r(193)](function(t){return t[r(101)]})))[r(227)]&&s[r(172)](L[r(124)],2)&&(L=L[r(221)](s[r(206)](L[r(124)],2),L[r(124)]))}continue;case"4":if(s[r(119)](0,e.x)&&s[r(119)](0,e.y)&&s[r(119)](0,e.z))return r$7;continue;case"5":s[r(166)](u,t,n,l),s[r(233)](s[r(206)](t,B$8),5e3)&&s[r(228)](M2,t);continue;case"6":return v$a=s[r(183)](M3$1,t,a,H$8),r$7=Object[r(116)]({t,stepDetected:p,step:d,phonePlacement:z$7,motionState:v$a},f),r$7}break}}function s$1(t){const e=MP,n={rEqXk:function(t,e){return t<=e},EYfrB:function(t,e){return t-e},NJdwq:function(t,e){return t-e},luXEI:function(t,e){return t>=e},ihLem:function(t,e,n){return t(e,n)},ProaI:function(t,e){return t>e},pWVev:function(t,e){return t<e},fFhaQ:function(t,e){return t-e}};var i={turnDetected:!1,turnAngle:0};if(n[e(218)](t[e(124)],1))return i;for(var r=t[n[e(156)](t[e(124)],1)],s=0,a=n[e(225)](t[e(124)],2);n[e(176)](a,0);a--){var o=n[e(186)](R$1,r,t[a]);n[e(123)](Math[e(157)](o),Math[e(157)](s))&&(s=o)}return n[e(176)](Math[e(157)](s),45)&&n[e(200)](Math[e(157)](n[e(156)](r,t[n[e(121)](t[e(124)],2)])),15)&&(i={turnDetected:!0,turnAngle:s}),i}function u(t,e,n){const i=MP,r={hAevx:i(110),mMgWT:function(t,e){return t>e},wBfhx:function(t,e){return t>e},oZCuP:function(t,e){return t-e},xdTbR:function(t,e){return t+e},RJLkv:function(t,e){return t*e},ZVNdw:function(t,e){return t*e},RZRxv:function(t,e){return t*e},xRYng:function(t,e){return t>e},PyssQ:function(t,e){return t-e},yyjoD:function(t,e){return t%e},LZuSN:function(t,e){return t+e}};if(e){const c=r[i(207)][i(131)]("|");let l=0;for(;;){switch(c[l++]){case"0":for(e[i(210)]=a,e[i(150)]=o,F$7[i(120)](e);r[i(230)](F$7[i(124)],0)&&r[i(240)](r[i(238)](t,F$7[0].t),P$5);)F$7[i(115)]();continue;case"1":var s=F$7[i(124)];continue;case"2":var a=Math[i(104)](r[i(235)](r[i(235)](r[i(102)](e.x,e.x),r[i(181)](e.y,e.y)),r[i(102)](e.z,e.z))),o=Math[i(104)](r[i(235)](r[i(102)](e.x,e.x),r[i(133)](e.y,e.y)));continue;case"3":r[i(243)](s,250)&&(F$7=F$7[i(221)](r[i(154)](s,250),s)),H$8[o$7]=n,o$7=r[i(148)](r[i(216)](o$7,1),w$6);continue;case"4":e.t=t;continue}break}}}function E(t,n,i,r){const s=MP,a={nQCeN:function(t,e){return t===e},wwfyD:function(t,e){return t!==e},GGmDl:function(t,e){return t>e},iobLH:function(t,e){return t-e},kluQn:function(t,e){return t-e},gtzqt:function(t,e){return t<e},iHXnC:function(t,e){return t<e},retoz:function(t,e){return t*e},nfahu:function(t,e){return t>e},QwpLO:function(t,e){return t<e},mdxwP:function(t,e,n,i){return t(e,n,i)},ZvyyA:function(t,e){return t>e},TUwty:function(t,e){return t-e},SnxdI:function(t,e){return t(e)},dRVBp:function(t,e){return t-e},BredY:function(t,e){return t-e},fKHBj:function(t,e){return t<=e},sEpbQ:function(t,e){return t>e},HOKWf:function(t,e){return t-e}};var o=!1;return j=a[s(122)](null,r)?11.1:10.7,a[s(160)](0,K$3)&&a[s(130)](q$2[s(168)],Z$1)&&a[s(130)](a[s(214)](t,K$3),T)&&a[s(130)](a[s(163)](K$3,i$2),W)&&(i$2=K$3,o=!0),a[s(107)](n,O)&&(O=n,X=t),e=a[s(106)](a[s(214)](t,n$3),a[s(171)](2,W))&&a[s(224)](n$3,i$2)&&a[s(239)](h$1,O)?h$1:O,a[s(160)](0,i)&&a[s(122)](1,a[s(145)](p,t,n,i))&&a[s(217)](a[s(220)](i,e),1.3)&&(a[s(217)](a[s(220)](t,K$3),T)&&(Z$1=a[s(126)](M0,a[s(203)](i,e)),h$1=O,n$3=X,O=100,K$3=t,q$2={peak:i,valley:e,pvDiff:a[s(229)](i,e)}),a[s(173)](a[s(203)](t,K$3),T)&&a[s(149)](i,q$2[s(226)])&&(K$3=t,e=a[s(107)](e,q$2[s(105)])?e:q$2[s(105)],q$2={peak:i,valley:e,pvDiff:a[s(103)](i,e)})),o}function p(t,e,n){const i=MP,r={GVpos:function(t,e){return t>e},rIPFo:function(t,e){return t<e},hmpOv:function(t,e){return t>=e}};var s=b,a=0;return r[i(147)](e,n)?(b=!0,Y++):r[i(137)](e,n)&&(V=Y,Y=0,b=!1),r[i(147)](n,j)&&!b&&s&&(r[i(118)](V,1)||r[i(118)](n,12))&&(a=1),a}function M0(t){const e=MP,n={yGMpx:function(t,e){return t>=e},zJxAy:function(t,e){return t===e},XGcJr:function(t,e){return t(e)}};var i=Z$1;return n[e(211)](t$3[e(124)],C)&&t$3[e(115)](),t$3[e(120)](t),n[e(185)](t$3[e(124)],C)&&(i=n[e(190)](M1,t$3)),i}function M1(t){const e=MP,n={cKEBb:function(t,e){return t+e},OPVVF:function(t,e){return t/e},lgagZ:function(t,e){return t>=e},khCJn:function(t,e){return t<e}};var i=n[e(152)](t[e(184)](function(t,i){return n[e(125)](t,i)},0),C);return n[e(199)](i,8)?4.3:n[e(199)](i,7)&&n[e(135)](i,8)?3.3:n[e(199)](i,4)&&n[e(135)](i,7)?2.3:n[e(199)](i,3)&&n[e(135)](i,4)?2:1.7}function M2(t){const e=MP,n={BeUxN:function(t,e){return t>=e},JnBNe:function(t,e){return t-e},cOAPj:function(t,e){return t+e},qmdYL:function(t,e){return t>e},CHmHf:function(t,e){return t/e},IseZT:function(t,e){return t/e},Hvlap:function(t,e){return t(e)},cqCmz:function(t,e){return t===e},xefNJ:function(t,e){return t<e},JwNiP:function(t,e){return t>e},uYLwc:function(t,e){return t===e},KFrES:function(t,e){return t<e}};var i=F$7[e(223)](i=>{const r=e;return n[r(236)](i.t,n[r(167)](t,D$1))}),r=z$7,s=z$7;if(n[e(165)](i[e(124)],0)){var a=i[e(124)],o=(i[e(193)](function(t){return t.y})[e(184)](function(t,i){return n[e(111)](t,i)},0),n[e(212)](i[e(193)](function(t){return t.z})[e(184)](function(t,i){return n[e(111)](t,i)},0),a));o=Math[e(157)](o);var c=n[e(170)](i[e(193)](function(t){return t[e(210)]})[e(184)](function(t,i){return n[e(111)](t,i)},0),a),l=n[e(241)](M4,i[e(193)](function(t){return t[e(150)]}));n[e(142)](r,l$c[e(127)])?(n[e(143)](o,5.886)&&n[e(165)](l,3)||n[e(138)](l,4))&&(s=l$c[e(114)]):n[e(146)](r,l$c[e(114)])&&n[e(139)](l,2.5)&&n[e(138)](c,8.81)&&n[e(139)](c,10.81)&&n[e(138)](o,4.4145)&&(s=l$c[e(127)])}z$7=s}function M3$1(t,e,n){const i=MP,r={lRQtN:function(t,e){return t>=e},XMZwO:function(t,e){return t-e},nQtYB:i(100),lEUXN:function(t,e){return t===e},JOADi:function(t,e){return t===e},QPYIw:function(t,e){return t>e},AusuS:function(t,e){return t<=e},mMUzH:function(t,e){return t<e},wtdIL:function(t,e){return t*e},TYPhm:function(t,e){return t/e},MJDEH:function(t,e){return t(e)}};if(r[i(182)](r[i(113)](t,d),500)){const o=r[i(204)][i(131)]("|");let c=0;for(;;){switch(o[c++]){case"0":r[i(151)](s,g$j[i(191)])||r[i(198)](s,g$j[i(231)])?r[i(182)](S$2,1)&&r[i(177)](a,1)&&(v$a=g$j[i(197)]):r[i(151)](s,g$j[i(197)])&&r[i(245)](S$2,.75)&&r[i(136)](a,.7)&&(v$a=g$j[i(231)]);continue;case"1":d=t;continue;case"2":S$2=r[i(175)](r[i(187)](e[i(124)],k$6),1e3);continue;case"3":var s=v$a;continue;case"4":var a=r[i(112)](M4,n);continue}break}}return v$a}function m$w(t,e){t-=100;return M$w()[t]}function M4(t){const e=MP,n={DcLsw:function(t,e){return t+e},OhjLH:function(t,e){return t-e},uGcyh:function(t,e){return t*e},KDCLj:function(t,e){return t/e}};var i=function(t,e){return n[m$w(234)](t,e)},r=n[e(128)](t[e(184)](i,0),t[e(124)]),s=t[e(193)](function(t){return n[e(201)](t,r)});return Math[e(104)](n[e(128)](s[e(193)](function(t){return n[e(215)](t,t)})[e(184)](i,0),n[e(201)](t[e(124)],1)))}function m$v(t,e){t-=309;return M$v()[t]}function M$v(){const t=["1320513ueZtKw","14814OxMpnn","294uVfhlP","accelerationIncludingGravity","OTTKJ","IICbX","KluIH","GcEvp","now","59622VBinaF","jHwje","pFlGo","WRRSb","44264yZPOow","CiLgv","AHvuJ","1310308gAqpdw","24450300YiQeoB","KQilG","acceleration","21QvlOts","FcHlC","1724430hPqPvS","gnihX","10MCLDiH"];return(M$v=function(){return t})()}!function(t,e){const n=m$v,i=t();for(;;)try{if(670301===parseInt(n(311))/1*(-parseInt(n(325))/2)+-parseInt(n(316))/3+-parseInt(n(332))/4*(parseInt(n(315))/5)+-parseInt(n(313))/6+-parseInt(n(318))/7*(-parseInt(n(329))/8)+parseInt(n(317))/9+parseInt(n(333))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$v);let g$i={x:0,y:0,z:0};function motionCallback(t){const e=m$v,n={AHvuJ:function(t,e){return t in e},IICbX:function(t,e){return t-e},KluIH:function(t,e){return t+e},FcHlC:function(t,e){return t*e},CiLgv:function(t,e){return t*e},jHwje:function(t,e){return t+e},pFlGo:function(t,e){return t*e},OTTKJ:function(t,e){return t+e},WRRSb:function(t,e){return t*e},GcEvp:function(t,e){return t*e},gnihX:function(t,e){return t-e},KQilG:function(t,e){return t-e}};n[e(331)]("x",t)&&(t={accelerationIncludingGravity:t});let i,r=Date[e(324)](),s=t[e(310)],a=t[e(310)];if(s&&s.x&&s.y&&s.z)t[e(319)]&&t[e(319)].x&&t[e(319)].y&&t[e(319)].z&&(i={x:n[e(321)](t[e(319)].x,s.x),y:n[e(321)](t[e(319)].y,s.y),z:n[e(321)](t[e(319)].z,s.z)});else{if(!(t[e(319)]&&t[e(319)].x&&t[e(319)].y&&t[e(319)].z))return;a=t[e(319)],g$i.x=n[e(322)](n[e(312)](.9,g$i.x),n[e(330)](.1,t[e(319)].x)),g$i.y=n[e(326)](n[e(312)](.9,g$i.y),n[e(327)](.1,t[e(319)].y)),g$i.z=n[e(320)](n[e(328)](.9,g$i.z),n[e(323)](.1,t[e(319)].z)),i=g$i,(s={x:0,y:0,z:0}).x=n[e(314)](t[e(319)].x,g$i.x),s.y=n[e(309)](t[e(319)].y,g$i.y),s.z=n[e(309)](t[e(319)].z,g$i.z)}let o=t[e(319)];return t[e(319)]&&t[e(319)].x&&t[e(319)].y&&t[e(319)].z||(o={x:0,y:0,z:0}),{timestamp:r,acc:a,linearAcc:s,gravity:i,accelerationIncludingGravity:o}}function M$u(){const t=["1282390XTuoup","TGwmW","OKGmv","XAHJf","iLucB","7277463VnUbbM","lng","OGVbl","pow","EZYuZ","RcBIi","datumsToSpherical","VLvkL","DgHvj","mpTyk","jQPWf","lat","VheMN","sphericalToDatums","Rzdnx","IjHfw","EARTH_ORIGIN","HtLsG","distanceTo","webMercatorToLatitude","tixBQ","cos","sinh","sdEfi","abkDY","1203891kSxRSD","mgAAo","webMercatorToLongitude","CNccX","oZlDr","asin","RfyGE","ZElXO","ZXTxN","IGxQr","atan2","287uKJoMw","rDYhK","gHPkl","qFCce","tan","97744QLjghJ","quadtreeToDatums","EARTH_RADIUS","WwzBl","exp","JomRx","uyafP","ovVTZ","LWrjn","QCdnk","atan","1843430iEoXyT","FBnSC","xoUwW","WEB_MERCATOR_MAX_EXTENT","sin","mapboxAltitude","jmBSN","zuUpG","mtEHc","RnttN","EARTH_PERIMETER","1521564fguLjy","fOZYq","ZHCZn","Vwqmm","hiZFB","getDistance","getTileSize","FydlW","1987866ZTdehd","lpnYf","tileBounds","dsiUj","glFGN","tCOoc","lHVrB","sqrt","bmugr","CSqcu","vectorToDatums","aFwqK","datumsToVector","CgDoa","toFixed","3RtRPne","wnpAR","pos","lUDsn","QIulG","zSwKq","log","toArray","sRQvl"];return(M$u=function(){return t})()}const n$2=m$u;function m$u(t,e){t-=482;return M$u()[t]}!function(t,e){const n=m$u,i=t();for(;;)try{if(608663===parseInt(n(540))/1+parseInt(n(567))/2+-parseInt(n(501))/3*(-parseInt(n(578))/4)+-parseInt(n(510))/5+-parseInt(n(486))/6+parseInt(n(551))/7*(-parseInt(n(556))/8)+-parseInt(n(515))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$u);class LngLat{constructor(t,e){__publicField(this,0),__publicField(this,1),__publicField(this,_Ba),__publicField(this,_Aa),__publicField(this,_za);const n=n$2;this[1]=this[n(526)]=e,this[0]=this[n(516)]=t,this[n(503)]=UnitsUtils[n(521)](t,e)[n(508)]()}[(_Ba=n$2(526),_Aa=n$2(516),_za=n$2(503),n$2(533))](t){return UnitsUtils[n$2(483)](this,t)}}const _UnitsUtils=class t{static[(_Fa=n$2(558),_Ea=n$2(577),_Da=n$2(531),_Ca=n$2(570),n$2(521))](e,n){const i=n$2,r={RcBIi:function(t,e){return t/e},DgHvj:function(t,e){return t*e},OKGmv:function(t,e){return t*e},WwzBl:function(t,e){return t+e},tixBQ:function(t,e){return t*e},QIulG:function(t,e){return t(e)}},s=r[i(520)](r[i(523)](e,t[i(531)]),180);let a=r[i(520)](Math[i(507)](Math[i(555)](r[i(520)](r[i(512)](r[i(559)](90,n),Math.PI),360))),r[i(520)](Math.PI,180));return a=r[i(520)](r[i(535)](a,t[i(531)]),180),r[i(505)](isNaN,a)||r[i(505)](isNaN,s),new Vector2(s,a)}static[n$2(528)](e,n){const i=n$2,r={EZYuZ:function(t,e){return t*e},hiZFB:function(t,e){return t/e},VheMN:function(t,e){return t/e},VLvkL:function(t,e){return t-e},fOZYq:function(t,e){return t*e},IjHfw:function(t,e){return t*e}},s=r[i(519)](r[i(482)](e,t[i(531)]),180);let a=r[i(519)](r[i(527)](n,t[i(531)]),180);return a=r[i(519)](r[i(527)](180,Math.PI),r[i(522)](r[i(579)](2,Math[i(566)](Math[i(560)](r[i(527)](r[i(530)](a,Math.PI),180)))),r[i(482)](Math.PI,2))),new LngLat(s,a)}static[n$2(557)](t,e,n){const i=n$2,r={IGxQr:function(t,e){return t-e},mtEHc:function(t,e){return t*e},FydlW:function(t,e){return t/e}},s=Math[i(518)](2,t),a=r[i(549)](r[i(575)](r[i(485)](e,s),360),180),o=Math[i(566)](Math[i(537)](r[i(575)](Math.PI,r[i(549)](1,r[i(485)](r[i(575)](2,n),s))))),c=r[i(575)](180,r[i(485)](o,Math.PI));return new LngLat(c,a)}static[n$2(496)](t){const e=n$2,n={ovVTZ:function(t,e){return t/e},xoUwW:function(t,e){return t*e},mgAAo:function(t,e){return t+e},RnttN:function(t,e){return t*e}},i=n[e(563)](180,Math.PI),r=n[e(569)](Math[e(550)](t.y,Math[e(493)](n[e(541)](Math[e(518)](t.x,2),Math[e(518)](-t.z,2)))),i),s=n[e(576)](Math[e(550)](-t.z,t.x),i);return new LngLat(+s[e(500)](6),+r[e(500)](6))}static[n$2(498)](t,e){const n=n$2,i={sdEfi:function(t,e){return t/e},LWrjn:function(t,e){return t*e},zSwKq:function(t,e){return t*e},abkDY:function(t,e){return t*e},tCOoc:function(t,e){return t+e},OGVbl:function(t,e){return t+e}},r=i[n(538)](Math.PI,180),s=i[n(564)](t,r),a=i[n(506)](e,r);var o=Math[n(536)](a);return new Vector3(i[n(539)](-Math[n(536)](i[n(491)](s,Math.PI)),o),Math[n(571)](a),i[n(539)](Math[n(571)](i[n(517)](s,Math.PI)),o))}static[n$2(572)](t){const e=n$2,n={ZHCZn:function(t,e){return t-e},gHPkl:function(t,e){return t*e},lUDsn:function(t,e){return t+e},JomRx:function(t,e){return t+e},sRQvl:function(t,e){return t*e},uyafP:function(t,e){return t*e},CSqcu:function(t,e){return t*e},aFwqK:function(t,e){return t*e},rDYhK:function(t,e){return t*e}};return n[e(580)](n[e(553)](n[e(504)](n[e(561)](n[e(509)](n[e(562)](t.r,255),65536),n[e(495)](n[e(497)](t.g,255),256)),n[e(552)](t.b,255)),.1),1e4)}static[n$2(484)](e){const n=n$2,i={jmBSN:function(t,e){return t/e},TGwmW:function(t,e){return t*e}},r=t[n(570)],s=Math[n(518)](2,e);return i[n(573)](i[n(511)](2,r),s)}static[n$2(488)](e,n,i){const r=n$2,s={FBnSC:function(t,e){return t+e},XAHJf:function(t,e){return t*e},ZXTxN:function(t,e){return t-e},qFCce:function(t,e){return t*e},dsiUj:function(t,e){return t+e}},a=t[r(484)](e);return[s[r(568)](-t[r(570)],s[r(513)](n,a)),a,s[r(548)](t[r(570)],s[r(554)](s[r(489)](i,1),a)),a]}static[n$2(534)](e,n){const i=n$2,r={QCdnk:function(t,e){return t-e},Rzdnx:function(t,e){return t*e},glFGN:function(t,e){return t/e}},s=r[i(565)](t[i(570)],r[i(529)](n,t[i(484)](e)));return Math[i(566)](Math[i(537)](r[i(490)](s,t[i(558)])))}static[n$2(542)](e,n){const i=n$2,r={lpnYf:function(t,e){return t+e},mpTyk:function(t,e){return t*e},wnpAR:function(t,e){return t/e}},s=r[i(487)](-t[i(570)],r[i(524)](n,t[i(484)](e)));return r[i(502)](s,t[i(558)])}static[n$2(483)](t,e){const n=n$2,i={CNccX:function(t,e){return t/e},HtLsG:function(t,e){return t*e},oZlDr:function(t,e){return t/e},RfyGE:function(t,e){return t*e},iLucB:function(t,e){return t-e},lHVrB:function(t,e){return t/e},bmugr:function(t,e){return t*e},jQPWf:function(t,e){return t*e},Vwqmm:function(t,e){return t+e},zuUpG:function(t,e){return t/e},ZElXO:function(t,e){return t*e},CgDoa:function(t,e){return t/e}};let r=t[n(526)]||0,s=t[n(516)]||0,a=e[n(526)]||0,o=e[n(516)]||0;var c=i[n(543)](i[n(532)](r,Math.PI),180),l=i[n(544)](i[n(546)](a,Math.PI),180),u=i[n(514)](c,l),h=i[n(514)](i[n(543)](i[n(546)](s,Math.PI),180),i[n(492)](i[n(494)](o,Math.PI),180)),d=this[n(558)];return i[n(525)](i[n(525)](d,2),Math[n(545)](Math[n(493)](i[n(581)](Math[n(518)](Math[n(571)](i[n(574)](u,2)),2),i[n(494)](i[n(547)](Math[n(536)](c),Math[n(536)](l)),Math[n(518)](Math[n(571)](i[n(499)](h,2)),2))))))}};__publicField(_UnitsUtils,_Fa,6378137),__publicField(_UnitsUtils,_Ea,2*Math.PI*_UnitsUtils[n$2(558)]),__publicField(_UnitsUtils,_Da,_UnitsUtils[n$2(577)]/2),__publicField(_UnitsUtils,_Ca,20037508.342789244);let UnitsUtils=_UnitsUtils;var J$1=m$t;!function(t,e){for(var n=m$t,i=t();;)try{if(403489===parseInt(n(963))/1*(parseInt(n(699))/2)+-parseInt(n(496))/3+-parseInt(n(973))/4+parseInt(n(811))/5+-parseInt(n(741))/6*(parseInt(n(784))/7)+-parseInt(n(804))/8+-parseInt(n(976))/9*(-parseInt(n(470))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$t);var g$h=2===v$9();function l$b(t,e=-59,n=2){var i=m$t,r={iZqav:function(t,e){return t/e},uacUZ:function(t,e){return t-e},edqTE:function(t,e){return t*e}};return Math[i(735)](10,r[i(550)](r[i(765)](e,t),r[i(663)](10,n)))}function v$9(){var t=m$t;return/(Android)/i[t(488)](navigator[t(541)])?1:/(iPhone|iPad|iPod|iOS)/i[t(488)](navigator[t(541)])?2:3}let B$7=class{constructor(t){__publicField(this,_Ma),__publicField(this,_La),__publicField(this,_Ka),__publicField(this,_Ja),__publicField(this,_Ia),__publicField(this,_Ha),__publicField(this,_Ga);var e=J$1,n={aZxuC:function(t,e){return t===e},zSoNC:function(t){return t()}};this[e(1029)]=t,this[e(955)]=2e3,n[e(896)](n[e(1049)](v$9),1)&&(this[e(955)]=5e3),this[e(803)]=null,this[e(873)]=null,this[e(526)]=[],this[e(551)]=[]}[(_Ma=J$1(1029),_La=J$1(955),_Ka=J$1(494),_Ja=J$1(803),_Ia=J$1(873),_Ha=J$1(526),_Ga=J$1(551),J$1(730))](t){var e=J$1,n={ywuYK:function(t,e){return t+e},BpXlA:function(t,e){return t>e},hydoR:function(t,e){return t/e},OWWGE:function(t,e){return t/e},IUwIz:function(t,e){return t>e},RQWwf:function(t,e){return t-e}},i=Date[e(540)]();for(var r in this[e(526)]){var s=this[e(526)][r];n[e(783)](Math[e(701)](n[e(752)](i,s[e(489)])),this[e(955)])&&delete this[e(526)][r]}t[e(713)](t=>{var r=e;let s=n[r(655)](n[r(655)](t[r(748)],"_"),t[r(718)]);if(this[r(526)][s]=Object[r(975)]({...this[r(526)][s]||{},time:i},t),!g$h){let e=this[r(526)][s];e[r(528)]=e[r(528)]||[],e[r(528)][r(468)]({time:i,rssi:t[r(900)],accuracy:t[r(907)]}),n[r(477)](e[r(528)][r(1008)],5)&&(e[r(528)][r(880)](),e[r(528)]=e[r(528)][r(593)](t=>i-t[r(489)]<this[r(955)])),e[r(900)]=n[r(536)](e[r(528)][r(532)]((t,e)=>t+e[r(900)],0),e[r(528)][r(1008)]),e[r(900)][r(619)](1),e[r(907)]=n[r(609)](e[r(528)][r(532)]((t,e)=>t+e[r(907)],0),e[r(528)][r(1008)]),e[r(907)][r(619)](1)}});var a=[];for(var o in this[e(526)])a[e(468)](this[e(526)][o]);return this[e(746)](a)}[J$1(746)](t){var e=J$1,n={efPcp:function(t,e){return t-e},srRAm:function(t,e){return t<e},OwYNm:function(t,e){return t===e},ZFlDa:function(t,e){return t===e},FhFrp:function(t,e){return t>e},oDLrx:function(t,e){return t-e},EtqSm:function(t,e){return t===e},kFiiK:function(t,e){return t<e},pQpXJ:function(t,e){return t>=e},CmMnG:function(t,e){return t/e}};t[e(854)](function(t,i){var r=e;return n[r(772)](i[r(900)],t[r(900)])});for(var i={beacons:[],floor:null},r={beacons:[],floor:null},s=0,a=0;n[e(493)](a,t[e(1008)]);a++){var o=t[a],c=o[e(503)];if(this[e(803)]=this[e(803)]||c,n[e(1021)](s,0))n[e(986)](c,this[e(803)])?(i[e(613)][e(468)](o),i[e(503)]=c):(r[e(613)][e(468)](o),r[e(503)]=c);else if(n[e(1021)](c,this[e(803)])){if(r[e(503)]){if(n[e(904)](n[e(717)](r[e(613)][0][e(900)],o[e(900)]),8))continue;r[e(613)]=[],r[e(503)]=null}i[e(613)][e(468)](o),i[e(503)]=c}else n[e(594)](c,r[e(503)])&&r[e(613)][e(468)](o);s++}return r[e(503)]?this[e(494)]++:(this[e(494)]--,n[e(709)](this[e(494)],0)&&(this[e(494)]=0)),n[e(625)](this[e(494)],n[e(872)](this[e(1029)][e(954)],1e3))&&(i=r,this[e(494)]=0),this[e(803)]=i[e(503)],i[e(613)]}[J$1(666)](t){var e=J$1,n={Hslnv:function(t,e){return t===e},dsDca:function(t,e){return t<e},icFEI:function(t,e){return t/e},MfrPd:function(t,e){return t<e},hASLa:function(t,e){return t*e},BLbCN:function(t,e){return t*e}};if(n[e(605)](t[e(1008)],0))return null;for(var i,r,s,a=Math[e(654)](t[e(1008)],6),o=[],c=0,l=0,u=0,h=0;n[e(562)](h,a);h++)i=t[h],c+=r=n[e(1056)](1,Math[e(735)](i[e(907)],2)),o[e(468)](r);for(let d=0;n[e(734)](d,o[e(1008)]);d++)l+=n[e(1032)]((s=t[d]).x,o[d]),u+=n[e(566)](s.y,o[d]);return{x:n[e(1056)](l,c),y:n[e(1056)](u,c),floor:this[e(803)]}}[J$1(844)](t){var e=J$1;return this[e(666)](this[e(730)](t))}[J$1(720)](){var t=J$1;this[t(526)]=[],this[t(803)]=null}};function M$t(){var t=["crossFloorDis","UKucQ","JzxNx","oaQPo","floorDelay","beaconCacheTime","Jjuok","pedometer","TcIsW","PIEDO","compass","RiiRN","back","748223rrXBnZ","HUpZJ","fZOoK","XdjjQ","max","xValArr","beacon","FKOev","name","reverse","2053268DxVCcH","SuPmq","assign","1422eEEgDp","whUhD","alpha","ZjVSm","bWLLw","$button","DZsyY","isAuth","ZmaCo","current","ZFlDa","ZrcfY","GaiyO","status","wFBqH","log","cgGGe",", gpsAlt:","EfPqH","MonHa","FZScV","getMapDataById","CRBhV","scUxw","ITHpt","ORefq","xifyr","uDngI","TYJkp","yaqDa","raVYu","hezLi","length","JWuFs","bufArrY","cExol","deviceOrientationCB","Bulpl","KNtNa","tSCBk","maxRssi","info","pjWhq","gpsAlt","outOfChina","OwYNm","beaconsLength","yJNmQ","KVTNI","FEsbM","GvZgt","kcmJU","CZttp","app","beaconMaxRssi2","blTKT","hASLa","GWJWJ","PHmiC","yMinPeak","lng","inertanceDelay","xMaxPeak","KRrTj","gWIVA","latitude","YwGhp","zpvoX","webkitCompassHeading","KEaDI","emit","EPURB","zAplR","zSoNC","uDdMf","lXHiC","DeZuC","dEIGz","sphericalToDatums","CyVzz","icFEI","kmfLj","TfWtv","window.alpha, beta, gamma","AgjTW","push","3|1|5|4|0|2","36770slWFzN","deviceOrientation","tYEDb","dispose","deviceorientation","buf","uUaOy","BpXlA","zEFwu","$compass","$gps","calls","HRCRN","addEventListener","WLbGA","appendChild","orientation","longitude","test","time","DlXHk","WmWWX","aeBYZ","srRAm","_changeFloorCount","EoklM","25104ULCtxj",", cfdpfd:","XaxFA","isOutdoor","click","$analyze","zCount","floor","gZVLm","QaSjc","clearWatch","VxJgA","MEJeE","stepSpeed","matchMedia","SLGOH","number","nikHy","isNavi","beaconAnalysisTimer","beaconFilterList","pQmPT","oPQgi","error","svgXq","disconnect","yMaxPeak","lastBeaconBestRssi","oOAyX","rtnWd","__CACHE_POOL__","ENpie","arr","pathAngle","GPS","TPKNy","reduce","pyaUO","MFrYj","PudmP","hydoR","uCHRF","alphaOffset","RDLKT","now","userAgent","toLng","gqfOi","vDokO","LBcTe","rssiCount","LDvJB","rEsDS","irJwd","iZqav","__FLOOR_CHANGE__","mlpIy","OWPQx","KCjEs","bCXmv","KVPUU","MKDsO","mHsmc","toLat","YUqeT","uDnEL","dsDca","lat","init","nvDEl","BLbCN","OQeKu","OaFFN","nMuxi","XuxqB","mwBws","Ytxzb","-楼层: ","qOaaA","oNtkD","dudbF","mmddZ","pisCR","gpsAccuracy","accelerationIncludingGravity","passDoorDis","CZFGS","CFUPE","GJMWo","nwZQs",", cmps: ","rectify","gsvpj","\n, cdpd:","watchPosition","zValArr","filterBeacons","filter","EtqSm","PYYcA","WmdBt","gpsSpeedMax","3|0|4|1|2|6|5","BEACON_DATA","initAngle","requestPermission","emnNw","evt1.alpha, beta, gamma","qJKks","Hslnv","open","\n2026/1/5 15:37:10","wjeYK","OWWGE","Ivbdp","pPNXS","VBrbd","beacons","setAttribute","UKkpX","XWQYO","qOVOf","\n pathAngle: ","toFixed","indexS","resetDevice","gps","1861656901033529344","duwim","pQpXJ","rqKoj","ARHuu","NPcJb","不支持获取GPS地理位置","FOmRp","renderer","RgVoD","gamma","bufArrZ","margin: 0 auto; width: 100px; padding: 8px 0; border-radius: 30px; background-color: #0099FF; color: #ffffff; font-size: 14px;","$dom","connect","XPetu","PBdin","yCount","fTspj","dVRHe","window.deviceOrientation_err","WZelv","KRFoL","gTsES","success",", alphaOffset: ","AUMLW","YhXBL","4|1|2|0|14|6|5|11|13|7|12|9|3|10|8","createElement","zPeakCount","min","ywuYK","zMaxPeak","mFrPE","originCmps","lastTimeY","oHLTy","aGrmW","setOptions","edqTE","VkimK","ReQZH","calcPos","close","coords","navi","beaconAnalysis","handleHashChange","cos","inertance","__step__","removeChild","xMinPeak","xCount","kSnnv","SFzbm","BoJZv","__location__","lockFloor:","CKZTT","\n 最强Gps: ","NRgXn","XsDSq","ZPeak","DWloo","location","aVnLL","lockFloor","Qurky","eEepI","LBNGw","GJAZa","yxxlX","hUquh","then","2QmcuKW","dcnpk","abs","oWsuk","_calculate","tKHEq","SAmmA","asSTm","lMlYo","cwnMK","kFiiK","Xqaet","ready","split","forEach","debug","JRQcQ","compassData","oDLrx","minor","mNqkD","reset","yLastTime","locationType","eWLWY","xGBsh","RBnZG","VcwSK","datumsToSpherical","hLnPm","\n 速度:","filterBeacon",", lockFloor:","BtQMb","mmZCl","MfrPd","pow","3|2|0|1|4","nmCcr","oWAzx","FysYr","function","744918WAjMaV","BYItt","passFloorDis","IHqJQ","bVccs","filterFloor","KLxxj","major","poHgK","eXkIg","ESZBb","RQWwf","KrIiW","ZDpky","qgjwf","VgBeH","QWbtR","yValArr","dyqqF","nqhrb","div","LuVNY","mapData","bufLen5","uacUZ","hashchange","dqQyj","$acc","stepDetected","YxjRF","hasBeacon","efPcp","tDdxU","render","nsrGR","LqRRw",'\n <div style="position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 999999; background-color: rgba(0, 0, 0, .5); display: flex; flex-direction: column; align-items: center; justify-content: center;">\n <div style="width: 60%; max-width: 360px; background-color: #ffffff; border-radius: 8px; overflow: hidden; padding: 20px; text-align: center;">\n <div style="font-size: 0;"><img height="50" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAB8CAYAAABe4F8OAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUM3RjcxOEY1NkREMTFFQkJGOTRCRkU0NDg3Q0U5ODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUM3RjcxOTA1NkREMTFFQkJGOTRCRkU0NDg3Q0U5ODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1QzdGNzE4RDU2REQxMUVCQkY5NEJGRTQ0ODdDRTk4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1QzdGNzE4RTU2REQxMUVCQkY5NEJGRTQ0ODdDRTk4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv4JStIAAAhJSURBVHja7J1pjBVFEMfrgSwEFEeCggEEjRf6AQgEolwKIogHiKCAgsoHEyURzRiFiEZUFI8xUYMhEU04hLCCgAgoogFZBGMQVECIKChXOCQjl1yC9X/dK7vA7s57r+fo2fonNeF4O/2mftvd093V1RlKmzz/Ir7eyzaU7cYy/3OIbRbbFLavyXVOpuWRMykBV8TX3mxD2O5gK6riJ7azTWWbzDDXC8R44XXQNW4gW4M877IqC5NoOgPdIxCjAXc5Xx/Qte4qg3c+wbZQN7efMtCjAtEsOEf3cwDXKYISfbZitklsKxjoKYGYH7hafO2lwd3FVjumb7KpTP+5WSAGg9deg0M/1zBh365E95/FDPRvgVgeXHPdz+El5WoLGnj0l3N1c7uIgZ6onhA9/0K+9te1rovFb8q72abp5nZ1+iGqfu5WXePQz9VJ2VTDWv12O5WB7kgXRM9vq2vcYLaLKf3CbNBi3X/OZqCH7YTo+c3KjOdaUvXVQVLTfeg/l4Yx3ZcxDK4+X+/RzWVXSsu0njlt1cOVSQxzY3Igen5N3c+hxt2dwn4uLH2va+cMBro3Hoie30bXuEFsjYRJ3jrOtkD3n/Pzme7L5AiuKV/v1/CuE/8b175szVTDlZXmIHr++bqfw0tKd+nnItOvunZiuLIld4iqn7tF17i+bHXFp7FqqQY6k4Hurxyi57fS4DCeayy+S5yOZMedCuii0uFKRsO7gq/vs3UTP1nV3A5hkN9lGOAlpFa3m4pfrJxIaFeDL2MEoLXCS+dLgNhffGG1egNiQ/GD1apXQ3xgvwSiQBQJRJFAFAlEgShKjs5L2fNsIxUPuoxtAxsizrDoilWZJqTWQDuTirRLzSwV5k5PpeA5sFQzlu2rQIFIno8WqCfbSFIxrwIxRu1kG87gZud9B8/vx9f3yOIQE5v7xG/YWhcEEHKdT/jaSjfBAjFCzWPrwQB2G7mb6+wiFbE3TyBGo+WEvYquc8zoXV0Hq+b3sa0UiOFqrwZ4JJS7u84/pILC9gnE8PRE6BtV1P1dgRiOsG1sWkRlITJ7jUA0r3GR7Z1X5bwhEM0KiRDmRlwmhh4HBKI5fRF5ShL18rRYIJpTSUzlLhOI5rS+mpWbSoi7Yip3u0A0p0MxlXtQIJpTUUzl1hGI5tQkpnKbC0RzimtXckuBaE6dYiq3o0A0p57k+dFmWVTl9RSI5oS83n0iLnMA2wUC0aye5toRVRoz+MWa5SibICI/3KCIykJipdYCMRy9zbWkcci18FK+vmWTU2yDiA2xM0N7yVH3RTK9BgIx/Nf+j/VZGCYBFmXvS3SDbQ6xNWTxTsIao+c3NAQQOVi/1PclgRidbmL7iQH0KRAgIsB/JovD+RHGjzA929NbYi/Gq9naFHwvRg+2UaTystqs/XiYo2S/AOJztkcDfn64/nzXFDz7SUA8ROlR0Gc5kKJn3gOI20lks3YA4i7xg9XaCYg7xA9WaxsgbhY/WK0NgPiL+MFqrQPE9eIH+yH+Tiotscg+bSLXOVCDL/+SOmhDZJ8wU/X/3Oly8YeVKikL8Vvxh5VaUhYiquVx8YlVWlt66ImCqA7MWCZ+sUpzSv9Qdj3xM/GL/RDniF+s0UZuPVedDVGdIV8i/rFCH5T9y5nhGVPEP4kXjoOfXBnEYrbD4qdEa6bORVcBRNfxz6QsSpzOyq9zrmi3d8RPidVirmg/VA3RdbA0tVD8lUi9fK5/rCju9EXxV+K0kCvY0uAQ1aHE88VviRFyzY2q6D8riwAfrX9YFL8+5Ir1Y+4QXWfNmYNKUSz6i9SpAZRPTSytjfsteuCM4c8lQc9whdqbP0Q1qBxt0QM3Mvy5uLUo25RWoSC7osaTPSv/nQ1/Lk5h4mVYkES9wZoVz7+WVDrl2gl/cDxwW37w1ZU8SxtSp5knvUkdzM8xPcgHg+1PdB2cu/SUJX3iLAbVogKALUht5046wAlBAebWwav0I0jhbMNuWjRFb5JKAY2jiJBMoZ/+RXQS/t3RSnTMJdNybr+Rans1CrlM3vxDEU7cac8A/8jlh3Lb7q1edfEbLcHG5oWa1ydXgLlDVCBREx8RnxvXg3q6k8KHqEAiAmCs+N2YRrBPZ+T7w4Vkz3iObar4v2CNYYAFreEW9qqtEvjg/MLewiIvvcYAR5oYV1GBIOuSilm9WZhED7DQ5rS0f0RgVV+2FcIlpyZ0pKmbmZu5kBoZVI8zwHdN3tDs9JMCiWmtXsLqnOPAoQyw2PSNzeZ2U00rcq1JEHJ5YZKkexgAzUNUII9lB65Erwu7rNaxdWC/hLacF+5svucPI8zIE9WqpgDRtTzEAEM9rijcVJmug1VpHH2+u5rBQx4EvH0OCBtg+DXxdI1sRmpZqF01AIhceQMZXmQ7zKJJWus6W0mdMjM+5QCxx7NVlACjq4nla2V/UqGQ9VMEDyk6cXz8xDgKjydMwfNxGhp2X3VJAcAlpAKaYsuRF08OcLXw2Y1w6oy9mY8Rj/tY9jliBBhfTSxfK6/h60SK72S2fISjF7AGuDMJXyYZUV8qsTryciMZe70Ew9uS/Z6usyBJXypZoXsqpBALpEmLqENMEXbojtNTiyQQq4Z5m4Z5ZQK+zfTswN11/kxq85DcIFp1bhPiREfF1MQiaOnJfIOXBGJ5mAj8xc7lh9lqRlAitrs/mx24B9gHIRBzg3k9IaSB6PaQSsCs0vOEZTSVA9Ya2bRPrxQmTpUZQ+ZOlwG8V0jtxj1m44A1Q7bK8xE98AJhra6awrMfYv4wUwMvPRCDw/yNVNT6R2mBlz6Ip2HixWcEqcl1zARh78gEDe8EpVD/CTAArKn6SH3gkg0AAAAASUVORK5CYII=" alt="" /></div>\n <div style="font-size: 16px; color: #666666; font-weight: bold; margin-top: 10px;">系统需开启权限</div>\n <div style="border-top: 1px solid #dddddd; margin-top: 20px; padding: 10px 0">\n <div style="font-size: 14px; color: #999999; padding: 10px 0">指南针数据<span style="font-size: 13px; color: #cccccc; margin-left: 10px;">(运动方向)</span></div>\n </div>\n </div>\n </div>\n ',"vUBjl","ZmqEU","MWysf","AxBji","__compass__","IUwIz","21TsTidy","ioPHQ","yeFQG","originGps","ayIUU","VUcrT","zMinPeak","mapId","beta","wKlua","removeEventListener","rrybD","Kqlus","URRkb","nakSW","\n beaconMaxRssi2:","nllIm","devicemotion","deviceorientationabsolute","locFloor","5028536LhyViA","heading","WWeSP","deviceOrientation_err","__IOS_DEVICE_MOTION_AUTH_CALLBACK__","$testMsg","speed","2985055rbIvZk","WKucx","children","NTxHW","wOKUf","delta","GZuyE","KBvZE","PSMbs","sDWmC","gpsHeading","pathInfo","iNpne","NPesA","\n, gpsHead:","wmpub","IbIBK","acceleration","OynrY","motion","JJbop","GVasY","oOhUd","ckSCg","altitude","XawwO","minIndoorRssiLimit","iunyk","lastTime","jtCXz","MQtAt","step","uHtPN","analyze","(orientation: landscape)","\n, dc:","sVSex","geolocation","sqrt","mmgBE","bufArrX","lvajR","gpsSpeed","sort","sin","UfcaG","Oazma","1815685020350812160","catch","Ckucd","_hashchangeEvent","uJMYJ","KIVQJ","ebapT","suSoU","atXxE","pEiKm","options","locPosFilter","granted","minRssi","CmMnG","__PRIORITY_FLOOR__","CUR_COMPASS","4|0|3|2|6|5|1","enaFv","QrxqE","MGeIV","style","shift","SHuRd","GrERc","GRuTS","wGYDu",", gpsSpeed:","UCTwe","_lastLocatePoint","KhHee","jRYoL","MJeFk","vEOpI","wubld","dnRqd","HwOGe","aBvOa","aZxuC","alt","valArrIdx","cDFzq","rssi","DKLBH","__GPS__","KwcpH","FhFrp","GAfwu","VLAEt","accuracy","tFaGf","kzqUM","innerHTML","xPeak","HGPnF","Rxwjb","IeAAC","oujkM","vLdUX","body","GpoOB","parse","rssiOffset","angle","dFdFP","DeviceMotionEvent","UOhej","-蓝牙(5:室外-5:室内):","HoKlp","map","lt_78Count","NGaGb","yPeak","crossDoorDis","CoIPL","beeqp","最强Rssi: ","lTGuU","wImBd","zlzYW","wEvAz","vUZMd","compassDelay","matches","NgXkX","jlHfO","dBCxP","href","nuqct","ThGBi","qMCKD","stringify"];return(M$t=function(){return t})()}function r$6(t){var e=J$1,n={kSnnv:function(t,e){return t<e},Qurky:e(643),Kqlus:e(466),nikHy:e(603),dcnpk:function(t,e){return t<e},qgjwf:function(t,e){return t!==e},GJMWo:e(512),mFrPE:function(t,e){return t-e},FKOev:function(t,e){return t===e},ioPHQ:function(t,e){return t-e},ENpie:function(t,e){return t+e},SuPmq:function(t,e){return t===e},tSCBk:function(t,e){return t-e},VLAEt:function(t,e){return t%e},wmpub:function(t,e){return t+e},vUZMd:e(845),GJAZa:function(t,e){return t%e},VxJgA:function(t,e){return t(e)},XaxFA:function(t,e){return t-e},nMuxi:e(782),AgjTW:function(t,e){return t+e},Bulpl:function(t,e){return t<e},rrybD:function(t,e){return t<e},ZjVSm:e(471),MWysf:function(t,e){return t===e},scUxw:function(t,e){return t%e},dFdFP:function(t,e){return t+e},GWJWJ:function(t,e){return t-e},UOhej:function(t,e){return t>e},KVPUU:function(t,e){return t>e},KrIiW:function(t,e){return t<e},ayIUU:function(t,e){return t/e},lvajR:e(474),PIEDO:e(802)};let i=0,r=0,s=0,a=null;function o(o){var l,u,h,d=e;if(window[d(807)]&&n[d(678)](r++,10)&&(console[d(991)](n[d(692)],o,a),console[d(991)](n[d(796)],o[d(978)],o[d(792)],o[d(633)],o[d(1044)]),a&&console[d(991)](n[d(513)],a[d(978)],a[d(792)],a[d(633)],a[d(1044)])),n[d(700)](s++,10)&&(a=o),t[d(471)]=o,n[d(755)](typeof o[d(978)],n[d(584)]))return;let p;if(n[d(755)](o[d(1044)],void 0))p=o[d(1044)];else{let t=o[d(978)],e=(null==(l=screen[d(486)])?void 0:l[d(921)])||window[d(486)]||0;p=n[d(657)](360,t),n[d(970)](e,90)&&(p=n[d(785)](360,n[d(527)](t,90))),(n[d(974)](e,-90)||n[d(970)](e,270))&&(p=n[d(657)](360,n[d(1015)](t,90))),p=n[d(906)](n[d(826)](p,360),360),window[d(510)](n[d(939)])[d(941)]&&(p=n[d(695)](n[d(527)](p,180),360))}let f=p;n[d(507)](c,f),t[d(538)]=i,t[d(658)]=f,f+=i;var m=n[d(498)](f,t[d(600)]);n[d(700)](r,10)&&t[d(1046)](n[d(569)],m);let g={value:{alpha:n[d(498)](n[d(467)](g$h?o[d(1044)]:n[d(657)](360,o[d(978)]),i),t[d(600)]),beta:o[d(792)],gamma:o[d(633)]},event:o};window[d(807)]&&n[d(1013)](r,10)&&console[d(991)]("de",g,t[d(716)],m),n[d(795)](r,10)&&t[d(1046)](n[d(979)],g),null==(h=null==(u=t[d(927)])?void 0:u.ar)||h[d(1012)](g),t[d(716)]={alpha:m,beta:o[d(792)],gamma:o[d(633)]}}function c(r){var s,a,o=e;let c=null==(a=null==(s=t[o(927)][o(669)])?void 0:s[o(822)])?void 0:a[o(529)];if(n[o(780)](c,void 0))return;let l=n[o(999)](n[o(922)](n[o(1033)](c,r),3600),360);n[o(924)](l,180)&&(l=n[o(657)](l,360));let u=Math[o(701)](l);n[o(556)](u,.12)&&n[o(753)](u,15)&&(i+=n[o(788)](n[o(785)](l,i),70))}let l=g$h?n[e(852)]:n[e(959)];window[e(483)](l,o,!1),this[e(720)]=function(){var t=e;window[t(794)](l,o,!1),window[t(483)](l,o,!1)},this[e(473)]=function(){window[e(794)](l,o,!1)}}let w$5=class{constructor(t={}){__publicField(this,_kb),__publicField(this,_jb),__publicField(this,_ib),__publicField(this,_hb),__publicField(this,_gb),__publicField(this,_fb),__publicField(this,_eb),__publicField(this,_db),__publicField(this,_cb),__publicField(this,_bb),__publicField(this,_ab),__publicField(this,_$a),__publicField(this,__a),__publicField(this,_Za),__publicField(this,_Ya),__publicField(this,_Xa),__publicField(this,_Wa),__publicField(this,_Va),__publicField(this,_Ua),__publicField(this,_Ta),__publicField(this,_Sa),__publicField(this,_Ra),__publicField(this,_Qa),__publicField(this,_Pa),__publicField(this,_Oa),__publicField(this,_Na);var e=J$1;let n=[1e-5,.00224,.0039,.00533,.00621,.00618,.00497,.00239,-.00163,-.00705,-.01363,-.02101,-.02862,-.03594,-.04228,-.04699,-.04947,-.04926,-.04605,-.03973,-.03045,-.01856,-.00465,.0105,.02601,.0409,.05421,.06508,.07276,.07673];this[e(475)]=[...n,...n[e(972)]()],this[e(676)]=t[e(676)]||0,this[e(1038)]=t[e(1038)]||0,this[e(1035)]=t[e(1035)]||.4,this[e(522)]=t[e(522)]||5,this[e(790)]=t[e(790)]||1.2,this[e(656)]=t[e(656)]||8,this[e(968)]=new Array(this[e(475)][e(1008)]),this[e(758)]=new Array(this[e(475)][e(1008)]),this[e(591)]=new Array(this[e(475)][e(1008)]),this[e(898)]=0,this[e(764)]={poHgK:function(t,e){return t-e}}[e(749)](this[e(475)][e(1008)],5),this[e(851)]=new Array(this[e(764)]),this[e(1010)]=new Array(this[e(764)]),this[e(634)]=new Array(this[e(764)]),this[e(620)]=0,this[e(640)]=0,this[e(502)]=0,this[e(930)]=0,this[e(653)]=0,this[e(659)]=0,this[e(839)]=0,this[e(721)]=0}[(_kb=J$1(475),_jb=J$1(676),_ib=J$1(1038),_hb=J$1(1035),_gb=J$1(522),_fb=J$1(790),_eb=J$1(656),_db=J$1(968),_cb=J$1(758),_bb=J$1(591),_ab=J$1(898),_$a=J$1(764),__a=J$1(851),_Za=J$1(1010),_Ya=J$1(634),_Xa=J$1(620),_Wa=J$1(640),_Va=J$1(502),_Ua=J$1(930),_Ta=J$1(653),_Sa=J$1(659),_Ra=J$1(839),_Qa=J$1(721),_Pa=J$1(687),_Oa=J$1(677),_Na=J$1(911),J$1(720))](){for(var t=J$1,e={SHuRd:t(651)}[t(881)][t(712)]("|"),n=0;;){switch(e[n++]){case"0":this[t(898)]=0;continue;case"1":this[t(758)]=new Array(this[t(475)][t(1008)]);continue;case"2":this[t(591)]=new Array(this[t(475)][t(1008)]);continue;case"3":this[t(659)]=0;continue;case"4":this[t(968)]=new Array(this[t(475)][t(1008)]);continue;case"5":this[t(634)]=new Array(this[t(764)]);continue;case"6":this[t(1010)]=new Array(this[t(764)]);continue;case"7":this[t(502)]=0;continue;case"8":this[t(721)]=0;continue;case"9":this[t(653)]=0;continue;case"10":this[t(839)]=0;continue;case"11":this[t(620)]=0;continue;case"12":this[t(930)]=0;continue;case"13":this[t(640)]=0;continue;case"14":this[t(851)]=new Array(this[t(764)]);continue}break}}[J$1(844)](t,e){var n=J$1,i={tDdxU:function(t,e){return t%e},vLdUX:function(t,e){return t+e},DKLBH:function(t,e){return t<e},dudbF:function(t,e){return t*e},HUpZJ:function(t,e){return t%e},OQeKu:function(t,e){return t<e},CZttp:function(t,e){return t-e},nmCcr:function(t,e){return t%e},HRCRN:function(t,e){return t>e},MEJeE:function(t,e){return t<e},qOVOf:function(t,e){return t>e},KRrTj:function(t,e){return t<e},WWeSP:function(t,e){return t>=e},DZsyY:n(469)};this[n(968)][this[n(898)]]=e[0],this[n(758)][this[n(898)]]=e[1],this[n(591)][this[n(898)]]=e[2];let r=this[n(898)]=i[n(773)](i[n(916)](this[n(898)],1),this[n(475)][n(1008)]),s=0,a=0,o=0;for(let f=0;i[n(901)](f,this[n(475)][n(1008)]);f++)a+=i[n(576)](this[n(968)][r],this[n(475)][f]),o+=i[n(576)](this[n(758)][r],this[n(475)][f]),s+=i[n(576)](this[n(591)][r],this[n(475)][f]),r=i[n(964)](i[n(916)](r,1),this[n(475)][n(1008)]);this[n(851)][this[n(620)]]=a,this[n(1010)][this[n(620)]]=o,this[n(634)][this[n(620)]]=s;var c=i[n(567)](i[n(1028)](this[n(620)],1),0)?i[n(1028)](this[n(764)],1):i[n(1028)](this[n(620)],1);let l=this[n(851)][c],u=this[n(1010)][c],h=this[n(634)][c];if(this[n(620)]=i[n(737)](i[n(916)](this[n(620)],1),this[n(764)]),i[n(482)](a,0)&&i[n(901)](l,0)&&this[n(677)]++,i[n(482)](o,0)&&i[n(508)](u,0)&&this[n(640)]++,i[n(617)](s,0)&&i[n(567)](h,0)&&this[n(502)]++,i[n(901)](this[n(911)],a)&&(this[n(911)]=a),i[n(1039)](this[n(930)],o)&&(this[n(930)]=o),i[n(1039)](this[n(653)],s)&&(this[n(653)]=s),i[n(806)](this[n(640)],2)&&(this[n(640)]=1,i[n(482)](this[n(930)],this[n(1035)])&&i[n(508)](this[n(930)],this[n(522)])&&(this[n(721)]=t)),i[n(806)](this[n(502)],2))for(var d=i[n(982)][n(712)]("|"),p=0;;){switch(d[p++]){case"0":this[n(653)]=-1;continue;case"1":this[n(502)]=1;continue;case"2":if(i[n(482)](this[n(687)],this[n(790)])&&i[n(1039)](this[n(687)],this[n(656)]))return 1;continue;case"3":this[n(687)]=i[n(916)](this[n(653)],this[n(930)]);continue;case"4":this[n(911)]=-1;continue;case"5":this[n(930)]=-1;continue}break}return 0}};function H$7(t){var e,n=J$1,i={wEvAz:function(t,e){return t+e},NRgXn:function(t,e){return t+e},qJKks:function(t,e){return t+e},XWQYO:function(t,e){return t+e},xifyr:function(t,e){return t+e},GaiyO:function(t,e){return t+e},WKucx:function(t,e){return t+e},VcwSK:function(t,e){return t+e},gWIVA:function(t,e){return t+e},LBcTe:function(t,e){return t+e},YUqeT:n(934),yaqDa:n(925),zlzYW:n(684),XuxqB:n(573),YhXBL:n(729),RDLKT:n(731),Ytxzb:n(618),WZelv:n(586),YxjRF:n(648),EPURB:n(799),YwGhp:n(885),nwZQs:n(993),rqKoj:n(589),jtCXz:n(497),LuVNY:n(846),HGPnF:n(682),ReQZH:n(825),uCHRF:n(607),Xqaet:function(t,e){return t(e)},UCTwe:function(t,e){return t(e)},DeZuC:function(t,e){return t===e},blTKT:function(t,e){return t===e},hLnPm:function(t,e){return t===e},VgBeH:function(t,e){return t>e},XPetu:function(t){return t()},mwBws:function(t,e){return t>=e},BoJZv:function(t,e){return t-e},DWloo:n(674),asSTm:n(801)},r=this,s=0,a=0,o=!1,c=this[n(830)]=new w$5;let l={zs:0,sl:0};function u(r){var o=n,u={bCXmv:function(t,e){return i[m$t(938)](t,e)},ebapT:function(t,e){return i[m$t(685)](t,e)},rEsDS:function(t,e){return i[m$t(604)](t,e)},aeBYZ:function(t,e){return i[m$t(616)](t,e)},eEepI:function(t,e){return i[m$t(685)](t,e)},ESZBb:function(t,e){return i[m$t(604)](t,e)},BYItt:function(t,e){return i[m$t(685)](t,e)},KLxxj:function(t,e){return i[m$t(1002)](t,e)},MGeIV:function(t,e){return i[m$t(988)](t,e)},oWAzx:function(t,e){return i[m$t(812)](t,e)},iNpne:function(t,e){return i[m$t(685)](t,e)},nakSW:function(t,e){return i[m$t(726)](t,e)},beeqp:function(t,e){return i[m$t(938)](t,e)},CRBhV:function(t,e){return i[m$t(726)](t,e)},hezLi:function(t,e){return i[m$t(685)](t,e)},dyqqF:function(t,e){return i[m$t(1040)](t,e)},dEIGz:function(t,e){return i[m$t(545)](t,e)},Ivbdp:i[o(560)],nuqct:i[o(1005)],ITHpt:i[o(937)],ZDpky:i[o(570)],eXkIg:i[o(650)],SAmmA:i[o(539)],GAfwu:i[o(572)],nqhrb:i[o(644)],VUcrT:i[o(770)],cgGGe:i[o(1047)],irJwd:i[o(1042)],uJMYJ:i[o(585)],dBCxP:i[o(626)],wFBqH:i[o(840)],lMlYo:i[o(762)],jRYoL:i[o(912)],BtQMb:i[o(665)],EfPqH:i[o(537)]};e=Date[o(540)]();let h=i[o(710)](motionCallback,r),d=h&&i[o(886)](md_sensorAcc,h);(null==d?void 0:d[o(769)])&&d[o(842)]&&(a++,l.sl++);let{x:p,y:f,z:m}=r[o(828)]||r[o(580)]||{};i[o(1052)](p,void 0)&&i[o(1031)](f,void 0)&&i[o(728)](m,void 0)&&({x:p,y:f,z:m}=r[o(580)]||{}),i[o(756)](c[o(844)](e,[p,f,m]),0)&&l.zs++;i[o(638)](()=>{var e,n,i,r,s,a,c,h,d,p,f,m,g,A,v,y,S,b,x,M=o;let T=null==(n=t[M(927)][M(997)](null==(e=t[M(887)])?void 0:e[M(503)]))?void 0:n[M(971)];debug&&window[M(809)]&&window[M(809)](0,u[M(555)](u[M(555)](u[M(555)](u[M(555)](u[M(555)](u[M(864)](u[M(864)](u[M(548)](u[M(864)](u[M(548)](u[M(864)](u[M(492)](u[M(492)](u[M(548)](u[M(693)](u[M(555)](u[M(751)](u[M(492)](u[M(742)](u[M(747)](u[M(548)](u[M(548)](u[M(878)](u[M(864)](u[M(742)](u[M(742)](u[M(878)](u[M(878)](u[M(738)](u[M(548)](u[M(823)](u[M(693)](u[M(693)](u[M(798)](u[M(933)](u[M(823)](u[M(998)](u[M(1007)](u[M(878)](u[M(759)](u[M(759)](u[M(1053)](u[M(492)](u[M(548)](u[M(610)],null==(i=t[M(523)])?void 0:i[M(619)](1)),u[M(946)]),t[M(928)]),u[M(1e3)]),null==(r=t[M(579)])?void 0:r[M(619)](2)),u[M(754)]),T),"-"),t[M(1022)]),u[M(750)]),t[M(509)]),"-"),l.sl),"-"),l.zs),u[M(705)]),null==(s=t[M(927)][M(669)])?void 0:s[M(822)][M(691)]),u[M(905)]),null==(c=null==(a=t[M(927)][M(669)])?void 0:a[M(822)][M(529)])?void 0:c[M(619)](0)),u[M(760)]),null==(h=t[M(658)])?void 0:h[M(619)](0)),u[M(789)]),null==(d=t[M(538)])?void 0:d[M(619)](0)),u[M(992)]),null==(p=t[M(1030)])?void 0:p[M(619)](2)),u[M(549)]),t[M(853)][M(619)](0)),u[M(862)]),t[M(1019)][M(619)](0)),u[M(944)]),null==(m=null==(f=t[M(927)][M(669)])?void 0:f[M(822)][M(931)])?void 0:m[M(619)](0)),"--"),null==(A=null==(g=t[M(927)][M(669)])?void 0:g[M(822)][M(581)])?void 0:A[M(619)](0)),u[M(990)]),null==(y=null==(v=t[M(927)][M(669)])?void 0:v[M(822)][M(950)])?void 0:y[M(619)](0)),"--"),null==(b=null==(S=t[M(927)][M(669)])?void 0:S[M(822)][M(743)])?void 0:b[M(619)](0)),u[M(707)]),t[M(927)][M(631)][M(1017)][M(774)][M(481)]),u[M(889)]),null==(x=t[M(927)][M(669)])?void 0:x[M(822)][M(691)]),u[M(732)]),t[M(821)]),u[M(994)]))}),i[o(571)](i[o(680)](e,s),t[o(1037)])&&(s=e,t[o(1046)](i[o(688)],a),a=0)}this[n(606)]=function(){var t=n;o=!0,window[t(483)](i[t(706)],u,!1)},this[n(667)]=function(){var t=n;o=!1,window[t(794)](i[t(706)],u,!1)},this[n(720)]=function(){var t=n;o&&(r[t(667)](),r[t(606)]())}}function o$6(){var t=J$1,e={qMCKD:function(t,e){return t(e)},zAplR:t(519),PSMbs:t(761),PYYcA:t(777),pjWhq:t(879),atXxE:t(635),mHsmc:t(875),vUBjl:function(t,e){return t===e},oOAyX:function(t){return t()},rtnWd:function(t,e){return t==e},pEiKm:t(740),WmdBt:function(t,e){return t(e)},raVYu:t(647),MFrYj:function(t){return t()},KVTNI:t(500)};return new Promise(function(n,i){for(var r=t,s=e[r(558)][r(712)]("|"),a=0;;){switch(s[a++]){case"0":var o;continue;case"1":e[r(778)](e[r(524)](v$9),2)?window[r(808)]?window[r(808)](n,i):(window[r(808)]=function(t,e){var s=r,a={yxxlX:u[s(495)],IHqJQ:function(t,e){return u[s(987)](t,e)},lTGuU:function(t,e){return u[s(1001)](t,e)},gsvpj:u[s(936)]};d=function(e){var i=s,r={message:a[i(696)],e};a[i(744)](n,r),a[i(935)](t,r),window[i(808)]=null},h=function(t){var n=s,r={message:a[n(588)],e:t};a[n(935)](i,r),a[n(935)](e,r),window[n(808)]=null}},o=function(){var t=r,n=document[t(652)](e[t(819)]);n[t(910)]=e[t(595)];var i=document[t(652)](e[t(819)]);return i[t(614)](e[t(1018)],e[t(866)]),i[t(910)]="开启",n[t(813)][0][t(813)][0][t(485)](i),{$dom:n,$button:i}}(),l=o[r(636)],c=o[r(981)],window[r(923)]&&e[r(525)](typeof DeviceMotionEvent[r(601)],e[r(867)])?e[r(524)](F$6)[r(698)](function(t){u[r(1001)](d,t)})[r(859)](function(){var t=r,e={uDngI:function(t,e){return u[m$t(1001)](t,e)},FEsbM:function(t,e){return u[m$t(987)](t,e)}};document[t(917)][t(485)](l),c[t(483)](u[t(649)],function(){var n=t;document[n(917)][n(675)](l),u[n(553)](F$6)[n(698)](function(t){e[n(1003)](d,t)})[n(859)](function(t){e[n(1025)](h,t)})},!1)}):e[r(596)](h,{})):e[r(948)](d,{});continue;case"2":var c;continue;case"3":var l;continue;case"4":var u={ZrcfY:function(t,n){return e[r(596)](t,n)},EoklM:e[r(1006)],ORefq:function(t,n){return e[r(948)](t,n)},wImBd:e[r(1048)],OWPQx:function(t){return e[r(534)](t)},AUMLW:e[r(1024)]};continue;case"5":var h=function(t){var n=r;e[n(948)](i,{message:e[n(1048)],e:t})};continue;case"6":var d=function(t){var e=r;u[e(987)](n,{message:u[e(495)],e:t})};continue}break}})}function F$6(){var t=J$1,e={KRFoL:function(t,e){return t===e},tKHEq:t(870),CKZTT:function(t,e){return t(e)},yJNmQ:function(t,e){return t(e)}};return new Promise(function(n,i){var r=t;DeviceMotionEvent[r(601)]()[r(698)](function(t){var i=r;e[i(645)](t,e[i(704)])&&e[i(683)](n,t)})[r(859)](function(t){e[r(1023)](i,t)})})}var k$5={PI:3.141592653589793,x_pi:52.35987755982988,rectify(t,e){var n=J$1,i={ZmaCo:function(t,e){return t+e},FOmRp:function(t,e){return t+e}};if(this[n(1020)](t,e))return{lat:t,lng:e};var r=this[n(816)](t,e);return{lat:i[n(984)](t,r[n(563)]),lng:i[n(630)](e,r[n(1036)])}},delta:function(t,e){for(var n=J$1,i={JJbop:n(598),KwcpH:function(t,e){return t-e},cExol:function(t,e){return t*e},pPNXS:function(t,e){return t/e},oPQgi:function(t,e){return t-e},mlpIy:function(t,e){return t*e},NPcJb:function(t,e){return t-e},PHmiC:function(t,e){return t/e},JRQcQ:function(t,e){return t*e},LqRRw:function(t,e){return t-e},aBvOa:function(t,e){return t*e},kzqUM:function(t,e){return t*e},WmWWX:function(t,e){return t*e},DlXHk:function(t,e){return t*e}},r=i[n(831)][n(712)]("|"),s=0;;){switch(r[s++]){case"0":var a=this[n(559)](i[n(903)](e,105),i[n(903)](t,35));continue;case"1":var o=i[n(1011)](i[n(611)](t,180),this.PI);continue;case"2":var c=i[n(518)](1,i[n(552)](i[n(1011)](l,c=Math[n(855)](o)),c));continue;case"3":var l=.006693421622965943;continue;case"4":var u=this[n(542)](i[n(903)](e,105),i[n(628)](t,35));continue;case"5":return{lat:a=i[n(1034)](i[n(1011)](180,a),i[n(715)](i[n(611)](i[n(715)](6378245,i[n(776)](1,l)),i[n(895)](c,h)),this.PI)),lng:u=i[n(611)](i[n(909)](180,u),i[n(491)](i[n(490)](i[n(1034)](6378245,h),Math[n(672)](o)),this.PI))};case"6":var h=Math[n(849)](c);continue}break}},outOfChina:function(t,e){var n=J$1,i={GrERc:function(t,e){return t<e},suSoU:function(t,e){return t>e},wubld:function(t,e){return t<e}};return i[n(882)](e,72.004)||i[n(865)](e,137.8347)||i[n(892)](t,.8293)||i[n(865)](t,55.8271)},toLat:function(t,e){var n=J$1,i={MKDsO:function(t,e){return t+e},TfWtv:function(t,e){return t+e},nllIm:function(t,e){return t-e},IbIBK:function(t,e){return t*e},uDdMf:function(t,e){return t*e},oujkM:function(t,e){return t*e},whUhD:function(t,e){return t/e},dqQyj:function(t,e){return t+e},FZScV:function(t,e){return t*e},ARHuu:function(t,e){return t*e},SLGOH:function(t,e){return t*e},eWLWY:function(t,e){return t*e},oaQPo:function(t,e){return t+e},AxBji:function(t,e){return t*e},aVnLL:function(t,e){return t*e},TcIsW:function(t,e){return t*e},HwOGe:function(t,e){return t+e},PudmP:function(t,e){return t/e}},r=i[n(557)](i[n(1058)](i[n(557)](i[n(557)](i[n(800)](i[n(827)](2,t),100),i[n(827)](3,e)),i[n(827)](i[n(1050)](.2,e),e)),i[n(1050)](i[n(1050)](.1,t),e)),i[n(915)](.2,Math[n(849)](Math[n(701)](t))));return r+=i[n(977)](i[n(827)](2,i[n(767)](i[n(996)](20,Math[n(855)](i[n(996)](i[n(827)](6,t),this.PI))),i[n(627)](20,Math[n(855)](i[n(511)](i[n(723)](2,t),this.PI))))),3),(r+=i[n(977)](i[n(915)](2,i[n(953)](i[n(781)](20,Math[n(855)](i[n(690)](e,this.PI))),i[n(827)](40,Math[n(855)](i[n(958)](i[n(977)](e,3),this.PI))))),3))+i[n(977)](i[n(511)](2,i[n(894)](i[n(1050)](160,Math[n(855)](i[n(511)](i[n(977)](e,12),this.PI))),i[n(827)](320,Math[n(855)](i[n(535)](i[n(690)](e,this.PI),30))))),3)},toLng:function(t,e){var n=J$1,i={MonHa:function(t,e){return t+e},XdjjQ:function(t,e){return t+e},OynrY:function(t,e){return t*e},tFaGf:function(t,e){return t*e},CyVzz:function(t,e){return t*e},pisCR:function(t,e){return t*e},gqfOi:function(t,e){return t*e},zpvoX:function(t,e){return t/e},dVRHe:function(t,e){return t*e},MQtAt:function(t,e){return t+e},cwnMK:function(t,e){return t*e},KBvZE:function(t,e){return t*e},GpoOB:function(t,e){return t*e},IeAAC:function(t,e){return t/e},hUquh:function(t,e){return t*e},sVSex:function(t,e){return t*e},nsrGR:function(t,e){return t*e},SFzbm:function(t,e){return t/e},wjeYK:function(t,e){return t/e},oNtkD:function(t,e){return t+e},wOKUf:function(t,e){return t*e},tYEDb:function(t,e){return t/e},emnNw:function(t,e){return t*e},GvZgt:function(t,e){return t/e}},r=i[n(995)](i[n(995)](i[n(995)](i[n(966)](i[n(995)](300,t),i[n(829)](2,e)),i[n(908)](i[n(1055)](.1,t),t)),i[n(829)](i[n(578)](.1,t),e)),i[n(543)](.1,Math[n(849)](Math[n(701)](t))));return r+=i[n(1043)](i[n(642)](2,i[n(841)](i[n(1055)](20,Math[n(855)](i[n(708)](i[n(818)](6,t),this.PI))),i[n(918)](20,Math[n(855)](i[n(543)](i[n(818)](2,t),this.PI))))),3),(r+=i[n(914)](i[n(829)](2,i[n(995)](i[n(1055)](20,Math[n(855)](i[n(697)](t,this.PI))),i[n(847)](40,Math[n(855)](i[n(775)](i[n(679)](t,3),this.PI))))),3))+i[n(608)](i[n(697)](2,i[n(575)](i[n(815)](150,Math[n(855)](i[n(642)](i[n(472)](t,12),this.PI))),i[n(543)](300,Math[n(855)](i[n(602)](i[n(1026)](t,30),this.PI))))),3)}};function P$4(t){for(var e=J$1,n={QWbtR:e(736),NPesA:e(902),duwim:e(629)},i=n[e(757)][e(712)]("|"),r=0;;){switch(i[r++]){case"0":var s;continue;case"1":var a=!0;continue;case"2":var o=this;continue;case"3":var c={UKkpX:n[e(824)],KNtNa:n[e(624)]};continue;case"4":this[e(637)]=function(){var n=e,i={cDFzq:c[n(615)]};return a=!0,navigator[n(848)]?s=navigator[n(848)][n(590)](function(e){var r,s=n;a&&(r={current:k$5[s(587)](e[s(668)][s(1041)],e[s(668)][s(487)]),originGps:{...e[s(668)],lng:e[s(668)][s(487)],lat:e[s(668)][s(1041)],alt:e[s(668)][s(835)],accuracy:e[s(668)][s(907)],speed:e[s(668)][s(810)],heading:e[s(668)][s(805)]}},t[s(1046)](i[s(899)],r))},function(t){console[n(714)](t)},{maximumAge:0,timeout:3e4,enableHighAccuracy:!0}):console[n(714)](c[n(1014)]),o},this[e(521)]=function(){var t=e;return a=!1,navigator[t(848)]&&s&&(navigator[t(848)][t(506)](s),s=null),o};continue}break}}function m$t(t,e){return t-=466,M$t()[t]}let I$3=class extends EventDispatcher{constructor(t){var e=J$1;super(),__publicField(this,_Sb,!1),__publicField(this,_Rb,!0),__publicField(this,_Qb,!1),__publicField(this,_Pb),__publicField(this,_Ob,0),__publicField(this,_Nb,30),__publicField(this,_Mb,0),__publicField(this,_Lb,0),__publicField(this,_Kb,!0),__publicField(this,_Jb,-99),__publicField(this,_Ib,1),__publicField(this,_Hb,-88),__publicField(this,_Gb,""),__publicField(this,_Fb,1),__publicField(this,_Eb,0),__publicField(this,_Db,0),__publicField(this,_Cb,-90),__publicField(this,_Bb,-15),__publicField(this,_Ab,200),__publicField(this,_zb,500),__publicField(this,_yb,2e3),__publicField(this,_xb,0),__publicField(this,_wb),__publicField(this,_vb),__publicField(this,_ub),__publicField(this,_tb),__publicField(this,_sb),__publicField(this,_rb,0),__publicField(this,_qb),__publicField(this,_pb,0),__publicField(this,_ob),__publicField(this,_nb),__publicField(this,_mb,-171),__publicField(this,_lb),this[e(927)]=t[e(927)],this[e(662)](t),this[e(671)]()}[(_Sb=J$1(714),_Rb=J$1(983),_Qb=J$1(622),_Pb=J$1(927),_Ob=J$1(538),_Nb=J$1(579),_Mb=J$1(821),_Lb=J$1(1019),_Kb=J$1(673),_Jb=J$1(523),_Ib=J$1(928),_Hb=J$1(837),_Gb=J$1(722),_Fb=J$1(509),_Eb=J$1(853),_Db=J$1(597),_Cb=J$1(871),_Bb=J$1(1016),_Ab=J$1(940),_zb=J$1(1037),_yb=J$1(954),_xb=J$1(600),_wb=J$1(887),_vb=J$1(480),_ub=J$1(479),_tb=J$1(501),_sb=J$1(599),_rb=J$1(874),_qb=J$1(768),J$1(564))](t){var e=J$1,n={GVasY:e(960),Rxwjb:function(t,e){return t||e},nvDEl:function(t,e){return t<e},VBrbd:function(t,e){return t==e},JzxNx:function(t,e){return t*e},URRkb:function(t,e){return t*e},TPKNy:e(681),mmgBE:e(842),NgXkX:e(957),oWsuk:function(t,e){return t<e},vDokO:function(t,e){return t<e},bVccs:function(t,e){return t<e},mmddZ:function(t,e){return t<e},GRuTS:function(t,e){return t>e},lXHiC:e(674),JWuFs:function(t,e){return t>e},mmZCl:function(t,e){return t<e},gTsES:function(t,e){return t<e},enaFv:function(t,e){return t+e},yeFQG:function(t,e){return t*e},ThGBi:function(t,e){return t*e},GZuyE:function(t,e){return t*e},Oazma:e(530),TYJkp:function(t,e){return t in e},fZOoK:e(689),sDWmC:function(t,e){return t+e},qOaaA:e(711),KIVQJ:e(782),dnRqd:e(902),oOhUd:function(t){return t()}};let i=[];for(var r=0;n[e(544)](r,t[e(1008)]);r++){let s=t[r];i[n[e(820)](n[e(820)](s[e(748)],"_"),s[e(718)])]=s}this[e(599)]=[],this[e(599)]=i,this[e(1046)](n[e(574)]),this[e(501)]=new B$7(this),this[e(479)]=new r$6(this),this[e(768)]=new H$7(this),this[e(480)]=new P$4(this),this[e(622)]&&this[e(480)][e(637)](),this[e(673)]&&this[e(768)][e(606)](),this.on(n[e(863)],t=>{var i=e;this[i(1046)](n[i(832)],this[i(874)]=n[i(913)](t,0))}),this.on(n[e(1051)],t=>{var i,r,s=e;if(!this[s(887)]||(null==(r=null==(i=this[s(927)][s(669)])?void 0:i[s(822)])?void 0:r[s(691)]))return;let a=this[s(887)].x,o=this[s(887)].y,c=this[s(874)],l=n[s(565)](this[s(523)],-88)?.8:g$h?.65:.6;n[s(612)](this[s(887)][s(503)],"1")&&(l*=.5);let u=n[s(952)](l,t),h=n[s(952)](c,DEG2RAD),d={x:a+=n[s(797)](Math[s(855)](h),u),y:o+=n[s(952)](Math[s(672)](h),u)};this[s(887)].x=d.x,this[s(887)].y=d.y,this[s(1046)](n[s(531)],Object[s(975)]({},this[s(887)],{type:n[s(850)],compass:this[s(874)]})),this[s(1046)](n[s(942)],t)});let s=0;this.on(n[e(893)],t=>{var i=e;if(this[i(853)]=t[i(787)][i(810)]||0,this[i(597)]=Math[i(967)](this[i(597)],this[i(853)]),this[i(1019)]=t[i(787)][i(897)]||0,this[i(821)]=t[i(787)][i(805)]||0,n[i(702)](this[i(927)][i(669)][i(822)][i(950)],10)||n[i(544)](this[i(927)][i(669)][i(822)][i(743)],5)||!this[i(927)][i(499)])return;if(this[i(579)]=t[i(787)][i(907)],n[i(745)](this[i(579)],20)&&n[i(544)](this[i(523)],-78)&&(this[i(928)]=Math[i(654)](this[i(928)]+=2,5)),n[i(577)](this[i(928)],0))return;if(n[i(883)](this[i(853)],1.5)&&this[i(1046)](n[i(1051)],n[i(952)](this[i(853)],2)),n[i(1009)](this[i(523)],-78)&&n[i(1009)](this[i(579)],10))return;let r=t[i(985)]||t,a=UnitsUtils[i(727)](r[i(1036)],r[i(563)]);if(this[i(887)]=this[i(887)]||a,this[i(887)][i(503)]="1",this[i(927)][i(669)][i(989)][i(514)]&&n[i(733)](t[i(787)][i(810)],3)){if(n[i(646)](++s,0))return;s=-6}this[i(887)].x=n[i(876)](n[i(786)](a.x,.5),n[i(947)](this[i(887)].x,.5)),this[i(887)].y=n[i(876)](n[i(817)](a.y,.5),n[i(947)](this[i(887)].y,.5)),this[i(1046)](n[i(531)],Object[i(975)]({},this[i(887)],{type:n[i(857)],originGps:t[i(787)]}))}),this.on(n[e(531)],t=>{var i,r=e;t&&(i=n[r(1004)]("x",t)?Object[r(975)]({},t,UnitsUtils[r(1054)](t.x,t.y)):Object[r(975)]({},t,UnitsUtils[r(727)](t[r(1036)],t[r(563)])),this[r(1046)](n[r(965)],{...i}))}),this[e(983)]&&n[e(833)](o$6)[e(698)](t=>{this[e(621)]()})}[(_pb=J$1(546),J$1(703))](t){var e=J$1,n={kmfLj:function(t,e){return t===e},pQmPT:e(613),RiiRN:function(t,e){return t===e},MJeFk:function(t,e){return t<e},bWLLw:function(t,e){return t+e},WLbGA:function(t,e){return t/e},OaFFN:function(t,e){return t+e},UfcaG:function(t,e){return t/e},LBNGw:function(t,e){return t/e},PBdin:e(681),XsDSq:e(900)};if(n[e(1057)](t[e(1008)],0))return;this[e(1046)](n[e(517)],t);const i=this[e(501)][e(844)](t);if(this[e(887)]=this[e(887)]||i,i){if(this[e(927)][e(669)][e(989)][e(514)]){let t=n[e(961)](this[e(887)][e(503)],i[e(503)]);if(this[e(887)][e(503)]=i[e(503)],n[e(890)](++this[e(546)],0)&&t)return;this[e(546)]=-6}n[e(1057)](i[e(503)],this[e(887)][e(503)])?this[e(887)]={x:n[e(980)](n[e(484)](this[e(887)].x,2),n[e(484)](i.x,2)),y:n[e(568)](n[e(856)](this[e(887)].y,2),n[e(694)](i.y,2))}:this[e(887)]=i||this[e(887)],this[e(887)][e(503)]=i[e(503)],this[e(1046)](n[e(639)],Object[e(975)]({},this[e(887)],{type:n[e(686)]}))}}[J$1(869)](t,e){var n=J$1,i={mNqkD:function(t,e,n){return t(e,n)},kcmJU:function(t,e){return t/e},CFUPE:function(t,e){return t*e},fTspj:function(t,e){return t+e},KhHee:function(t,e){return t-e},CoIPL:function(t,e){return t*e},KCjEs:function(t,e){return t+e},jlHfO:function(t,e){return t*e}};let r=i[n(719)](getLineLength,t,e);r=Math[n(967)](r,1);let s=i[n(1027)](1,i[n(583)](r,2));return{x:i[n(641)](i[n(583)](t.x,i[n(888)](1,s)),i[n(932)](e.x,s)),y:i[n(554)](i[n(943)](t.y,i[n(888)](1,s)),i[n(943)](e.y,s))}}[J$1(671)](){var t=J$1,e={oHLTy:function(t,e){return t(e)},KEaDI:function(t,e){return t(e)},VkimK:function(t,e){return t>e},QaSjc:function(t,e){return t-e},uDnEL:function(t,e,n){return t(e,n)},QrxqE:t(766)};window[t(483)](e[t(877)],this[t(861)]=n=>{var i=t,r={uUaOy:function(t,n){return e[m$t(660)](t,n)},zEFwu:function(t,n){return e[m$t(1045)](t,n)},pyaUO:function(t,n){return e[m$t(664)](t,n)},UKucQ:function(t,n){return e[m$t(505)](t,n)}};e[i(561)](setTimeout,()=>{var t=i,{appData:e}=r[t(476)](getURLQuery,location[t(945)]);e&&(e=r[t(478)](decodeURIComponent,e),e=JSON[t(919)](e),r[t(533)](r[t(951)](Date[t(540)](),e[t(489)]),2e3)||(e[t(969)]&&this[t(670)](e[t(969)]),history[t(962)]()))},0)})}[(_ob=J$1(515),_nb=J$1(771),_mb=J$1(1030),_lb=J$1(1022),J$1(670))](t=[]){var e,n,i=J$1,r={ckSCg:function(t,e){return t===e},RgVoD:i(623),aGrmW:function(t,e){return t!==e},wGYDu:function(t,e){return t===e},NTxHW:i(858),wKlua:function(t,e){return t+e},uHtPN:function(t,e){return t(e)},LDvJB:function(t,e){return t(e)},Ckucd:function(t,e,n){return t(e,n)},RBnZG:function(t,e){return t+e},CZFGS:function(t,e){return t>=e},ZmqEU:function(t,e){return t>e},iunyk:i(516)};r[i(547)](clearTimeout,this[i(515)]),this[i(515)]=r[i(860)](setTimeout,()=>{var t=i;this[t(1030)]=-180.1,this[t(523)]=-99.1},5e3),t[i(927)](t=>{var e=i;this[e(927)][e(763)][e(868)][e(920)]?t[e(900)]+=this[e(927)][e(763)][e(868)][e(920)]:(r[e(834)](this[e(927)][e(763)][e(791)],r[e(632)])&&r[e(661)](t[e(748)],2e4)&&(t[e(900)]+=30),r[e(884)](this[e(927)][e(763)][e(791)],r[e(814)])&&(t[e(900)]+=10));let n=this[e(599)][t[e(748)]+"_"+t[e(718)]];(null==n?void 0:n[e(920)])&&(t[e(900)]=r[e(793)](t[e(900)],n[e(920)]),t[e(907)]=r[e(843)](l$b,t[e(900)]))}),t[0]&&(this[i(1022)]=t[i(1008)],t=this[i(592)](t,this[i(599)],this[i(871)],this[i(1016)]),this[i(1022)]=r[i(793)](r[i(793)](this[i(1022)],"-"),t[i(1008)])),this[i(1030)]=r[i(725)]((null==(e=t[0])?void 0:e[i(900)])||-90,(null==(n=t[1])?void 0:n[i(900)])||-90),t[i(1008)]&&!this[i(771)]&&(this[i(771)]=!0),t[0]?this[i(523)]=t[0][i(900)]:this[i(523)]-=5.1,r[i(582)](this[i(523)],-78)&&(this[i(928)]=Math[i(967)](--this[i(928)],-5)),r[i(779)](this[i(928)],0)||(this[i(1046)](r[i(838)],JSON[i(919)](JSON[i(949)](t))),this[i(703)](t||[]))}[J$1(592)](t,e,n,i){var r=J$1,s={XawwO:function(t,e){return t<e},gZVLm:function(t,e){return t+e},svgXq:function(t,e){return t+e},xGBsh:function(t,e){return t<=e},HoKlp:function(t,e){return t>e}};(t=t[r(613)]||t||[])[r(854)]((t,e)=>e[r(900)]-t[r(900)]);for(var a=[],o=0;s[r(836)](o,t[r(1008)]);o++){var c=t[o],l=s[r(504)](s[r(520)](c[r(748)],"_"),c[r(718)]);if(c[r(900)]=+c[r(900)],c[r(907)]=+c[r(907)],e[l]&&!s[r(724)](c[r(907)],0)&&!s[r(926)](c[r(900)],i)){if(s[r(836)](c[r(900)],n))break;var u=e[l];a[r(468)]({major:u[r(748)],minor:u[r(718)],rssi:c[r(900)],accuracy:c[r(907)],x:u.x,y:u.y,floor:u[r(503)]})}}return a}[J$1(720)](){var t=J$1;this[t(501)][t(720)]()}[J$1(621)](){var t=J$1;this[t(479)][t(720)](),this[t(768)][t(720)]()}[J$1(662)](t){var e=J$1,n={vEOpI:function(t,e){return t!==e},Jjuok:function(t,e){return t!==e},NGaGb:function(t,e){return t!==e}};for(var i in t)n[e(891)](void 0,this[i])&&n[e(956)](void 0,t[i])&&n[e(891)](t[i],null)&&n[e(929)](t[i],"")&&(this[i]=t[i])}[J$1(473)](){var t=J$1,e={FysYr:t(766)};window[t(794)](e[t(739)],this[t(861)]),this[t(479)][t(720)](),this[t(768)][t(667)](),this[t(480)][t(521)]()}};var t$2=m$s;function m$s(t,e){return t-=430,M$s()[t]}!function(t,e){for(var n=m$s,i=t();;)try{if(604117===-parseInt(n(508))/1+-parseInt(n(458))/2*(parseInt(n(495))/3)+parseInt(n(503))/4+-parseInt(n(515))/5*(-parseInt(n(460))/6)+parseInt(n(484))/7*(parseInt(n(468))/8)+parseInt(n(477))/9+-parseInt(n(435))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$s),_Ub=t$2(454),_Tb=t$2(487);class PathData{constructor(t,e){__publicField(this,"id"),__publicField(this,_Ub),__publicField(this,_Tb);var n=t$2;this.id=t,this[n(454)]=null,this[n(487)]=e}}_Xb=t$2(441),_Wb=t$2(451),_Vb=t$2(487);class LinkData{constructor(t,e,n,i){__publicField(this,_Xb),__publicField(this,_Wb),__publicField(this,_Vb),__publicField(this,"id");var r=t$2;this[r(441)]=t,this[r(451)]=e,this[r(487)]=n,this.id=i}}function M$s(){var t=["fNzsH","forEach","bClfU","Ywpll","toId","fixij","seekC","links","oSJWR","size","3|1|2|4|0","1296itJnQH","multiEdges","12KvsKyz","AvpPQ","diXem","createLink","1|4|0|6|3|2|5","forEachLinkedNode","createSingleLink","ApQxJ","152136zsuNlJ","createUniqueLink","zBNkD","Kfevg","done","aqqhr","from","options","hasOwnProperty","5299128bYvukD","rykHK","PKpQP","removeLink","Function is expected to iterate over graph nodes. You passed ","HqkcV","IPjCw","217fTKwVZ","multigraph","function","data","getLinks","bsoic","XIswL","get","QHHWm","nodes","values","807CCrVrg","set","BcGzV","pWdPJ","value","SPbBk","vLDzI","next","2699636Axnidh","split","addLinkToNode","5|3|1|0|2|4","removeNode","597148igEZQx","Onwtf","clear","removeLinkInstance","forEachOrientedLink","addNode","getNode","1352915GFQcwl","forEachLink","swsGx","Iwydz","CNMpR","getNodeCount","vNKMw","qRpgz","10188170RvqudP","addLink","forEachNonOrientedLink","getLink","add","RwxOX","fromId","4|1|3|7|0|5|6|2","delete","dfnKH","getLinkCount","forEachNode"];return(M$s=function(){return t})()}function g$g(t,e){var n=t$2,i={AvpPQ:function(t,e){return t+e},vLDzI:function(t,e){return t+e}};return i[n(461)](i[n(501)](t,"_"),e)}class AStarPath{constructor(t={}){__publicField(this,_ac),__publicField(this,_$b,new Map),__publicField(this,__b,new Map),__publicField(this,_Zb,{}),__publicField(this,_Yb);var e=t$2,n={fNzsH:function(t,e){return t||e},QHHWm:function(t,e){return t===e}};this[e(475)]=n[e(447)](t,{}),n[e(492)](t[e(485)],void 0)&&(t[e(485)]=!1),this[e(463)]=t[e(485)]?this[e(469)]:this[e(466)]}[(_ac=t$2(475),_$b=t$2(493),__b=t$2(454),_Zb=t$2(459),_Yb=t$2(463),t$2(466))](t,e,n){var i=t$2,r={bClfU:function(t,e,n){return t(e,n)}}[i(449)](g$g,t,e),s=this[i(454)][i(491)](r);return s?(s[i(487)]=n,s):new LinkData(t,e,n,r)}[t$2(469)](t,e,n){var i=t$2,r={bsoic:function(t,e,n){return t(e,n)},BcGzV:function(t,e){return t+e},PKpQP:function(t,e){return t+e},qRpgz:function(t,e){return t+e}},s=r[i(489)](g$g,t,e),a=this[i(459)][i(476)](s);if(a||this[i(438)](t,e)){!a&&(this[i(459)][s]=0);var o=r[i(497)]("@",++this[i(459)][s]);s=r[i(489)](g$g,r[i(479)](t,o),r[i(434)](e,o))}return new LinkData(t,e,n,s)}[t$2(436)](t,e,n){for(var i=t$2,r={swsGx:i(464),IPjCw:function(t,e){return t!==e}},s=r[i(517)][i(504)]("|"),a=0;;){switch(s[a++]){case"0":var o=this[i(463)](t,e,n);continue;case"1":var c=this[i(514)](t)||this[i(513)](t,n[i(474)]);continue;case"2":r[i(483)](t,e)&&this[i(505)](l,o);continue;case"3":this[i(505)](c,o);continue;case"4":var l=this[i(514)](e)||this[i(513)](e,n.to);continue;case"5":return o;case"6":this[i(454)][i(496)](o.id,o);continue}break}}[t$2(505)](t,e){var n=t$2;t[n(454)]?t[n(454)][n(439)](e):t[n(454)]=new Set([e])}[t$2(480)](t,e){var n=t$2;return{XIswL:function(t,e){return t!==e}}[n(490)](e,void 0)&&(t=this[n(438)](t,e)),this[n(511)](t)}[t$2(438)](t,e){var n=t$2,i={HqkcV:function(t,e){return t===e},Kfevg:function(t,e,n){return t(e,n)}};if(!i[n(482)](t,void 0)&&!i[n(482)](e,void 0))return this[n(454)][n(491)](i[n(471)](g$g,t,e))}[t$2(510)](){var t=t$2;this[t(446)](function(e){this[t(507)](e.id)})}[t$2(516)](t){var e=t$2,n={Onwtf:function(t,e){return t===e},Ywpll:e(486),rykHK:function(t,e){return t(e)}};if(n[e(509)](typeof t,n[e(450)]))for(var i=this[e(454)][e(494)](),r=i[e(502)]();!r[e(472)];){if(n[e(478)](t,r[e(499)]))return!0;r=i[e(502)]()}}[t$2(465)](t,e,n){var i=t$2,r={zBNkD:function(t,e){return t===e},RwxOX:i(486)},s=this[i(514)](t);if(s&&s[i(454)]&&r[i(470)](typeof e,r[i(440)]))return n?this[i(512)](s[i(454)],t,e):this[i(437)](s[i(454)],t,e)}[t$2(437)](t,e,n){for(var i,r=t$2,s={SPbBk:r(457),oSJWR:function(t,e){return t===e},dfnKH:function(t,e,n){return t(e,n)}},a=t[r(494)](),o=a[r(502)]();!o[r(472)];)for(var c=s[r(500)][r(504)]("|"),l=0;;){switch(c[l++]){case"0":o=a[r(502)]();continue;case"1":var u=s[r(455)](h[r(441)],e)?h[r(451)]:h[r(441)];continue;case"2":i=s[r(444)](n,this[r(493)][r(491)](u),h);continue;case"3":var h=o[r(499)];continue;case"4":if(i)return!0;continue}break}}[t$2(512)](t,e,n){for(var i=t$2,r={CNMpR:function(t,e){return t===e},seekC:function(t,e,n){return t(e,n)}},s=t[i(494)](),a=s[i(502)]();!a[i(472)];){var o=a[i(499)];if(r[i(431)](o[i(441)],e)&&r[i(453)](n,this[i(493)][i(491)](o[i(451)]),o))return!0;a=s[i(502)]()}}[t$2(446)](t){var e=t$2,n={pWdPJ:function(t,e){return t!==e},ApQxJ:e(486),vNKMw:function(t,e){return t+e},Iwydz:e(481),diXem:function(t,e){return t(e)}};if(n[e(498)](typeof t,n[e(467)]))throw new Error(n[e(433)](n[e(430)],t));for(var i=this[e(493)][e(494)](),r=i[e(502)]();!r[e(472)];){if(n[e(462)](t,r[e(499)]))return!0;r=i[e(502)]()}}[t$2(513)](t,e){var n=t$2,i=this[n(514)](t);return i?i[n(487)]=e:i=new PathData(t,e),this[n(493)][n(496)](t,i),i}[t$2(514)](t){var e=t$2;return this[e(493)][e(491)](t)}[t$2(507)](t){for(var e=t$2,n={fixij:e(506)}[e(452)][e(504)]("|"),i=0;;){switch(n[i++]){case"0":r&&(r[e(448)](this[e(511)]),s[e(454)]=null);continue;case"1":var r=s[e(454)];continue;case"2":this[e(493)][e(443)](t);continue;case"3":if(!s)return!1;continue;case"4":return!0;case"5":var s=this[e(514)](t);continue}break}}[t$2(432)](){var t=t$2;return this[t(493)][t(456)]}[t$2(445)](){var t=t$2;return this[t(454)][t(456)]}[t$2(488)](t){var e=t$2,n=this[e(514)](t);return n?n[e(454)]:null}[t$2(511)](t){for(var e=t$2,n={aqqhr:e(442)}[e(473)][e(504)]("|"),i=0;;){switch(n[i++]){case"0":var r=this[e(514)](t[e(451)]);continue;case"1":if(!this[e(454)][e(491)](t.id))return!1;continue;case"2":return!0;case"3":this[e(454)][e(443)](t.id);continue;case"4":if(!t)return!1;continue;case"5":s&&s[e(454)][e(443)](t);continue;case"6":r&&r[e(454)][e(443)](t);continue;case"7":var s=this[e(514)](t[e(441)]);continue}break}}}function m$r(t,e){return t-=453,M$r()[t]}var q$1=m$r;function g$f(t,e){for(var n=m$r,i={lSGRT:n(462),huPQL:function(t,e){return t<e},zyQiT:function(t,e){return t>e},hJdWx:function(t,e){return t>>e},sJvbn:function(t,e){return t>=e},OIvOE:function(t,e){return t instanceof e},nXYgE:function(t,e){return t||e}},r=i[n(467)][n(457)]("|"),s=0;;){switch(r[s++]){case"0":this[n(488)]=t||[];continue;case"1":this[n(492)]=e[n(492)]||v$8;continue;case"2":if(e[n(464)])for(var a=0;i[n(471)](a,this[n(499)]);++a)this[n(464)](this[n(488)][a],a);continue;case"3":this[n(464)]=e[n(464)]||l$a;continue;case"4":this[n(499)]=this[n(488)][n(499)];continue;case"5":if(i[n(473)](this[n(499)],0))for(a=i[n(469)](this[n(499)],1);i[n(502)](a,0);a--)this[n(483)](a);continue;case"6":if(!i[n(468)](this,g$f))return new g$f(t,e);continue;case"7":e=i[n(491)](e,{});continue;case"8":!Array[n(484)](t)&&(e=t,t=[]);continue}break}}function M$r(){var t=["889294sFRhMj","360865MoBhkR","6|8|7|0|4|1|3|5|2","226950EYEDHs","setNodeId","kmufJ","BFzcJ","lSGRT","OIvOE","hJdWx","ajbJa","huPQL","kLkyv","zyQiT","HXRGB","19VsxyIc","0|4|3|1|5|6|2","prototype","PgbEH","BBkBQ","IThTG","IwICh","225696FzSlhr","_down","isArray","fLlKh","lcBRc","WzLlI","data","21524mELWCy","pop","nXYgE","compare","push","5|4|1|2|0|3","1976760VATeIs","CxruH","fiYEM","odRzt","length","dlJXX","vBLFH","sJvbn","JePDB","_up","0|1|7|5|4|2|6|3","8568FLlTnu","split","NVsDA","VAiBO"];return(M$r=function(){return t})()}function l$a(){}function v$8(t,e){return{fLlKh:function(t,e){return t-e}}[m$r(485)](t,e)}!function(t,e){for(var n=m$r,i=t();;)try{if(111186===parseInt(n(475))/1*(-parseInt(n(489))/2)+-parseInt(n(463))/3+-parseInt(n(482))/4+parseInt(n(461))/5+parseInt(n(456))/6+parseInt(n(460))/7+parseInt(n(495))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$r),g$f[q$1(477)]={push:function(t){var e=q$1;this[e(488)][e(493)](t),this[e(464)](t,this[e(499)]),this[e(499)]++,this[e(454)]({CxruH:function(t,e){return t-e}}[e(496)](this[e(499)],1))},pop:function(){for(var t=q$1,e={fiYEM:t(494),lcBRc:function(t,e){return t>e},IwICh:function(t,e){return t===e}},n=e[t(497)][t(457)]("|"),i=0;;){switch(n[i++]){case"0":this[t(488)][t(490)]();continue;case"1":this[t(499)]--;continue;case"2":e[t(486)](this[t(499)],0)&&(this[t(488)][0]=this[t(488)][this[t(499)]],this[t(464)](this[t(488)][0],0),this[t(483)](0));continue;case"3":return r;case"4":var r=this[t(488)][0];continue;case"5":if(e[t(481)](this[t(499)],0))return;continue}break}},peek:function(){return this[q$1(488)][0]},updateItem:function(t){var e=q$1;this[e(483)](t),this[e(454)](t)},_up:function(t){for(var e=q$1,n={odRzt:e(476),kmufJ:function(t,e,n){return t(e,n)},dlJXX:function(t,e){return t>e},BBkBQ:function(t,e){return t>>e},NVsDA:function(t,e){return t-e},HXRGB:function(t,e){return t>=e},WzLlI:function(t,e,n){return t(e,n)}},i=n[e(498)][e(457)]("|"),r=0;;){switch(i[r++]){case"0":var s=this[e(488)];continue;case"1":var a=s[t];continue;case"2":n[e(465)](o,a,t);continue;case"3":var o=this[e(464)];continue;case"4":var c=this[e(492)];continue;case"5":for(;n[e(500)](t,0);){var l=n[e(479)](n[e(458)](t,1),1),u=s[l];if(n[e(474)](n[e(487)](c,a,u),0))break;s[t]=u,n[e(487)](o,u,t),t=l}continue;case"6":s[t]=a;continue}break}},_down:function(t){for(var e=q$1,n={kLkyv:e(455),VAiBO:function(t,e){return t<e},BFzcJ:function(t,e){return t+e},vBLFH:function(t,e){return t<<e},ajbJa:function(t,e){return t+e},JePDB:function(t,e,n){return t(e,n)},PgbEH:function(t,e){return t>=e},IThTG:function(t,e){return t>>e}},i=n[e(472)][e(457)]("|"),r=0;;){switch(i[r++]){case"0":var s=this[e(488)];continue;case"1":var a=this[e(492)];continue;case"2":for(;n[e(459)](t,d);){var o=n[e(466)](n[e(501)](t,1),1),c=n[e(470)](o,1),l=s[o];if(n[e(459)](c,this[e(499)])&&n[e(459)](n[e(453)](a,s[c],l),0)&&(o=c,l=s[c]),n[e(478)](n[e(453)](a,l,h),0))break;s[t]=l,n[e(453)](u,l,t),t=o}continue;case"3":n[e(453)](u,h,t);continue;case"4":var u=this[e(464)];continue;case"5":var h=s[t];continue;case"6":s[t]=h;continue;case"7":var d=n[e(480)](this[e(499)],1);continue}break}}};var n$1=m$q;!function(t,e){for(var n=m$q,i=t();;)try{if(905498===-parseInt(n(305))/1*(-parseInt(n(308))/2)+-parseInt(n(306))/3+-parseInt(n(315))/4*(-parseInt(n(312))/5)+-parseInt(n(316))/6*(-parseInt(n(304))/7)+-parseInt(n(309))/8*(-parseInt(n(310))/9)+-parseInt(n(317))/10*(-parseInt(n(302))/11)+-parseInt(n(301))/12)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$q);var g$e=[];typeof Object[n$1(307)]===n$1(303)&&Object[n$1(307)](g$e);const l$8={heuristic:l$9,distance:v$7,blocked:z$6,compareFScore:B$6,NO_PATH:g$e,setHeapIndex:r$5,setH1:o$5,setH2:F$5,compareF1Score:w$4,compareF2Score:H$6};function l$9(){return 0}function v$7(){return 1}function z$6(){return!1}function B$6(t,e){var n=n$1;return{pIALt:function(t,e){return t-e}}[n(318)](t[n(314)],e[n(314)])}function m$q(t,e){return t-=301,M$q()[t]}function r$5(t,e){t[n$1(319)]=e}function w$4(t,e){return{RKPcZ:function(t,e){return t-e}}[n$1(311)](t.f1,e.f1)}function H$6(t,e){return{dpgIP:function(t,e){return t-e}}[n$1(313)](t.f2,e.f2)}function o$5(t,e){t.h1=e}function M$q(){var t=["dpgIP","fScore","507632SSJvTq","6kphoCm","10hGQSxV","pIALt","heapIndex","33572268OPxkTc","10663103eVWTHy","function","7981484WBcBDz","578593nMFPpM","5168010fHPYmd","freeze","4ZTIxBE","10024IJlOCx","11862ZBojkz","RKPcZ","20UdZpvf"];return(M$q=function(){return t})()}function F$5(t,e){t.h2=e}function M$p(){var t=["6xrjYoR","qacSO","4qvhHqF","1666494LudivC","closed","103885nZFdSo","HfeBo","9|8|3|1|5|4|0|7|2|6","60tHelci","35046HSQuXP","444730nUJGII","node","6|2|3|7|4|9|0|5|1|8","split","428768FolYaN","680050ZGKrao","POSITIVE_INFINITY","41880bFxDtt"];return(M$p=function(){return t})()}function m$p(t,e){return t-=470,M$p()[t]}function g$d(t){for(var e=m$p,n={HfeBo:e(479)}[e(473)][e(480)]("|"),i=0;;){switch(n[i++]){case"0":this.f1=Number[e(483)];continue;case"1":this.h1=-1;continue;case"2":this.p1=null;continue;case"3":this.p2=null;continue;case"4":this.g1=Number[e(483)];continue;case"5":this.f2=Number[e(483)];continue;case"6":this[e(478)]=t;continue;case"7":this[e(471)]=!1;continue;case"8":this.h2=-1;continue;case"9":this.g2=Number[e(483)];continue}break}}function l$7(){var t=m$p,e={qacSO:t(474)},n=0,i=[];return{createNewState:function(r){var s=t,a=i[n];if(a)for(var o=e[s(486)][s(480)]("|"),c=0;;){switch(o[c++]){case"0":a.f1=Number[s(483)];continue;case"1":a[s(471)]=!1;continue;case"2":a.h1=-1;continue;case"3":a.p2=null;continue;case"4":a.g2=Number[s(483)];continue;case"5":a.g1=Number[s(483)];continue;case"6":a.h2=-1;continue;case"7":a.f2=Number[s(483)];continue;case"8":a.p1=null;continue;case"9":a[s(478)]=r;continue}break}else a=new g$d(r),i[n]=a;return n++,a},reset:function(){n=0}}}!function(t,e){for(var n=m$p,i=t();;)try{if(119454===-parseInt(n(487))/1*(parseInt(n(476))/2)+parseInt(n(485))/3*(parseInt(n(481))/4)+parseInt(n(472))/5*(parseInt(n(475))/6)+-parseInt(n(482))/7+parseInt(n(484))/8+-parseInt(n(470))/9+parseInt(n(477))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$p);var h=m$o;!function(t,e){for(var n=m$o,i=t();;)try{if(330595===-parseInt(n(299))/1*(-parseInt(n(346))/2)+-parseInt(n(334))/3*(-parseInt(n(300))/4)+-parseInt(n(320))/5*(parseInt(n(284))/6)+parseInt(n(321))/7+-parseInt(n(314))/8+-parseInt(n(322))/9+-parseInt(n(305))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$o);var z$5=l$8[h(294)];function g$c(t,e={}){var n=h,i={MjHvG:n(278),snGja:function(t,e){return t>e},ANDvU:function(t,e){return t<e},FKktF:function(t,e){return t<e},SVFgw:function(t,e){return t-e},bMNKd:function(t,e){return t+e},uqqdK:function(t,e,n){return t(e,n)},cxTIg:n(341),MJmeE:function(t,e){return t<e},rjCjW:function(t,e){return t<e},GhoYQ:function(t,e){return t+e},UPCVy:function(t,e,n){return t(e,n)},sNLFh:function(t,e){return t>e},aWCbJ:n(271),RXNLs:function(t,e,n,i){return t(e,n,i)},MFfcQ:function(t,e){return t+e},JYfdz:function(t,e,n,i){return t(e,n,i)},pkXwq:function(t,e){return t===e},qLvDf:n(269),ShCIU:function(t,e){return t+e},IETjh:function(t,e,n){return t(e,n)},npgOQ:function(t,e){return t+e},NUYvJ:function(t,e,n,i){return t(e,n,i)},ibHQj:function(t,e){return t+e},yvtck:function(t,e){return t+e},pbLtm:n(290),bjNuq:n(329),iioJr:function(t,e,n){return t(e,n)},fWdhx:function(t){return t()},veYtB:function(t,e){return t&&e},poVcg:function(t,e){return t(e)},wxTeI:function(t){return t()}},r=e[n(326)],s=e[n(295)],a=e[n(309)]||l$8[n(309)],o=e[n(325)]||l$8[n(325)],c=e[n(304)]||l$8[n(304)],l=i[n(310)](l$7);return{find:function(e,u){var h=n,d={Rnhjj:i[h(291)],arUfC:function(t,e,n,r){return i[h(277)](t,e,n,r)},ajKDL:function(t,e){return i[h(267)](t,e)},rdbYG:function(t,e){return i[h(348)](t,e)},qnHgs:function(t,e,n){return i[h(297)](t,e,n)},yPoNx:function(t,e){return i[h(270)](t,e)},XErld:function(t,e,n,r){return i[h(347)](t,e,n,r)},JOUlT:function(t,e){return i[h(280)](t,e)}},p=t[h(345)](e);if(!p)throw new Error(i[h(328)](i[h(349)],e));var f=t[h(345)](u);if(!f)throw new Error(i[h(306)](i[h(340)],u));l[h(318)]();var m,g=r?function(t,e){var n=h;if(i[n(350)](e[n(289)],I[n(315)].id))return i[n(343)](C,t,e)}:C,A=r?function(t,e){var n=h;if(i[n(350)](e[n(265)],I[n(315)].id))return i[n(343)](_,t,e)}:_,v=new Map,y=new g$f({compare:l$8[h(292)],setNodeId:l$8[h(308)]}),S=new g$f({compare:l$8[h(283)],setNodeId:l$8[h(282)]}),b=Number[h(287)],x=l[h(268)](p);v[h(301)](e,x),x.g1=0;var M=i[h(274)](o,p,f);x.f1=M,y[h(296)](x);var T=l[h(268)](f);v[h(301)](u,T),T.g2=0;var I,R=M;T.f2=R,S[h(296)](T);for(;S[h(335)]&&y[h(335)]&&(i[h(339)](y[h(335)],S[h(335)])?i[h(275)](E):i[h(275)](w),!i[h(302)](s,m)););return i[h(336)](B$5,m);function E(){for(var e=h,n=i[e(288)][e(286)]("|"),r=0;;){switch(n[r++]){case"0":if(I[e(281)])return;continue;case"1":i[e(337)](y[e(335)],0)&&(M=y[e(298)]().f1);continue;case"2":i[e(316)](I.f1,b)&&i[e(339)](i[e(276)](i[e(306)](I.g1,R),i[e(317)](o,p,I[e(315)])),b)&&t[e(330)](I[e(315)].id,g);continue;case"3":I=y[e(272)]();continue;case"4":I[e(281)]=!0;continue}break}}function w(){for(var e=h,n=i[e(273)][e(286)]("|"),r=0;;){switch(n[r++]){case"0":if(I[e(281)])return;continue;case"1":I[e(281)]=!0;continue;case"2":i[e(267)](I.f2,b)&&i[e(285)](i[e(276)](i[e(327)](I.g2,M),i[e(343)](o,I[e(315)],f)),b)&&t[e(330)](I[e(315)].id,A);continue;case"3":i[e(338)](S[e(335)],0)&&(R=S[e(298)]().f2);continue;case"4":I=S[e(272)]();continue}break}}function C(t,e){for(var n=h,i=d[n(303)][n(286)]("|"),r=0;;){switch(i[r++]){case"0":if(d[n(323)](a,I[n(315)],t,e))return;continue;case"1":if(s[n(281)])return;continue;case"2":d[n(324)](u,s.g1)&&(s.g1=u,s.f1=d[n(311)](u,d[n(266)](o,s[n(315)],f)),s.p1=I,d[n(324)](s.h1,0)?y[n(296)](s):y[n(307)](s.h1));continue;case"3":var s=v[n(319)](t.id);continue;case"4":var u=d[n(279)](I.g1,d[n(342)](c,I[n(315)],t,e));continue;case"5":d[n(324)](p,b)&&(b=p,m=s);continue;case"6":var p=d[n(332)](s.g1,s.g2);continue;case"7":!s&&(s=l[n(268)](t),v[n(301)](t.id,s));continue}break}}function _(t,e){for(var n=h,r=i[n(313)][n(286)]("|"),s=0;;){switch(r[s++]){case"0":var u=i[n(327)](I.g2,i[n(277)](c,I[n(315)],t,e));continue;case"1":var d=i[n(331)](f.g1,f.g2);continue;case"2":if(f[n(281)])return;continue;case"3":i[n(316)](u,f.g2)&&(f.g2=u,f.f2=i[n(306)](u,i[n(343)](o,p,f[n(315)])),f.p2=I,i[n(339)](f.h2,0)?S[n(296)](f):S[n(307)](f.h2));continue;case"4":if(i[n(344)](a,I[n(315)],t,e))return;continue;case"5":i[n(267)](d,b)&&(b=d,m=f);continue;case"6":var f=v[n(319)](t.id);continue;case"7":!f&&(f=l[n(268)](t),v[n(301)](t.id,f));continue}break}}}}}function m$o(t,e){return t-=265,M$o()[t]}function M$o(){var t=["compareF1Score","GjIts","NO_PATH","quitFast","push","IETjh","peek","7vIwMJy","4VyGUCb","set","veYtB","Rnhjj","distance","2082800GRlike","bMNKd","updateItem","setH1","blocked","wxTeI","rdbYG","unshift","aWCbJ","807416cdsLKV","node","ANDvU","uqqdK","reset","get","10mastLI","3750243rtkFPo","5674644NcRNPl","arUfC","ajKDL","heuristic","oriented","GhoYQ","yvtck","toId is not defined in this graph: ","forEachLinkedNode","MFfcQ","JOUlT","6|1|3|0|2|4|5","378894UwhFob","length","poVcg","snGja","sNLFh","FKktF","bjNuq","4|0|1|2|3","XErld","UPCVy","JYfdz","getNode","178678CZHXwN","NUYvJ","ShCIU","pbLtm","pkXwq","toId","qnHgs","MJmeE","createNewState","3|7|1|0|4|2|6|5","npgOQ","6|7|2|4|0|3|1|5","pop","cxTIg","iioJr","fWdhx","SVFgw","RXNLs","3|0|4|2|1","yPoNx","ibHQj","closed","setH2","compareF2Score","51306pHefgs","rjCjW","split","POSITIVE_INFINITY","MjHvG","fromId","fromId is not defined in this graph: ","qLvDf"];return(M$o=function(){return t})()}function B$5(t){for(var e=h,n={GjIts:e(333)}[e(293)][e(286)]("|"),i=0;;){switch(n[i++]){case"0":for(;a;)r[e(296)](a[e(315)]),a=a.p1;continue;case"1":var r=[t[e(315)]];continue;case"2":var s=t.p2;continue;case"3":var a=t.p1;continue;case"4":for(;s;)r[e(312)](s[e(315)]),s=s.p2;continue;case"5":return r;case"6":if(!t)return z$5;continue}break}}const D=m$n;function m$n(t,e){t-=109;return M$n()[t]}!function(t,e){const n=m$n,i=t();for(;;)try{if(114721===parseInt(n(256))/1+-parseInt(n(111))/2*(parseInt(n(176))/3)+-parseInt(n(287))/4+-parseInt(n(283))/5+parseInt(n(306))/6+parseInt(n(281))/7*(-parseInt(n(322))/8)+-parseInt(n(195))/9*(-parseInt(n(259))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$n);let l$6=(t,e)=>t>e?e+","+t:t+","+e,v$6=class{constructor(t){__publicField(this,_hc),__publicField(this,_gc),__publicField(this,_fc,new AStarPath),__publicField(this,_ec,{}),__publicField(this,_dc),__publicField(this,_cc),__publicField(this,_bc,{});const e=D,n={CnWZS:function(t,e){return t!==e},hRVNi:function(t,e,n){return t(e,n)},qrdnQ:function(t,e,n){return t(e,n)}};this[e(134)]=t;let i=this[e(134)][e(333)][e(115)][e(130)]((t,e)=>(t[e.id]=e,t),{});for(const r in i){const t=i[r];t[e(136)]&&(this[e(232)][t[e(136)]]=this[e(232)][t[e(136)]]||{});for(const s in t[e(170)]){const a=t[e(170)][s];let o=i[s];if(n[e(219)](a,CrossType[e(227)])&&o){let i=n[e(172)](getLineLength,t,o),c=n[e(343)](l$6,t.id,o.id);this[e(232)][t[e(136)]][c]=this[e(232)][t[e(136)]][c]||{pp1:t,pp2:o},this[e(117)][e(203)](r,s,{distance:i,from:t,to:o,type:a})}}}}[(_hc=D(134),_gc=D(183),_fc=D(117),_ec=D(232),_dc=D(342),_cc=D(297),D(123))](t,e,n,i=CrossType[D(285)],r){const s=D,a={iMDXv:function(t,e){return t>=e},TBnhZ:function(t,e){return t>=e},BUwBu:function(t,e){return t<e},buVoY:function(t,e){return t!==e},QsDFI:function(t,e){return t===e},NTOjF:function(t,e,n){return t(e,n)},tJTlp:function(t,e){return t==e},rawIX:function(t,e){return t+e},CVLfQ:function(t,e){return t+e},Hiydh:function(t,e){return t+e},xsFBX:function(t,e,n){return t(e,n)},VcHZx:function(t,e){return t<e},rLunY:function(t,e){return t<e},aFDsg:function(t,e){return t-e},uHzeD:function(t,e){return t-e}};let o=[];return t[s(115)][s(134)](t=>{const c=s,l={SNotW:function(t,e){return a[m$n(255)](t,e)},mfhSe:function(t,e,n){return a[m$n(214)](t,e,n)}};e[c(115)][c(134)](e=>{const s=c,u={wRNLT:function(t,e){return a[m$n(208)](t,e)},RaovI:function(t,e){return a[m$n(207)](t,e)},qhDta:function(t,e){return a[m$n(300)](t,e)},KlGMR:function(t,e){return a[m$n(300)](t,e)},fORHo:function(t,e){return a[m$n(212)](t,e)},EwGcM:function(t,e){return a[m$n(212)](t,e)},YeByh:function(t,e){return a[m$n(284)](t,e)},oAKnY:function(t,e){return a[m$n(284)](t,e)},LuHLK:function(t,e,n){return a[m$n(338)](t,e,n)},qsMNX:function(t,e){return a[m$n(350)](t,e)}};function h(t,e){const n=s;return CrossType[t]?u[n(294)](i,CrossType[n(140)])&&u[n(307)](t,CrossType[n(335)])&&(e*=20):EnterType[t]&&(u[n(174)](t,EnterType[n(288)])||u[n(174)](t,EnterType[n(280)])||u[n(307)](t,EnterType[n(200)]))&&(e+=20),e}let d=a[s(338)](g$c,this[s(117)],{oriented:!0,blocked:(a,o,c)=>{const l=s;let{type:h}=c[l(231)];if(u[l(204)](+t,0)&&u[l(168)](+e,0)&&(u[l(296)](+a.id,0)||u[l(252)](+o.id,0)))return!0;if((null==r?void 0:r[l(153)](+o.id))||(null==r?void 0:r[l(153)](+a.id)))return!0;if(this[l(342)]){if(this[l(342)](a,o,c))return!0}if(CrossType[h]&&u[l(138)](i,h)&&u[l(260)](h,CrossType[l(285)])){if(u[l(307)](i,CrossType[l(140)]))return u[l(174)](h,CrossType[l(171)]);if(u[l(174)](i,CrossType[l(335)]))return u[l(307)](h,CrossType[l(292)])}return!!EnterType[h]&&(u[l(138)](h,n)&&u[l(138)](h,EnterType[l(337)]))},distance:(t,e,n)=>{const i=s;let{type:r,distance:a}=n[i(231)];if(this[i(297)]){let s=this[i(297)](t,e,n);if(u[i(168)](s,0))return u[i(129)](h,r,s)}return u[i(129)](h,r,a)}})[s(184)](a[s(188)](t,""),a[s(323)](e,""));if(!(null==d?void 0:d[s(303)]))return;d[s(347)]();let p=0,f=0;d=d[s(134)]((t,e)=>{const n=s;let i=d[l[n(215)](e,1)],r=i?l[n(128)](getLineLength,t[n(231)],i[n(231)]):0,a=r;if(i){let e=t[n(231)][n(170)][i.id];a=l[n(128)](h,e,r)}return i&&(p+=r,f+=a),{point:t[n(231)],nextDistance:r,nextDistancePower:a}}),d[s(249)]=p,d[s(348)]=f,d[s(303)]&&o[s(293)](d)})}),o[s(303)]&&o[s(134)](t=>{const e=s;if(a[e(295)](+t[0][e(291)].id,0)){let n=this[e(117)][e(133)](t[0][e(291)].id,t[1][e(291)].id);t[0][e(291)][e(149)]=null==n?void 0:n[e(231)][e(315)]}if(a[e(154)](+t[a[e(220)](t[e(303)],1)][e(291)].id,0)){let n=this[e(117)][e(133)](t[a[e(220)](t[e(303)],2)][e(291)].id,t[a[e(220)](t[e(303)],1)][e(291)].id);t[a[e(210)](t[e(303)],1)][e(291)][e(149)]=null==n?void 0:n[e(231)][e(315)]}}),o}[D(184)](t,e,n=this[D(134)][D(247)][D(289)][D(196)],i=this[D(134)][D(247)][D(289)][D(211)],r){var s,a;const o=D,c={fLewx:function(t,e){return t!=e},WUEzj:o(205),EksxV:function(t){return t()},peBfD:function(t,e){return t||e},JDniu:o(151),zsbPQ:function(t){return t()},fuFun:function(t,e){return t===e}};if(c[o(169)](!e,!t))return;if(!(null==(s=t[o(115)])?void 0:s[o(303)])||!(null==(a=e[o(115)])?void 0:a[o(303)]))return void console[o(276)](c[o(217)],t,e);let l=[EnterType[o(200)],EnterType[o(280)],EnterType[o(288)],EnterType[o(201)]];l[o(147)](...l[o(135)](l[o(341)](n),1));let u=()=>{const n=o;let s=l[n(118)]();if(c[n(317)](s,void 0)){let a=this[n(123)](t,e,s,i,r);return a[n(303)]?a:(console[n(276)](c[n(173)],s,i),c[n(314)](u))}},h=c[o(162)](u);if(!h)return;let d=h[o(246)]((t,e)=>t[o(348)]-e[o(348)])[0];return c[o(321)](d[0][o(291)][o(136)],d[1][o(291)][o(136)])&&c[o(321)](d[0][o(291)].x,d[1][o(291)].x)&&c[o(321)](d[0][o(291)].y,d[1][o(291)].y)&&d[o(118)](),d[o(134)](t=>{const e=o;t[e(191)]=this[e(134)][e(185)](t[e(291)][e(136)])}),d}[D(141)](t,e,n,i){const r=D,s={CItgf:function(t,e){return t<e},zdiWh:function(t,e){return t-e},oOdnf:r(332),uinCI:r(221),vKPEY:function(t,e){return t>e},vbgYN:function(t,e,n){return t(e,n)},crpYB:function(t,e,n,i){return t(e,n,i)},fjMyV:function(t,e){return t===e},BGybC:r(190),Qdisc:function(t,e){return t===e}};let a=[];for(let o=1;s[r(290)](o,t[r(303)]);o++){let c=this[r(184)](t[s[r(329)](o,1)],t[o],e,n,i);if(!(null==c?void 0:c[r(303)]))throw console[r(276)](s[r(345)],t[s[r(329)](o,1)],t[o]),new Error(s[r(122)]);s[r(109)](o,1)&&c[r(135)](0,1),c[s[r(329)](c[r(303)],1)][r(319)]=t[o],a[r(293)](...c)}if(a[r(303)]&&t[0][r(310)]&&s[r(109)](a[r(303)],2)){let t=s[r(261)](getLineLength,this[r(134)][r(247)][r(228)],a[1][r(291)]),{deg:e}=s[r(331)](getLineAngle,a[0][r(291)],a[1][r(291)],a[2][r(291)]);s[r(290)](e,130)&&s[r(290)](t,s[r(229)](this[r(134)][r(247)][r(265)][r(180)],s[r(301)])?1.5:s[r(349)](this[r(134)][r(247)][r(228)][r(136)],this[r(134)][r(333)].id)?8:4)&&a[r(118)]()}return this[r(262)](a)}[D(262)](t){const e=D,n={tzajr:e(346),CGhvy:function(t,e){return t>e},WjRtx:function(t,e){return t+e},kgzxw:function(t,e){return t-e},BJrwj:function(t,e){return t===e},AYSAQ:function(t,e){return t+e},iLVBn:function(t,e,n){return t(e,n)},xpeTX:function(t,e){return t<e},JNLNx:function(t,e){return t!==e},kXNwx:function(t,e){return t!==e},mCKGo:function(t,e){return t*e},WnJIs:function(t,e){return t-e},WZlRO:function(t,e){return t*e},WgvyG:function(t,e){return t(e)},SwBxb:function(t,e){return t>e},yjeYI:function(t,e){return t-e},vXGoK:function(t,e){return t(e)},XQHnS:function(t,e){return t===e},iAlBl:function(t){return t()}};let i=[];for(let s=0;n[e(312)](s,n[e(273)](t[e(303)],1));s++){const r=t[s],a=t[n[e(286)](s,1)],o=t[n[e(286)](s,2)];if(r[e(114)]=r[e(291)][e(170)][a[e(291)].id],n[e(218)](r[e(291)][e(136)],a[e(291)][e(136)])){o&&(n[e(239)](a[e(291)][e(136)],o[e(291)][e(136)])?a[e(178)]=EnterType[a[e(291)][e(170)][o[e(291)].id]][e(282)]:a[e(178)]="直行");continue}let c=(new Vector2)[e(305)](r[e(291)]),l=(new Vector2)[e(305)](a[e(291)]),u=c[e(222)](l),h=new Vector2(0,1),d=n[e(311)](u[e(242)](h),MathUtils[e(308)]);if(r[e(194)]=n[e(238)](h[e(344)](u),0)?d:n[e(160)](360,d),o){let t=function(){const t=e,r={NeDOm:n[t(264)]};if(n[t(238)](i[t(303)],1)){let e=i[t(118)]();e[t(178)]=n[t(286)](n[t(286)]("即将",e[t(178)][t(153)]("左")?"左":"右"),"转"),i[t(134)](e=>{const n=t;e[n(178)]=r[n(277)]})}i=[]};if(n[e(218)](o[e(291)][e(136)],a[e(291)][e(136)])){a[e(178)]=EnterType[a[e(291)][e(170)][o[e(291)].id]][e(282)],a[e(152)]=0;continue}let r=(new Vector2)[e(305)](o[e(291)]),s=l[e(222)](r),c=n[e(112)](u[e(242)](s),MathUtils[e(308)]);n[e(325)](isNaN,c);let h=u[e(202)]()[e(344)](s);c=n[e(124)](h,0)?c:n[e(326)](360,c),n[e(223)](isNaN,c),a[e(178)]=this[e(145)](c),a[e(178)][e(153)]("前方")?i[e(303)]?n[e(120)](i[n[e(326)](i[e(303)],1)][e(178)],a[e(178)])?i[e(293)](a):n[e(143)](t):i[e(293)](a):n[e(143)](t),a[e(152)]=c}else a[e(182)]=!0}let r=t[e(130)]((t,i)=>{const r=e;let s=t[n[r(273)](t[r(303)],1)];if(!s)return t[r(293)]([i]),t;let a=s[0];return a&&n[r(216)](a[r(291)][r(136)],i[r(291)][r(136)])?s[r(293)](i):t[r(293)]([i]),t},[]);return r[e(118)](),r[e(278)](),r[e(134)](i=>{const r=e;n[r(216)](i[r(303)],1)&&t[r(135)](t[r(341)](i[0]),1)}),t[e(134)]((i,r)=>{const s=e;let a=t[n[s(298)](r,1)];a&&(i[s(270)]=n[s(181)](getLineLength,i[s(291)],a[s(291)]))}),t[e(249)]=t[e(130)]((t,i)=>{const r=e;return n[r(298)](t,i[r(270)]||0)},0),t}[D(145)](t){const e=D,n={hCfxh:function(t,e){return t>=e},pAJFQ:function(t,e){return t<=e},xHeOo:e(346),sThIs:e(189),kZfAy:e(187),AyFgC:e(142),ygEWu:e(237),CisQo:e(253),scUVK:e(267)};return[{text:n[e(213)],max:20,min:0},{text:n[e(258)],max:45,min:20},{text:n[e(156)],max:135,min:45},{text:n[e(279)],max:180,min:135},{text:n[e(113)],max:225,min:180},{text:n[e(299)],max:315,min:225},{text:n[e(266)],max:340,min:315},{text:n[e(213)],max:360,min:340}][e(184)](i=>{const r=e;return n[r(177)](i[r(302)],t)&&n[r(197)](i[r(315)],t)})[e(144)]}[(_bc=D(257),D(248))](t){const e=D,n={akape:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},ENvWY:function(t,e){return t<e},RyGOY:e(304),GNsEj:function(t,e){return t<e},HdYAf:function(t,e){return t-e},iOZer:function(t,e,n,i){return t(e,n,i)},MGlys:function(t,e){return t===e},jJQvY:function(t,e){return t<e},vcAiz:function(t,e,n){return t(e,n)}};let{point:i,path:r,floor:s}=t,a={distance:void 0,x:0,y:0,ids:{},nextIdx:0,points:[]},o=[];const c=(t,r,s)=>{const c=e,{distance:l,v2:u}=n[c(268)](z$4,i.x,i.y,t.x,t.y,r.x,r.y);let h={};if(h[r.id]=t[c(170)][r.id],h[t.id]=r[c(170)][t.id],o[c(293)]({distance:l,x:u.x,y:u.y,ids:h,points:[t,r]}),!a[c(249)]||n[c(316)](l,a[c(249)])){const e=n[c(165)][c(119)]("|");let i=0;for(;;){switch(e[i++]){case"0":a[c(170)][r.id]=t[c(170)][r.id];continue;case"1":a.x=u.x;continue;case"2":a[c(159)]=[t,r];continue;case"3":a[c(249)]=l;continue;case"4":a[c(249)]&&o[c(293)]({...a});continue;case"5":a[c(170)]={};continue;case"6":a.y=u.y;continue;case"7":a[c(186)]=s;continue;case"8":a[c(170)][t.id]=r[c(170)][t.id];continue}break}}};if(r)for(let u=1;n[e(334)](u,r[e(303)]);u++){const t=r[n[e(139)](u,1)],i=r[u];n[e(116)](c,t,i,u)}else{if(!this[e(257)][s.id]){let t=this[e(232)][s.id];if(n[e(336)](s.id,this[e(134)][e(333)].id))for(const n in this[e(232)])this[e(134)][e(185)](n)[e(155)]&&(t=Object[e(175)]({},t,this[e(232)][n]||{}));this[e(257)][s.id]=new r$4(100);for(const n in t){const{pp1:i,pp2:r}=t[n];this[e(257)][s.id][e(121)]([i,r])}}let t=this[e(257)][s.id];a=t[e(340)](i)}a[e(244)]=(a[e(244)]||o)[e(246)]((t,n)=>t[e(249)]-n[e(249)]);let l=a[e(244)][0];l&&(l[e(272)]=0);for(let u=1;n[e(146)](u,a[e(244)][e(303)]);u++){const t=a[e(244)][u];t[e(272)]=n[e(127)](getLineLength,l,t)}return a}};function M$n(){const t=["KDzKI","locationType","iLVBn","isEnd","_planCount","find","getMapDataById","nextIdx","即将左转","rawIX","向左前方","aoa","floor","1|9|10|0|5|2|4|7|6|3|8|12|11","set","mapRotation","36RWwjZQ","enterType","pAJFQ","azpSZ","iFcwY","elevator","motorway","clone","addLink","wRNLT","找不到路线:","oVWZI","TBnhZ","iMDXv","LMPWf","uHzeD","crossType","buVoY","xHeOo","xsFBX","SNotW","BJrwj","JDniu","JNLNx","CnWZS","aFDsg","未找到路线","sub","vXGoK","has","cellSize","hEWpz","block","myPositionPath","fjMyV","grExE","data","floorPathOriginObj","HfMAy","vGjPm","RphGf","LaCVi","向右后方掉头","CGhvy","kXNwx","CqwzU","bseWV","angleTo","jOTUi","minArr","yeNqL","sort","navi","pointAtPath","distance","SoxYw","jxAVO","KlGMR","即将右转","qQGhf","Hiydh","22735MYErWr","grid","sThIs","1605950ZhYXtc","EwGcM","vbgYN","computeRouteInfo","SphnE","tzajr","location","scUVK","向右前方","akape","theOC","nextDistance","uPKjn","firstDistance","kgzxw","qnybt","IbNQn","log","NeDOm","pop","AyFgC","escalator","958412nsBpqH","name","865255kmkPwF","QsDFI","manCar","WjRtx","809888YyBLpW","stairs","status","CItgf","point","carOnly","push","qsMNX","VcHZx","qhDta","onFindDistance","AYSAQ","CisQo","BUwBu","BGybC","max","length","4|3|1|6|5|2|0|8|7","copy","391686fOGhJc","YeByh","RAD2DEG","HUnID","isMyPosition","mCKGo","xpeTX","vSGYO","EksxV","min","ENvWY","fLewx","_cellIndex","waypoint","0|3|1|4|2","fuFun","8gBypKg","CVLfQ","otOOY","WgvyG","yjeYI","vrVPv","hypot","zdiWh","QeOaV","crpYB","未找到路线:","mapData","GNsEj","man","MGlys","indoor","NTOjF","get","nearestSegment","indexOf","onFindBlock","qrdnQ","cross","oOdnf","请保持直行","reverse","distancePower","Qdisc","tJTlp","vKPEY","Ibwvd","9832vVCtIe","WZlRO","ygEWu","enterTypeId","path","iOZer","aStarPath","shift","split","XQHnS","insertSegment","uinCI","findRoute","SwBxb","kvZZy","pzvcc","vcAiz","mfhSe","LuHLK","reduce","sqrt","ATauk","getLink","map","splice","floorId","_key","fORHo","HdYAf","car","planRoute","向左后方掉头","iAlBl","text","angle2NaviText","jJQvY","unshift","LwktV","atPath","CqcYq","未找到路线, 请联系地图制作方!","angle","includes","rLunY","isOutdoor","kZfAy","LeNtl","jTzOf","points","WnJIs","Onvek","zsbPQ","uLiox","spdVC","RyGOY","TsjiR","brbQm","RaovI","peBfD","ids","manOnly","hRVNi","WUEzj","oAKnY","assign","63YPulQt","hCfxh","tip"];return(M$n=function(){return t})()}function z$4(t,e,n,i,r,s){const a=D,o={qnybt:a(192),ATauk:function(t,e){return t-e},SphnE:function(t,e){return t-e},grExE:function(t,e){return t+e},Onvek:function(t,e){return t*e},Ibwvd:function(t,e){return t*e},brbQm:function(t,e){return t<e},jOTUi:function(t,e){return t>e},uLiox:function(t,e){return t*e},vrVPv:function(t,e){return t*e},vGjPm:function(t,e){return t+e},KDzKI:function(t,e){return t*e},RphGf:function(t,e){return t!==e},oVWZI:function(t,e){return t/e},SoxYw:function(t,e){return t-e},CqwzU:function(t,e){return t-e}},c=o[a(274)][a(119)]("|");let l=0;for(;;){switch(c[l++]){case"0":var u=o[a(132)](s,i);continue;case"1":var h=o[a(263)](t,n);continue;case"2":var d=o[a(230)](o[a(161)](y,y),o[a(110)](u,u));continue;case"3":o[a(167)](p,0)?(m=n,g=i):o[a(243)](p,1)?(m=r,g=s):(m=o[a(230)](n,o[a(163)](p,y)),g=o[a(230)](i,o[a(327)](p,u)));continue;case"4":var p=-1;continue;case"5":var f=o[a(234)](o[a(179)](h,y),o[a(179)](v,u));continue;case"6":var m,g;continue;case"7":o[a(235)](d,0)&&(p=o[a(206)](f,d));continue;case"8":var A=o[a(263)](t,m);continue;case"9":var v=o[a(263)](e,i);continue;case"10":var y=o[a(250)](r,n);continue;case"11":return{v2:{x:m,y:g},distance:Math[a(131)](o[a(230)](o[a(179)](A,A),o[a(179)](S,S)))};case"12":var S=o[a(240)](e,g);continue}break}}function B$4(t,e,n,i,r,s){const a=D,o={kvZZy:function(t,e){return t-e},jxAVO:function(t,e){return t-e},uPKjn:function(t,e){return t===e},hEWpz:function(t,e){return t===e},qQGhf:function(t,e){return t-e},LMPWf:function(t,e){return t/e},iFcwY:function(t,e){return t+e},spdVC:function(t,e){return t*e},LwktV:function(t,e){return t-e},LaCVi:function(t,e){return t+e},jTzOf:function(t,e){return t*e},pzvcc:function(t,e){return t*e},azpSZ:function(t,e){return t*e},CqcYq:function(t,e){return t-e},HUnID:function(t,e){return t-e}},c=o[a(125)](r,n),l=o[a(251)](s,i);if(o[a(271)](c,0)&&o[a(226)](l,0))return{distance:Math[a(328)](o[a(254)](t,n),o[a(254)](e,i)),x:n,y:i};let u=o[a(209)](o[a(199)](o[a(164)](o[a(148)](t,n),c),o[a(164)](o[a(254)](e,i),l)),o[a(236)](o[a(158)](c,c),o[a(126)](l,l)));u=Math[a(302)](0,Math[a(315)](1,u));const h=o[a(236)](n,o[a(126)](u,c)),d=o[a(236)](i,o[a(198)](u,l));return{distance:Math[a(328)](o[a(150)](t,h),o[a(309)](e,d)),x:h,y:d}}let r$4=class{constructor(t=100){__publicField(this,_jc),__publicField(this,_ic);const e=D;this[e(225)]=t,this[e(257)]=new Map}[(_jc=D(225),_ic=D(257),D(137))](t,e){return t+","+e}[D(318)](t,e){const n=D,i={theOC:function(t,e){return t/e}};return[Math[n(191)](i[n(269)](t,this[n(225)])),Math[n(191)](i[n(269)](e,this[n(225)]))]}[D(121)](t){const e=D,n={LeNtl:function(t,e){return t<=e},yeNqL:function(t,e){return t<=e}},i=t[0].x,r=t[0].y,s=t[1].x,a=t[1].y,o=Math[e(315)](i,s),c=Math[e(315)](r,a),l=Math[e(302)](i,s),u=Math[e(302)](r,a),[h,d]=this[e(318)](o,c),[p,f]=this[e(318)](l,u);for(let m=h;n[e(157)](m,p);m++)for(let i=d;n[e(245)](i,f);i++){const n=this[e(137)](m,i);this[e(257)][e(224)](n)||this[e(257)][e(193)](n,[]),this[e(257)][e(339)](n)[e(293)](t)}}[D(340)](t,e=1){const n=D,i={TsjiR:function(t,e){return t<=e},HfMAy:function(t,e){return t<=e},QeOaV:function(t,e){return t+e},IbNQn:function(t,e){return t+e},vSGYO:function(t,e,n,i,r,s,a){return t(e,n,i,r,s,a)},bseWV:function(t,e){return t<e},otOOY:n(320)},[r,s]=this[n(318)](t.x,t.y);let a={distance:void 0,x:0,y:0,ids:{},nextIdx:0,points:[]},o=[],c={};for(let l=-e;i[n(166)](l,e);l++)for(let u=-e;i[n(233)](u,e);u++){const e=this[n(137)](i[n(330)](r,l),i[n(275)](s,u)),h=this[n(257)][n(339)](e);if(h)for(const r of h){let e=r[0],s=r[1],l=""+e.id+s.id;if(c[l])continue;c[l]=1;const u=i[n(313)](B$4,t.x,t.y,e.x,e.y,s.x,s.y);let h={};if(h[s.id]=e[n(170)][s.id],h[e.id]=s[n(170)][e.id],o[n(293)]({distance:u[n(249)],x:u.x,y:u.y,ids:h,points:r}),!a[n(249)]||i[n(241)](u[n(249)],a[n(249)])){const t=i[n(324)][n(119)]("|");let e=0;for(;;){switch(t[e++]){case"0":a[n(249)]=u[n(249)];continue;case"1":a.y=u.y;continue;case"2":a[n(159)]=r;continue;case"3":a.x=u.x;continue;case"4":a[n(170)]=h;continue}break}}}}return a[n(244)]=o,a}};const v$5="data:image/png;base64,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",z$3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABPCAYAAACTUyndAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjU5NzgwNzQxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjU5NzgwNzMxNDVEMTFFODg5ODc5M0FBN0Q3OUZCRUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5MWIyZjEyLWI3YjgtYTY0Zi05NDYyLTZhMTNmZDM0NTZhZSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNzlhMGNiOS1mYTVmLTQ5MzEtOGIwZi02Y2Y0NWFkY2Y4NzIiLz4gPC9y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",B$3="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='192'%20height='192'%20viewBox='0%200%20192%20192'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%233a72ed;%20fill-rule:%20evenodd;%20}%20%3c/style%3e%3c/defs%3e%3cpath%20id='图层_2'%20data-name='图层%202'%20class='cls-1'%20d='M62.4,129.04a48.149,48.149,0,0,0,67.81,0,47.569,47.569,0,0,0,0-67.463,48.16,48.16,0,0,0-67.81,0A47.568,47.568,0,0,0,62.4,129.04Z'/%3e%3cpath%20id='图层_3'%20data-name='图层%203'%20class='cls-1'%20d='M120.909,48.944L96.753,10.181,72.6,48.944A53.056,53.056,0,0,1,120.909,48.944Z'/%3e%3c/svg%3e",r$3="data:image/png;base64,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",w$3="data:image/png;base64,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";var M3=m$m;!function(t,e){for(var n=m$m,i=t();;)try{if(365653===parseInt(n(688))/1+-parseInt(n(591))/2+parseInt(n(648))/3+parseInt(n(932))/4*(-parseInt(n(726))/5)+parseInt(n(432))/6*(-parseInt(n(857))/7)+parseInt(n(732))/8+parseInt(n(706))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$m);let g$b=class{constructor(){this[m$m(503)]()}[M3(503)](){for(var t=M3,e={ftudp:t(937),eOLAJ:function(t,e){return t!==e},QdKyA:t(511),HDoXf:t(271)},n=e[t(333)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":this[t(389)]=null;continue;case"1":return this;case"2":this[t(528)]={};continue;case"3":this[t(207)]=[];continue;case"4":this[t(313)]=1;continue;case"5":this[t(529)]=e[t(874)](typeof window,e[t(494)])&&window[t(512)]?window[t(512)]:null;continue;case"6":this[t(855)]=10;continue;case"7":this[t(259)]=!0;continue;case"8":this[t(844)]=1e3;continue;case"9":this[t(199)]=!1;continue;case"10":this[t(747)]=!1;continue;case"11":this[t(684)]();continue;case"12":this[t(308)]=null;continue;case"13":this[t(612)]=[];continue;case"14":this[t(618)]=e[t(759)];continue;case"15":this[t(154)]=!0;continue;case"16":this[t(174)]=!0;continue}break}}[M3(635)](t){var e=M3,n={sujNj:function(t,e){return t(e)},WIBpb:function(t){return t()},csTnS:function(t,e){return t!==e},UTqXq:function(t,e){return t>=e},vfqnB:function(t,e){return t<=e},qBnLZ:function(t,e){return t<e},MYWgQ:function(t,e){return t<e},QdZlW:function(t,e){return t*e}};if(t=n[e(772)](parseFloat,t),this[e(308)]||n[e(927)](z$2),n[e(490)](void 0,t)&&n[e(784)](t,0)&&n[e(725)](t,1)){if(this[e(313)]=t,this[e(747)])return this;this[e(259)]&&this[e(389)][e(287)][e(478)](t,v$4[e(308)][e(520)]);for(var i=0;n[e(843)](i,this[e(207)][e(806)]);i++)if(!this[e(207)][i][e(730)])for(var r=this[e(207)][i][e(433)](),s=0;n[e(329)](s,r[e(806)]);s++){var a=this[e(207)][i][e(291)](r[s]);a&&a[e(788)]&&(a[e(788)][e(635)]=n[e(811)](a[e(313)],t))}return this}return this[e(313)]}[M3(858)](t){for(var e=M3,n={gRzCB:e(814),gSUPU:function(t,e){return t<e},QWuJW:function(t){return t()}},i=n[e(722)][e(643)]("|"),r=0;;){switch(i[r++]){case"0":return this;case"1":for(var s=0;n[e(160)](s,this[e(207)][e(806)]);s++)if(!this[e(207)][s][e(730)])for(var a=this[e(207)][s][e(433)](),o=0;n[e(160)](o,a[e(806)]);o++){var c=this[e(207)][s][e(291)](a[o]);c&&c[e(788)]&&(c[e(788)][e(917)]=!!t||c[e(747)])}continue;case"2":this[e(747)]=t;continue;case"3":this[e(259)]&&this[e(389)][e(287)][e(478)](t?0:this[e(313)],v$4[e(308)][e(520)]);continue;case"4":this[e(308)]||n[e(481)](z$2);continue}break}}[M3(391)](){for(var t=M3,e={vjcXo:function(t,e){return t-e},Rdyzs:function(t,e){return t>=e},vdThf:function(t,e){return t!==e},RsMLL:function(t){return t()}},n=e[t(577)](this[t(207)][t(806)],1);e[t(218)](n,0);n--)this[t(207)][n][t(391)]();return this[t(259)]&&this[t(308)]&&e[t(613)](void 0,this[t(308)][t(536)])&&(this[t(308)][t(536)](),this[t(308)]=null,e[t(692)](z$2)),this}[M3(764)](t){var e=M3;return(this||v$4)[e(528)][t[e(392)](/^x-/,"")]}[M3(684)](){var t=M3,e={VGFew:t(179),IEKwE:function(t,e){return t!==e},LJajZ:t(511),eiTLp:function(t,e){return t===e},qTkez:t(459)},n=this||v$4;if(n[t(306)]=n[t(308)]&&n[t(308)][t(306)]||e[t(892)],n[t(928)](),!n[t(259)])if(e[t(718)](typeof Audio,e[t(741)]))try{e[t(721)](void 0,(new Audio)[t(400)])&&(n[t(618)]=e[t(521)])}catch(i){n[t(199)]=!0}else n[t(199)]=!0;try{(new Audio)[t(917)]&&(n[t(199)]=!0)}catch(r){}return n[t(199)]||n[t(925)](),n}[M3(925)](){for(var t=M3,e={IhavW:t(651),urzJd:function(t,e){return t!==e},FaTAg:t(511),IsqiL:t(535),bElpQ:function(t,e){return t!==e},avXoC:t(555),BqSJv:t(192),WOTCx:t(830),BoJKt:t(425),zsrbM:t(896),SjHTc:t(454),ReDZO:t(351),pghSa:t(232),mXIxl:t(693),rdKqm:t(681),nfNwf:t(898),BMDTF:t(442),KJIAs:t(847),XAXGR:t(297),UESbc:t(891),FVblK:function(t,e){return t<e},KKBGY:function(t,e,n){return t(e,n)}},n=e[t(719)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":var r=o[t(529)]&&o[t(529)][t(846)][t(461)](/OPR\/([0-6].)/g);continue;case"1":var s=null;continue;case"2":try{s=e[t(871)](typeof Audio,e[t(704)])?new Audio:null}catch(l){return o}continue;case"3":var a=s[t(285)](e[t(933)])[t(392)](/^no$/,"");continue;case"4":if(!s||e[t(889)](typeof s[t(285)],e[t(637)]))return o;continue;case"5":return o[t(528)]={mp3:!(c||!a&&!s[t(285)](e[t(366)])[t(392)](/^no$/,"")),mpeg:!!a,opus:!!s[t(285)](e[t(206)])[t(392)](/^no$/,""),ogg:!!s[t(285)](e[t(416)])[t(392)](/^no$/,""),oga:!!s[t(285)](e[t(416)])[t(392)](/^no$/,""),wav:!!s[t(285)](e[t(656)])[t(392)](/^no$/,""),aac:!!s[t(285)](e[t(288)])[t(392)](/^no$/,""),caf:!!s[t(285)](e[t(744)])[t(392)](/^no$/,""),m4a:!!(s[t(285)](e[t(585)])||s[t(285)](e[t(633)])||s[t(285)](e[t(288)]))[t(392)](/^no$/,""),mp4:!!(s[t(285)](e[t(875)])||s[t(285)](e[t(689)])||s[t(285)](e[t(288)]))[t(392)](/^no$/,""),weba:!!s[t(285)](e[t(214)])[t(392)](/^no$/,""),webm:!!s[t(285)](e[t(214)])[t(392)](/^no$/,""),dolby:!!s[t(285)](e[t(639)])[t(392)](/^no$/,""),flac:!!(s[t(285)](e[t(700)])||s[t(285)](e[t(412)]))[t(392)](/^no$/,"")},o;case"6":var o=this||v$4;continue;case"7":var c=r&&e[t(522)](e[t(364)](parseInt,r[0][t(643)]("/")[1],10),33);continue}break}}[M3(566)](){var t=M3,e={HVBMu:t(621),oVzeY:t(360),SbEhW:t(632),kcKWP:function(t,e){return t<e},oTFpC:t(918),RNSzk:t(451),xtdbK:function(t,e){return t<e},cbNaY:function(t,e){return t===e},RKxfY:function(t,e){return t===e},EowUO:t(555),jtXUP:function(t,e){return t<e}},n=this||v$4;if(!n[t(473)]&&n[t(308)]){n[t(473)]=!1,n[t(174)]=!1,n[t(261)]||e[t(155)](n[t(308)][t(605)],44100)||(n[t(261)]=!0,n[t(391)]()),n[t(938)]=n[t(308)][t(386)](1,1,22050);var i=function i(r){for(var s=t,a=e[s(343)][s(643)]("|"),o=0;;){switch(a[o++]){case"0":var c=n[s(308)][s(842)]();continue;case"1":for(d=0;e[s(543)](d,n[s(207)][s(806)]);d++)if(!n[s(207)][d][s(730)])for(var l=n[s(207)][d][s(433)](),u=0;e[s(763)](u,l[s(806)]);u++){var h=n[s(207)][d][s(291)](l[u]);h&&h[s(788)]&&!h[s(788)][s(859)]&&(h[s(788)][s(859)]=!0,h[s(788)][s(495)]())}continue;case"2":c[s(311)]=n[s(938)],c[s(153)](n[s(308)][s(641)]),e[s(155)](void 0,c[s(824)])?c[s(342)](0):c[s(824)](0),e[s(509)](typeof n[s(308)][s(439)],e[s(753)])&&n[s(308)][s(439)](),c[s(374)]=function(){var t=s;c[t(604)](0),n[t(473)]=!0,document[t(907)](e[t(598)],i,!0),document[t(907)](e[t(217)],i,!0),document[t(907)](e[t(909)],i,!0);for(var r=0;e[t(763)](r,n[t(207)][t(806)]);r++)n[t(207)][r][t(768)](e[t(502)])};continue;case"3":n[s(441)]();continue;case"4":for(var d=0;e[s(309)](d,n[s(855)]);d++)try{var p=new Audio;p[s(859)]=!0,n[s(573)](p)}catch(f){n[s(199)]=!0}continue}break}};return document[t(358)](e[t(598)],i,!0),document[t(358)](e[t(217)],i,!0),document[t(358)](e[t(909)],i,!0),n}}[M3(209)](){var t=M3,e={lqzoJ:function(t,e){return t!==e},umIHu:function(t,e){return t instanceof e},wEMTn:function(t,e){return t===e},JnyhC:t(555)},n=this||v$4;if(n[t(612)][t(806)])return n[t(612)][t(602)]();var i=(new Audio)[t(189)]();return i&&e[t(549)](void 0,Promise)&&(e[t(611)](i,Promise)||e[t(796)](typeof i[t(443)],e[t(539)])),new Audio}[M3(573)](t){var e=M3,n=this||v$4;return t[e(859)]&&n[e(612)][e(553)](t),n}[M3(928)](){var t=M3,e={RSKVh:t(179),JmXVy:t(486),KSJfq:function(t,e){return t!==e},zJXgl:function(t,e){return t<e},bWAEp:function(t,e){return t<e},IDBqu:function(t,e){return t(e)},IAIvV:function(t,e,n){return t(e,n)}},n=this;if(n[t(154)]&&n[t(308)]&&e[t(804)](void 0,n[t(308)][t(294)])&&v$4[t(259)]){for(var i=0;e[t(450)](i,n[t(207)][t(806)]);i++)if(n[t(207)][i][t(730)])for(var r=0;e[t(340)](r,n[t(207)][i][t(168)][t(806)]);r++)if(!n[t(207)][i][t(168)][r][t(247)])return n;return n[t(482)]&&e[t(341)](clearTimeout,n[t(482)]),n[t(482)]=e[t(344)](setTimeout,function(){var i=t;n[i(154)]&&(n[i(482)]=null,n[i(306)]=e[i(506)],n[i(308)][i(294)]()[i(443)](function(){var t=i;n[t(306)]=e[t(675)],n[t(694)]&&(delete n[t(694)],n[t(441)]())}))},3e4),n}}[M3(441)](){var t=M3,e={kDuKS:t(275),qEXOJ:function(t,e){return t<e},CeEcC:t(439),VdeVa:function(t,e){return t!==e},vHeFT:function(t,e){return t===e},KJFiu:function(t,e){return t(e)},scsly:t(179),vQqqz:t(486)},n=this;if(n[t(308)]&&e[t(596)](void 0,n[t(308)][t(439)])&&v$4[t(259)])return e[t(504)](n[t(306)],e[t(487)])&&n[t(482)]?(e[t(853)](clearTimeout,n[t(482)]),n[t(482)]=null):e[t(504)](n[t(306)],e[t(186)])||e[t(596)](n[t(308)][t(306)],e[t(487)])?(n[t(308)][t(439)]()[t(443)](function(){var i=t;n[i(306)]=e[i(487)];for(var r=0;e[i(156)](r,n[i(207)][i(806)]);r++)n[i(207)][r][i(768)](e[i(562)])}),n[t(482)]&&(e[t(853)](clearTimeout,n[t(482)]),n[t(482)]=null)):e[t(504)](n[t(306)],e[t(724)])&&(n[t(694)]=!0),n}},l$5;var v$4=new g$b;function z$2(){var t=M3,e={xlzTw:t(595),nEgHG:function(t,e){return t&&e},cpTjm:function(t,e){return t<e},lsaPR:function(t,e,n){return t(e,n)},sGLOj:function(t,e){return t!==e},YeRbI:t(511),byNNS:function(t,e){return t!==e},GeVAH:function(t,e){return t===e}};if(v$4[t(259)])for(var n=e[t(717)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":if(e[t(334)](s,a)&&e[t(614)](a,9)){var r=/safari/[t(713)](v$4[t(529)]&&v$4[t(529)][t(846)][t(930)]());(v$4[t(529)]&&v$4[t(529)][t(866)]&&!r||v$4[t(529)]&&!v$4[t(529)][t(866)]&&!r)&&(v$4[t(259)]=!1)}continue;case"1":v$4[t(308)]||(v$4[t(259)]=!1);continue;case"2":var s=/iP(hone|od|ad)/[t(713)](v$4[t(529)]&&v$4[t(529)][t(476)]);continue;case"3":var a=o?e[t(733)](parseInt,o[1],10):null;continue;case"4":try{e[t(575)](e[t(401)],typeof AudioContext)?v$4[t(308)]=new AudioContext:e[t(939)](e[t(401)],typeof webkitAudioContext)?v$4[t(308)]=new webkitAudioContext:v$4[t(259)]=!1}catch(c){v$4[t(259)]=!1}continue;case"5":v$4[t(259)]&&(v$4[t(389)]=e[t(586)](void 0,v$4[t(308)][t(201)])?v$4[t(308)][t(213)]():v$4[t(308)][t(201)](),v$4[t(389)][t(287)][t(478)](v$4[t(747)]?0:1,v$4[t(308)][t(520)]),v$4[t(389)][t(153)](v$4[t(308)][t(641)])),v$4[t(684)]();continue;case"6":var o=v$4[t(529)]&&v$4[t(529)][t(372)][t(461)](/OS (\d+)_(\d+)_?(\d+)?/);continue}break}}let B$2=class{constructor(t){this[M3(503)](t)}[M3(503)](t){var e=M3,n={cHNOk:function(t){return t()},iVawz:function(t,e){return t!==e},VNyZN:e(799),XxKWR:e(359),BJAoi:e(243),BTbHO:e(189)},i=this;return v$4[e(308)]||n[e(187)](z$2),i[e(530)]=t[e(371)]||!1,i[e(283)]=n[e(638)](n[e(531)],typeof t[e(751)])?t[e(751)]:[t[e(751)]],i[e(242)]=t[e(865)]||!1,i[e(747)]=t[e(858)]||!1,i[e(328)]=t[e(516)]||!1,i[e(674)]=t[e(795)]||5,i[e(241)]=n[e(638)](n[e(690)],typeof t[e(790)])||t[e(790)],i[e(869)]=t[e(430)]||1,i[e(219)]=t[e(171)]||{},i[e(564)]=n[e(638)](n[e(531)],typeof t[e(236)])?t[e(236)]:[t[e(236)]],i[e(313)]=n[e(638)](void 0,t[e(635)])?t[e(635)]:1,i[e(561)]=t[e(813)]||!1,i[e(812)]=0,i[e(240)]=n[e(916)],i[e(168)]=[],i[e(727)]={},i[e(594)]=[],i[e(295)]=!1,i[e(587)]=t[e(819)]?[{fn:t[e(819)]}]:[],i[e(922)]=t[e(914)]?[{fn:t[e(914)]}]:[],i[e(802)]=t[e(542)]?[{fn:t[e(542)]}]:[],i[e(750)]=t[e(620)]?[{fn:t[e(620)]}]:[],i[e(818)]=t[e(470)]?[{fn:t[e(470)]}]:[],i[e(330)]=t[e(437)]?[{fn:t[e(437)]}]:[],i[e(757)]=t[e(460)]?[{fn:t[e(460)]}]:[],i[e(912)]=t[e(883)]?[{fn:t[e(883)]}]:[],i[e(347)]=t[e(421)]?[{fn:t[e(421)]}]:[],i[e(945)]=t[e(785)]?[{fn:t[e(785)]}]:[],i[e(544)]=t[e(540)]?[{fn:t[e(540)]}]:[],i[e(533)]=t[e(710)]?[{fn:t[e(710)]}]:[],i[e(220)]=t[e(352)]?[{fn:t[e(352)]}]:[],i[e(315)]=[],i[e(730)]=v$4[e(259)]&&!i[e(242)],n[e(638)](void 0,v$4[e(308)])&&v$4[e(308)]&&v$4[e(174)]&&v$4[e(566)](),v$4[e(207)][e(553)](i),i[e(530)]&&i[e(594)][e(553)]({event:n[e(815)],action:function(){i[e(189)]()}}),i[e(241)]&&i[e(495)](),i}[M3(495)](){var t=M3,e={NeXAu:t(942),lzxcj:t(665),pLlwJ:function(t,e){return t===e},VzFTX:t(799),toFVV:function(t,e){return t<e},VwmqF:function(t,e){return t!==e},WWXHj:t(465),usibx:t(447),XzBsz:t(363),nskbN:function(t,e){return t(e)},miKGo:t(426)},n=null;if(v$4[t(199)])this[t(768)](e[t(548)],null,e[t(534)]);else{e[t(915)](e[t(774)],typeof this[t(564)])&&(this[t(564)]=[this[t(564)]]);for(var i=0;e[t(398)](i,this[t(564)][t(806)]);i++){var r,s;if(this[t(283)]&&this[t(283)][i])r=this[t(283)][i];else{if(e[t(496)](e[t(774)],typeof(s=this[t(564)][i])))continue;(r=/^data:audio\/([^;,]+);/i[t(472)](s))||(r=/\.([^.]+)$/[t(472)](s[t(643)]("?",1)[0])),r&&(r=r[1][t(930)]())}if(r&&v$4[t(764)](r)){n=this[t(564)][i];break}}if(n)return this[t(564)]=n,this[t(240)]=e[t(715)],e[t(915)](e[t(882)],window[t(292)][t(208)])&&e[t(915)](e[t(270)],n[t(361)](0,5))&&(this[t(242)]=!0,this[t(730)]=!1),new w$2(this),this[t(730)]&&e[t(264)](P$3,this),this;this[t(768)](e[t(548)],null,e[t(809)])}}[M3(189)](t,e){for(var n=M3,i={LXXQy:n(277),lEOYy:function(t,e){return t-e},caAmR:function(t,e){return t/e},yXzTA:function(t,e){return t+e},VHFQP:n(189),DiaqD:function(t,e){return t===e},WDHRQ:n(272),OHOwq:function(t,e){return t===e},zGkGu:n(799),YZsgI:function(t,e){return t===e},CoTff:n(225),aEhaS:n(702),XYpix:function(t,e){return t<e},wAKKM:function(t,e){return t===e},caNoz:function(t,e){return t/e},VHsAP:function(t,e){return t*e},pQyfp:function(t,e){return t+e},cfJwo:function(t,e){return t>=e},AUzUk:function(t,e){return t===e},WWyUg:n(275),rXJwM:function(t){return t()},lWupp:n(439),otibe:function(t,e){return t===e},aftmf:n(746),kykQj:function(t,e){return t===e},VajCO:function(t,e){return t!==e},pwHYl:function(t,e,n){return t(e,n)},fzjdQ:function(t,e,n){return t(e,n)},UsgVl:n(345),oCvcU:n(202),mlSXk:n(794),gfUzE:function(t,e){return t instanceof e},FnDUF:n(555),JTQTa:function(t,e){return t/e},OlSMU:function(t,e){return t&&e},SMqtn:function(t,e){return t!==e},ZbDvy:function(t,e){return t>e},jdmDO:function(t,e){return t/e}},r=i[n(903)][n(643)]("|"),s=0;;){switch(r[s++]){case"0":var a=null;continue;case"1":var o=a?u[n(291)](a):u[n(739)]();continue;case"2":if(!o)return null;continue;case"3":var c=function(){var t=n;o[t(247)]=!1,o[t(541)]=M,o[t(584)]=b,o[t(523)]=f,o[t(328)]=m};continue;case"4":var l=Math[n(552)](0,i[n(905)](i[n(244)](i[n(835)](u[n(219)][t][0],u[n(219)][t][1]),1e3),M));continue;case"5":o[n(219)]=t,o[n(181)]=!1;continue;case"6":var u=this;continue;case"7":if(a&&!o[n(247)])return e||u[n(667)](i[n(349)]),o[n(946)];continue;case"8":if(i[n(501)](i[n(659)],typeof t))a=t,t=null;else{if(i[n(327)](i[n(773)],typeof t)&&i[n(195)](i[n(826)],u[n(240)])&&!u[n(219)][t])return null;if(i[n(327)](void 0,t)&&(t=i[n(841)],!u[n(295)])){for(var h=0,d=0;i[n(338)](d,u[n(168)][n(806)]);d++)u[n(168)][d][n(247)]&&!u[n(168)][d][n(181)]&&(h++,a=u[n(168)][d][n(946)]);i[n(317)](1,h)?t=null:a=null}}continue;case"9":var p=i[n(226)](i[n(590)](1e3,l),Math[n(625)](o[n(869)]));continue;case"10":u[n(181)](o);continue;case"11":var f=i[n(244)](i[n(887)](u[n(219)][t][0],u[n(219)][t][1]),1e3);continue;case"12":var m=!(!o[n(328)]&&!u[n(219)][t][2]);continue;case"13":u[n(730)]&&v$4[n(441)]();continue;case"14":if(!i[n(357)](M,f)){var g=o[n(788)];if(u[n(730)]){var A=function(){var t=n,i={jzxgs:S[t(176)]};u[t(295)]=!1,S[t(455)](c),u[t(687)](o);var r=o[t(747)]||u[t(747)]?0:o[t(313)];g[t(287)][t(478)](r,v$4[t(308)][t(520)]),o[t(705)]=v$4[t(308)][t(520)],S[t(254)](void 0,g[t(626)][t(824)])?o[t(328)]?g[t(626)][t(678)](0,M,86400):g[t(626)][t(678)](0,M,l):o[t(328)]?g[t(626)][t(824)](0,M,86400):g[t(626)][t(824)](0,M,l),S[t(458)](p,S[t(385)](1,0))&&(u[t(727)][o[t(946)]]=S[t(510)](setTimeout,u[t(181)][t(222)](u,o),p)),e||S[t(877)](setTimeout,function(){var e=t;u[e(768)](i[e(445)],o[e(946)]),u[e(667)]()},0)};i[n(249)](i[n(258)],v$4[n(306)])?i[n(673)](A):(u[n(295)]=!0,u[n(237)](i[n(929)],A),u[n(414)](o[n(946)]))}else{var v=function(){var i=n,r={QvhMl:S[i(176)]};g[i(520)]=M,g[i(917)]=o[i(747)]||u[i(747)]||v$4[i(747)]||g[i(917)],g[i(635)]=S[i(418)](o[i(313)],v$4[i(635)]()),g[i(782)]=o[i(869)];try{var s=g[i(189)]();if(s&&S[i(458)](void 0,Promise)&&(S[i(191)](s,Promise)||S[i(608)](S[i(880)],typeof s[i(443)]))?(u[i(295)]=!0,S[i(455)](c),s[i(443)](function(){var t=i;u[t(295)]=!1,g[t(859)]=!0,e||(u[t(768)](r[t(434)],o[t(946)]),u[t(667)]())})[i(166)](function(){var t=i;u[t(295)]=!1,u[t(768)](S[t(786)],o[t(946)],S[t(429)]),o[t(181)]=!0,o[t(247)]=!0})):e||(u[i(295)]=!1,S[i(455)](c),u[i(768)](S[i(176)],o[i(946)]),u[i(667)]()),g[i(782)]=o[i(869)],g[i(335)])return void u[i(768)](S[i(786)],o[i(946)],S[i(429)]);S[i(908)](S[i(863)],t)||o[i(328)]?u[i(727)][o[i(946)]]=S[i(228)](setTimeout,u[i(181)][i(222)](u,o),p):(u[i(727)][o[i(946)]]=function(){var t=i;u[t(181)](o),g[t(907)](S[t(331)],u[t(727)][o[t(946)]],!1)},g[i(358)](S[i(331)],u[i(727)][o[i(946)]],!1))}catch(a){u[i(768)](S[i(786)],o[i(946)],a)}};i[n(280)](i[n(235)],g[n(236)])&&(g[n(236)]=u[n(564)],g[n(495)]());var y=window&&window[n(265)]||!g[n(289)]&&v$4[n(529)][n(406)];i[n(357)](g[n(289)],3)||y?i[n(673)](v):(u[n(295)]=!0,g[n(358)](v$4[n(618)],function t(){var e=n;S[e(525)](v),g[e(907)](v$4[e(618)],t,!1)},!1),u[n(414)](o[n(946)]))}return o[n(946)]}continue;case"15":var S={dyRXu:i[n(349)],ypZzR:function(t){return i[n(673)](t)},ggIqv:function(t,e){return i[n(281)](t,e)},HiUID:function(t,e){return i[n(346)](t,e)},FsiVp:function(t,e){return i[n(244)](t,e)},IemxC:function(t,e,r){return i[n(821)](t,e,r)},LvOOO:function(t,e,r){return i[n(606)](t,e,r)},PTbOz:i[n(326)],bvYLF:i[n(557)],Yxzzh:i[n(926)],tiqNE:function(t,e){return i[n(590)](t,e)},hCWAr:function(t,e){return i[n(771)](t,e)},jaYVH:function(t,e){return i[n(501)](t,e)},NUHtL:i[n(310)],KUuPl:function(t,e){return i[n(346)](t,e)},IZAQR:i[n(841)],sEFzs:function(t,e,r){return i[n(606)](t,e,r)},TSEir:function(t){return i[n(673)](t)}};continue;case"16":var b=i[n(735)](u[n(219)][t][0],1e3);continue;case"17":if(i[n(325)](a,!t)&&(t=o[n(219)]||i[n(841)]),i[n(560)](i[n(826)],u[n(240)])){o[n(219)]=t,o[n(181)]=!1;var x=o[n(946)];return u[n(594)][n(553)]({event:i[n(349)],action:function(){u[n(189)](x)}}),x}continue;case"18":var M=Math[n(552)](0,i[n(415)](o[n(541)],0)?o[n(541)]:i[n(940)](u[n(219)][t][0],1e3));continue}break}}[M3(789)](t){var e=M3,n={aQiqV:function(t,e){return t!==e},eIlai:e(225),VeJsZ:e(789),nKVtF:function(t,e){return t<e},QJrMa:function(t,e){return t===e},WuohG:function(t,e){return t(e)},WqgHQ:function(t,e){return t!==e},GNKnq:function(t,e){return t/e}},i=this;if(n[e(177)](n[e(783)],i[e(240)])||i[e(295)])return i[e(594)][e(553)]({event:n[e(402)],action:function(){i[e(789)](t)}}),i;for(var r=i[e(433)](t),s=0;n[e(711)](s,r[e(806)]);s++){i[e(414)](r[s]);var a=i[e(291)](r[s]);if(a&&!a[e(247)]&&(a[e(541)]=i[e(337)](r[s]),a[e(197)]=0,a[e(247)]=!0,i[e(234)](r[s]),a[e(788)]))if(i[e(730)]){if(!a[e(788)][e(626)])continue;n[e(850)](void 0,a[e(788)][e(626)][e(318)])?a[e(788)][e(626)][e(800)](0):a[e(788)][e(626)][e(318)](0),i[e(556)](a[e(788)])}else n[e(196)](isNaN,a[e(788)][e(444)])&&n[e(268)](a[e(788)][e(444)],n[e(456)](1,0))||a[e(788)][e(789)]();arguments[1]||i[e(768)](n[e(402)],a?a[e(946)]:null)}return i}[M3(318)](t,e){var n=M3,i={jpRpW:function(t,e){return t!==e},pjdaW:n(225),BChNo:n(318),PRESl:function(t,e){return t<e},AATTO:function(t,e){return t===e},TNhOY:function(t,e){return t(e)},dvkik:function(t,e){return t!==e},mrgpu:function(t,e){return t/e},wyaDY:function(t,e){return t===e},CCqSt:function(t,e){return t/e}},r=this;if(i[n(488)](i[n(661)],r[n(240)])||r[n(295)])return r[n(594)][n(553)]({event:i[n(491)],action:function(){r[n(318)](t)}}),r;for(var s=r[n(433)](t),a=0;i[n(282)](a,s[n(806)]);a++){r[n(414)](s[a]);var o=r[n(291)](s[a]);o&&(o[n(541)]=o[n(584)]||0,o[n(197)]=0,o[n(247)]=!0,o[n(181)]=!0,r[n(234)](s[a]),o[n(788)]&&(r[n(730)]?o[n(788)][n(626)]&&(i[n(279)](void 0,o[n(788)][n(626)][n(318)])?o[n(788)][n(626)][n(800)](0):o[n(788)][n(626)][n(318)](0),r[n(556)](o[n(788)])):i[n(666)](isNaN,o[n(788)][n(444)])&&i[n(822)](o[n(788)][n(444)],i[n(233)](1,0))||(o[n(788)][n(520)]=o[n(584)]||0,o[n(788)][n(789)](),i[n(262)](o[n(788)][n(444)],i[n(267)](1,0))&&r[n(775)](o[n(788)]))),e||r[n(768)](i[n(491)],o[n(946)]))}return r}[M3(858)](t,e){for(var n=M3,i={LPfOR:n(263),JEQkB:function(t,e){return t<e},biOIr:n(858),fFHEO:function(t,e){return t===e},eDBKq:function(t,e){return t!==e},CWhre:n(359),MEboZ:n(225)},r=i[n(862)][n(643)]("|"),s=0;;){switch(r[s++]){case"0":return l;case"1":for(var a=l[n(433)](e),o=0;i[n(571)](o,a[n(806)]);o++){var c=l[n(291)](a[o]);c&&(c[n(747)]=t,c[n(941)]&&l[n(234)](c[n(946)]),l[n(730)]&&c[n(788)]?c[n(788)][n(287)][n(478)](t?0:c[n(313)],v$4[n(308)][n(520)]):c[n(788)]&&(c[n(788)][n(917)]=!!v$4[n(747)]||t),l[n(768)](i[n(825)],c[n(946)]))}continue;case"2":if(i[n(438)](void 0,e)){if(i[n(607)](i[n(312)],typeof t))return l[n(747)];l[n(747)]=t}continue;case"3":var l=this;continue;case"4":if(i[n(607)](i[n(399)],l[n(240)])||l[n(295)])return l[n(594)][n(553)]({event:i[n(825)],action:function(){l[n(858)](t,e)}}),l;continue}break}}[M3(635)](){for(var t=M3,e={pMAry:t(538),IJAbB:function(t,e){return t===e},rcNNX:function(t,e){return t<e},nMIMR:function(t,e){return t*e},ThfrU:t(635),JJjOf:function(t,e){return t>=e},PQPzL:function(t,e,n){return t(e,n)},WoCSV:function(t,e){return t(e)},tGfMe:function(t,e,n){return t(e,n)},hRJlr:function(t,e){return t!==e},Zvdfg:function(t,e){return t<=e},tXZvv:function(t,e){return t!==e},DWTvO:t(225)},n=e[t(672)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":var r;continue;case"1":e[t(836)](void 0,c)&&(s[t(313)]=r),c=s[t(433)](c);continue;case"2":var s=this;continue;case"3":var a;continue;case"4":for(var o=0;e[t(161)](o,c[t(806)]);o++)(a=s[t(291)](c[o]))&&(a[t(313)]=r,l[2]||s[t(234)](c[o]),s[t(730)]&&a[t(788)]&&!a[t(747)]?a[t(788)][t(287)][t(478)](r,v$4[t(308)][t(520)]):a[t(788)]&&!a[t(747)]&&(a[t(788)][t(635)]=e[t(791)](r,v$4[t(635)]())),s[t(768)](e[t(404)],a[t(946)]));continue;case"5":var c;continue;case"6":var l=arguments;continue;case"7":if(e[t(836)](1,l[t(806)])||e[t(836)](2,l[t(806)])&&e[t(836)](void 0,l[1])?e[t(703)](s[t(433)]()[t(316)](l[0]),0)?c=e[t(336)](parseInt,l[0],10):r=e[t(423)](parseFloat,l[0]):e[t(703)](l[t(806)],2)&&(r=e[t(423)](parseFloat,l[0]),c=e[t(921)](parseInt,l[1],10)),!(e[t(305)](void 0,r)&&e[t(703)](r,0)&&e[t(410)](r,1)))return(a=c?s[t(291)](c):s[t(168)][0])?a[t(313)]:0;continue;case"8":return s;case"9":if(e[t(836)](0,l[t(806)]))return s[t(313)];continue;case"10":if(e[t(395)](e[t(565)],s[t(240)])||s[t(295)])return s[t(594)][t(553)]({event:e[t(404)],action:function(){var e=t;s[e(635)][e(616)](s,l)}}),s;continue}break}}[M3(901)](t,e,n,i){for(var r=M3,s={ghGCG:r(923),sXmml:function(t,e){return t(e)},NEcFt:function(t,e){return t(e)},kBRID:function(t,e){return t(e)},Bxgjg:function(t,e){return t<e},QDnCL:function(t,e){return t+e},HNuML:function(t,e){return t/e},rhZcO:function(t,e){return t===e},EiGcG:function(t,e){return t!==e},Jvoop:r(225),RvgBg:r(901)},a=s[r(770)][r(643)]("|"),o=0;;){switch(a[o++]){case"0":var c=this;continue;case"1":t=s[r(749)](parseFloat,t),e=s[r(696)](parseFloat,e),n=s[r(714)](parseFloat,n),c[r(635)](t,i);continue;case"2":for(var l=c[r(433)](i),u=0;s[r(642)](u,l[r(806)]);u++){var h=c[r(291)](l[u]);if(h){if(i||c[r(234)](l[u]),c[r(730)]&&!h[r(747)]){var d=v$4[r(308)][r(520)],p=s[r(515)](d,s[r(517)](n,1e3));h[r(313)]=t,h[r(788)][r(287)][r(478)](t,d),h[r(788)][r(287)][r(175)](e,p)}c[r(879)](h,t,e,n,l[u],s[r(817)](void 0,i))}}continue;case"3":if(s[r(828)](s[r(951)],c[r(240)])||c[r(295)])return c[r(594)][r(553)]({event:s[r(731)],action:function(){c[r(901)](t,e,n,i)}}),c;continue;case"4":return c}break}}[M3(879)](t,e,n,i,r,s){for(var a=M3,o={UXDRI:a(245),seSZL:function(t,e){return t/e},Dykcv:function(t,e){return t>e},TMjjF:function(t,e,n){return t(e,n)},OpzDC:function(t,e){return t-e},qwKUD:function(t,e){return t/e},TZYWO:function(t,e){return t*e},PSfCN:function(t,e){return t<e},PMwUo:function(t,e){return t<=e},CDQEN:function(t,e){return t>e},WfMcQ:function(t,e){return t>=e},msdjS:function(t,e){return t(e)},lmnVS:a(901)},c=o[a(256)][a(643)]("|"),l=0;;){switch(c[l++]){case"0":var u=Math[a(625)](o[a(798)](m,.01));continue;case"1":var h=Math[a(552)](4,o[a(823)](u,0)?o[a(798)](i,u):i);continue;case"2":var d=Date[a(397)]();continue;case"3":var p=e;continue;case"4":var f=this;continue;case"5":t[a(513)]=n,t[a(941)]=o[a(350)](setInterval,function(){var r=a,o=g[r(505)](g[r(493)](Date[r(397)](),d),i);d=Date[r(397)](),p+=g[r(393)](m,o),p=Math[r(552)](0,p),p=Math[r(355)](1,p),p=g[r(505)](Math[r(489)](g[r(393)](100,p)),100),f[r(730)]?t[r(313)]=p:f[r(635)](p,t[r(946)],!0),s&&(f[r(313)]=p),(g[r(834)](n,e)&&g[r(854)](p,n)||g[r(769)](n,e)&&g[r(833)](p,n))&&(g[r(652)](clearInterval,t[r(941)]),t[r(941)]=null,t[r(513)]=null,f[r(635)](n,t[r(946)]),f[r(768)](g[r(205)],t[r(946)]))},h);continue;case"6":var m=o[a(848)](n,e);continue;case"7":var g={WvPgL:function(t,e){return o[a(194)](t,e)},whycZ:function(t,e){return o[a(848)](t,e)},iSXwP:function(t,e){return o[a(740)](t,e)},KWZsy:function(t,e){return o[a(873)](t,e)},EbvBF:function(t,e){return o[a(762)](t,e)},hJbPq:function(t,e){return o[a(257)](t,e)},jYGpA:function(t,e){return o[a(832)](t,e)},PYuRn:function(t,e){return o[a(870)](t,e)},ZisDJ:o[a(644)]};continue}break}}[M3(234)](t){var e=M3,n={gpKJd:function(t,e){return t(e)},ocDLg:e(901)},i=this[e(291)](t);return i&&i[e(941)]&&(this[e(730)]&&i[e(788)][e(287)][e(579)](v$4[e(308)][e(520)]),n[e(467)](clearInterval,i[e(941)]),i[e(941)]=null,this[e(635)](i[e(513)],t),i[e(513)]=null,this[e(768)](n[e(778)],t)),this}[M3(516)](){for(var t=M3,e={JRfyY:t(664),nUbmI:function(t,e){return t<e},SFnaL:function(t,e){return t===e},Kwcdq:function(t,e){return t!==e},JRBhR:t(359),XTfKi:function(t,e,n){return t(e,n)}},n=e[t(269)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":var r=arguments;continue;case"1":for(var s=this[t(433)](o),a=0;e[t(462)](a,s[t(806)]);a++)(c=this[t(291)](s[a]))&&(c[t(328)]=l,this[t(730)]&&c[t(788)]&&c[t(788)][t(626)]&&(c[t(788)][t(626)][t(516)]=l,l&&(c[t(788)][t(626)][t(699)]=c[t(584)]||0,c[t(788)][t(626)][t(302)]=c[t(523)])));continue;case"2":var o;continue;case"3":var c;continue;case"4":var l;continue;case"5":if(e[t(514)](0,r[t(806)]))return this[t(328)];continue;case"6":if(e[t(514)](1,r[t(806)])){if(e[t(662)](e[t(671)],typeof r[0]))return!!(c=this[t(291)](e[t(483)](parseInt,r[0],10)))&&c[t(328)];l=r[0],this[t(328)]=l}else e[t(514)](2,r[t(806)])&&(l=r[0],o=e[t(483)](parseInt,r[1],10));continue;case"7":return this}break}}[M3(430)](){for(var t=M3,e={kQUjK:t(619),NKzYZ:function(t,e){return t!==e},mgEAX:t(272),zcVyZ:function(t,e){return t<e},RADpR:function(t,e){return t/e},gJfPF:function(t,e){return t*e},nPMEN:function(t,e){return t-e},DWbMC:function(t,e){return t/e},DyAcF:function(t,e){return t+e},pNVkB:function(t,e,n){return t(e,n)},wKJun:t(430),PhTcJ:function(t,e){return t===e},OpsZz:function(t,e){return t===e},Efmkq:function(t,e){return t>=e},IxFRG:function(t,e){return t(e)},ZQYyk:function(t,e){return t(e)},XwSSO:function(t,e,n){return t(e,n)},lEVCN:function(t,e){return t!==e},SSHlB:t(225)},n=e[t(210)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":var r;continue;case"1":var s;continue;case"2":if(e[t(403)](e[t(861)],typeof u))return(s=h[t(291)](r))?s[t(869)]:h[t(869)];continue;case"3":for(var a=0;e[t(720)](a,r[t(806)]);a++)if(s=h[t(291)](r[a])){h[t(698)](r[a])&&(s[t(197)]=h[t(337)](r[a]),s[t(705)]=h[t(730)]?v$4[t(308)][t(520)]:s[t(705)]),s[t(869)]=u,h[t(730)]&&s[t(788)]&&s[t(788)][t(626)]?s[t(788)][t(626)][t(782)][t(478)](u,v$4[t(308)][t(520)]):s[t(788)]&&(s[t(788)][t(782)]=u);var o=h[t(337)](r[a]),c=e[t(569)](e[t(777)](1e3,e[t(567)](e[t(572)](e[t(876)](h[t(219)][s[t(219)]][0],h[t(219)][s[t(219)]][1]),1e3),o)),Math[t(625)](s[t(869)]));!h[t(727)][r[a]]&&s[t(247)]||(h[t(414)](r[a]),h[t(727)][r[a]]=e[t(760)](setTimeout,h[t(181)][t(222)](h,s),c)),h[t(768)](e[t(203)],s[t(946)])}continue;case"4":e[t(184)](void 0,r)&&(h[t(869)]=u),r=h[t(433)](r);continue;case"5":return h;case"6":var l=arguments;continue;case"7":var u;continue;case"8":var h=this;continue;case"9":e[t(184)](0,l[t(806)])?r=h[t(168)][0][t(946)]:e[t(810)](1,l[t(806)])?e[t(314)](h[t(433)]()[t(316)](l[0]),0)?r=e[t(760)](parseInt,l[0],10):u=e[t(299)](parseFloat,l[0]):e[t(810)](2,l[t(806)])&&(u=e[t(583)](parseFloat,l[0]),r=e[t(868)](parseInt,l[1],10));continue;case"10":if(e[t(924)](e[t(409)],h[t(240)])||h[t(295)])return h[t(594)][t(553)]({event:e[t(203)],action:function(){var e=t;h[e(430)][e(616)](h,l)}}),h;continue}break}}[M3(337)](){for(var t=M3,e={DccNC:t(820),gYIZY:function(t,e){return t===e},ElVLv:function(t,e){return t>=e},PrjEi:function(t,e,n){return t(e,n)},gvOqo:function(t,e){return t(e)},ULDYf:function(t,e){return t===e},MEzQc:function(t,e){return t(e)},wvsVO:t(729),HkWvF:function(t,e){return t(e)},DioLi:t(272),OIuEX:function(t,e){return t-e},iFprB:function(t,e){return t+e},PzkHp:function(t,e){return t*e},gCjLK:function(t,e,n){return t(e,n)},vOotB:function(t){return t()},MCUwQ:function(t,e){return t===e},HVuZt:function(t,e){return t!==e},PEgeD:t(225),FGXxw:t(337),rwUyO:function(t){return t()}},n=e[t(902)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":var r=s[t(291)](o);continue;case"1":var s=this;continue;case"2":return s;case"3":var a;continue;case"4":e[t(353)](0,f[t(806)])?o=s[t(168)][0][t(946)]:e[t(353)](1,f[t(806)])?e[t(157)](s[t(433)]()[t(316)](f[0]),0)?o=e[t(276)](parseInt,f[0],10):s[t(168)][t(806)]&&(o=s[t(168)][0][t(946)],a=e[t(227)](parseFloat,f[0])):e[t(867)](2,f[t(806)])&&(a=e[t(477)](parseFloat,f[0]),o=e[t(276)](parseInt,f[1],10));continue;case"5":var o;continue;case"6":if(r)for(var c=e[t(949)][t(643)]("|"),l=0;;){switch(c[l++]){case"0":var u=s[t(698)](o);continue;case"1":u&&s[t(789)](o,!0),r[t(541)]=a,r[t(181)]=!1,s[t(414)](o),s[t(730)]||!r[t(788)]||e[t(592)](isNaN,r[t(788)][t(444)])||(r[t(788)][t(520)]=a);continue;case"2":if(!e[t(353)](e[t(381)],typeof a)||!e[t(157)](a,0)){if(s[t(730)]){var h=s[t(698)](o)?e[t(886)](v$4[t(308)][t(520)],r[t(705)]):0,d=r[t(197)]?e[t(886)](r[t(197)],r[t(541)]):0;return e[t(526)](r[t(541)],e[t(526)](d,e[t(551)](h,Math[t(625)](r[t(869)]))))}return r[t(788)][t(520)]}continue;case"3":var p=function(){var e=t;s[e(768)](m[e(284)],o),u&&s[e(189)](o,!0)};continue;case"4":u&&!s[t(730)]?e[t(816)](setTimeout,function e(){var n=t;s[n(295)]?m[n(188)](setTimeout,e,0):m[n(369)](p)},0):e[t(900)](p);continue}break}continue;case"7":var f=arguments;continue;case"8":if(e[t(163)](void 0,o))return s;continue;case"9":if(e[t(691)](e[t(394)],s[t(240)])||s[t(295)])return s[t(594)][t(553)]({event:e[t(159)],action:function(){var e=t;s[e(337)][e(616)](s,f)}}),s;continue;case"10":var m={zOelD:e[t(159)],hhotM:function(n,i,r){return e[t(276)](n,i,r)},svHzz:function(n){return e[t(636)](n)}};continue}break}}[M3(698)](t){var e=M3,n={fmKBJ:function(t,e){return t===e},Xxkof:e(272),CjfLX:function(t,e){return t<e}};if(n[e(215)](n[e(881)],typeof t)){var i=this[e(291)](t);return!!i&&!i[e(247)]}for(var r=0;n[e(273)](r,this[e(168)][e(806)]);r++)if(!this[e(168)][r][e(247)])return!0;return!1}[M3(444)](t){var e=M3,n=this[e(812)],i=this[e(291)](t);return i&&(n={dVihj:function(t,e){return t/e}}[e(913)](this[e(219)][i[e(219)]][1],1e3)),n}[M3(306)](){return this[M3(240)]}[M3(391)](){for(var t=M3,e={snIrr:function(t,e){return t<e},ppVsN:t(348),SSZVG:function(t,e){return t>=e},rwsER:function(t,e){return t===e},sihoF:function(t,e){return t>=e},jwJwR:function(t,e){return t&&e},uSPYA:t(243)},n=this,i=n[t(168)],r=0;e[t(158)](r,i[t(806)]);r++)i[r][t(247)]||n[t(318)](i[r][t(946)]),n[t(730)]||(n[t(775)](i[r][t(788)]),i[r][t(788)][t(907)](e[t(296)],i[r][t(743)],!1),i[r][t(788)][t(907)](v$4[t(618)],i[r][t(321)],!1),v$4[t(573)](i[r][t(788)])),delete i[r][t(788)],n[t(414)](i[r][t(946)]);var s=v$4[t(207)][t(316)](n);e[t(162)](s,0)&&v$4[t(207)][t(716)](s,1);var a=!0;for(r=0;e[t(158)](r,v$4[t(207)][t(806)]);r++)if(e[t(838)](v$4[t(207)][r][t(564)],n[t(564)])||e[t(742)](n[t(564)][t(316)](v$4[t(207)][r][t(564)]),0)){a=!1;break}return e[t(411)](k$4,a)&&delete k$4[n[t(564)]],v$4[t(199)]=!1,n[t(240)]=e[t(362)],n[t(168)]=[],n=null,null}on(t,e,n,i){var r=M3,s={BBKHr:function(t,e){return t+e},qmYLw:r(365),xlIDl:function(t,e){return t===e},JLjrH:r(555)},a=this[s[r(934)](s[r(568)],t)];return s[r(679)](s[r(623)],typeof e)&&a[r(553)](i?{id:n,fn:e,once:i}:{id:n,fn:e}),this}[M3(884)](t,e,n){var i=M3,r={cyJQs:function(t,e){return t+e},VHojD:i(365),hiUNk:function(t,e){return t===e},GYqsm:i(272),XybjF:function(t,e){return t||e},WcNxR:function(t,e){return t<e},mPBFD:function(t,e){return t===e},SSfan:function(t,e){return t===e},kufft:function(t,e){return t&&e}},s=this[r[i(780)](r[i(890)],t)],a=0;if(r[i(286)](r[i(950)],typeof e)&&(n=e,e=null),r[i(658)](e,n))for(a=0;r[i(464)](a,s[i(806)]);a++){var o=r[i(734)](n,s[a].id);if(r[i(453)](e,s[a].fn)&&o||r[i(479)](!e,o)){s[i(716)](a,1);break}}else if(t)this[r[i(780)](r[i(890)],t)]=[];else{var c=Object[i(893)](this);for(a=0;r[i(464)](a,c[i(806)]);a++)r[i(453)](0,c[a][i(316)](r[i(890)]))&&Array[i(845)](this[c[a]])&&(this[c[a]]=[])}return this}[M3(237)](t,e,n){return this.on(t,e,n,1),this}[M3(768)](t,e,n){for(var i=M3,r={BYAsY:function(t,e){return t+e},avWNl:i(365),vZUcR:function(t,e){return t-e},uHlGS:function(t,e){return t>=e},SQWvq:function(t,e){return t!==e},uSzdT:i(495),oHImy:function(t,e,n){return t(e,n)}},s=this[r[i(382)](r[i(647)],t)],a=r[i(793)](s[i(806)],1);r[i(435)](a,0);a--)s[a].id&&r[i(190)](s[a].id,e)&&r[i(190)](r[i(428)],t)||(r[i(792)](setTimeout,function(t){t[i(601)](this,e,n)}[i(222)](this,s[a].fn),0),s[a][i(237)]&&this[i(884)](t,s[a].fn,s[a].id));return this[i(667)](t),this}[M3(667)](t){var e=M3,n={aIaGe:function(t,e){return t>e},ZRnjc:function(t,e){return t===e}};if(n[e(198)](this[e(594)][e(806)],0)){var i=this[e(594)][0];n[e(307)](i[e(670)],t)&&(this[e(594)][e(204)](),this[e(667)]()),t||i[e(752)]()}return this}[M3(181)](t){for(var e=M3,n={OOgSP:e(615),rrMZg:function(t,e){return t<e},QBjUW:function(t,e,n){return t(e,n)},dKgzk:e(376),UfqQi:e(189),jqUGx:function(t,e){return t/e},fAhBC:function(t,e){return t*e},ylybm:function(t,e){return t-e}},i=n[e(745)][e(643)]("|"),r=0;;){switch(i[r++]){case"0":var s=t[e(219)];continue;case"1":if(!this[e(730)]&&t[e(788)]&&!t[e(788)][e(335)]&&!t[e(788)][e(794)]&&n[e(547)](t[e(788)][e(520)],t[e(523)]))return n[e(599)](setTimeout,this[e(181)][e(222)](this,t),100),this;continue;case"2":var a=!(!t[e(328)]&&!this[e(219)][s][2]);continue;case"3":if(this[e(768)](n[e(685)],t[e(946)]),!this[e(730)]&&a&&this[e(318)](t[e(946)],!0)[e(189)](t[e(946)]),this[e(730)]&&a){this[e(768)](n[e(379)],t[e(946)]),t[e(541)]=t[e(584)]||0,t[e(197)]=0,t[e(705)]=v$4[e(308)][e(520)];var o=n[e(738)](n[e(367)](1e3,n[e(405)](t[e(523)],t[e(584)])),Math[e(625)](t[e(869)]));this[e(727)][t[e(946)]]=n[e(599)](setTimeout,this[e(181)][e(222)](this,t),o)}continue;case"4":return this[e(730)]&&!a&&(t[e(247)]=!0,t[e(181)]=!0,t[e(541)]=t[e(584)]||0,t[e(197)]=0,this[e(414)](t[e(946)]),this[e(556)](t[e(788)]),v$4[e(928)]()),this[e(730)]||a||this[e(318)](t[e(946)],!0),this}break}}[M3(414)](t){var e=M3,n={KAfGK:function(t,e){return t!==e},mTDcy:e(555),QlFYn:function(t,e){return t(e)},hgmYU:e(794)};if(this[e(727)][t]){if(n[e(779)](n[e(931)],typeof this[e(727)][t]))n[e(524)](clearTimeout,this[e(727)][t]);else{var i=this[e(291)](t);i&&i[e(788)]&&i[e(788)][e(907)](n[e(373)],this[e(727)][t],!1)}delete this[e(727)][t]}return this}[M3(291)](t){for(var e=M3,n={bChVX:function(t,e){return t<e},GUEEd:function(t,e){return t===e}},i=0;n[e(301)](i,this[e(168)][e(806)]);i++)if(n[e(712)](t,this[e(168)][i][e(946)]))return this[e(168)][i];return null}[M3(739)](){var t=M3,e={ZqpdL:function(t,e){return t<e}};this[t(408)]();for(var n=0;e[t(324)](n,this[t(168)][t(806)]);n++)if(this[t(168)][n][t(181)])return this[t(168)][n][t(390)]();return new w$2(this)}[M3(408)](){var t=M3,e={upjvT:function(t,e){return t<e},dYDSV:function(t,e){return t-e},WMLmO:function(t,e){return t>=e},VDeAw:function(t,e){return t<=e}},n=this[t(674)],i=0,r=0;if(!e[t(650)](this[t(168)][t(806)],n)){for(r=0;e[t(650)](r,this[t(168)][t(806)]);r++)this[t(168)][r][t(181)]&&i++;for(r=e[t(581)](this[t(168)][t(806)],1);e[t(781)](r,0);r--){if(e[t(831)](i,n))return;this[t(168)][r][t(181)]&&(this[t(730)]&&this[t(168)][r][t(788)]&&this[t(168)][r][t(788)][t(604)](0),this[t(168)][t(716)](r,1),i--)}}}[M3(433)](t){var e=M3,n={uWzMy:function(t,e){return t===e},UNUZn:function(t,e){return t<e}};if(n[e(948)](void 0,t)){for(var i=[],r=0;n[e(597)](r,this[e(168)][e(806)]);r++)i[e(553)](this[e(168)][r][e(946)]);return i}return[t]}[M3(687)](t){var e=M3;return t[e(788)][e(626)]=v$4[e(308)][e(842)](),t[e(788)][e(626)][e(311)]=k$4[this[e(564)]],t[e(278)]?t[e(788)][e(626)][e(153)](t[e(278)]):t[e(788)][e(626)][e(153)](t[e(788)]),t[e(788)][e(626)][e(516)]=t[e(328)],t[e(328)]&&(t[e(788)][e(626)][e(699)]=t[e(584)]||0,t[e(788)][e(626)][e(302)]=t[e(523)]||0),t[e(788)][e(626)][e(782)][e(478)](t[e(869)],v$4[e(308)][e(520)]),this}[M3(556)](t){var e=M3,n={TYYUe:function(t,e){return t>=e},BZCiP:e(947)},i=v$4[e(529)]&&n[e(499)](v$4[e(529)][e(550)][e(316)](n[e(304)]),0);if(v$4[e(938)]&&t[e(626)]&&(t[e(626)][e(374)]=null,t[e(626)][e(604)](0),i))try{t[e(626)][e(311)]=v$4[e(938)]}catch(r){}return t[e(626)]=null,this}[M3(775)](t){var e=M3,n={bdBpO:e(746)};/MSIE |Trident\//[e(713)](v$4[e(529)]&&v$4[e(529)][e(846)])||(t[e(236)]=n[e(507)])}},r$2=class extends EventDispatcher{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_kc),this),n=M3,i={GvlOE:n(655),EwTvF:function(t,e){return t<e},TVVpc:function(t,e){return t+e},pzZGZ:function(t,e){return t<e},OSuod:function(t,e){return t<e}},r=i[n(628)][n(643)]("|"),s=0;;){switch(r[s++]){case"0":this[n(469)]=void 0;continue;case"1":this[n(248)]=l;continue;case"2":this[n(236)]=t[n(236)];continue;case"3":this[n(230)]=void 0;continue;case"4":for(var a=void 0,o=0;i[n(537)](o,u);o++)for(var c=i[n(223)](o,1);i[n(677)](c,u);c++)i[n(545)](l[o][n(806)],l[c][n(806)])&&(a=l[o],l[o]=l[c],l[c]=a);continue;case"5":this[n(500)]=!1;continue;case"6":this[n(840)]=[];continue;case"7":this[n(645)]=!0;continue;case"8":this[n(527)]=!1;continue;case"9":v$4[n(154)]=!1;continue;case"10":return this;case"11":var l=Object[n(893)](this[n(171)]),u=l[n(806)];continue;case"12":this[n(266)]=0;continue;case"13":l$5=this;continue;case"14":e();continue;case"15":this[n(171)]=t[n(171)];continue;case"16":this[n(803)]=-1;continue}break}}[(_kc=M3(230),M3(588))](){var t=M3,e={cPpRm:function(t,e){return t===e},jvIxy:t(200),kWfIR:function(t,e){return t===e},Jgytf:t(837)};e[t(920)](document[t(532)],e[t(754)])?l$5[t(936)]():e[t(669)](document[t(532)],e[t(663)])&&l$5[t(736)]()}[M3(936)](){var t=M3,e={YQYXD:t(179),izRqh:function(t,e){return t(e)},oDYEW:t(486)};e[t(888)](clearTimeout,this[t(469)]),this[t(318)](),v$4[t(306)]=e[t(183)],v$4[t(308)][t(294)]()[t(443)](function(){var n=t;v$4[n(306)]=e[n(624)]})}[M3(736)](){var t=M3,e={VlGWX:function(t,e){return t<e},WCdOa:t(439),KYoum:t(275)};this[t(378)](),v$4[t(308)][t(439)]()[t(443)](function(){for(var n=t,i=0;e[n(436)](i,v$4[n(207)][n(806)]);i++)v$4[n(207)][i][n(768)](e[n(574)]);v$4[n(306)]=e[n(776)]})}[M3(378)](){var t=M3,e={UEqNA:function(t,e){return t(e)},UHvTI:function(t,e,n){return t(e,n)}},n=this;this[t(500)]||(e[t(448)](clearTimeout,this[t(469)]),this[t(469)]=e[t(622)](setTimeout,function(){var e=t;n[e(230)][e(495)]()},2e3))}[M3(431)](){for(var t=M3,e={szYDW:t(829),oMTsP:t(495),TOmTs:t(942),eaMRe:t(475),SMOCk:function(t,e){return t(e)}},n=e[t(897)][t(643)]("|"),i=0;;){switch(n[i++]){case"0":this[t(589)]();continue;case"1":this[t(230)][t(237)](e[t(807)],function(){var e=t;s[e(805)](clearTimeout,r[e(469)]),r[e(500)]=!0,r[e(682)](s[e(466)],{})});continue;case"2":this[t(230)]=new B$2({src:this[t(236)],sprite:this[t(171)]});continue;case"3":this[t(230)].on(e[t(485)],function(e){r[t(378)]()});continue;case"4":var r=this;continue;case"5":document[t(358)](e[t(387)],this[t(588)]);continue;case"6":var s={oPPdD:function(n,i){return e[t(600)](n,i)},fPsLW:e[t(807)]};continue}break}}[M3(589)](){var t=M3,e={sDupu:t(475),QVWvd:function(t,e){return t(e)}};document[t(907)](e[t(440)],this[t(588)]),e[t(484)](clearTimeout,this[t(469)]),this[t(318)](),this[t(500)]=!1,this[t(230)]&&(this[t(230)][t(884)](),this[t(230)][t(391)](),v$4[t(391)](),v$4[t(174)]=!0,v$4[t(473)]=!1,this[t(230)]=void 0)}[M3(413)](){var t=M3,e={uCvVH:function(t,e){return t>=e},NLfhv:t(178)};e[t(852)](l$5[t(266)],l$5[t(803)])?(l$5[t(318)](),l$5[t(682)](e[t(320)],{}),l$5[t(645)]=!0):l$5[t(230)][t(189)](l$5[t(840)][l$5[t(266)]++])}[M3(660)](t){var e=M3,n={ueKwe:function(t,e){return t!==e},HZsvC:e(376)};n[e(211)](t[e(806)],0)&&this[e(500)]&&(this[e(840)]=this[e(840)][e(695)](t),this[e(803)]=this[e(840)][e(806)],this[e(527)]||(this[e(266)]=0,this[e(230)].on(n[e(250)],this[e(413)]),this[e(230)][e(189)](this[e(840)][this[e(266)]++])),this[e(527)]=!0)}[M3(318)](){var t=M3,e={vfnQR:t(376)};this[t(230)]&&(this[t(230)][t(318)](),this[t(230)][t(884)](e[t(697)],this[t(413)])),this[t(266)]=0,this[t(803)]=-1,this[t(840)]=[],this[t(527)]=!1}[M3(756)](){var t=M3,e={nVeuk:t(756)};this[t(318)](),this[t(660)]([e[t(377)]])}[M3(911)](t){}[M3(737)](t){var e=M3;this[e(230)][e(858)](t)}[M3(758)](t){var e=M3;this[e(230)][e(635)](t)}[M3(904)](t){var e=M3;this[e(230)]&&this[e(230)][e(430)]()&&this[e(230)][e(430)](t)}};class AudioPlayer extends r$2{constructor(t){for(var e=(...t)=>(super(...t),__publicField(this,_mc),__publicField(this,_lc,"zh"),this),n=M3,i={YIrEc:n(701)}[n(558)][n(643)]("|"),r=0;;){switch(i[r++]){case"0":e(t);continue;case"1":this[n(171)]=t[n(171)];continue;case"2":this[n(300)]=t[n(300)]||"zh";continue;case"3":this[n(431)]();continue;case"4":t={sprite:t[n(171)],src:t[n(236)]};continue}break}}[(_mc=M3(171),_lc=M3(300),M3(911))](t){var e=M3,n={TuuEv:function(t,e){return t<e},uMLym:function(t,e){return t>=e},WPtXF:function(t,e){return t<=e},enOEr:function(t,e){return t&&e},KVhrk:function(t,e){return t+e},umzNn:function(t,e){return t+e},KUMph:function(t,e){return t&&e},FTIhW:function(t,e){return t+e},fMhok:function(t,e){return t+e},xEGyV:function(t,e){return t>e},QqVAx:function(t,e){return t<e},gBIEm:function(t,e){return t===e}};let i=this;if(this[e(500)]){var r,s,a,o;n[e(761)](this[e(300)],"en")&&(t=this[e(452)](t));var c=function(t){for(var r=e,s="",a="",o=0,c=(t=t[r(392)](",",","))[r(806)];n[r(899)](o,c);o++){var l=t[o];n[r(246)](l,"0")&&n[r(182)](l,"9")?s+=l:(s&&(a+=s=i[r(895)](s)[r(252)]("")),s="",a+=l)}return s&&(a+=s=i[r(895)](s)[r(252)]("")),a}(t=t[e(392)](/([BFA])([0-9]+)([mM]?)|([0-9]+)([BFA])([mM]?)/g,function(t,i,r,s,a,o,c){var l,u=e;if(n[u(375)](i,r)){switch(i){case"B":l=n[u(212)](n[u(212)]("负",r),"楼");break;case"A":case"F":l=n[u(839)](r,"楼")}s&&(l+="夹层")}else if(n[u(851)](a,o)){switch(o){case"B":l=n[u(293)](n[u(801)]("负",a),"楼");break;case"A":case"F":l=n[u(839)](a,"楼")}c&&(l+="夹层")}return l})),l=(r=c,s=this[e(248)],a=[],o=[],s[e(180)](function(t){var i=e,s=r[i(316)](t),o=t[i(806)];if(n[i(322)](s,-1)){for(;n[i(322)](s,-1);)a[s]=t,s=r[i(316)](t,n[i(801)](s,o));for(var c="",l=0;n[i(172)](l,o);l++)c+="/";var u=new RegExp(t,"g");r=r[i(392)](u,c)}}),a[e(180)](function(t){t&&o[e(553)](t)}),o);this[e(660)](l)}}[M3(895)](t){var e=M3,n={QIYCc:function(t,e,n){return t(e,n)}};switch(this[e(300)]){case"zh":return n[e(610)](setTimeout,()=>{var t=e;this[t(230)]&&this[t(230)][t(430)]&&this[t(904)](1)},10),this[e(885)](t);case"en":return n[e(610)](setTimeout,()=>{var t=e;this[t(230)]&&this[t(230)][t(430)]&&this[t(904)](.834)},10),this[e(676)](t);case"id":return n[e(610)](setTimeout,()=>{var t=e;this[t(230)]&&this[t(230)][t(430)]&&this[t(904)](1)},10),this[e(419)](t);default:return this[e(885)](t)}}[M3(885)](t){var e=M3,n={mFgbK:function(t,e){return t(e)},lbDDq:function(t,e){return t!==e},CpIaI:function(t,e){return t*e},lbjIT:function(t,e){return t/e},oPTYh:function(t,e){return t>e},aEqYd:function(t,e){return t+e},cuinK:function(t,e){return t>e},rIPVD:function(t,e){return t-e},lcUot:function(t,e){return t===e},wlTAM:function(t,e){return t-e},BXIlX:function(t,e){return t===e},MiBiQ:function(t,e){return t===e}},i=[],r=1e3;for(t=n[e(251)](parseInt,t);n[e(383)](r,0);){t%=n[e(864)](10,r);var s=n[e(251)](parseInt,n[e(170)](t,r));if(n[e(728)](s,0)){i[e(553)](n[e(634)](s,""));var a=null;switch(r){case 1e3:a="千";break;case 100:a="百";break;case 10:a="十"}a&&i[e(553)](a)}else{var o=i[e(806)];n[e(354)](o,0)&&n[e(383)](i[n[e(185)](o,1)],"0")&&i[e(553)]("0")}r/=10}return n[e(370)](i[n[e(570)](i[e(806)],1)],"0")&&i[e(602)](),n[e(407)](i[0],"1")&&n[e(653)](i[1],"十")&&i[e(204)](),i}[M3(676)](t){var e=M3,n={jjLGX:function(t,e){return t===e},CCAkL:function(t,e){return t<e},ltyXt:function(t,e){return t<e},sYWYk:function(t,e){return t/e},xeRWm:function(t,e){return t%e},wwHCz:function(t,e){return t<e},SUnGQ:function(t,e){return t/e},BWXvV:function(t,e){return t>e},hxBQb:function(t,e){return t/e},umThf:function(t,e){return t>e}};const i=["","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],r=["","","20","30","40","50","60","70","80","90"];if(n[e(417)](t,0))return["0"];if(n[e(422)](t,20))return[i[t]];if(n[e(709)](t,100)){const s=Math[e(239)](n[e(498)](t,10)),a=n[e(944)](t,10);return n[e(417)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(910)](t,1e3)){const r=Math[e(239)](n[e(274)](t,100)),s=n[e(944)](t,100),a=[i[r],"百"];return n[e(388)](s,0)&&a[e(553)](...this[e(676)](s)),a}if(n[e(910)](t,1e6)){const i=Math[e(239)](n[e(723)](t,1e3)),r=n[e(944)](t,1e3),s=[...this[e(676)](i),"千"];return n[e(427)](r,0)&&s[e(553)](...this[e(676)](r)),s}return[t[e(707)]()]}[M3(419)](t){var e=M3,n={WnWkO:function(t,e){return t===e},fFpIB:function(t,e){return t<e},TpSGq:function(t,e){return t/e},GsAyr:function(t,e){return t%e},yelsM:function(t,e){return t===e},PWupy:function(t,e){return t%e},YYWEx:function(t,e){return t>e},uSalS:function(t,e){return t/e},mcAnq:function(t,e){return t%e},kaiaZ:function(t,e){return t===e},WVeTy:function(t,e){return t>e}};const i=["","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],r=["","","20","30","40","50","60","70","80","90"];if(n[e(856)](t,0))return["0"];if(n[e(193)](t,20))return[i[t]];if(n[e(193)](t,100)){const s=Math[e(239)](n[e(468)](t,10)),a=n[e(480)](t,10);return n[e(686)](a,0)?[r[s]]:[r[s],i[a]]}if(n[e(193)](t,1e3)){const r=Math[e(239)](n[e(468)](t,100)),s=n[e(576)](t,100),a=[i[r],"百"];return n[e(943)](s,0)&&a[e(553)](...this[e(419)](s)),a}if(n[e(193)](t,1e6)){const i=Math[e(239)](n[e(424)](t,1e3)),r=n[e(657)](t,1e3);let s=[];return s=n[e(298)](i,1)?["千"]:[...this[e(419)](i),"千"],n[e(339)](r,0)&&s[e(553)](...this[e(419)](r)),s}return[t[e(707)]()]}[M3(452)](t){for(var e=M3,n={IldIP:e(554),gDcWR:e(492),tGvYL:e(229),gcLdh:e(518),BvqWQ:e(755),ojRqQ:e(860),IGGty:e(260),ZszgX:e(630)},i=n[e(474)][e(643)]("|"),r=0;;){switch(i[r++]){case"0":t=t[e(392)](/向右后方掉头/g,n[e(446)]);continue;case"1":t=t[e(392)](/即将右转/g,n[e(255)]);continue;case"2":t=t[e(392)](/请走扶梯前往(\d+)F/g,n[e(580)]);continue;case"3":t=t[e(392)](/向左后方掉头/g,n[e(631)]);continue;case"4":t=t[e(392)](/请走电梯前往(\d+)F/g,n[e(457)]);continue;case"5":t=t[e(392)](/即将左转/g,n[e(894)]);continue;case"6":t=t[e(392)](/请走楼梯前往(\d+)F/g,n[e(238)]);continue;case"7":return t}break}}}let w$2=class{constructor(t){var e=M3;this[e(384)]=t,this[e(503)]()}[M3(503)](){var t=M3,e={qKahb:t(702)},n=this[t(384)];return this[t(747)]=n[t(747)],this[t(328)]=n[t(328)],this[t(313)]=n[t(313)],this[t(869)]=n[t(869)],this[t(541)]=0,this[t(247)]=!0,this[t(181)]=!0,this[t(219)]=e[t(559)],this[t(946)]=++v$4[t(844)],n[t(168)][t(553)](this),this[t(380)](),this}[M3(380)](){var t=M3,e={wHNuN:function(t,e){return t===e},luiYG:t(348),xsTva:t(849),QQYDL:function(t,e){return t*e}},n=this[t(384)],i=v$4[t(747)]||this[t(747)]||this[t(384)][t(747)]?0:this[t(313)];return n[t(730)]?(this[t(788)]=e[t(787)](void 0,v$4[t(308)][t(201)])?v$4[t(308)][t(213)]():v$4[t(308)][t(201)](),this[t(788)][t(287)][t(478)](i,v$4[t(308)][t(520)]),this[t(788)][t(335)]=!0,this[t(788)][t(153)](v$4[t(389)])):(this[t(788)]=v$4[t(209)](),this[t(743)]=this[t(767)][t(222)](this),this[t(788)][t(358)](e[t(765)],this[t(743)],!1),this[t(321)]=this[t(231)][t(222)](this),this[t(788)][t(358)](v$4[t(618)],this[t(321)],!1),this[t(788)][t(236)]=n[t(564)],this[t(788)][t(790)]=e[t(640)],this[t(788)][t(635)]=e[t(627)](i,v$4[t(635)]()),this[t(788)][t(495)]()),this}[M3(390)](){var t=M3,e={kcZLh:t(702)},n=this[t(384)];return this[t(747)]=n[t(747)],this[t(328)]=n[t(328)],this[t(313)]=n[t(313)],this[t(869)]=n[t(869)],this[t(541)]=0,this[t(197)]=0,this[t(247)]=!0,this[t(181)]=!0,this[t(219)]=e[t(578)],this[t(946)]=++v$4[t(844)],this}[M3(767)](){var t=M3,e={csMny:t(942),gTkPT:t(348)};this[t(384)][t(768)](e[t(646)],this[t(946)],this[t(788)][t(348)]?this[t(788)][t(348)][t(356)]:0),this[t(788)][t(907)](e[t(471)],this[t(743)],!1)}[M3(231)](){var t=M3,e={oPImB:function(t,e){return t/e},qtTPr:function(t,e){return t*e},TPFpi:function(t,e){return t===e},dRRPD:function(t,e){return t*e},KrBdk:function(t,e){return t!==e},CGcJb:t(225),fRohz:t(495)},n=this[t(384)];n[t(812)]=e[t(683)](Math[t(332)](e[t(323)](10,this[t(788)][t(444)])),10),e[t(617)](0,Object[t(893)](n[t(219)])[t(806)])&&(n[t(219)]={__default:[0,e[t(368)](1e3,n[t(812)])]}),e[t(582)](e[t(290)],n[t(240)])&&(n[t(240)]=e[t(290)],n[t(768)](e[t(649)]),n[t(667)]()),this[t(788)][t(907)](v$4[t(618)],this[t(321)],!1)}};function H$5(t,e){var n=M3,i={eEDKJ:function(t,e){return t===e},LhNXx:function(t,e){return t*e},beSTq:function(t,e){return t!==e},oZfST:n(225),zMKKD:n(495)};e&&!t[n(812)]&&(t[n(812)]=e[n(444)]),i[n(497)](0,Object[n(893)](t[n(219)])[n(806)])&&(t[n(219)]={__default:[0,i[n(872)](1e3,t[n(812)])]}),i[n(563)](i[n(906)],t[n(240)])&&(t[n(240)]=i[n(906)],t[n(768)](i[n(919)]),t[n(667)]())}function m$m(t,e){return t-=153,M$m()[t]}function o$4(t,e){var n=M3,i={tQZWa:n(942),ssLlF:n(629),LjztF:function(t,e){return t>e},KiWVZ:function(t,e,n){return t(e,n)},jHrlz:function(t){return t()},EaWgl:function(t,e){return t!==e},IfQJa:function(t,e){return t===e}},r=function(){var t=n;e[t(768)](i[t(253)],null,i[t(216)])},s=function(t){var s=n;t&&i[s(654)](e[s(168)][s(806)],0)?(k$4[e[s(564)]]=t,i[s(766)](H$5,e,t)):i[s(169)](r)};i[n(797)](void 0,Promise)&&i[n(546)](1,v$4[n(308)][n(827)][n(806)])?v$4[n(308)][n(827)](t)[n(443)](s)[n(166)](r):v$4[n(308)][n(827)](t,s,r)}function F$4(t){var e=M3;try{t[e(449)]()}catch(n){t[e(519)]()}}var k$4={};function M$m(){var t=["_fadeTo","SFnaL","QDnCL","loop","HNuML","请走定冠词2扶梯前往$1F","onerror","currentTime","qTkez","FVblK","_stop","QlFYn","TSEir","iFprB","isPlaying","_codecs","_navigator","_autoplay","VNyZN","visibilityState","_onseek","lzxcj","audio/mpeg;","close","EwTvF","0|5|3|2|6|9|7|10|1|4|8","JnyhC","onrate","_seek","onload","xtdbK","_onrate","OSuod","IfQJa","rrMZg","NeXAu","lqzoJ","vendor","PzkHp","max","push","2|6|4|3|0|5|1|7","function","_cleanBuffer","oCvcU","YIrEc","qKahb","SMqtn","_xhrWithCredentials","CeEcC","beSTq","_src","DWTvO","_unlockAudio","nPMEN","qmYLw","RADpR","wlTAM","JEQkB","DWbMC","_releaseHtml5Audio","WCdOa","sGLOj","PWupy","vjcXo","kcZLh","cancelScheduledValues","gcLdh","dYDSV","KrBdk","ZQYyk","_start","pghSa","GeVAH","_onend","visibleHandler","destroy","VHsAP","631688HLZfai","HkWvF","AgeJO","_queue","4|1|2|6|3|0|5","VdeVa","UNUZn","HVBMu","QBjUW","SMOCk","call","pop","response","disconnect","sampleRate","fzjdQ","eDBKq","jaYVH","PVQnh","QIYCc","umIHu","_html5AudioPool","vdThf","cpTjm","0|1|2|3|4","apply","TPFpi","_canPlayEvent","7|0|1|8|6|9|2|10|4|3|5","onloaderror","touchstart","UHvTI","JLjrH","YQYXD","abs","bufferSource","QQYDL","GvlOE","Decoding audio data failed.","请走定冠词1楼梯前往$1F","BvqWQ","click","mXIxl","aEqYd","volume","rwUyO","avXoC","iVawz","KJIAs","xsTva","destination","Bxgjg","split","lmnVS","canInterrupt","csMny","avWNl","1857432EjWcJN","fRohz","upjvT","6|1|2|4|3|0|7|5","PYuRn","MiBiQ","LjztF","14|13|15|2|3|5|12|16|6|8|7|0|11|4|9|1|10","zsrbM","mcAnq","XybjF","WDHRQ","playSprites","pjdaW","Kwcdq","Jgytf","4|2|3|0|5|6|1|7","No audio support.","TNhOY","_loadQueue","charCodeAt","kWfIR","event","JRBhR","pMAry","rXJwM","_pool","RSKVh","englishNum2text","pzZGZ","noteGrainOn","xlIDl","ErLga","audio/x-mp4;","emit","oPImB","_setup","dKgzk","yelsM","_refreshBuffer","89126MOhjfr","nfNwf","XxKWR","HVuZt","RsMLL","audio/m4a;","_resumeAfterSuspend","concat","NEcFt","vfnQR","playing","loopStart","XAXGR","4|0|1|2|3","__default","JJjOf","FaTAg","_playStart","2265615BRNSSp","toString","TzcaD","ltyXt","onseek","nKVtF","GUEEd","test","kBRID","WWXHj","splice","xlzTw","IEKwE","IhavW","zcVyZ","eiTLp","gRzCB","hxBQb","vQqqz","vfqnB","2758930OTxBRq","_endTimers","oPTYh","2|0|1|3|4","_webAudio","RvgBg","4240432qeyUUj","lsaPR","mPBFD","JTQTa","resumeContext","setMute","jqUGx","_inactiveSound","TZYWO","LJajZ","sihoF","_errorFn","ReDZO","OOgSP","data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA","_muted","responseType","sXmml","_onloaderror","format","action","EowUO","jvIxy","掉头向定冠词1左","navDeviate","_onplay","setVolume","HDoXf","pNVkB","gBIEm","PMwUo","kcKWP","codecs","luiYG","KiWVZ","_errorListener","_emit","hJbPq","ghGCG","gfUzE","sujNj","zGkGu","VzFTX","_clearSound","KYoum","gJfPF","ocDLg","KAfGK","cyJQs","WMLmO","playbackRate","eIlai","UTqXq","onvolume","PTbOz","wHNuN","_node","pause","preload","nMIMR","oHImy","vZUcR","ended","pool","wEMTn","EaWgl","seSZL","string","noteOff","fMhok","_onload","playLength","KSJfq","oPPdD","length","oMTsP","XSVAu","miKGo","OpsZz","QdZlW","_duration","xhrWithCredentials","4|2|3|1|0","BTbHO","gCjLK","rhZcO","_onplayerror","onend","10|3|5|1|7|4|8|9|0|6|2","pwHYl","dvkik","Dykcv","start","biOIr","CoTff","decodeAudioData","EiGcG","6|4|0|5|2|3|1",'audio/ogg; codecs="opus"',"VDeAw","WfMcQ","jYGpA","KWZsy","yXzTA","IJAbB","visible","rwsER","umzNn","spriteArray","aEhaS","createBufferSource","qBnLZ","_counter","isArray","userAgent",'audio/mp4; codecs="ec-3"',"OpzDC","auto","QJrMa","KUMph","uCvVH","KJFiu","EbvBF","html5PoolSize","WnWkO","42DMUVwZ","mute","_unlocked","请走定冠词2电梯前往$1F","mgEAX","LPfOR","IZAQR","CpIaI","html5","standalone","ULDYf","XwSSO","_rate","msdjS","urzJd","LhNXx","PSfCN","eOLAJ","rdKqm","DyAcF","LvOOO","arraybuffer","_startFadeInterval","NUHtL","Xxkof","usibx","onstop","off","chineseNum2text","OIuEX","pQyfp","izRqh","bElpQ","VHojD","audio/flac;","VGFew","keys","IGGty","num2text",'audio/wav; codecs="1"',"szYDW","audio/mp4;","TuuEv","vOotB","fade","DccNC","LXXQy","setRate","lEOYy","oZfST","removeEventListener","KUuPl","SbEhW","wwHCz","playRange","_onstop","dVihj","onfade","pLlwJ","BJAoi","muted","unlock","zMKKD","cPpRm","tGfMe","_onfade","0|3|1|2|4","lEVCN","_setupCodecs","mlSXk","WIBpb","_autoSuspend","lWupp","toLowerCase","mTDcy","4wIJrfF","IsqiL","BBKHr","IepCV","suspendContext","8|13|6|2|3|10|4|14|5|0|9|7|15|12|16|11|1","_scratchBuffer","byNNS","jdmDO","_interval","loaderror","YYWEx","xeRWm","_onvolume","_id","Apple","uWzMy","wvsVO","GYqsm","Jvoop","connect","autoSuspend","cbNaY","qEXOJ","ElVLv","snIrr","FGXxw","gSUPU","rcNNX","SSZVG","MCUwQ","jrOcL","FyfRr","catch","open","_sounds","jHrlz","lbjIT","sprite","QqVAx","IYRSs","autoUnlock","linearRampToValueAtTime","dyRXu","aQiqV","playEnd","suspended","forEach","_ended","WPtXF","oDYEW","PhTcJ","rIPVD","scsly","cHNOk","hhotM","play","SQWvq","hCWAr","audio/mp3;","fFpIB","qwKUD","YZsgI","WuohG","_rateSeek","aIaGe","noAudio","hidden","createGain","Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.","wKJun","shift","ZisDJ","WOTCx","_howls","protocol","_obtainHtml5Audio","kQUjK","ueKwe","KVhrk","createGainNode","BMDTF","fmKBJ","ssLlF","oVzeY","Rdyzs","_sprite","_onunlock","onerror Failed loading audio file with status: ","bind","TVVpc","ACSVS","loaded","caNoz","gvOqo","sEFzs","右转即将","sound","_loadListener","audio/x-m4a;","mrgpu","_stopFade","aftmf","src","once","ZszgX","floor","_state","_preload","_html5","unloaded","caAmR","7|4|3|6|0|1|2|5","uMLym","_paused","spriteMaxToMin","AUzUk","HZsvC","mFgbK","join","tQZWa","ggIqv","tGvYL","UXDRI","CDQEN","WWyUg","usingWebAudio","左转即将","_mobileUnloaded","wyaDY","3|4|2|1|0","nskbN","ejecta","playIndex","CCqSt","WqgHQ","JRfyY","XzBsz","canplaythrough","number","CjfLX","SUnGQ","running","PrjEi","15|6|0|8|1|2|17|7|13|18|4|9|16|11|12|5|3|14|10","_panner","AATTO","otibe","kykQj","PRESl","_format","zOelD","canPlayType","hiUNk","gain","SjHTc","readyState","CGcJb","_soundById","location","FTIhW","suspend","_playLock","ppVsN","audio/x-flac;","kaiaZ","IxFRG","language","bChVX","loopEnd","status","BZCiP","hRJlr","state","ZRnjc","ctx","jtXUP","FnDUF","buffer","CWhre","_volume","Efmkq","_onresume","indexOf","wAKKM","stop","GET","NLfhv","_loadFn","xEGyV","qtTPr","ZqpdL","OlSMU","UsgVl","OHOwq","_loop","MYWgQ","_onpause","Yxzzh","ceil","ftudp","nEgHG","paused","PQPzL","seek","XYpix","WVeTy","bWAEp","IDBqu","noteOn","RNSzk","IAIvV","playerror","VajCO","_onmute","error","VHFQP","TMjjF","audio/x-caf;","onunlock","gYIZY","cuinK","min","code","cfJwo","addEventListener","boolean","touchend","slice","uSPYA","http:","KKBGY","_on","BqSJv","fAhBC","dRRPD","svHzz","lcUot","autoplay","appVersion","hgmYU","onended","enOEr","end","nVeuk","reload","UfqQi","create","DioLi","BYAsY","lbDDq","_parent","FsiVp","createBuffer","eaMRe","BWXvV","masterGain","reset","unload","replace","iSXwP","PEgeD","tXZvv","onload Failed loading audio file with status: ","now","toFVV","MEboZ","oncanplaythrough","YeRbI","VeJsZ","NKzYZ","ThfrU","ylybm","isCocoonJS","BXIlX","_drain","SSHlB","Zvdfg","jwJwR","UESbc","endHandler","_clearTimer","ZbDvy","BoJKt","jjLGX","tiqNE","indonesianNum2text","oIYGS","onmute","CCAkL","WoCSV","uSalS",'audio/ogg; codecs="vorbis"',"No codec support for selected audio sources.","umThf","uSzdT","bvYLF","rate","initAudio","256776IdXdke","_getSoundIds","QvhMl","uHlGS","VlGWX","onpause","fFHEO","resume","sDupu","_autoResume",'audio/webm; codecs="vorbis"',"then","duration","jzxgs","gDcWR","https:","UEqNA","send","zJXgl","4|1|3|0|2","processEnglishGrammar","SSfan","audio/aac;","ypZzR","GNKnq","ojRqQ","HiUID","canplay","onplay","match","nUbmI","BUtyU","WcNxR","loading","fPsLW","gpKJd","TpSGq","reloadTimer","onplayerror","gTkPT","exec","_audioUnlocked","IldIP","visibilitychange","platform","MEzQc","setValueAtTime","kufft","GsAyr","QWuJW","_suspendTimer","XTfKi","QVWvd","TOmTs","suspending","kDuKS","jpRpW","round","csTnS","BChNo","掉头向定冠词2右","whycZ","QdKyA","load","VwmqF","eEDKJ","sYWYk","TYYUe","isLoaded","DiaqD","oTFpC","init","vHeFT","WvPgL","JmXVy","bdBpO","withCredentials","RKxfY","IemxC","undefined","navigator"];return(M$m=function(){return t})()}function P$3(t){var e=M3,n={oIYGS:function(t,e){return t+e},ErLga:function(t,e){return t===e},jrOcL:function(t,e){return t===e},PVQnh:function(t,e,n){return t(e,n)},ACSVS:e(942),IYRSs:e(396),FyfRr:e(221),XSVAu:function(t,e){return t(e)},BUtyU:function(t,e){return t(e)},IepCV:function(t,e){return t<e},AgeJO:e(319),TzcaD:e(878)},i=t[e(564)];if(k$4[i])return t[e(812)]=k$4[i][e(444)],void n[e(808)](H$5,t);if(/^data:[^;]+;base64,/[e(713)](i)){for(var r=n[e(463)](atob,i[e(643)](",")[1]),s=new Uint8Array(r[e(806)]),a=0;n[e(935)](a,r[e(806)]);++a)s[a]=r[e(668)](a);n[e(609)](o$4,s[e(311)],t)}else{var o=new XMLHttpRequest;o[e(167)](n[e(593)],i,!0),o[e(508)]=t[e(561)],o[e(748)]=n[e(708)],o[e(542)]=function(){var i=e,r=n[i(420)](o[i(303)],"")[0];n[i(680)]("0",r)||n[i(680)]("2",r)||n[i(164)]("3",r)?n[i(609)](o$4,o[i(603)],t):t[i(768)](n[i(224)],null,n[i(420)](n[i(420)](n[i(173)],o[i(303)]),"."))},o[e(519)]=function(){var i=e;t[i(768)](n[i(224)],null,n[i(420)](n[i(420)](n[i(165)],o[i(303)]),"."))},n[e(463)](F$4,o)}}function M$l(){var t=["2389344WalUxj","4SpfcmH","2995236hCJwQU","76486fTpzkr","6640608viBCup","5742125MyNjOH","451863RhUCPu","3LttALa","10173205lZNcbf"];return(M$l=function(){return t})()}function m$l(t,e){return t-=347,M$l()[t]}!function(t,e){for(var n=m$l,i=t();;)try{if(873386===parseInt(n(348))/1+-parseInt(n(354))/2*(parseInt(n(349))/3)+-parseInt(n(352))/4*(-parseInt(n(347))/5)+-parseInt(n(351))/6+-parseInt(n(350))/7+parseInt(n(355))/8+parseInt(n(353))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$l);const g$a={0:[1400,433],1:[2233,333],2:[3033,300],3:[3767,333],4:[4533,333],5:[5367,400],6:[6233,400],7:[7067,433],8:[7933,267],9:[8633,367],",":[0,133],"-":[533,433],A:[9467,267],B:[10133,300],C:[10833,333],D:[11600,300],E:[12300,233],F:[12933,267],G:[13667,333],H:[14433,300],I:[15167,267],J:[15867,333],K:[16633,333],L:[17367,233],M:[18067,233],N:[18767,267],O:[19467,267],P:[20167,267],Q:[20867,333],R:[21633,267],S:[22367,300],T:[23100,300],U:[23833,300],V:[24533,300],W:[25267,433],X:[26133,333],Y:[26900,333],Z:[27667,333],navDeviate:[102233,400],"上层":[28400,600],"上行":[29400,400],"下层":[30233,633],"下行":[31300,433],"中间方向":[32200,733],"停车场":[33400,567],"出入口":[34400,1e3],"到达目的地":[35833,1067],"前往":[69400,300],"十":[38267,267],"千":[39033,467],"即将到达":[39933,700],"即将":[41100,400],"到达":[41933,433],"右侧":[42833,533],"右前方":[43833,500],"右后方":[44767,533],"右转":[45767,500],"右":[46060,207],"向":[47600,300],"坡道":[48333,300],"夹层":[49100,500],"导航开始":[50033,933],"导航结束":[51433,800],"左侧":[52700,600],"左前方":[53767,533],"左后方":[54767,600],"左转":[55833,567],"左":[56167,233],"扶梯":[56833,567],"检测到您处于步行状态":[57867,967],"检测到您处于驾车状态":[59267,1033],"楼":[60767,400],"楼梯":[61633,467],"然后":[62567,267],"后":[62567,267],"电梯":[63300,500],"百":[64267,367],"目的地在您":[65067,800],"直行":[66300,767],"米":[67533,467],"继续":[68433,533],"至":[69400,300],"行走":[70133,267],"行驶":[70900,333],"请":[71700,433],"请保持直行":[72567,1133],"请减速":[74133,800],"掉头":[75400,567],"请确认行进方向":[76400,1500],"请走右侧车道":[78333,1e3],"请走左侧车道":[79800,1067],"负":[81300,433],"走":[103400,200],"走中间车道":[82900,767],"进入":[84133,367],"您已偏离路线":[84967,1200],11:[86633,433],12:[87533,367],13:[88333,500],14:[89300,500],15:[90267,533],16:[91233,567],17:[92267,600],18:[93300,500],19:[94233,533],20:[95233,400],30:[96067,367],40:[96900,367],50:[97700,433],60:[98567,500],70:[99467,567],80:[100433,367],90:[101233,400],"定冠词1":[78700,33],"定冠词2":[103100,133]};function M$k(){var t=["2277600HdTBHm","7484874gfAVqV","498710ePSvTO","7VDajoV","3744351BzMcCl","6298568ijnFPW","39313848hfIQHe","3467590sfdHiU"];return(M$k=function(){return t})()}function m$k(t,e){return t-=415,M$k()[t]}!function(t,e){for(var n=m$k,i=t();;)try{if(790565===-parseInt(n(418))/1+parseInt(n(416))/2+-parseInt(n(420))/3+-parseInt(n(421))/4+-parseInt(n(415))/5+parseInt(n(417))/6*(-parseInt(n(419))/7)+parseInt(n(422))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$k);const l$4={0:[1667,267],1:[2067,367],2:[2967,367],3:[3433,333],4:[4267,300],5:[4767,333],6:[5633,367],7:[6167,333],8:[7033,567],9:[8167,567],",":[0,133],"-":[567,500],A:[9267,233],B:[1e4,300],C:[10467,267],D:[11267,300],E:[11767,267],F:[12567,167],G:[12933,333],H:[13800,233],I:[14500,267],J:[14967,300],K:[15767,267],L:[16167,300],M:[16967,267],N:[17367,267],O:[18200,200],P:[18833,233],Q:[19267,233],R:[20033,233],S:[20433,300],T:[21267,133],U:[21467,200],V:[22200,400],W:[23033,200],X:[23433,367],Y:[24333,267],Z:[24733,233],navDeviate:[109133,400],"上层":[25500,767],"上行":[26767,533],"下层":[27833,733],"下行":[29100,433],"中间方向":[30067,567],"停车场":[31133,567],"出入口":[32100,900],"到达目的地":[33467,833],"前往":[34800,567],"十":[35900,500],"千":[36967,500],"即将到达":[37967,633],"即将":[39100,433],"到达":[40067,300],"右侧":[40500,600],"右前方":[41600,833],"右后方":[42967,767],"右转":[44233,700],"后":[45433,533],"向":[46500,200],"坡道":[47200,233],"夹层":[47533,667],"导航开始":[48700,1e3],"导航结束":[50200,967],"左侧":[51700,667],"左前方":[52867,600],"左后方":[53967,733],"左转":[55200,600],"扶梯":[56300,733],"检测到您处于步行状态":[57533,1800],"检测到您处于驾车状态":[59867,1800],"楼":[62200,500],"楼梯":[63233,300],"然后":[63667,500],"电梯":[64667,200],"百":[65067,467],"目的地在您":[66e3,733],"直行":[67267,667],"米":[68433,367],"继续":[68900,500],"至":[69933,500],"行走":[70933,633],"行驶":[72067,700],"请":[73267,600],"请保持直行":[74400,1267],"请减速":[76200,800],"掉头":[77533,533],"请确认行进方向":[78567,1667],"请走右侧车道":[80800,1333],"请走左侧车道":[82667,1367],"负":[84500,500],"走":[85600,333],"走中间车道":[86033,1e3],"进入":[87567,333],"您已偏离路线":[88133,1400],11:[90067,533],12:[91167,533],13:[92233,500],14:[93267,567],15:[94367,567],16:[95467,533],17:[96533,567],18:[97600,667],19:[98867,667],20:[100067,533],30:[101133,500],40:[101167,1533],50:[103233,600],60:[104333,567],70:[105400,567],80:[106467,700],90:[107700,667]};function m$j(t,e){return t-=377,M$j()[t]}function M$j(){var t=["25hqJFqe","721452cLFiTc","815518YSzeBJ","11619585rJyVAx","4725198KjAoNU","5192635SFmzpJ","151312AZKEcA","8WsQjti","2214930KLqlvl"];return(M$j=function(){return t})()}!function(t,e){for(var n=m$j,i=t();;)try{if(484303===parseInt(n(378))/1+parseInt(n(383))/2+-parseInt(n(380))/3+-parseInt(n(382))/4*(-parseInt(n(381))/5)+-parseInt(n(385))/6+-parseInt(n(377))/7*(parseInt(n(379))/8)+parseInt(n(384))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$j);const v$3={0:[2200,396],1:[3300,251],2:[4399,289],3:[5500,360],4:[6600,396],5:[7700,216],6:[8800,288],7:[9900,396],8:[11e3,255],9:[12100,324],",":[0,128],"-":[1100,360],A:[13200,324],B:[14300,283],C:[15400,324],D:[16500,250],E:[17600,360],F:[18700,396],G:[19800,324],H:[20900,324],I:[22e3,267],J:[23100,292],K:[24200,347],L:[25300,431],M:[26400,334],N:[27499,288],O:[28599,288],P:[29700,393],Q:[30800,263],R:[31900,288],S:[33e3,252],T:[34100,252],U:[35200,324],V:[36300,245],W:[37400,476],X:[38500,252],Y:[39600,360],Z:[40700,198],navDeviate:[41800,394],"上层":[42900,684],"上行":[44e3,684],"下层":[45100,729],"下行":[46200,684],"中间方向":[47300,972],"停车场":[48400,792],"出入口":[49500,835],"到达目的地":[50600,1091],"前往":[52700,622],"十":[53800,468],"千":[54900,360],"即将到达":[56e3,1080],"即将":[56e3,500],"到达":[56500,540],"右侧":[58100,658],"右前方":[59200,792],"右后方":[60300,756],"右转":[61400,504],"后":[62500,385],"向":[63600,360],"坡道":[64700,654],"夹层":[65800,648],"导航开始":[66899,1133],"导航结束":[68999,1029],"左侧":[71100,599],"左前方":[72199,774],"左后方":[73299,792],"左转":[74399,612],"扶梯":[75499,612],"检测到您处于步行状态":[76599,2232],"检测到您处于驾车状态":[79699,2340],"楼":[82799,373],"楼梯":[83899,504],"然后":[84999,612],"电梯":[86099,633],"百":[87199,360],"目的地在您":[88299,1044],"直行":[90399,594],"米":[91499,283],"继续":[92599,540],"至":[93699,288],"行走":[94799,576],"行驶":[95899,612],"请":[96999,305],"请保持直行":[98099,1332],"请减速":[100199,828],"掉头":[101650,664],"请确认行进方向":[102399,1728],"请走右侧车道":[104499,1476],"请走左侧车道":[106599,1548],"负":[108699,360],"走":[109799,270],"走中间车道":[110899,1260],"进入":[112999,540],"您已偏离路线":[114039,2340]},k$3=m$i;function m$i(t,e){t-=163;return M$i()[t]}!function(t,e){const n=m$i,i=t();for(;;)try{if(138391===parseInt(n(217))/1+-parseInt(n(231))/2+parseInt(n(185))/3+-parseInt(n(167))/4+parseInt(n(227))/5*(parseInt(n(222))/6)+parseInt(n(206))/7+-parseInt(n(194))/8)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$i);class MultiLanguageAudioManager{constructor(t={}){__publicField(this,_sc,"zh"),__publicField(this,_rc,new Map),__publicField(this,_qc,1),__publicField(this,_pc,!1),__publicField(this,_oc,!1),__publicField(this,_nc,new Map([["zh",{code:"zh",name:"中文",audioFile:k$3(226),splitJson:v$3}],["en",{code:"en",name:k$3(176),audioFile:k$3(170),splitJson:g$a}],["id",{code:"id",name:k$3(197),audioFile:k$3(211),splitJson:l$4}]]));const e=k$3;this[e(184)]=t[e(213)]||"zh",this[e(174)]=t[e(174)]||1,this[e(183)]=t[e(183)]||!1,this[e(200)]()}[(_sc=k$3(184),_rc=k$3(198),_qc=k$3(174),_pc=k$3(183),_oc=k$3(186),_nc=k$3(173),k$3(200))](){const t=k$3,e={SHJzW:function(t,e){return t!==e},KWaUW:t(209),VvPFN:t(215)};if(e[t(212)](typeof window,e[t(225)])){window[t(188)](e[t(178)],e=>{const n=t;this[n(232)]();const i=window[n(205)]||"zh";this[n(163)](i)&&this[n(171)](i)});const n=window[t(205)]||"zh";this[t(163)](n)&&(this[t(184)]=n)}this[t(186)]=!0}[k$3(163)](t){const e=k$3;return this[e(173)][e(191)](t)}[k$3(201)](t){const e=k$3;if(!this[e(198)][e(191)](t)){const n=this[e(173)][e(165)](t);if(!n)throw new Error(e(190)+t);const i=new class extends AudioPlayer{constructor(){const i=e;super({src:n[i(210)],sprite:n[i(166)]}),this[i(230)]=t}};i[e(216)](this[e(174)]),i[e(223)](this[e(183)]),this[e(198)][e(169)](t,i)}return this[e(198)][e(165)](t)}[k$3(171)](t){var e;const n=k$3;this[n(163)](t)?(this[n(184)]=t,this[n(201)](t),console[n(164)](n(180)+(null==(e=this[n(173)][n(165)](t))?void 0:e[n(229)]))):console[n(208)](n(190)+t+n(175)+this[n(184)])}[k$3(181)](){return this[k$3(184)]}[k$3(228)](){const t=k$3;return Array[t(224)](this[t(173)][t(220)]())}[k$3(182)](t){const e=k$3,n={YLIdm:e(214),Lwnca:function(t,e,n){return t(e,n)},IsGpY:e(168),NEifY:function(t,e){return t!==e},myNCg:e(204)};try{const i=this[e(201)](this[e(184)]);if(i[e(219)])i[e(182)](t);else{const r=()=>{const s=e;i[s(219)]?i[s(182)](t):(console[s(164)](n[s(177)]),n[s(195)](setTimeout,r,100))};n[e(195)](setTimeout,r,100)}}catch(i){if(console[e(199)](n[e(187)],i),n[e(207)](this[e(184)],"zh")){console[e(208)](n[e(172)]);this[e(201)]("zh")[e(182)](t)}}}[k$3(216)](t){const e=k$3;this[e(174)]=Math[e(189)](0,Math[e(203)](1,t)),this[e(198)][e(202)](t=>{const n=e;t[n(216)](this[n(174)])})}[k$3(196)](){return this[k$3(174)]}[k$3(223)](t){const e=k$3;this[e(183)]=t,this[e(198)][e(202)](t=>{const n=e;t[n(223)](this[n(183)])})}[k$3(192)](){return this[k$3(183)]}[k$3(221)](t){const e=k$3;this[e(173)][e(169)](t[e(179)],t),console[e(164)](e(218)+t[e(229)]+" ("+t[e(179)]+")")}[k$3(232)](){const t=k$3;this[t(198)][t(202)](e=>{const n=t;e[n(232)]&&e[n(232)]()}),this[t(198)][t(193)]()}}function M$i(){const t=["isLoaded","values","addLanguage","12CsqrWX","setMute","from","KWaUW","./naviAudio.mp3","319195jsSqBj","getSupportedLanguages","name","language","326864FZRWeK","destroy","isValidLanguage","log","get","splitJson","961240OpPWbv","Failed to play audio:","set","./naviAudio-en.mp3","setLanguage","myNCg","languageConfigs","volume",", falling back to ","English","YLIdm","VvPFN","code","Navigation language switched to: ","getLanguage","playRange","muted","currentLanguage","495354WGSniQ","isInitialized","IsGpY","addEventListener","max","Unsupported language: ","has","isMuted","clear","768472jjiGyG","Lwnca","getVolume","Bahasa Indonesia","audioPlayers","error","init","getAudioPlayer","forEach","min","Falling back to Chinese audio","$language","737149eKLtxy","NEifY","warn","undefined","audioFile","./naviAudio-id.mp3","SHJzW","defaultLanguage","Still waiting for audio to load...","languageChanged","setVolume","240089YAZccH","Added language support: "];return(M$i=function(){return t})()}const R=m$h;function m$h(t,e){t-=189;return M$h()[t]}function M$h(){const t=["wPhBN","NhkFg","NTBaz","jOZsa","tboGw","naviTime","HfpQB","bgi","visible","log","WeKzP","tjtYD","isOutdoor","compassOffb","elevator","sHVpA","uppcL","ZwNRB","ySvWT","36JmveCV","ignoreRePlane","_positionMarkerShowTw","tqVjL","导航或模拟导航进行中,无法启动漫游","TUpTr","PVWUF","setSimulateSpeedAnimate","brNkN","APLxh","uYvSg","ZKLag","beaconAnalysis","xywgO","AYusw","PqDKo","__compass__","pauseSimulate","UXaTT","您已偏离路线","naviAudioTip","#fff","min","RJrIp","bKMYa","bBswK","computeNaviInfo","pMXoj","onComplete","NVwAZ","走楼梯前往","AiGth","0|4|1|2|5|3","rTZHz","COTHP","intersectObjectsBy2D","imiDb","XuNkC","hOqFI","arJrm","Out","yeaMK","lukTO","angle","ApwpE","socket","initAngle","nextId","LUrSp","lat","GPS","CrISw","QVbwt","isSimulatePause","qepys","addEventListener","NzImf","drWSj","path","stepSpeed","LJHIW","odCwx","isSimulate","openAR","iaFJR","rFZIZ","reverse","isEnd","passDoorDis","__GPS__","kXeSt","pointerdown","aQtZr","easing","findIndex","743590nbAAIi","RUImp","parse","compassOffg","pointAtPath","caLOe","BTIWq","onceSetCompassOffset","init","getLength","addLocationPoint","stopRoam","rssiOffset","2AoVIrN","onSocket","floorData","split","cross","error","Vgwqs","splice","pXCob","nextDistance","BzAHZ","TQLHr","FXhvr","addCustomNaviLine","krLpv","findRoutePos","70DPECVc","passWaypoints","runRoamOnce","deviceOrientationCB","xKmvV","left","cShQn","ZYDfc","rvrlL","qnIUV","aHMoE","WCytG","zHMgk","onclose","pitch","oVKsR","deQvy","slice","phpoJ","AroCz","setZoom","close","MmrMW","startMark","crossType","prevRoutePoint","_preTestGps","lockFloor","pause","sKTXT","beaconData","CKjER","api/MapExtra/","vRvIw","find","kaUyw","children","closeWalk","eaLjk","hEpbn","max","removeStart","endMark","compassData","manyFloorMode","NfIAv","baseSpeed","ETOAM","clwwV","babMz","lng","rssi","lZTdN","jmuEb","Ipapp","disconnect","DBMfg","qqyqJ","load","zCRyl","route","arriveEnd","object3d","nextIdx","jenJi","event","VTOGj","pYmOb","fImoK","lDGlA","gpsAccuracy","isNavi","PUqgr","closeNaviDemoVoice","EjXyO","JJljm","mjKTV","WFGCa","build","setPoints","QhNXM","gcjLon","AkdlO","qktyR","wSbSO","maxInMapDistance","lGsCB","closeAR","type","lastBeaconBestRssi","closeSimulateVoice","tLKmy","-度:","setOneFloorMode","OqBjZ","auYlG","click","setNaviControlStatus","qqJnT","location2Path","OaDlj","pbMdv","jpfPT","导航开始","start","RLQVQ","LSGjk","replace","KVZDT","JIJtC","setLocationMyPosition","定位设置偏移: ","curentFloor","nTaZg","removeStartEnd","lngLatToCoordWorld","amap","updateNaviLinePass","FZLdv","3|2|0|4|1","options","QlxUz","isPlane","position","status","scene","simulateSpeed","nextNaviTip","filter","animate","isMyPosition","IURuu","_lastUpdateLinePass","_isRotate","ZBhus","ecUWm","eoxRQ","UwUqx","pNgwj","testGps","bDppS","当前不在该楼层或规划路线后移动","SCWLh","XwgvW","jsELM","523056gknLRD","rgb(44,62,89)","ymnWX","resumeRoam","lnglat","time","Ldtjb","🚀 ~ runRoamOnce: stopped in loop","ACIEb","request","UIxsW","copy","WtiMP","36749RSwPcr","addNaviLine","setStartEnd","myPositionPath","object","red","routeGroup","setRoamSpeed","VlqMG","beaconMaxRssi2","setPitch","UcDqr","PfKIg","enterType","routeDistance","locationFloor","GsQSs","jBgrW","sjDCG","off","keys","unshift","pvzzK","nextNaviDistance","zKILW","clone","gpsTest","BQWXM","KdkiQ","YzOiu","roamZoom",'{"protocol":"json","version":1}',"center","nRpzs","showIndoor","azkTI","MRoAd","iqZWp","mapId","HVjcW","polygonData","resume","roamPath is empty","shift","XPEML","arUpdate","4|1|0|2|3","isClosedRotat","rePlanRoute","$gps","warn","length","setWaypoints","XECTt","roamLoop","testPoint","waypointsPolygonData","ezcYL","isdoy","camera","__step__","parent","NGVbq","-范围:","KhSUX","setStatus","removeLink","setStart","3|1|2|4|0","ZDLEz","end","giYef","XXZVJ","jvnzm","subAngle","FSYiB","setZ","yDir","ZrSIo","yuAhx","Rkdru","LkDSV","nextWaypointDistance","bGRTJ","updatePathAngle","0|4|2|1|3","setOffet","arriveDistance","UGIPW","_currentRoamResolve","assign","HogJm","rxeNp","_lastLocatePoint","removeEnd","UsRfv","values","renderOrder","zoom","crossFloorDis","getMapDataById","getTangent","points","未找到路线,请联系地图制作方!","LhUmY","_passWaypointsCopy","url","startEnd","uAUdl","easeOutTime","setStartMyPosition","point2Path","FuQUS","fromCharCode","VUUCR","JCVkq","到达目的地","CUR_COMPASS","reallyRemainDistance","nextFloor","pathAngle","passLength","delay","RZCil","createLine","stop","router","Linear","gps","HWRrs","getPolygonDataById","angleTo","3|4|0|1|5|2","viewchange","playRange","emit","aStarPath","imKKh","setNaviPass","showPano","locationView","nextRoutePoint","gOMGm","coordsToLngLat","lutej","roamEaseOutTime","positionMarker","gZUdQ","走电梯前往","Osllm","now","ugBNK","roamPath","eLSOA","WhffW","VaxNX","roamEaseInTime","arrow","VxIHH","point","Change","SyptI","pfUte","668948BXIKXZ","vhTJH","UTZlT","ZOVFD","tsRyO","manCar","setRotation","Quadratic","None","zyLSl","PBRBj","KgEcg","showRouteFloor","yJrvZ","step","getFloorById","setCenter","xsOyz","atQxt","stopNavi","pZWXh","pmRCp","ZRdpo","SrAZZ","roamIsPaused","0|7|3|2|4|9|6|5|1|8","initLoction","simulate","NfqCE","includes","wlKaL","initMark","ZVFAH","planRoute","naviView","DHlPc","zejmL","easeInTime","QiFMl","FAMrP","eWeMV","navi","JXCiP","kUwCD","toFixed","add","send","_isFirstRssi","起点或终点为null","sub","woCgN","wegkG","vvgDn","cmslo","BedQY","yFRXS","userData","remainDistance","onmessage","push","Ydrrz","NhTpS","JoYlL","IwKFU","XgdbS","Rmerc","roamRotTween","dooYJ","TizfX","GXYqm","jnpqJ","lngLatToCoord","TtJkm","rcnEO","MLgZE","bUroL","vJNgh","speed","radius","passFloorDis","cnedw","cTeMN","isPass","indexOf","getRotation","onLocationNavi","SetId","lBGCZ","lastLocationResult","percent","isRePlanRoute","oxRGi","cKtUj","DKDdR","beaconCache","nextDis","minor","minArr","ids","pathInfo","mBBiz","stringify","firstDistance","startRoam","YIExx","eQgbn","xywGd","compassOffset","tJJKR","米\n大约时长: ","oLocationView","Lkkoa","getNaviRotation","FKZbm","onCompass","aqcvC","roamTween","出入口","定位距离:","LJQdq","GZthM","distanceTo","roamPitch","dhJqL","myPosition","🚀 ~ startRoam: error occurred","aoa","Mark","jTlnD","isonceSetCompassOffset","gcjLat","vDYCh","beaconCacheList","setLocation","kGYJM","bYyCA","JLZVG","OfDjW","nextPoint","FBtGt","剩余距离: ","_stopRoamLoop","BXmDd","remark","142896PLJgZA","pZcHm","reduce","isSimulateRotate","PnGaX","rsoBv","0|6|3|1|4|2|5","roamSpeed","dispose","isCrossFloor","VotGs","mxUGt","KUyAL","arrowTW","fCIEK","880629qENiCY","crossDoorDis","onUpdate","mNDsr","tmnxa","set","oNaviView","LqvsA","name","UnVjC","OVrTy","nvbQR","rlfwP","FJivc","KyOZJ","interact","NQOFp","PQKlx","sizeRatio","ccdaE","createWaypointMark","getPoint","ZtAwD","isArray","compassInitAngle","cAnxI","2|0|3|4|1","lfRBq","startNavi","MaBxe","jItkL","resumeSimulate","WfSIz","iLocationView","waypointMarkList","major","UFycz","41390iRnCch","ENfBR","hiIpc","setSimulateSpeed","href","nRlGL","tip","originGps","$testMsg","distance","waypoint","Fedmv","blockPath","WNRTZ","locResCache","testMsg","setMoveSpeed","compassOff","xCEkh","val","emitPano","khaKc","🚀 ~ runRoamOnce: finished, result:","xpWNH","FqAEi","IvFmV","DumdB","location","onerror","floor","map","holCh","mapData","floorId","LIIJh","我的位置","nextPanoId","roamBaseSpeed","rTRTT","BMugY","mIADC","pauseRoam","setRoamEasingDuration","api","AhfSd","enabled","oUagc","removeFromParent","height","random","removeWaypoint","compass","data","removeNaviLine","material","onxZL","_roamViewInitialized","setEnd","wss://ws.3dwxb.com/ws","locationType","onopen","yRshj","testSprite","getCenter","iIckX","psemw","removeNaviArrow","lnglatDeviation","outerFloor","ttBeY","hxvju","到达目的地,导航结束","routePassGroup","zQNUK","127.0.0.1","removeAllWaypoint","oAfJG","IzVTZ","🚀 ~ runRoamOnce: stopped after segment","bzogN","arguments","setCrossDis","response","tjaYY","iNaviView","getRoamConfig","gpsSpeedMax","stopSimulate","phXCp","NakXw","ZPkoB","找不到id:","roamMarker","rotation","updateNaviTime","AvGjK","naviInfo","jeMiQ","AXYbx","rePlaneTimer","AExAC","naviSetSpeed","addLink","deviceOrientation","UIaUv","clickTestLocation","UwZVJ","audioPlayer","走扶梯前往"];return(M$h=function(){return t})()}!function(t,e){const n=m$h,i=t();for(;;)try{if(163387===-parseInt(n(774))/1*(parseInt(n(600))/2)+parseInt(n(347))/3+-parseInt(n(937))/4+parseInt(n(587))/5+parseInt(n(761))/6+-parseInt(n(616))/7*(parseInt(n(332))/8)+-parseInt(n(512))/9*(-parseInt(n(384))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$h);const{DEG2RAD:H$4,RAD2DEG:o$3}=MathUtils;let F$3,k$2=15e3;const userTouch=()=>{const t=m$h,e={FKZbm:function(t,e){return t(e)},jvnzm:function(t,e,n){return t(e,n)}};e[t(301)](clearTimeout,F$3),F$3=e[t(847)](setTimeout,()=>{F$3=void 0},k$2)};function P$2(t){const e=m$h,n={OVrTy:e(583)};window[e(567)](n[e(357)],userTouch)}class Navigation extends EventDispatcher{constructor(t){var e;const n=R,i={PnGaX:n(338),OqBjZ:function(t,e){return t===e},iqZWp:n(533),SyptI:n(621),AExAC:n(762),pYmOb:function(t,e){return t(e)},jeMiQ:n(419),yeaMK:n(800),wegkG:n(755)};super(),__publicField(this,_Vd),__publicField(this,_Ud,reactiveEvent(new(_Rc=R(676),_Qc=R(780),_Pc=R(456),_Oc=R(787),_Nc=R(640),_Mc=R(844),_Lc=R(720),_Kc=R(396),_Jc=R(687),_Ic=R(574),_Hc=R(341),_Gc=R(565),_Fc=R(742),_Ec=R(265),_Dc=R(435),_Cc=R(743),_Bc=R(915),_Ac=R(641),_zc=R(394),_yc=R(797),_xc=R(856),_wc=R(245),_vc=R(892),_uc=R(788),_tc=R(789),class{constructor(){__publicField(this,_Rc,[]),__publicField(this,_Qc,{}),__publicField(this,_Pc,{}),__publicField(this,_Oc,EnterType[R(507)]),__publicField(this,_Nc,CrossType[R(193)]),__publicField(this,_Mc,null),__publicField(this,_Lc,null),__publicField(this,_Kc,[]),__publicField(this,_Jc,!1),__publicField(this,_Ic,!1),__publicField(this,_Hc,!1),__publicField(this,_Gc,!1),__publicField(this,_Fc,2.5),__publicField(this,_Ec,0),__publicField(this,_Dc,0),__publicField(this,_Cc,""),__publicField(this,_Bc,null),__publicField(this,_Ac,null),__publicField(this,_zc,null),__publicField(this,_yc,0),__publicField(this,_xc,0),__publicField(this,_wc,0),__publicField(this,_vc,0),__publicField(this,_uc,0),__publicField(this,_tc,null)}}),(t,e)=>{const n=R,i={sjDCG:function(t,e){return t+e},ZKLag:n(934)};this[n(909)](i[n(792)](t,i[n(523)]),e)})),__publicField(this,_Td,{}),__publicField(this,_Sd,{}),__publicField(this,_Rd,new Group$1),__publicField(this,_Qd),__publicField(this,_Pd,new Sprite(new SpriteMaterial({map:texureLoader[R(674)](z$3,()=>{const t=R,e={ZBhus:function(t,e,n,i){return t(e,n,i)},odCwx:function(t,e,n){return t(e,n)}};e[t(750)](setSize,this[t(931)],.5,this[t(414)][t(365)]),e[t(573)](setTimeout,()=>{const n=t;e[n(750)](setSize,this[n(931)],.5,this[n(414)][n(365)])},1e3)}),transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}))),__publicField(this,_Od,new Sprite(new SpriteMaterial({map:texureLoader[R(674)](B$3,()=>{const t=R,e={TQLHr:function(t,e,n,i){return t(e,n,i)},HfpQB:function(t,e,n,i){return t(e,n,i)},AkdlO:function(t,e,n){return t(e,n)}};e[t(499)](setSize,this[t(920)],.2,this[t(414)][t(365)]),e[t(698)](setTimeout,()=>{const n=t;e[n(611)](setSize,this[n(920)],.2,this[n(414)][n(365)])},1e3)}),transparent:!0,depthTest:!1,sizeAttenuation:!1,depthWrite:!1}))),__publicField(this,_Nd,{id:"-1",x:0,y:0,floorId:"",ids:{},distance:0}),__publicField(this,_Md),__publicField(this,_Ld),__publicField(this,_Kd),__publicField(this,_Jd),__publicField(this,_Id),__publicField(this,_Hd,{}),__publicField(this,_Gd,new MultiLanguageAudioManager({defaultLanguage:"zh",volume:1,muted:!1})),__publicField(this,_Fd),__publicField(this,_Ed,[]),__publicField(this,_Dd,{}),__publicField(this,_Cd),__publicField(this,_Bd,[]),__publicField(this,_Ad,!1),__publicField(this,_zd),__publicField(this,_yd),__publicField(this,_xd,new class{constructor(){__publicField(this,_cd),__publicField(this,_bd),__publicField(this,_ad),__publicField(this,_$c),__publicField(this,__c),__publicField(this,_Zc,99),__publicField(this,_Yc,99),__publicField(this,_Xc,99),__publicField(this,_Wc,99),__publicField(this,_Vc,""),__publicField(this,_Uc),__publicField(this,_Tc),__publicField(this,_Sc,new Vector2(0,1))}get[(_cd=R(414),_bd=R(570),_ad=R(895),_$c=R(825),__c=R(894),_Zc=R(873),_Yc=R(267),_Xc=R(348),_Wc=R(580),_Vc=R(643),_Uc=R(893),_Tc=R(676),R(341))](){const t=R,e={AYusw:function(t,e){return t<e},PqDKo:function(t,e){return t<e}};return e[t(526)](this[t(873)],10)||e[t(527)](this[t(267)],10)}[R(595)](t,e){const n=R,i={qktyR:function(t,e){return t/e}};this[n(414)]=e,this[n(676)]=t,this[n(570)]=new Path(t[n(414)](t=>(new Vector2)[n(772)](t[n(933)]))),this[n(825)]=this[n(570)][n(596)](),this[n(895)]=0,this[n(858)]();let r=0;t[n(414)]((t,e)=>{const s=n;t[s(277)]=e?i[s(699)](r,this[s(825)]):0,r+=t[s(609)]})}[(_Sc=R(851),R(858))](){const t=R,e={XPEML:function(t,e){return t/e},phXCp:function(t,e){return t*e},IzVTZ:function(t,e){return t*e},lukTO:function(t,e){return t>e},OaDlj:function(t,e){return t>e},VUUCR:function(t,e){return t+e}};let n=this[t(570)][t(875)](e[t(818)](this[t(895)],this[t(825)])),i=n[t(799)]()[t(604)](this[t(851)]),r=e[t(472)](e[t(461)](e[t(554)](i,0)?1:-1,n[t(905)](this[t(851)])),o$3);this[t(894)]=e[t(716)](r,0)?r:e[t(888)](360,r)}[R(912)](t,e){var n,i,r;const s=R,a={tsRyO:function(t,e){return t-e},TtJkm:function(t,e){return t>e},ZOVFD:function(t,e){return t+e},lZTdN:function(t,e){return t<e},jOZsa:function(t,e){return t===e},zyLSl:s(314),AroCz:function(t,e){return t>=e},ZtAwD:function(t,e){return t*e},jnpqJ:function(t,e){return t*e},GsQSs:function(t,e){return t*e},RJrIp:function(t,e){return t===e},JCVkq:function(t,e,n,i){return t(e,n,i)},psemw:function(t,e){return t-e},LhUmY:function(t,e){return t/e},Fedmv:function(t,e){return t!=e},giYef:function(t,e){return t<e},LUrSp:function(t,e){return t-e},NzImf:function(t,e,n){return t(e,n)}};let o=a[s(192)](this[s(894)],this[s(414)][s(229)][s(411)][s(891)]);o=a[s(260)](o,0)?o:a[s(191)](360,o),this[s(848)]=o;let c=a[s(260)](o,120)&&a[s(668)](o,240)?0:1;a[s(496)](this[s(414)][s(229)][s(411)][s(443)],a[s(197)])&&(c=1),((null==(i=null==(n=this[s(414)][s(229)][s(740)][s(915)])?void 0:n[s(390)])?void 0:i[s(217)]("后方"))||a[s(635)](this[s(414)][s(229)][s(411)][s(571)],.9))&&(c=1),e&&(c=e);let l=a[s(369)](a[s(258)](a[s(790)](.9,c),t),this[s(414)][s(229)][s(411)][s(571)]);a[s(535)](this[s(643)],this[s(414)][s(229)][s(276)][s(413)])&&(this[s(643)]="");let u=a[s(191)](this[s(895)],l);u=a[s(889)](clamp,u,.01,a[s(449)](this[s(825)],.01));let h=a[s(878)](u,this[s(825)]),d=this[s(570)][s(368)](h),p=this[s(676)][s(586)](t=>t[s(277)]>h);if(this[s(465)](p),this[s(341)]&&a[s(395)](this[s(676)][p][s(413)].id,this[s(414)][s(229)][s(276)][s(413)])&&a[s(845)](this[s(414)][s(229)][s(411)][s(571)],1.1))return void(this[s(643)]=this[s(676)][p][s(413)].id);let f=this[s(676)][a[s(560)](p,1)];if(null==(r=f[s(390)])?void 0:r[s(217)]("梯")){let t=this[s(676)][p][s(933)],e=a[s(568)](getLineLength,f[s(933)],t);d.x=t.x,d.y=t.y,u+=e,p++}return this[s(414)][s(229)][s(740)][s(245)]=a[s(449)](this[s(825)],u),this[s(895)]=u,this[s(858)](),{point:new Vector3(d.x,d.y,0),nextIdx:p,nextPoint:this[s(676)][p]}}[R(465)](t){var e,n,i,r;const s=R,a={onxZL:function(t,e){return t<e},kGYJM:function(t,e,n){return t(e,n)},mBBiz:s(305),VxIHH:function(t,e){return t-e},iIckX:function(t,e){return t>=e}};let o,c,l,u;this[s(873)]=0,this[s(348)]=0;for(let h=t;a[s(439)](h,this[s(676)][s(825)]);h++){const t=this[s(676)][h];!o&&((null==(e=t[s(390)])?void 0:e[s(217)]("梯"))?(this[s(873)]+=a[s(322)](getLineLength,this[s(414)][s(229)][s(931)][s(739)],t[s(933)]),o=!0):this[s(873)]+=t[s(609)]),!c&&((null==(n=t[s(390)])?void 0:n[s(217)](a[s(288)]))?(this[s(348)]+=a[s(322)](getLineLength,this[s(414)][s(229)][s(931)][s(739)],t[s(933)]),c=!0):this[s(348)]+=t[s(609)])}!o&&(this[s(873)]=99),!c&&(this[s(348)]=99),this[s(267)]=0,this[s(580)]=0;for(let h=a[s(932)](t,1);a[s(448)](h,0);h--){const t=this[s(676)][h];!l&&((null==(i=t[s(390)])?void 0:i[s(217)]("梯"))?l=!0:this[s(267)]+=t[s(609)]),!u&&((null==(r=t[s(390)])?void 0:r[s(217)](a[s(288)]))?u=!0:this[s(580)]+=t[s(609)])}!l&&(this[s(267)]=99),!u&&(this[s(580)]=99)}}),__publicField(this,_wd,0),__publicField(this,_vd),__publicField(this,_ud),__publicField(this,_td),__publicField(this,_sd),__publicField(this,_rd,[]),__publicField(this,_qd,0),__publicField(this,_pd,95),__publicField(this,_od,0),__publicField(this,_nd,null),__publicField(this,_md,!1),__publicField(this,_ld,!1),__publicField(this,_kd,!1),__publicField(this,_jd,1),__publicField(this,_id2,800),__publicField(this,_hd,1e3),__publicField(this,_gd,null),__publicField(this,_fd,null),__publicField(this,_ed,!1),__publicField(this,_dd,null),this[n(414)]=t,i[n(683)](P$2,t),this[n(920)][n(871)]=renderOrderConfig[n(920)],this[n(920)][n(739)].z=this[n(920)][n(739)].x=1e8;let r,s=this[n(414)][n(736)];(debug||s[n(755)])&&(window[n(392)]=(...t)=>this[n(414)][n(399)](...t)),this[n(900)]=new v$6(t),t[n(678)][n(233)](this[n(678)]),this[n(678)][n(233)](this[n(920)]),this[n(931)][n(871)]=renderOrderConfig[n(931)],this[n(312)]={name:i[n(481)],id:"0",isMyPosition:!0,path:[]},this[n(478)]=t=>{var e;const s=n,a=i[s(336)][s(603)]("|");let o=0;for(;;){switch(a[o++]){case"0":if(i[s(710)](t,r))return;continue;case"1":this[s(498)]=new TextSprite({text:t,vmap:this[s(414)],fillStyle:i[s(811)],align:i[s(935)],bgColor:i[s(484)],lineGap:.25,isCollision:!1,fontSize:12});continue;case"2":this[s(498)][s(806)][s(352)](-.1,-.5);continue;case"3":null==(e=this[s(498)])||e[s(340)]();continue;case"4":this[s(678)][s(233)](this[s(498)]);continue;case"5":this[s(498)][s(871)]=99999;continue;case"6":r=t;continue}break}},this[n(219)](),(!(null==(e=this[n(416)][n(736)])?void 0:e[n(653)])||debug)&&(this[n(214)](),this[n(302)](),this[n(601)]()),(location[n(388)][n(217)](i[n(553)])||location[n(388)][n(217)](i[n(239)])||s[n(755)])&&this[n(489)]()}get[(_Vd=R(414),_Ud=R(740),_Td=R(617),_Sd=R(879),_Rd=R(678),_Qd=R(615),_Pd=R(931),_Od=R(920),_Nd=R(777),_Md=R(557),_Ld=R(312),_Kd=R(411),_Jd=R(900),R(416))](){const t=R;return this[t(414)][t(416)]}get[(_Id=R(478),_Hd=R(480),_Gd=R(491),R(914))](){const t=R;return this[t(416)][t(736)][t(914)]}get[R(298)](){var t;const e=R;return null==(t=this[e(416)][e(736)])?void 0:t[e(298)]}get[R(380)](){var t;const e=R;return null==(t=this[e(416)][e(736)])?void 0:t[e(380)]}get[R(222)](){var t,e,n,i,r,s,a,o,c,l,u,h,d,p,f,m,g,A,v,y,S,b;const x=R,M={rTRTT:function(t,e){return t===e}};let T=!1;return T=(null==(t=this[x(740)])?void 0:t[x(687)])||(null==(e=this[x(740)])?void 0:e[x(574)])?M[x(422)](null==(r=null==(i=null==(n=this[x(740)])?void 0:n[x(915)])?void 0:i[x(413)])?void 0:r.id,"1")||M[x(422)](null==(c=null==(o=null==(a=null==(s=this[x(740)])?void 0:s[x(915)])?void 0:a[x(413)])?void 0:o[x(835)])?void 0:c.id,"1"):M[x(422)](null==(d=null==(h=null==(u=null==(l=this[x(740)])?void 0:l[x(676)])?void 0:u[0])?void 0:h[x(413)])?void 0:d.id,"1")||M[x(422)](null==(A=null==(g=null==(m=null==(f=null==(p=this[x(740)])?void 0:p[x(676)])?void 0:f[0])?void 0:m[x(413)])?void 0:g[x(835)])?void 0:A.id,"1"),T?(null==(v=this[x(416)][x(736)])?void 0:v[x(353)])||(null==(y=this[x(416)][x(736)])?void 0:y[x(222)])||17:(null==(S=this[x(416)][x(736)])?void 0:S[x(468)])||(null==(b=this[x(416)][x(736)])?void 0:b[x(222)])||20}[(_Fd=R(498),R(841))](t){const e=R,n={DHlPc:e(720)};this[e(776)](t,n[e(223)])}[R(441)](t){const e=R,n={azkTI:e(844)};this[e(776)](t,n[e(809)])}[R(776)](t,e){const n=R;if(!t)return;if(this[n(740)][n(687)]||this[n(740)][n(574)])return;this[n(450)](),this[n(437)]();let i,r=this[n(414)][n(904)](t);if(r[n(835)][n(694)])i=this[n(414)][n(452)];else{i=this[n(414)][n(808)](r[n(835)][n(835)].id,r[n(835)].id)[n(728)]}let s=this[e+n(315)];this[n(740)][e]=r,i[n(678)][n(233)](s),s[n(739)][n(772)](r[n(806)])[n(850)](r[n(432)]||2)}[(_Ed=R(830),R(826))](t){const e=R,n={iaFJR:function(t,e){return t+e},jBgrW:e(475),xywGd:function(t,e){return t(e)}};if(!t)return;if(this[e(740)][e(687)]||this[e(740)][e(574)])return;this[e(450)](),this[e(437)]();const i=t=>{const i=e;let r=this[i(414)][i(904)](t);if(!r)return console[i(502)](n[i(576)](n[i(791)],t));let s=this[i(414)][i(203)](r[i(835)].id),a=this[i(367)](r);this[i(830)][i(247)](r),s[i(678)][i(233)](a)};Array[e(370)](t)?t[e(414)](i):n[e(294)](i,t)}async[R(650)](){const t=R,e={jTlnD:function(t,e){return t!==e},bUroL:function(t,e){return t-e},MLgZE:t(236),pMXoj:t(877)};if(this[t(437)](),this[t(726)](),!this[t(740)][t(720)]||!this[t(740)][t(844)])throw new Error(e[t(262)]);let n,i=this[t(830)],r={};this[t(830)][t(414)](t=>{r[t.id]=r[t.id]||0,r[t.id]++});let s=!1;for(const c in r)if(e[t(316)](r[c],this[t(879)][c])){s=!0;break}if(s)this[t(617)]=r,this[t(879)]=JSON[t(589)](JSON[t(289)](r));else{let e=JSON[t(589)](JSON[t(289)](this[t(617)]));i=i[t(633)]()[t(578)]()[t(744)](t=>e[t.id]-- >0),i[t(578)]()}if(n=this[t(900)][t(221)]([this[t(740)][t(720)],...i,this[t(740)][t(844)]],this[t(740)][t(787)],this[t(740)][t(640)],this[t(740)][t(396)]),!(null==n?void 0:n[t(825)]))throw new Error(e[t(539)]);this[t(740)][t(676)]=n,this[t(740)][t(788)]=n[t(393)];let a,o=[];this[t(740)][t(676)][t(414)]((n,i)=>{const r=t;e[r(316)](a,n[r(413)].id)?o[r(247)]([n]):o[e[r(263)](o[r(825)],1)][r(247)](n),a=n[r(413)].id}),this[t(740)][t(780)]=o[t(334)]((e,n)=>{const i=t;return e[n[0][i(413)].id]=e[n[0][i(413)].id]||[],e[n[0][i(413)].id][i(247)](n),e},{}),this[t(200)](),this[t(414)][t(775)](),this[t(740)][t(720)][t(746)]&&(this[t(615)]={floorData:this[t(312)][t(835)],x:this[t(777)].x,y:this[t(777)].y})}[R(733)](t=this[R(931)][R(739)]){const e=R,n={UwUqx:function(t,e){return t<e},cAnxI:function(t,e){return t===e},bKMYa:function(t,e){return t-e},zCRyl:function(t,e){return t!==e},PUqgr:function(t,e){return t<e}};if(n[e(688)](n[e(536)](Date[e(924)](),this[e(748)]),500))return;this[e(748)]=Date[e(924)]();let i,r=[];this[e(740)][e(676)][e(414)]((s,a)=>{const o=e;s[o(270)]=n[o(753)](a,this[o(480)][o(679)]);let c=n[o(372)](a,this[o(480)][o(679)]);c&&r[n[o(536)](r[o(825)],1)][o(247)]({...s,point:t}),n[o(675)](i,s[o(413)].id)||c?r[o(247)](c?[{...s,point:t},s]:[s]):r[n[o(536)](r[o(825)],1)][o(247)](s),i=s[o(413)].id}),this[e(740)][e(780)]=r[e(334)]((t,n)=>{const i=e;return t[n[0][i(413)].id]=t[n[0][i(413)].id]||[],t[n[0][i(413)].id][i(247)](n),t},{}),this[e(414)][e(775)]()}[R(321)](t){const e=R,n={NfIAv:e(411),WeKzP:e(314)};let i=this[e(414)][e(259)](t[e(666)]||0,t[e(561)]||0);this[e(411)][e(783)]=150,this[e(411)][e(909)](n[e(661)],{...i,lng:t[e(666)],lat:t[e(561)],floor:t[e(417)],type:n[e(503)]}),this[e(411)][e(443)]=n[e(503)]}[R(200)](){const t=R;let e=[];this[t(740)][t(676)][t(334)]((n,i)=>{var r;const s=t;let a=null==(r=i[s(413)][s(835)])?void 0:r.id;return a&&!n[a]&&(e[s(795)](()=>this[s(414)][s(808)](a,i[s(413)].id)),n[a]=1),n},{}),e[t(414)](t=>t())}[R(601)](){const t=R,e={xpWNH:t(274),OfDjW:function(t,e){return t(e)},xCEkh:function(t){return t()},uppcL:t(637),LqvsA:function(t,e,n){return t(e,n)},zHMgk:t(581),aQtZr:t(562),pZWXh:t(442),TizfX:function(t){return t()}};let{socketId:n}=e[t(402)](getURLQuery);if(!n)return;let i,r=String[t(887)](30);function s(n){const i=t;return""+JSON[i(289)]({type:1,target:e[i(407)],arguments:[n]})+r}const a=()=>{const o=t,c={NGVbq:function(t,n){return e[m$h(325)](t,n)},auYlG:function(t){return e[m$h(402)](t)},eQgbn:e[o(509)],ZYDfc:function(t,n,i){return e[o(354)](t,n,i)},lutej:e[o(628)],qnIUV:e[o(584)],JoYlL:function(t,n){return e[o(325)](t,n)}};this[o(557)]=new WebSocket(e[o(208)]),this[o(557)][o(444)]=()=>{const t=o;this[t(557)][t(234)](t(805)+r),this[t(557)][t(234)](c[t(836)](s,n))},this[o(557)][o(629)]=this[o(557)][o(412)]=()=>{const t=o;c[t(836)](clearTimeout,i),console[t(502)](c[t(293)]),i=c[t(623)](setTimeout,()=>{c[t(711)](a)},1e3)};let l=t=>{const e=o;if(t[e(464)]&&t[e(464)][0]){let{beaconList:n,gps:i}=JSON[e(589)](t[e(464)][0]);n&&n&&this[e(411)][e(524)](n),i&&(this[e(411)][e(823)][e(671)](),this[e(411)][e(909)](c[e(918)],{type:c[e(625)],GPS:!0,originGps:i,lng:i[e(697)],lat:i[e(318)],floor:this[e(416)].id}))}};this[o(557)][o(246)]=t=>{const e=o;t[e(436)][e(603)](r)[e(414)](t=>{const n=e;t&&c[n(250)](l,JSON[n(589)](t))})}};e[t(256)](a)}[(_Dd=R(320),R(282))](t){const e=R,n={UTZlT:function(t,e){return t>e},arJrm:function(t,e){return t-e}};let i=Date[e(924)]();return t[e(414)](t=>{const n=e;t[n(766)]=i,this[n(320)][t[n(382)]+"_"+t[n(284)]]=t}),Object[e(794)](this[e(320)])[e(414)](t=>{const r=e,s=this[r(320)][t];n[r(190)](n[r(551)](i,s[r(766)]),1e3)&&delete this[r(320)][t]}),Object[e(870)](this[e(320)])}[(_Cd=R(276),_Bd=R(398),R(214))](){const t=R,e={tmnxa:function(t,e){return t+e},CrISw:function(t,e){return t+e},bYyCA:function(t,e){return t===e},clwwV:t(902),pmRCp:function(t,e){return t<e},KhSUX:function(t,e){return t===e},FZLdv:t(667),oxRGi:function(t,e){return t>e},bBswK:function(t,e){return t===e},GZthM:t(800),Rkdru:function(t,e){return t<e},pfUte:t(411),rlfwP:function(t,e){return t!==e},rvrlL:function(t,e){return t!==e},rcnEO:t(202),khaKc:function(t,e,n){return t(e,n)},PfKIg:function(t,e){return t===e},PQKlx:function(t,e){return t||e},phpoJ:function(t,e){return t!==e},xKmvV:t(597)};let n=[];this[t(416)][t(646)]&&this[t(416)][t(646)][t(414)](i=>{const r=t;let s=i.id[r(603)]("-");n[r(247)]({floor:i[r(417)],major:s[0],minor:s[1],rssiOffset:i[r(599)],x:e[r(351)](i.x,this[r(414)][r(806)].x),y:e[r(563)](i.y,this[r(414)][r(806)].y)})}),this[t(411)]=new I$3({debug:!0,gps:!isPc,GPS:!isPc,compassDelay:100,minRssi:-78,initAngle:this[t(416)][t(736)][t(371)]||0,floorDelay:2e3,map:this[t(414)]}),this[t(411)][t(595)](n);let i="",r="";this[t(411)].on(e[t(936)],n=>{var s,a,o,c,l,u,h,d;const p=t,[f,m]=(null==(o=null==(a=null==(s=this[p(414)])?void 0:s[p(416)])?void 0:a[p(736)])?void 0:o[p(451)])??[0,0];e[p(323)](n[p(704)],e[p(664)])&&(n[p(666)]+=f,n[p(561)]+=m);let g=this[p(414)][p(259)](n[p(666)],n[p(561)]);n.x=g.x,n.y=g.y,this[p(276)]=n,this[p(276)].z=0,this[p(276)][p(602)]=this[p(414)][p(874)](this[p(276)][p(413)]),!this[p(740)][p(687)]&&!this[p(740)][p(574)]&&this[p(726)](),this[p(485)]&&this[p(485)](),this[p(400)](n);let A=new Vector3(n.x,n.y,0);null==(c=this[p(514)])||c[p(899)](),this[p(740)][p(687)]||e[p(209)](this[p(411)][p(686)],5)||!this[p(235)]?(e[p(838)](n[p(704)],e[p(734)])&&(this[p(235)]=!0),this[p(920)][p(739)][p(772)](this[p(276)])):(e[p(279)](this[p(920)][p(739)][p(309)](this[p(276)]),3)||e[p(537)](n[p(704)],e[p(664)]))&&(this[p(514)]=new Tween(this[p(920)][p(739)]).to((new Vector3)[p(772)](this[p(276)]),300)[p(720)]()),this[p(920)][p(501)]=!this[p(740)][p(687)]||debug||location[p(388)][p(217)](e[p(308)]);let v=this[p(414)][p(259)](this[p(416)][p(806)])[p(309)](A);if(e[p(854)](v,this[p(416)][p(701)])){let t=n[p(413)];e[p(323)](t,"1")?this[p(740)][p(789)]=this[p(416)]:this[p(740)][p(789)]=this[p(414)][p(874)](t),this[p(909)](e[p(936)],{floor:this[p(740)][p(789)],x:n.x,y:n.y,lng:n[p(666)],lat:n[p(561)]});let s=this[p(740)][p(574)]||this[p(740)][p(687)];if((!F$3||e[p(359)](i,n[p(704)]))&&!this[p(414)][p(740)][p(660)]&&e[p(624)](n[p(704)],e[p(261)])&&!s){let t=this[p(414)][p(917)](n),r=this[p(414)][p(732)][p(447)]()[p(309)](t);if((!e[p(405)](isPointInScreen,this[p(414)][p(833)],A)||e[p(279)](r,5))&&e[p(854)](v,this[p(416)][p(701)])){const i=(e[p(838)](null==n?void 0:n[p(413)],"1")?this[p(298)]:this[p(380)])||this[p(914)];this[p(414)][p(732)][p(636)]((null==i?void 0:i[p(872)])||(e[p(786)](null==n?void 0:n[p(413)],"1")?17:20)),(null==i?void 0:i[p(630)])&&this[p(414)][p(732)][p(784)]((null==i?void 0:i[p(630)])||0),this[p(414)][p(732)][p(204)](e[p(364)](t,0))}i=n[p(704)]}!s&&(!F$3||e[p(634)](r,n[p(413)]))&&((null==(l=this[p(740)][p(789)])?void 0:l[p(835)])&&e[p(624)](this[p(740)][p(789)].id,null==(u=this[p(414)][p(740)][p(413)])?void 0:u[p(436)].id)&&!this[p(414)][p(740)][p(660)]&&this[p(414)][p(808)](this[p(740)][p(789)][p(835)].id,this[p(740)][p(789)].id),r=n[p(413)]),this[p(740)][p(687)]&&(null==(h=this[p(740)][p(789)])?void 0:h[p(835)])&&e[p(634)](this[p(740)][p(789)].id,null==(d=this[p(414)][p(740)][p(413)])?void 0:d[p(436)].id)&&this[p(414)][p(808)](this[p(740)][p(789)][p(835)].id,this[p(740)][p(789)].id)}this[p(414)][p(909)](e[p(620)],{floorId:n[p(413)],marker:this[p(920)]})})}async[(_Ad=R(317),R(594))](t,e){const n=R,i={Ldtjb:function(t,e){return t===e},ZwNRB:function(t,e){return t<=e},oAfJG:n(860),NQOFp:function(t,e){return t(e)}};if(this[n(317)])return;this[n(317)]=!0;let r=(new Vector2)[n(772)](t),s=await this[n(414)][n(770)]({url:H$c[n(427)]+n(648)+this[n(414)][n(736)].id}),a=JSON[n(589)](s[n(466)][n(436)]);a&&a[n(295)][n(414)](t=>{const s=n;if(i[s(767)](t[s(417)],e)){let e=(new Vector2)[s(772)](t)[s(309)](r);i[s(510)](e,t[s(266)])&&(console[s(502)](i[s(460)],t[s(403)]),this[s(411)][s(558)]=t[s(403)],debug&&i[s(363)](alert,s(727)+t[s(331)]+s(708)+t[s(403)]+s(837)+t[s(266)]))}})}[R(400)](t){var e;const n=R;(null==(e=t[n(391)])?void 0:e[n(265)])&&(this[n(740)][n(265)]=t[n(391)][n(265)]),this[n(740)][n(265)]=+{FAMrP:function(t,e){return t(e)}}[n(227)](Number,this[n(740)][n(265)])[n(232)](2)}[R(207)](){const t=R,e={JJljm:t(859),YzOiu:t(834)},n=e[t(691)][t(603)]("|");let i=0;for(;;){switch(n[i++]){case"0":k$2=15e3;continue;case"1":this[t(273)]=null;continue;case"2":this[t(273)]&&this[t(411)][t(793)](e[t(803)],this[t(273)]);continue;case"3":this[t(414)].ar[t(703)]();continue;case"4":this[t(740)][t(687)]=!1;continue}break}}[R(713)](t){var e;const n=R;!isPc&&this[n(414)][n(732)][n(839)]({dragEnable:!t,rotateEnable:!(null==(e=this[n(416)][n(736)])?void 0:e[n(821)])&&!t})}[R(819)](){const t=R,e={VlqMG:function(t,e){return t===e},mxUGt:function(t,e){return t===e}};if(this[t(414)].ar[t(429)]){let n=this[t(740)][t(676)][t(633)](this[t(480)][t(679)]||0),i=[...new Set(n[t(414)](e=>e[t(413)].id))];!e[t(782)](i[0],"1")&&!e[t(343)](i[1],"1")&&(n=n[t(744)](e=>e[t(413)].id===this[t(276)][t(413)]||e[t(413)][t(505)]&&"1"==this[t(276)][t(413)]));let r=n[t(414)](e=>e[t(933)]);r[t(795)](this[t(931)][t(739)][t(799)]()),this[t(414)].ar[t(898)](r)}}async[(_zd=R(273),_yd=R(485),R(375))](t={}){var e,n,i,r,s;const a=R,o={KVZDT:a(779),UIaUv:function(t,e){return t===e},lBGCZ:function(t,e){return t+e},UFycz:function(t,e){return t-e},XgdbS:a(314),vRvIw:a(834),vvgDn:function(t,e){return t>e},sHVpA:function(t,e){return t<e},kaUyw:function(t,e,n,i){return t(e,n,i)},UnVjC:function(t,e){return t*e},XECTt:function(t,e){return t!==e},brNkN:function(t,e,n){return t(e,n)},tqVjL:function(t,e){return t-e},jpfPT:function(t,e){return t-e},ETOAM:function(t,e){return t<=e},hOqFI:a(820),bDppS:a(455),jmuEb:a(677),holCh:function(t,e){return t!=e},JIJtC:function(t,e){return t!==e},tjtYD:function(t,e){return t>e},cnedw:a(757),cTeMN:a(531),tJJKR:a(719),vJNgh:function(t,e){return t==e},KyOZJ:function(t,e){return t(e)}};if(k$2=5e3,(!this[a(740)][a(687)]||t[a(278)])&&this[a(740)][a(844)]&&this[a(740)][a(720)])return this[a(615)]&&o[a(415)](this[a(615)][a(602)].id,"1")&&o[a(725)](this[a(312)][a(835)].id,this[a(615)][a(602)].id)||this[a(276)]&&o[a(504)](this[a(920)][a(739)][a(309)]((new Vector3)[a(772)](this[a(740)][a(676)][0][a(933)])[a(850)](0)),8)?(console[a(502)](o[a(268)]),await this[a(650)](),void this[a(375)]()):(this[a(287)][a(595)](this[a(740)][a(676)],this[a(414)]),this[a(740)][a(687)]=!0,this[a(678)][a(233)](this[a(931)]),null==(e=this[a(414)][a(740)][a(694)])||e[a(709)](),this[a(740)][a(676)][0][a(413)][a(835)]&&o[a(725)](this[a(740)][a(676)][0][a(933)][a(417)],null==(n=this[a(414)][a(740)][a(413)])?void 0:n[a(436)].id)&&this[a(414)][a(808)](this[a(740)][a(676)][0][a(413)][a(835)].id,this[a(740)][a(676)][0][a(933)][a(417)]),this[a(740)][a(892)]=this[a(740)][a(245)]=this[a(740)][a(676)][a(393)],this[a(414)].ar[a(429)]&&this[a(414)].ar[a(575)](),t[a(278)]?this[a(491)][a(908)](o[a(269)]):this[a(491)][a(908)](o[a(296)]),this[a(740)][a(915)]=null,this[a(740)][a(641)]=null,this[a(740)][a(394)]=null,this[a(740)][a(856)]=100,this[a(480)]={isFirst:!0,nextId:0,nextDis:0,isEnd:!1,backCount:0,nextIdx:1,nextTipDis:0},this[a(414)][a(732)][a(636)]((null==(i=this[a(222)])?void 0:i[a(872)])||(o[a(264)](null==(r=this[a(276)])?void 0:r[a(413)],"1")?17:20)),this[a(414)][a(732)][a(784)]((null==(s=this[a(222)])?void 0:s[a(630)])||0),this[a(485)]=()=>{const t=a;if(!this[t(740)][t(687)])return;let e=this[t(715)]();if(debug&&this[t(414)][t(829)]([e],o[t(724)],20),o[t(488)](e[t(393)],void 0))return;let n=Object[t(794)](e[t(286)]),i=this[t(740)][t(676)],r=i[t(586)](e=>+e[t(933)].id===+n[0]),s=i[t(586)](e=>+e[t(933)].id===+n[1]),c=e[t(679)]||Math[t(656)](r,s),l=i[c];if(l){let n=new Vector2(e.x,e.y)[t(309)](l[t(933)]),r=i[t(633)](c)[t(334)]((e,n)=>e+n[t(609)],0),s=o[t(275)](r,n),a=o[t(383)](this[t(740)][t(245)],s);if(this[t(740)][t(892)]=s,o[t(488)](this[t(411)][t(443)],o[t(252)]))return this[t(273)]&&this[t(411)][t(793)](o[t(649)],this[t(273)]),this[t(273)]&&this[t(273)](a);o[t(240)](this[t(411)][t(783)],-170)||o[t(508)](this[t(411)][t(686)],15)?this[t(411)][t(571)]=o[t(651)](clamp,+o[t(275)](1,o[t(356)](a,.2))[t(232)](2),o[t(508)](this[t(411)][t(705)],-88)?0:.3,1.2):this[t(411)][t(571)]=.7}},this[a(273)]&&this[a(411)][a(793)](o[a(649)],this[a(273)]),this[a(273)]=async e=>{var n;const i=a;let r=this[i(287)][i(912)](e);if(!r)return;let s=r[i(679)],c=this[i(740)][i(676)][o[i(383)](s,1)],l=this[i(740)][i(676)][s],u=this[i(740)][i(676)][o[i(275)](s,1)];if(this[i(345)]&&this[i(345)][i(899)](),this[i(345)]=new Tween(this[i(931)][i(739)]).to(r[i(933)],300)[i(720)](),this[i(480)][i(679)]=s,this[i(733)](r[i(933)]),this[i(822)](t),this[i(480)][i(559)]=l[i(933)].id,this[i(480)][i(283)]=r[i(933)][i(309)]({...r[i(326)][i(933)],z:0}),o[i(827)](this[i(411)][i(443)],o[i(252)])&&this[i(485)](),this[i(404)](l,u),this[i(819)](),!this[i(416)][i(736)][i(738)]&&!this[i(480)][i(749)]){this[i(480)][i(749)]=!0,o[i(520)](setTimeout,()=>{const t=i;this[t(480)][t(749)]=!1},500);let t=o[i(515)](360,this[i(287)][i(894)]),e=this[i(414)][i(732)][i(272)]();o[i(240)](o[i(383)](t,e),180)?this[i(414)][i(732)][i(194)](o[i(275)](360,e),0):o[i(508)](o[i(718)](t,e),-180)&&this[i(414)][i(732)][i(194)](o[i(275)](-360,e),0),this[i(414)][i(732)][i(194)](t,500)}if(o[i(663)](this[i(740)][i(245)],this[i(414)][i(736)][i(861)]||(o[i(488)](null==(n=this[i(740)][i(915)])?void 0:n[i(413)].id,"1")?10:2))){const t=o[i(550)][i(603)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[i(207)]();continue;case"1":this[i(491)][i(908)](o[i(756)]);continue;case"2":this[i(909)](o[i(669)]);continue;case"3":return;case"4":this[i(480)][i(579)]=!0;continue}break}}this[i(532)](c,l),!F$3&&this[i(414)][i(732)][i(204)](this[i(414)][i(917)](r[i(933)]),500)},o[a(361)](clearTimeout,F$3),F$3=void 0,this[a(273)](0),void this[a(411)].on(o[a(649)],this[a(273)]))}async[(_xd=R(287),_wd=R(483),R(822))](t={}){const e=R,n={QiFMl:function(t,e){return t<e},dooYJ:function(t,e){return t>e},tboGw:function(t,e){return t===e},WhffW:function(t,e,n,i){return t(e,n,i)},ttBeY:function(t,e){return t*e},qqyqJ:function(t,e){return t<e},TUpTr:function(t,e){return t<e},HVjcW:function(t,e){return t(e)},EjXyO:function(t,e){return t+e},VotGs:function(t,e){return t+e},mjKTV:function(t,e){return t+e},mIADC:function(t,e){return t+e},MaBxe:e(306),ENfBR:function(t,e){return t>e},pvzzK:function(t,e){return t<e},SCWLh:function(t,e){return t>=e},AXYbx:function(t,e){return t>e},hiIpc:e(822),YIExx:e(531)};if(n[e(226)](this[e(411)][e(783)],-160)&&n[e(255)](this[e(411)][e(686)],5))return;let i=this[e(931)][e(739)][e(309)](this[e(276)]),r=n[e(497)](this[e(276)][e(413)],this[e(416)].id),s=r?n[e(928)](clamp,n[e(453)](this[e(411)][e(470)],7),25,60):10;if(s=+s[e(232)](0),(this[e(287)][e(873)]&&n[e(673)](this[e(287)][e(873)],20)||this[e(287)][e(267)]&&n[e(226)](this[e(287)][e(267)],20)||this[e(287)][e(348)]&&n[e(517)](this[e(287)][e(348)],20)||this[e(287)][e(580)]&&n[e(673)](this[e(287)][e(580)],30))&&(s=50),n[e(813)](showMessage,n[e(690)](n[e(690)](n[e(342)](n[e(692)](n[e(424)](n[e(376)],s),"-"),i[e(232)](1)),"-"),this[e(483)])),n[e(385)](i,s)&&n[e(796)](i,5e3)){if(this[e(483)]+=1,n[e(758)](this[e(483)],r?10:6))if(this[e(483)]=0,t[e(513)])this[e(491)][e(908)](n[e(292)]);else{this[e(740)][e(720)]=this[e(312)],await this[e(650)]();let t=n[e(482)](this[e(777)][e(393)],10);this[e(375)]({isRePlanRoute:!0,notInLine:t}),this[e(909)](n[e(386)])}}else this[e(483)]-=1,this[e(483)]=Math[e(656)](0,this[e(483)])}[R(302)](){const t=R,e={NfqCE:function(t,e){return t*e},PBRBj:function(t,e){return t-e},RLQVQ:function(t,e){return t-e},WFGCa:function(t,e){return t*e},QVbwt:function(t,e){return t(e)},eLSOA:function(t,e){return t*e},tjaYY:t(435),caLOe:t(907)};let n=0;this[t(411)].on(e[t(467)],i=>{const r=t;let s=e[r(216)](this[r(414)][r(732)][r(272)](),H$4);n=e[r(216)](i,H$4),this[r(920)][r(438)][r(477)]=e[r(198)](e[r(721)](e[r(693)](2,Math.PI),n),s),this[r(740)][r(574)]||(this[r(931)][r(438)][r(477)]=this[r(920)][r(438)][r(477)],this[r(740)][r(435)]=+e[r(564)](Number,i)[r(232)](0))}),this[t(414)][t(732)].on(e[t(592)],()=>{const i=t;if(this[i(740)][i(574)])return;let r=e[i(927)](this[i(414)][i(732)][i(272)](),H$4);this[i(931)][i(438)][i(477)]=e[i(721)](e[i(198)](e[i(927)](2,Math.PI),n),r),this[i(920)][i(438)][i(477)]=this[i(931)][i(438)][i(477)]})}[(_vd=R(745),R(471))](){const t=R;this[t(740)][t(574)]&&(this[t(740)][t(574)]=!1,this[t(740)][t(565)]=!1,this[t(745)]&&this[t(745)][t(899)](),this[t(713)](!1))}[R(437)](){const t=R;this[t(740)][t(676)]=[],this[t(740)][t(780)]={},this[t(414)][t(437)]()}[R(450)](){var t;const e=R;this[e(931)][e(431)](),null==(t=this[e(498)])||t[e(340)]()}[R(730)](){const t=R;this[t(657)](),this[t(868)]()}[R(868)](){const t=R;this[t(740)][t(844)]=null,this[t(658)][t(431)]()}[R(434)](t){var e;const n=R;null==(e=this[n(381)][n(650)](e=>e[n(244)][n(436)].id===t))||e[n(340)]();let i=this[n(830)][n(586)](e=>e.id===t);({tLKmy:function(t,e){return t>e}})[n(707)](i,-1)&&this[n(830)][n(607)](i,1)}[R(459)](){const t=R,e={nvbQR:t(373)}[t(358)][t(603)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(381)][t(825)]=0;continue;case"1":this[t(879)]={};continue;case"2":this[t(381)][t(414)](e=>e[t(340)]());continue;case"3":this[t(830)][t(825)]=0;continue;case"4":this[t(617)]={};continue}break}}[R(657)](){const t=R;this[t(740)][t(720)]=null,this[t(639)][t(431)]()}[R(529)](){const t=R;this[t(740)][t(565)]=!0,this[t(745)]&&this[t(745)][t(644)](),this[t(713)](!1)}[R(378)](){const t=R;this[t(740)][t(565)]=!1,this[t(745)]&&this[t(745)][t(815)](),this[t(713)](!0)}[R(387)](t=this[R(740)][R(742)]){const e=R;this[e(740)][e(742)]=t,this[e(519)]&&this[e(519)]()}async[(_ud=R(519),R(215))](){var t,e,n,i,r,s;const a=R,o={GXYqm:function(t,e){return t(e)},UwZVJ:a(213),FBtGt:function(t,e){return t+e},jsELM:function(t,e){return t-e},jItkL:function(t,e){return t*e},ZPkoB:function(t,e){return t/e},BMugY:a(842),oVKsR:a(455),vhTJH:function(t,e){return t+e},WtiMP:function(t,e){return t!==e},yuAhx:function(t,e){return t!==e},VaxNX:function(t,e){return t!==e},eaLjk:function(t,e){return t==e},LIIJh:function(t,e){return t==e},cmslo:function(t,e){return t*e},XuNkC:function(t,e){return t!==e},zejmL:function(t,e){return t+e},xywgO:a(719),ApwpE:function(t){return t()}};if(this[a(519)]=null,!(null==(t=this[a(740)][a(676)])?void 0:t[a(825)]))return;let c=this[a(740)][a(676)][0];this[a(713)](!0),this[a(745)]&&this[a(745)][a(899)](),this[a(740)][a(742)]=2.5,null==(e=this[a(414)][a(740)][a(694)])||e[a(709)]();let l=0;!(null==(n=this[a(416)][a(736)])?void 0:n[a(689)])&&this[a(491)][a(908)](o[a(525)]),this[a(740)][a(574)]=!0,this[a(740)][a(565)]=!1,this[a(740)][a(844)]&&this[a(740)][a(720)]&&this[a(678)][a(233)](this[a(931)]),this[a(480)]={nextIdx:0,nextId:0,nextDis:c[a(609)],isEnd:!1,nextPanoId:-1,nextTipDis:0};let u=null==(i=this[a(416)][a(736)])?void 0:i[a(335)];this[a(538)](c),this[a(414)][a(732)][a(784)]((null==(r=this[a(222)])?void 0:r[a(630)])||0,!0),this[a(414)][a(732)][a(636)]((null==(s=this[a(222)])?void 0:s[a(872)])||(this[a(740)][a(676)][0][a(413)][a(835)]?20:17));let h=async()=>{var t,e,n;const i=a,r={mNDsr:function(t,e){return o[m$h(257)](t,e)},WCytG:o[i(490)],qqJnT:function(t,e){return o[i(327)](t,e)},ugBNK:function(t,e){return o[i(760)](t,e)},hEpbn:function(t,e){return o[i(377)](t,e)},LkDSV:function(t,e){return o[i(474)](t,e)}};let s=this[i(740)][i(676)][l],c=this[i(740)][i(676)][o[i(327)](l,1)],d=this[i(740)][i(676)][o[i(327)](l,2)],p=0;if(!c){const e=o[i(423)][i(603)]("|");let n=0;for(;;){switch(e[n++]){case"0":return;case"1":console[i(502)](o[i(631)]);continue;case"2":this[i(471)]();continue;case"3":!(null==(t=this[i(416)][i(736)])?void 0:t[i(706)])&&this[i(491)][i(908)](o[i(631)]);continue;case"4":this[i(519)]=null;continue}break}}this[i(931)][i(739)][i(352)](s[i(933)].x,s[i(933)].y,0),this[i(480)][i(559)]=c[i(933)].id,this[i(480)][i(679)]=o[i(189)](l,1),this[i(480)][i(283)]=s[i(609)],c[i(413)][i(835)]&&(o[i(773)](c[i(413)].id,s[i(413)].id)||o[i(853)](null==(e=this[i(414)][i(740)][i(413)])?void 0:e[i(436)],s[i(413)]))&&(p+=500,this[i(414)][i(808)](c[i(413)][i(835)].id,c[i(413)].id));let f=o[i(929)](c[i(933)][i(417)],s[i(933)][i(417)])&&(o[i(654)](c[i(933)][i(417)],"1")||o[i(418)](s[i(933)][i(417)],"1")),m=this[i(414)][i(300)](s[i(933)],f?d[i(933)]:c[i(933)]),g=o[i(241)](m,o$3);u&&!(null==(n=this[i(416)][i(736)])?void 0:n[i(738)])&&this[i(414)][i(732)][i(194)](g,l?500:0);let A=this[i(414)][i(917)](s[i(933)]),v=this[i(414)][i(917)](c[i(933)]),y={x:s[i(933)].x,y:s[i(933)].y,lng:A[i(666)],lat:A[i(561)]},S={x:c[i(933)].x,y:c[i(933)].y,lng:v[i(666)],lat:v[i(561)]};if(c[i(933)][i(880)]&&texureLoader[i(674)](c[i(933)][i(880)]),o[i(853)](c[i(933)][i(417)],s[i(933)][i(417)])&&o[i(549)](c[i(933)][i(417)],"1")&&o[i(773)](s[i(933)][i(417)],"1"))return void o[i(257)](h,l++);let b=this[i(740)][i(676)][i(633)](o[i(224)](l,1))[i(334)]((t,e)=>t+e[i(609)],0);this[i(519)]=(t=0)=>{const e=i,n={pNgwj:r[e(627)],AhfSd:function(t,n){return r[e(350)](t,n)},imKKh:function(t,n){return r[e(714)](t,n)},NhkFg:function(t,n){return r[e(925)](t,n)},nRlGL:function(t,n){return r[e(655)](t,n)}};let a=this[e(480)][e(283)];this[e(745)]&&this[e(745)][e(899)](),this[e(745)]=new Tween(y).to(S,r[e(855)](r[e(655)](a,1e3),this[e(740)][e(742)]))[e(585)](Easing[e(901)][e(196)])[e(896)](t)[e(720)]()[e(349)](()=>{var t,i;const r=e,a=n[r(754)][r(603)]("|");let o=0;for(;;){switch(a[o++]){case"0":this[r(931)][r(739)][r(352)](y.x,y.y,0);continue;case"1":this[r(733)](this[r(931)][r(739)]);continue;case"2":this[r(478)](r(328)+this[r(740)][r(245)][r(232)](0)+r(297)+n[r(428)](I$2,this[r(740)][r(245)]));continue;case"3":this[r(740)][r(245)]=n[r(911)](b,this[r(480)][r(283)]);continue;case"4":null==(t=this[r(498)])||t[r(739)][r(772)](this[r(931)][r(739)]);continue;case"5":this[r(404)](c,d);continue;case"6":this[r(931)][r(438)][r(477)]=n[r(494)](m,n[r(389)](this[r(414)][r(732)][r(272)](),H$4));continue;case"7":this[r(480)][r(283)]=new Vector2(y.x,y.y)[r(309)](c[r(933)]);continue;case"8":this[r(414)][r(732)][r(204)]([y[r(666)],y[r(561)]],0);continue;case"9":!(null==(i=this[r(416)][r(736)])?void 0:i[r(689)])&&this[r(532)](s,c);continue}break}})[e(540)](()=>{r[e(350)](h,l++)})},this[i(519)](p)};o[a(556)](h)}[R(404)](t,e){const n=R,i={RZCil:function(t,e){return t<e},UcDqr:function(t,e){return t!==e},BedQY:n(913),rFZIZ:function(t,e){return t+e},IwKFU:function(t,e){return t/e}};if(e&&t[n(933)][n(880)]&&i[n(897)](this[n(480)][n(283)],8)&&i[n(785)](this[n(480)][n(559)],this[n(480)][n(420)])){this[n(480)][n(420)]=this[n(480)][n(559)];let r=(new Vector2)[n(772)](t[n(933)])[n(237)]((new Vector2)[n(772)](e[n(933)]))[n(555)]();this[n(909)](i[n(242)],{point:t[n(933)],angle:i[n(577)](r,i[n(251)](Math.PI,2))})}}[R(538)](t){var e;const n=R,i={QhNXM:function(t,e){return t+e},ecUWm:function(t,e){return t<e},qepys:function(t,e){return t!=e},rxeNp:n(394),JXCiP:function(t,e){return t*e},hxvju:n(305),CKjER:n(544),FXhvr:n(890),ZrSIo:n(922),ZDLEz:function(t,e){return t+e},kUwCD:n(492),aqcvC:function(t,e){return t+e},vDYCh:n(542),Rmerc:function(t,e){return t+e},eoxRQ:function(t,e){return t==e}};let r=this[n(740)][n(676)][n(271)](t),s=this[n(480)][n(283)],a=s,o=this[n(740)][n(676)][n(633)](i[n(696)](r,1)),c=!1,l=!1;for(let u=0;i[n(751)](u,o[n(825)]);u++){const t=o[u];if(a+=t[n(609)],t[n(394)]&&!l&&(i[n(566)](this[n(740)][n(394)],t[n(394)])&&(this[n(740)][n(394)]&&(this[n(909)](i[n(866)],this[n(740)][n(394)]),this[n(617)][this[n(740)][n(394)].id]--),this[n(740)][n(394)]=t[n(394)]),a-=t[n(609)],this[n(740)][n(856)]=+i[n(230)](a,.9)[n(232)](1),l=!0),!c)if(t[n(390)]&&(t[n(390)][n(217)]("直行")||t[n(390)][n(217)](i[n(454)])))s+=t[n(609)];else if(t[n(390)]||t[n(579)]){const r=i[n(647)][n(603)]("|");let a=0;for(;;){switch(r[a++]){case"0":t[n(579)]?this[n(740)][n(743)]=i[n(612)]:t[n(390)][n(217)]("电梯")?this[n(740)][n(743)]=i[n(696)](i[n(852)],o[i[n(843)](u,1)][n(413)][n(355)]):t[n(390)][n(217)]("扶梯")?this[n(740)][n(743)]=i[n(696)](i[n(231)],o[i[n(696)](u,1)][n(413)][n(355)]):t[n(390)][n(217)]("楼梯")?this[n(740)][n(743)]=i[n(303)](i[n(319)],o[i[n(253)](u,1)][n(413)][n(355)]):this[n(740)][n(743)]=t[n(390)][n(723)]("即将","");continue;case"1":this[n(740)][n(915)]=t;continue;case"2":this[n(740)][n(797)]=+i[n(230)](s,.9)[n(232)](0);continue;case"3":c=!0;continue;case"4":this[n(740)][n(641)]=this[n(740)][n(915)];continue;case"5":!F$3&&this[n(414)][n(732)][n(636)]((null==(e=this[n(222)])?void 0:e[n(872)])||(i[n(752)](t[n(413)].id,"1")?17:20));continue}break}}}!l&&(this[n(740)][n(394)]=null)}[R(532)](t,e){var n,i,r,s;const a=R,o={wSbSO:function(t,e){return t>=e},NVwAZ:function(t,e){return t<e},SrAZZ:function(t,e){return t*e},VTOGj:function(t,e){return t+e},Vgwqs:function(t,e){return t>e},KgEcg:function(t,e){return t+e},XwgvW:function(t,e){return t+e},DKDdR:function(t,e){return t+e},QlxUz:function(t,e){return t+e}};this[a(538)](t),e&&!o[a(700)](this[a(740)][a(742)],3)&&(o[a(541)](this[a(740)][a(797)],Math[a(656)](o[a(211)](this[a(740)][a(265)],6),6))&&!this[a(480)][null==(n=this[a(740)][a(915)])?void 0:n[a(933)].id]&&this[a(740)][a(743)]&&(this[a(480)][null==(i=this[a(740)][a(915)])?void 0:i[a(933)].id]=1,this[a(491)][a(908)](o[a(682)](this[a(740)][a(743)][a(217)]("梯")?"请":"即将",this[a(740)][a(743)]))),!this[a(480)][o[a(682)](null==(r=this[a(740)][a(915)])?void 0:r[a(933)].id,"直行")]&&o[a(606)](this[a(740)][a(797)],10)&&(this[a(480)][o[a(199)](null==(s=this[a(740)][a(915)])?void 0:s[a(933)].id,"直行")]=1,this[a(491)][a(908)](o[a(759)](o[a(281)](o[a(737)]("直行",this[a(740)][a(797)]),"米后"),this[a(740)][a(743)]))))}[R(885)](t,e,n,i=3,r){const s=R,a={UIxsW:function(t,e){return t%e},LJHIW:function(t,e){return t+e},eWeMV:function(t,e){return t+e},dhJqL:function(t,e,n){return t(e,n)},cShQn:function(t,e){return t+e},bzogN:function(t,e){return t+e},IvFmV:function(t,e,n){return t(e,n)},HogJm:function(t,e){return t<e},Osllm:function(t,e){return t(e)},Lkkoa:function(t,e){return t==e},UXaTT:function(t,e){return t===e},ZVFAH:function(t,e){return t>e}};r=r||(a[s(299)](e,"1")?20:5);const o=this[s(900)][s(591)]({point:(new Vector3)[s(772)](n),floor:this[s(414)][s(874)](e)});if(a[s(530)](o[s(393)],void 0)||a[s(220)](o[s(393)],500))return;if(t[s(286)]){let e=Object[s(794)](t[s(286)]);e[s(825)]&&e[s(414)](e=>{const n=s;this[n(900)][n(910)][n(840)](t.id,e),this[n(900)][n(910)][n(840)](e,t.id)})}a[s(865)](o[s(393)],1.5)?(t.x=o.x,t.y=o.y):(t.x=n.x,t.y=n.y),t[s(534)]=o,t[s(286)]=o[s(286)],t[s(417)]=e;const c=e=>{const n=s;a[n(865)](e[n(290)],r)&&(e[n(876)][n(414)]((i,r)=>{const s=n;let o=i[s(286)][e[s(876)][a[s(771)](a[s(572)](r,1),e[s(876)][s(825)])].id];o&&this[s(900)][s(910)][s(486)](a[s(228)](i.id,""),t.id,{distance:a[s(311)](getLineLength,t,i),from:i,to:t,min:e,type:o});let c=e[s(876)][a[s(771)](a[s(622)](r,1),e[s(876)][s(825)])][s(286)][i.id];c&&this[s(900)][s(910)][s(486)](t.id,a[s(463)](i.id,""),{distance:a[s(409)](getLineLength,t,i),from:t,to:i,min:e,type:c})}),Object[n(864)](t[n(286)],e[n(286)]))};return o[s(285)][s(633)](0,i)[s(414)](t=>{a[s(923)](c,t)}),debug&&this[s(414)][s(446)](o[s(285)][s(744)](t=>Object[s(794)](o[s(286)])[s(217)](Object[s(794)](t[s(286)])[0])&&Object[s(794)](o[s(286)])[s(217)](Object[s(794)](t[s(286)])[1]))[s(414)](t=>{const e=s;return{x:t.x,y:t.y,text:t[e(290)][e(232)](1)}})),t}[R(726)](){const t=R,e={ccdaE:t(735),ACIEb:function(t,e){return t==e}},n=e[t(366)][t(603)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(312)][t(835)]=this[t(276)][t(602)];continue;case"1":this[t(312)][t(570)][t(825)]&&!this[t(740)][t(720)]&&this[t(884)]();continue;case"2":this[t(885)](this[t(777)],this[t(276)][t(602)].id,this[t(276)],2,e[t(769)](this[t(276)][t(413)],"1")?10:2);continue;case"3":if(!this[t(276)])return;continue;case"4":this[t(312)][t(570)]=[this[t(777)].id];continue}break}}[R(715)](){var t;const e=R,n={yFRXS:function(t,e){return t>e},yJrvZ:function(t,e){return t===e},MRoAd:function(t,e){return t-e},zQNUK:function(t,e){return t+e},NTBaz:function(t,e){return t===e},lfRBq:function(t,e){return t-e},gOMGm:function(t,e){return t===e},cKtUj:function(t,e){return t-e},HWRrs:function(t,e){return t!==e},FJivc:function(t,e){return t<e},ezcYL:function(t,e){return t+e},RUImp:function(t,e){return t+e}};let i,r=this[e(276)][e(602)],s=[...new Set(this[e(740)][e(676)][e(414)](t=>t[e(413)].id))],a=s[e(271)](r.id);n[e(243)](a,-1)&&(i=n[e(201)](r.id,this[e(416)].id)?[s[n[e(810)](a,1)],s[a],s[n[e(457)](a,1)]][e(744)](t=>t):n[e(495)](s[n[e(374)](a,1)],this[e(416)].id)||n[e(495)](s[n[e(457)](a,1)],this[e(416)].id)?[this[e(416)].id,r.id]:[r.id]);let o=n[e(916)](r.id,this[e(416)].id),c=Math[e(656)](n[e(280)](this[e(480)][e(679)],3),0);if(n[e(916)](null==i?void 0:i[e(825)],1))for(;n[e(903)](null==(t=this[e(740)][e(676)][c])?void 0:t[e(413)].id,i[0])&&n[e(360)](c,1e4);)c++;let l=this[e(740)][e(676)][e(633)](c,n[e(831)](c,8)),u=(null==i?void 0:i[e(825)])?l[e(744)](t=>{const n=e;return i[n(650)](e=>e===t[n(413)].id)||o&&t[n(413)][n(505)]})[e(414)](t=>t[e(933)]):void 0,h=this[e(900)][e(591)]({point:(new Vector3)[e(772)](this[e(276)]),floor:r,path:u});return{floorData:r,...h,nextIdx:u?n[e(588)](h[e(679)],c):0}}[R(884)](){const t=R;this[t(740)][t(720)]=this[t(312)]}[(_td=R(639),_sd=R(658),R(219))](){const t=R,e={lGsCB:function(t,e,n,i){return t(e,n,i)}};this[t(639)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1})),this[t(658)]=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1,map:texureLoader[t(674)](v$5)})),this[t(639)][t(871)]=this[t(658)][t(871)]=renderOrderConfig[t(881)],this[t(658)][t(806)][t(352)](.5,-.5),this[t(639)][t(438)][t(414)]=texureLoader[t(674)](r$3,()=>{const n=t;e[n(702)](setSize,this[n(639)],.2,this[n(414)][n(365)])}),this[t(658)][t(438)][t(414)]=texureLoader[t(674)](v$5,()=>{const n=t;e[n(702)](setSize,this[n(658)],.2,this[n(414)][n(365)])}),this[t(639)][t(806)][t(772)](this[t(658)][t(806)])}[(_rd=R(381),R(367))](t){const e=R,n={lDGlA:function(t,e,n,i){return t(e,n,i)}};let i=new Sprite(new SpriteMaterial({sizeAttenuation:!1,depthTest:!1}));return i[e(871)]=renderOrderConfig[e(881)],i[e(806)][e(352)](.5,-.5),i[e(244)][e(436)]=t,i[e(739)][e(772)](t[e(806)])[e(850)](t[e(432)]||2),i[e(438)][e(414)]=texureLoader[e(674)](w$3,()=>{const t=e;n[t(685)](setSize,i,.3,this[t(414)][t(365)])}),this[e(381)][e(247)](i),i}[(_qd=R(401),_pd=R(506),_od=R(590),_nd=R(476),_md=R(828),_ld=R(329),_kd=R(440),_jd=R(339),_id2=R(930),_hd=R(919),_gd=R(304),_fd=R(254),_ed=R(212),_dd=R(863),R(469))](){var t;const e=R,n=null==(t=this[e(416)])?void 0:t[e(736)];return{speed:(null==n?void 0:n[e(339)])??1,easeInTime:(null==n?void 0:n[e(930)])??800,easeOutTime:(null==n?void 0:n[e(919)])??1e3,pitch:(null==n?void 0:n[e(310)])??80,zoom:(null==n?void 0:n[e(804)])??22,baseSpeed:(null==n?void 0:n[e(421)])??300}}async[R(291)](t=!1){const e=R,n={aHMoE:e(516),XXZVJ:e(313)};if(this[e(740)][e(687)]||this[e(740)][e(574)])return void console[e(824)](n[e(626)]);this[e(828)]=t,this[e(329)]=!1,this[e(212)]=!1;const i=this[e(469)]();this[e(339)]=i[e(265)],this[e(930)]=i[e(225)],this[e(919)]=i[e(883)];const r=this[e(740)][e(574)];this[e(740)][e(574)]=!0;try{do{if(!(await this[e(618)]())||this[e(329)])break}while(this[e(828)]&&!this[e(329)])}catch(s){console[e(605)](n[e(846)],s)}finally{this[e(740)][e(574)]=r,this[e(440)]=!1,this[e(863)]=null}}[R(598)](){const t=R,e={BTIWq:t(906)}[t(593)][t(603)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(212)]=!1;continue;case"1":this[t(304)]&&(this[t(304)][t(899)](),this[t(304)]=null);continue;case"2":this[t(863)]&&(this[t(863)](),this[t(863)]=null);continue;case"3":this[t(828)]=!1;continue;case"4":this[t(329)]=!0;continue;case"5":this[t(254)]&&(this[t(254)][t(899)](),this[t(254)]=null);continue}break}}[R(425)](){const t=R;this[t(304)]&&this[t(304)][t(644)](),this[t(254)]&&this[t(254)][t(644)](),this[t(212)]=!0}[R(764)](){const t=R;this[t(304)]&&this[t(304)][t(815)](),this[t(254)]&&this[t(254)][t(815)](),this[t(212)]=!1}[R(781)](t){this[R(339)]=t}[R(426)](t,e){const n=R;this[n(930)]=t,this[n(919)]=e}async[R(618)](){var t,e;const n=R,i={WNRTZ:function(t,e){return t<=e},uAUdl:function(t,e){return t>=e},uYvSg:function(t,e){return t<e},BzAHZ:function(t,e){return t/e},UsRfv:function(t,e){return t*e},NakXw:function(t,e){return t(e)},fImoK:function(t,e){return t-e},ymnWX:function(t,e){return t+e},zKILW:function(t,e){return t*e},gZUdQ:function(t,e){return t*e},AvGjK:function(t,e){return t/e},Ipapp:function(t,e){return t>e},kXeSt:function(t,e){return t-e},FuQUS:function(t,e){return t<e},sKTXT:function(t,e){return t-e},jenJi:function(t,e){return t+e},deQvy:n(816),BXmDd:n(768),drWSj:function(t,e){return t+e},WfSIz:function(t,e){return t!==e},wPhBN:function(t,e){return t===e},oUagc:function(t,e,n){return t(e,n)},ySvWT:n(462),pZcHm:n(406)},r=(null==(t=this[n(416)])?void 0:t[n(926)])||[];if(!r[n(825)])return console[n(824)](i[n(632)]),!1;!this[n(476)]&&(this[n(476)]=this[n(414)][n(613)](r[0][n(417)]||"1",[new Vector3(r[0].x,r[0].y,r[0].z||0)]));const s=this[n(469)]();!this[n(440)]&&(this[n(414)][n(732)][n(784)](s[n(630)],!0),this[n(414)][n(732)][n(636)](s[n(872)]),this[n(440)]=!0);const a=(t,e)=>{const r=n,s={x:t.x,y:t.y,lnglat:this[r(414)][r(917)](t)},a=this[r(414)][r(917)](e),o=this[r(414)][r(300)](t,e),c=i[r(798)](o,o$3);let l=this[r(414)][r(732)][r(272)]();i[r(670)](i[r(582)](c,l),180)?(l=i[r(763)](360,l),this[r(414)][r(732)][r(194)](l,0)):i[r(886)](i[r(645)](c,l),-180)&&(l=i[r(680)](-360,l),this[r(414)][r(732)][r(194)](l,0));const u={r:l},h=i[r(763)](this[r(930)],this[r(919)]),d=i[r(610)](this[r(930)],h),p=Easing[r(195)].In,f=Easing[r(195)][r(552)];return this[r(254)]=new Tween(u).to({r:c},h)[r(585)](t=>{const e=r;if(i[e(397)](t,0))return 0;if(i[e(882)](t,1))return 1;if(i[e(522)](t,d)){const n=i[e(610)](t,d);return i[e(869)](.5,i[e(473)](p,n))}{const n=i[e(610)](i[e(684)](t,d),i[e(684)](1,d));return i[e(763)](.5,i[e(798)](.5,i[e(473)](f,n)))}})[r(349)](()=>{var t;const e=r;this[e(329)]?null==(t=this[e(254)])||t[e(899)]():this[e(414)][e(732)][e(194)](u.r,0)})[r(720)](),new Promise(n=>{const o=r;this[o(863)]=n;const c=new Vector2(t.x,t.y)[o(309)](new Vector2(e.x,e.y)),l=this[o(469)](),u=i[o(921)](c,i[o(479)](l[o(662)],this[o(339)]));this[o(304)]=new Tween(s).to({x:e.x,y:e.y,lnglat:a},u)[o(585)](Easing[o(901)][o(196)])[o(349)](()=>{var e;const n=o;if(this[n(329)])return null==(e=this[n(304)])||e[n(899)](),void(this[n(863)]&&(this[n(863)](),this[n(863)]=null));this[n(476)]&&this[n(476)][n(695)]&&this[n(476)][n(695)]([{x:s.x,y:s.y,z:t.z||0}]),this[n(414)][n(732)][n(204)]([s[n(765)][n(666)],s[n(765)][n(561)]],0)})[o(540)](()=>{const t=o;this[t(863)]&&(this[t(863)](),this[t(863)]=null)})[o(720)]()})};for(let c=0;i[n(886)](c,i[n(582)](r[n(825)],1));c++){if(this[n(329)])return console[n(502)](i[n(330)]),!1;const t=r[c],s=r[i[n(569)](c,1)];if(i[n(379)](t[n(417)],s[n(417)])){const t=this[n(414)][n(874)](s[n(417)]||"1");(null==t?void 0:t[n(835)])&&this[n(414)][n(808)](t[n(835)].id,t.id);const r=this[n(222)],a=i[n(493)](t.id,"1")||i[n(493)](null==(e=t[n(835)])?void 0:e.id,"1");this[n(414)][n(732)][n(636)]((null==r?void 0:r[n(872)])||(a?22:23))}if(await i[n(430)](a,t,s),this[n(329)])return console[n(502)](i[n(511)]),!1}if(this[n(828)]&&!this[n(329)]&&i[n(670)](r[n(825)],1)){const t=r[i[n(582)](r[n(825)],1)],e=r[0];await i[n(430)](a,t,e)}const o=!this[n(329)];return console[n(502)](i[n(333)],o),o}[R(489)](){const t=R,e={KUyAL:t(487),fCIEK:t(528),NhTpS:t(562),DumdB:t(667),krLpv:function(t,e){return t(e)},xsOyz:function(t,e){return t+e},bGRTJ:function(t,e){return t*e},MmrMW:function(t,e){return t>=e},DBMfg:t(202),atQxt:t(458),FqAEi:function(t,e){return t>e},UGIPW:t(581),FSYiB:t(411),LJQdq:function(t,e){return t(e)},LSGjk:function(t,e){return t+e},JLZVG:function(t,e){return t*e},pXCob:t(834),BQWXM:function(t,e,n){return t(e,n)},COTHP:t(712)};ua.pc&&e[t(801)](setInterval,()=>{var n,i;const r=t;if(this[r(740)][r(687)]){let t=this[r(287)][r(894)]||0;null==(i=null==(n=this[r(414)])?void 0:n.ar)||i[r(619)]({value:{alpha:t,beta:this[r(506)],gamma:this[r(590)]}}),this[r(411)][r(909)](e[r(344)],{value:{alpha:t,beta:this[r(506)],gamma:this[r(590)]}}),this[r(411)][r(659)]={alpha:t,beta:this[r(506)],gamma:this[r(590)]},this[r(411)][r(909)](e[r(346)],t)}},100),this[t(414)].on(e[t(546)],n=>{var i,r,s,a,o,c,l;const u=t;let h=null==(i=n[u(778)])?void 0:i[u(244)][u(814)];if(!h){let t=this[u(414)][u(362)][u(547)](n[u(681)],this[u(414)][u(741)][u(652)])[u(650)](t=>t[u(778)][u(355)]===u(500));h=t?{parent:null==t?void 0:t[u(778)][u(244)][u(436)]}:{parent:(null==(r=this[u(414)][u(740)][u(413)])?void 0:r[u(436)])||this[u(416)]}}let d={x:115.1590689362627,y:13.020685724382645,floor:(null==(s=null==h?void 0:h[u(835)])?void 0:s.id)||(null==(a=this[u(414)][u(740)][u(413)])?void 0:a[u(436)].id)||this[u(416)].id,type:(null==h?void 0:h[u(835)][u(694)])?e[u(249)]:e[u(410)],originGps:{lng:110.31339088,lat:25.33182552,accuracy:4.54603910446167,speed:0},lng:115.1590689362627,lat:13.020685724382645,angle:348,time:191};d[u(391)][u(265)]=e[u(614)](parseInt,e[u(205)](e[u(857)](Math[u(433)](),20),1)[u(232)](2));let p=this[u(414)][u(259)](n[u(765)]);d[u(561)]=n[u(765)][u(561)],d[u(666)]=n[u(765)][u(666)],d.x=p.x,d.y=p.y,this[u(740)][u(687)]&&e[u(638)](null==(o=this[u(642)])?void 0:o[u(825)],5)&&(d[u(704)]=e[u(672)]),location[u(388)][u(217)](e[u(206)])?!this[u(740)][u(687)]&&(this[u(411)][u(867)]={...d,...this[u(414)][u(731)](n[u(765)][u(666)],n[u(765)][u(561)])}):this[u(411)][u(867)]={...d,...this[u(414)][u(731)](n[u(765)][u(666)],n[u(765)][u(561)])},this[u(411)][u(867)][u(413)]=d[u(413)],this[u(642)]=this[u(642)]||[],this[u(642)][u(247)](n),e[u(408)](this[u(642)][u(825)],5)&&this[u(642)][u(817)](),null==(c=this[u(411)])||c[u(909)]((null==h?void 0:h[u(835)][u(812)])?e[u(862)]:e[u(849)],(null==h?void 0:h[u(835)][u(812)])?{originGps:{lng:n[u(765)][u(666)],lat:n[u(765)][u(561)],alt:0,accuracy:5,speed:e[u(307)](parseInt,e[u(722)](e[u(324)](Math[u(433)](),1),1)[u(232)](2)),heading:0},current:{lng:n[u(765)][u(666)],lat:n[u(765)][u(561)]}}:d),this[u(740)][u(687)]&&(null==(l=this[u(411)])||l[u(909)](e[u(608)],this[u(411)][u(571)]))})}}function I$2(t){const e=R,n={AiGth:function(t,e){return t(e)},nTaZg:function(t,e){return t>e},isdoy:function(t,e){return t/e},woCgN:function(t,e){return t(e)},babMz:function(t,e){return t%e},pbMdv:function(t,e){return t>e},imiDb:function(t,e){return t(e)},nRpzs:function(t,e){return t/e},PVWUF:function(t,e){return t%e},yRshj:function(t,e){return t+e},Ydrrz:function(t,e){return t+e},APLxh:function(t,e){return t(e)},rTZHz:function(t,e){return t+e},ZRdpo:function(t,e){return t+e},wlKaL:function(t,e){return t(e)},IURuu:function(t,e){return t+e},rsoBv:function(t,e){return t+e},KdkiQ:function(t,e){return t(e)}};let i=n[e(543)](parseInt,t),r=0,s=0;n[e(729)](i,60)&&(r=n[e(543)](parseInt,n[e(832)](i,60)),i=n[e(238)](parseInt,n[e(665)](i,60)),n[e(717)](r,60)&&(s=n[e(548)](parseInt,n[e(807)](r,60)),r=n[e(238)](parseInt,n[e(518)](r,60))));let a=n[e(445)](n[e(248)]("",n[e(521)](parseInt,i)),"秒");return n[e(729)](r,0)&&(a=n[e(545)](n[e(445)](n[e(210)]("",n[e(218)](parseInt,r)),"分"),a)),n[e(717)](s,0)&&(a=n[e(210)](n[e(747)](n[e(337)]("",n[e(802)](parseInt,s)),"小时"),a)),a}const K$2=m$g;function m$g(t,e){t-=355;return M$g()[t]}!function(t,e){const n=m$g,i=t();for(;;)try{if(464347===-parseInt(n(488))/1+-parseInt(n(533))/2*(parseInt(n(403))/3)+-parseInt(n(561))/4*(-parseInt(n(454))/5)+parseInt(n(565))/6+-parseInt(n(543))/7*(-parseInt(n(566))/8)+-parseInt(n(573))/9+-parseInt(n(358))/10*(-parseInt(n(415))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$g);class AR extends EventDispatcher{constructor(t){const e=K$2;super(),__publicField(this,_ve),__publicField(this,"el",document[K$2(491)](K$2(457))),__publicField(this,_ue),__publicField(this,_te),__publicField(this,_se),__publicField(this,_re),__publicField(this,_qe,!1),__publicField(this,_pe,15),__publicField(this,_oe,.7),__publicField(this,_ne,1.2),__publicField(this,_me,50),__publicField(this,_le),__publicField(this,_ke),__publicField(this,_je),__publicField(this,_ie),__publicField(this,_he),__publicField(this,_ge),__publicField(this,_fe,0),__publicField(this,_ee),__publicField(this,_de,1.5),__publicField(this,_ce,1),__publicField(this,_be,new Euler),__publicField(this,_ae),__publicField(this,_$d),__publicField(this,__d,.6),__publicField(this,_Zd,new Vector3(0,1,0)),__publicField(this,_Yd),__publicField(this,_Xd),__publicField(this,_Wd),this[e(390)]=t}[(_ve=K$2(390),_ue=K$2(589),_te=K$2(517),_se=K$2(584),_re=K$2(367),_qe=K$2(407),_pe=K$2(484),_oe=K$2(509),_ne=K$2(401),_me=K$2(465),_le=K$2(385),_ke=K$2(579),_je=K$2(392),_ie=K$2(569),_he=K$2(557),_ge=K$2(524),_fe=K$2(525),K$2(532))](t){const e=K$2,n={KqYVA:function(t,e){return t==e},kklIi:function(t,e){return t%e},TzEGP:function(t,e){return t<e},KqeRX:e(473),njbXl:e(441)};(null==t?void 0:t[e(466)])?this[e(418)](t[e(466)]):(window[e(441)]=!0,(n[e(363)](n[e(537)](this[e(525)]++,31),0)||n[e(384)](this[e(525)],10))&&(console[e(507)](n[e(502)],t),console[e(360)](n[e(434)])))}[K$2(531)](){const t=K$2;this[t(569)]||this[t(375)]()}[(_ee=K$2(382),_de=K$2(386),_ce=K$2(471),K$2(405))](){const t=K$2,e={JPrKu:t(472),uJQGD:function(t,e){return t*e},DbYvc:function(t,e){return t*e},wRRhG:function(t,e){return t*e},JtcJV:function(t,e){return t*e},ZjxGR:function(t,e){return t*e},HoiaB:function(t,e){return t*e},ouZNY:function(t,e){return t*e},cMDEF:function(t,e){return t*e},JhSEZ:function(t,e){return t*e}},n=new AmbientLight(e[t(482)],this[t(386)]);this[t(524)][t(588)](n);const i=new DirectionalLight(e[t(482)],e[t(530)](e[t(412)](.5,this[t(386)]),this[t(471)]));i[t(449)][t(559)](100,100,100),this[t(524)][t(588)](i);const r=new DirectionalLight(e[t(482)],e[t(541)](e[t(379)](.4,this[t(386)]),this[t(471)]));r[t(449)][t(559)](-100,100,-100),this[t(524)][t(588)](r);const s=new DirectionalLight(e[t(482)],e[t(590)](e[t(379)](.3,this[t(386)]),this[t(471)]));s[t(449)][t(559)](100,100,-100),this[t(524)][t(588)](s);const a=new DirectionalLight(e[t(482)],e[t(404)](e[t(425)](.2,this[t(386)]),this[t(471)]));a[t(449)][t(559)](-100,100,100),this[t(524)][t(588)](a);const o=new DirectionalLight(e[t(482)],e[t(412)](e[t(497)](.8,this[t(386)]),this[t(471)]));o[t(449)][t(559)](0,-100,0),this[t(524)][t(588)](o);let c=new HemisphereLight(e[t(482)],e[t(482)],e[t(510)](2,this[t(386)]));c[t(575)][t(512)](1,1,1),c[t(486)][t(512)](.95,1,.75),c[t(449)][t(559)](0,0,this[t(465)]),this[t(382)]=c,this[t(524)][t(588)](c)}[K$2(375)](){const t=K$2,e={QwqJq:t(387),fdAth:t(453),gFLCv:t(540),gUkLD:t(578),UThLa:t(538),PDoah:function(t,e){return t/e},ezOiQ:t(438)};let n=this[t(569)]=new WebGLRenderer({antialias:!0,alpha:!0,precision:e[t(452)],premultipliedAlpha:!1,maxLights:3});n[t(545)][t(581)][t(588)](e[t(450)]),n[t(394)](window[t(421)],window[t(496)]),n[t(397)](devicePixelRatio),n[t(545)][t(490)][t(535)]=e[t(511)],this.el[t(370)](n[t(545)]),this.el[t(490)][t(535)]=e[t(520)],this[t(557)]=new CSS2DRenderer,this[t(557)][t(394)](window[t(421)],window[t(496)]),this[t(557)][t(545)][t(490)][t(535)]=e[t(501)],this.el[t(370)](this[t(557)][t(545)]),(this[t(367)]=new PerspectiveCamera(75,e[t(374)](n[t(545)][t(592)],n[t(545)][t(391)]),.1,100))[t(475)][t(563)](e[t(447)]);let i=this[t(524)]=new Scene;this[t(584)]=new Object3D,i[t(588)](this[t(584)]),this[t(405)]()}[K$2(551)](){const t=K$2,e={wVAou:t(583),voDje:t(551),efdIR:t(366)},n=e[t(442)][t(455)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(390)][t(479)][t(463)]&&this[t(390)][t(479)][t(463)]();continue;case"1":this[t(390)].el[t(400)](this.el);continue;case"2":this[t(430)](e[t(359)]);continue;case"3":this[t(531)]();continue;case"4":this[t(390)][t(431)][t(490)][t(535)]=t(408);continue;case"5":this[t(388)]();continue;case"6":this[t(407)]=!0;continue;case"7":this[t(430)](e[t(544)]);continue;case"8":this[t(433)]();continue;case"9":this[t(470)]();continue;case"10":this[t(505)]=0;continue}break}}[K$2(585)](){var t;const e=K$2,n={bLsaJ:e(500),TkKzt:function(t,e){return t(e)},dwFBQ:e(585)},i=n[e(362)][e(455)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(407)]=!1;continue;case"1":n[e(383)](cancelAnimationFrame,this[e(380)]);continue;case"2":null==(t=this.el[e(443)])||t[e(396)](this.el);continue;case"3":this[e(481)]&&(this[e(481)][e(514)]=null);continue;case"4":this[e(390)][e(431)][e(490)][e(535)]=e(422);continue;case"5":this[e(430)](n[e(419)]);continue}break}}[(_be=K$2(536),_ae=K$2(414),K$2(418))](t=this[K$2(414)]){var e;const n=K$2,i={YPSKl:function(t,e){return t%e},djNYA:function(t,e){return t+e},rzaBw:n(378),QySYC:function(t,e){return t===e},LmZFq:function(t,e){return t/e},CAdHe:function(t,e){return t===e},UFpXm:function(t,e){return t===e}};if(this[n(407)]&&(this[n(414)]=t,t)){const r=t[n(526)]?MathUtils[n(555)](t[n(526)]):0,s=t[n(494)]?MathUtils[n(555)](t[n(494)]):0;let a=i[n(570)](i[n(558)](-t[n(518)],3600),360);a=MathUtils[n(555)](a),this[n(367)][n(582)][n(567)](this[n(536)][n(559)](r,s,a,i[n(427)])),this[n(367)][n(449)][n(395)](this[n(517)][n(549)][0][n(449)])[n(588)](this[n(517)][n(549)][1][n(449)])[n(577)](.5)[n(444)](this[n(509)]);let o=(null==(e=screen[n(446)])?void 0:e[n(529)])||window[n(446)]||0;i[n(409)](o,90)?this[n(367)][n(582)][n(437)]((new Quaternion)[n(416)](new Vector3(0,0,1),i[n(357)](-Math.PI,2))):(i[n(459)](o,-90)||i[n(426)](o,270))&&this[n(367)][n(582)][n(437)]((new Quaternion)[n(416)](new Vector3(0,0,1),i[n(357)](Math.PI,2))),this[n(367)][n(449)][n(522)](this[n(367)][n(572)](new Vector3)[n(361)]()[n(577)](this[n(401)])),this[n(382)][n(449)][n(395)](this[n(367)][n(449)])[n(444)](this[n(465)])}}[K$2(470)](){const t=K$2,e={ZuYcL:t(364),vBpdx:t(515),MTFRu:function(t,e){return t<e}};if(this[t(517)])return;const n=new Shape;n[t(468)]([{x:0,y:.5},{x:-1,y:0},{x:-1,y:-.5},{x:0,y:-0},{x:1,y:-.5},{x:1,y:0}]);const i=new ExtrudeGeometry(n,{steps:1,depth:.1,bevelEnabled:!0,bevelThickness:.001,bevelSize:.1,bevelOffset:0,bevelSegments:1}),r=new Mesh(i,[new MeshPhysicalMaterial({color:e[t(504)],roughness:.5,metalness:.01}),new MeshPhysicalMaterial({color:e[t(458)],roughness:.5,metalness:.01})]);r[t(435)][t(577)](.3),this[t(517)]=new Object3D;for(let s=0;e[t(428)](s,this[t(484)]);s++){let e=r[t(508)]();this[t(517)][t(588)](e)}this[t(584)][t(588)](this[t(517)])}[(_$d=K$2(548),__d=K$2(477),_Zd=K$2(568),K$2(355))](t){const e=K$2,n={MCdIw:function(t,e){return t+e},vHtPI:function(t,e){return t*e},VXITc:function(t,e){return t>e},Pebho:function(t,e){return t/e}};if(!this[e(407)]||!this[e(390)][e(479)][e(547)][e(591)])return;let i=this[e(517)][e(549)];const r=new Path(t);let s=r[e(498)]();this[e(548)]=r[e(371)](Math[e(460)](n[e(448)](s,this[e(477)])))[e(390)](t=>new Vector3(null==t?void 0:t.x,null==t?void 0:t.y,0)),i[e(390)](t=>t[e(527)]=!1),this[e(548)][e(390)]((t,r)=>{const s=e,a=this[s(548)][n[s(461)](r,1)];let o=i[r];if(o&&(o[s(527)]=!!a,a)){o[s(449)][s(395)](t);let e=a[s(508)]()[s(522)](o[s(449)]),i=e[s(462)](this[s(568)]),r=e[s(411)](this[s(568)]);o[s(475)].z=n[s(550)](n[s(398)](r.z,0)?-1:1,i)}}),i[1][e(527)]&&(this[e(385)]=(new Vector2)[e(395)](i[1][e(449)])[e(522)]((new Vector2)[e(395)](i[0][e(449)]))[e(361)]()),this[e(418)]()}async[(_Yd=K$2(481),_Xd=K$2(489),K$2(388))](){var t;const e=K$2,n={XBzvi:e(481),mhOur:e(365),GTrLt:e(372),AWSUN:e(499),IErQF:e(474),WrPUe:e(519),tiTFk:e(495),BhTQi:e(521),diRNM:e(439),burBq:e(376),iwrRY:e(560),SOCNq:e(523),pWIHf:e(464),tBMLE:e(542),pYQTl:e(368),lrqEE:e(440),fpHTA:function(t,e){return t-e}};if(this[e(489)])return this[e(481)][e(514)]=this[e(489)],void this[e(481)][e(423)]();if(ua[e(493)]&&(null==(t=null==navigator?void 0:navigator[e(554)])?void 0:t[e(417)])){const t=await navigator[e(554)][e(417)]();this[e(589)]=t[e(429)](t=>t[e(586)]===e(576))}return navigator[e(554)][e(487)]({video:Object[e(369)]({audio:!1,facingMode:{ideal:n[e(513)]},width:{ideal:480},height:{ideal:270}},ua[e(493)]?{deviceId:this[e(589)][n[e(373)](this[e(589)][e(393)],1)][e(506)]}:{})})[e(432)](t=>{const i=e;this[i(489)]=t;let r=document[i(491)](n[i(562)]);r[i(499)]=!0,r[i(490)][i(445)]=n[i(469)],r[i(490)][i(546)]=n[i(469)],r[i(490)][i(381)]=n[i(553)],r[i(490)][i(451)]="-2",r[i(534)](n[i(483)],n[i(399)]),r[i(534)](n[i(580)],n[i(377)]),r[i(534)](n[i(356)],n[i(399)]),r[i(534)](n[i(556)],n[i(399)]),r[i(534)](n[i(516)],n[i(571)]),r[i(534)](n[i(485)],"h5"),r[i(534)](n[i(528)],n[i(399)]),this[i(481)]=r,r[i(406)]=()=>{const t=i;r[t(445)]=r[t(436)],r[t(546)]=r[t(539)],this.el[t(370)](r)},r[i(514)]=t,r[i(499)]=!0,r[i(423)]()})[e(564)](t=>{const i=e;return console[i(507)](n[i(410)],t),this[i(585)](),Promise[i(467)](n[i(413)])})}[(_Wd=K$2(380),K$2(433))](){const t=K$2,e={JvjuI:function(t,e,n){return t(e,n)},OBFOn:t(480),qVqwz:function(t,e){return t(e)},zkUNN:function(t){return t()},fUDxp:function(t,e){return t(e)},GwQEp:function(t,e,n){return t(e,n)}};this[t(380)]&&e[t(478)](cancelAnimationFrame,this[t(380)]);let n=e[t(402)](fps,()=>{const n=t;e[n(574)](g$9,this[n(569)],this[n(367)]),this[n(569)][n(456)](this[n(524)],this[n(367)]),this[n(557)][n(456)](this[n(524)],this[n(367)]),this[n(430)](e[n(492)])},40);const i=()=>{const r=t;this[r(380)]=e[r(389)](requestAnimationFrame,i),e[r(476)](n)};e[t(476)](i)}}function M$g(){const t=["mapEl","then","RAF","njbXl","scale","videoWidth","multiply","XYZ","playsinline","environment","deviceOrientation_err","wVAou","parentElement","setZ","width","orientation","ezOiQ","Pebho","position","fdAth","zIndex","QwqJq","arView","26585qEvqMr","split","render","div","vBpdx","CAdHe","floor","MCdIw","angleTo","arUpdate","x5-video-player-fullscreen","lightHeight","value","reject","setFromPoints","mhOur","createGeo","directLightFactor","#fff","deviceOrientation_err:","true","rotation","zkUNN","arrowSpace","fUDxp","navi","update","video","JPrKu","AWSUN","arrowNum","SOCNq","groundColor","getUserMedia","273881uuuTNv","videoSteam","style","createElement","OBFOn","android","gamma","auto","innerHeight","cMDEF","getLength","muted","0|2|3|4|1|5","UThLa","KqeRX","updateProjectionMatrix","ZuYcL","alphaOffset","deviceId","log","clone","cameraZ","JhSEZ","gFLCv","setHSL","lrqEE","srcObject","#108EE9","burBq","arrowGroup","alpha","preload","gUkLD","webkit-playsinline","sub","x5-video-player-type","scene","idx","beta","visible","pWIHf","angle","uJQGD","init","deviceOrientationCB","72356XqAeIG","setAttribute","cssText","euler","kklIi","position:absolute;left:0;top:0;width:100%;height:100;","videoHeight","position:absolute;left:0;top:0;width:100%;height:100%;","wRRhG","🚀 获取相机权限失败 err:","14jbsTOp","efdIR","domElement","height","status","pathPoint","children","vHtPI","openAR","aspect","GTrLt","mediaDevices","degToRad","diRNM","css2DRenderer","djNYA","set","allow","188HzhfrH","XBzvi","reorder","catch","1137126TtlZYm","94856SeUHCe","setFromEuler","yAxes","renderer","YPSKl","iwrRY","getWorldDirection","1755873ZxOHlf","JvjuI","color","videoinput","multiplyScalar","position:absolute;left:0;top:0;width:100%;height:60%;","differentialDirection","WrPUe","classList","quaternion","7|3|10|6|1|9|5|8|4|2|0","group","closeAR","kind","veOnf","add","videoDevices","ZjxGR","isNavi","clientWidth","createLine","BhTQi","LmZFq","78630xNPUeY","voDje","trace","normalize","bLsaJ","KqYVA","#eee","100%","beforeOpenAR","camera","拒绝获取相机画面","assign","appendChild","getSpacedPoints","cover","fpHTA","PDoah","initTHREE","x-webkit-airplay","tiTFk","ZXY","JtcJV","cancelRAFId","objectFit","hemiLight","TkKzt","TzEGP","lineDir","lightFactor","highp","initCamera","qVqwz","map","clientHeight","angleDifference","length","setSize","copy","removeChild","setPixelRatio","VXITc","IErQF","append","cameraOffset","GwQEp","6Yenhne","HoiaB","buildLights","oncanplay","enabled","height:40%;width:100%;z-index: 2;overflow: hidden;background-color: #d2e4fa;position:absolute;bottom:0;left:0;","QySYC","tBMLE","cross","DbYvc","pYQTl","lastDeviceRotation","759IWDEuy","setFromAxisAngle","enumerateDevices","updateCamera","dwFBQ","FHuFj","innerWidth","height:100%;width:100%;position:relative;","play","WWUZw","ouZNY","UFpXm","rzaBw","MTFRu","filter","emit"];return(M$g=function(){return t})()}function g$9(t,e){const n=K$2,i={FHuFj:function(t,e){return t!==e},veOnf:function(t,e){return t!==e},WWUZw:function(t,e){return t/e}},r=t[n(545)];(i[n(420)](r[n(445)],r[n(592)])||i[n(587)](r[n(546)],r[n(391)]))&&(e[n(552)]=i[n(424)](r[n(592)],r[n(391)]),e[n(503)](),t[n(394)](r[n(592)],r[n(391)],!1))}function m$f(t,e){return t-=341,M$f()[t]}var Z=m$f;!function(t,e){for(var n=m$f,i=t();;)try{if(473930===parseInt(n(350))/1+parseInt(n(349))/2*(-parseInt(n(383))/3)+-parseInt(n(355))/4+-parseInt(n(359))/5*(-parseInt(n(374))/6)+parseInt(n(365))/7*(-parseInt(n(354))/8)+parseInt(n(344))/9*(parseInt(n(360))/10)+parseInt(n(388))/11*(parseInt(n(358))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$f);var g$8=Object[Z(345)][Z(368)],l$3=Object[Z(367)]||B$1;function v$2(t){var e=Z,n={LinxU:function(t,e){return t===e},swyQH:function(t,e){return t===e},rnufU:function(t,e){return t!==e},ZwQhf:e(353),BwUyC:function(t,e){return t(e)},ExPWV:function(t,e){return t(e)},yTAJA:function(t,e){return t<e},hJsHt:function(t,e){return t/e},GfEoJ:function(t,e){return t-e},eSINk:function(t,e){return t>e},AVbDd:function(t,e){return t+e},zYCJq:function(t,e){return t*e},kovTM:function(t,e){return t(e)},Pnvpj:e(387),SKtQw:function(t,e){return t!==e},qvrHg:e(361)},i={},r=0;function s(t){var i=e;return n[i(382)](t[i(351)],0)?[]:n[i(366)](t[0],0)||n[i(384)](typeof t[0],n[i(363)])?n[i(371)](a,t):n[i(379)](o,t)}function a(t){for(var i=e,r=t[i(351)],s=[],a=n[i(382)](t[0],0)?1:0;n[i(378)](a,r);a++){var o=t[a],c=n[i(379)](l,o);n[i(371)](z$1,o)&&Array[i(347)](c)?s=s[i(352)](c):s[i(356)](c)}return s}function o(t){var r,s=e,a=i[t[0]],o=a[s(351)],c=n[s(372)](n[s(377)](t[s(351)],1),o);if(n[s(357)](c,1)){r=[];for(var u=0;n[s(378)](u,c);u++){var h={};for(let e,i=0;e=a[i++];)h[e]=n[s(379)](l,t[n[s(342)](n[s(376)](u,o),i)]);r[s(356)](h)}}else{r={};for(let e,i=0;e=a[i++];)r[e]=n[s(364)](l,t[i])}return r}function c(t){for(var s=e,a=n[s(369)][s(385)]("|"),o=0;;){switch(a[o++]){case"0":var c=n[s(371)](l$3,t)[s(381)]();continue;case"1":for(var u,h=0;u=c[h++];)d[u]=n[s(379)](l,t[u]);continue;case"2":if(n[s(382)](c[s(351)],0))return{};continue;case"3":return d;case"4":var d={};continue;case"5":i[++r]=c;continue}break}}function l(t){var i=e;return n[i(343)](typeof t,n[i(373)])||!t?t:Array[i(347)](t)?n[i(371)](s,t):n[i(379)](c,t)}return n[e(371)](l,t)}function z$1(t){var e=Z,n={XdkAD:function(t,e){return t===e},ftiMY:e(353),GeQer:function(t,e){return t!==e}};return Array[e(347)](t)&&n[e(341)](typeof t[0],n[e(386)])&&n[e(346)](t[0],0)}function M$f(){var t=["274674tSKtsv","zREHJ","zYCJq","GfEoJ","yTAJA","ExPWV","无压缩数据","sort","LinxU","759147LRxkSP","rnufU","split","ftiMY","0|2|5|4|1|3","4781634YGCxxi","XdkAD","AVbDd","SKtQw","2442546tDBFlu","prototype","GeQer","isArray","call","6JdUwYa","603548GNQkyn","length","concat","number","56opRMPW","2450632LYAFYJ","push","eSINk","12FnVgeb","90HglCWV","30fxaynE","object","log","ZwQhf","kovTM","830711JmBsUF","swyQH","keys","hasOwnProperty","Pnvpj","aemkX","BwUyC","hJsHt","qvrHg"];return(M$f=function(){return t})()}function B$1(t){var e,n=Z,i=[];for(e in t)g$8[n(348)](t,e)&&i[n(356)](e);return i}function r$1(t){var e=Z,n={aemkX:function(t,e){return t(e)},zREHJ:e(380)};try{return n[e(370)](v$2,t)}catch(i){return console[e(362)](n[e(375)]),t}}function m$e(t,e){t-=388;return M$e()[t]}const t$1=m$e;!function(t,e){const n=m$e,i=t();for(;;)try{if(779776===parseInt(n(711))/1*(-parseInt(n(580))/2)+parseInt(n(656))/3*(parseInt(n(481))/4)+parseInt(n(502))/5+-parseInt(n(740))/6*(parseInt(n(708))/7)+-parseInt(n(739))/8*(-parseInt(n(620))/9)+parseInt(n(779))/10*(-parseInt(n(715))/11)+-parseInt(n(659))/12*(-parseInt(n(536))/13))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$e);const g$7={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},l$2=1e-6,v$1=2*Math.PI;class OrbitControls extends EventDispatcher{constructor(t,e){var n=(...t)=>(super(...t),__publicField(this,_Xf,{type:t$1(623)}),__publicField(this,_Wf,{type:t$1(763)}),__publicField(this,_Vf,{type:t$1(541)}),__publicField(this,_Uf,new Ray),__publicField(this,_Tf,Math[t$1(553)](70*MathUtils[t$1(727)])),__publicField(this,_Sf,new Plane),__publicField(this,_Rf,!0),__publicField(this,_Qf,new Vector3),__publicField(this,_Pf,new Vector3),__publicField(this,_Of,0),__publicField(this,_Nf,1/0),__publicField(this,_Mf,0),__publicField(this,_Lf,1/0),__publicField(this,_Kf,0),__publicField(this,_Jf,1/0),__publicField(this,_If,0),__publicField(this,_Hf,Math.PI),__publicField(this,_Gf,-1/0),__publicField(this,_Ff,1/0),__publicField(this,_Ef,!1),__publicField(this,_Df,.1),__publicField(this,_Cf,!0),__publicField(this,_Bf,1),__publicField(this,_Af,!0),__publicField(this,_zf,!0),__publicField(this,_yf,.5),__publicField(this,_xf,!0),__publicField(this,_wf,1),__publicField(this,_vf,!0),__publicField(this,_uf,7),__publicField(this,_tf,!1),__publicField(this,_sf,!1),__publicField(this,_rf,2),__publicField(this,_qf,{LEFT:t$1(647),UP:t$1(587),RIGHT:t$1(393),BOTTOM:t$1(766)}),__publicField(this,_pf,{LEFT:MOUSE[t$1(621)],MIDDLE:MOUSE[t$1(761)],RIGHT:MOUSE[t$1(401)]}),__publicField(this,_of,{ONE:TOUCH[t$1(621)],TWO:TOUCH[t$1(397)]}),__publicField(this,_nf),__publicField(this,_mf),__publicField(this,_lf),__publicField(this,_kf),__publicField(this,_jf),__publicField(this,_if),__publicField(this,_hf,g$7[t$1(596)]),__publicField(this,_gf,new Spherical),__publicField(this,_ff,new Spherical),__publicField(this,_ef,1),__publicField(this,_df,new Vector3),__publicField(this,_cf,new Vector2),__publicField(this,_bf,new Vector2),__publicField(this,_af,new Vector2),__publicField(this,_$e,new Vector2),__publicField(this,__e,new Vector2),__publicField(this,_Ze,new Vector2),__publicField(this,_Ye,new Vector2),__publicField(this,_Xe,new Vector2),__publicField(this,_We,new Vector2),__publicField(this,_Ve,new Vector3),__publicField(this,_Ue,new Vector2),__publicField(this,_Te,!1),__publicField(this,_Se,[]),__publicField(this,_Re,{}),__publicField(this,_Qe,!1),__publicField(this,_Pe,new Vector3),__publicField(this,_Oe),__publicField(this,_Ne),__publicField(this,_Me,new Vector3),__publicField(this,_Le,new Quaternion),__publicField(this,_Ke,new Vector3),__publicField(this,_Je,new Vector3),__publicField(this,_Ie,new Vector3),__publicField(this,_He,new Vector3),__publicField(this,_Ge,0),__publicField(this,_Fe,0),__publicField(this,_Ee),__publicField(this,_De,t=>{const e=t$1,n={VOhpn:e(539),sttWV:function(t,e){return t===e},hhxyu:e(658),YdjHw:function(t,e){return t===e},bJZbR:function(t,e,n){return t(e,n)},GMlig:e(719),RaDwn:e(552)},i=n[e(422)][e(389)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(560)]=t;continue;case"1":this[e(520)](t);continue;case"2":n[e(597)](t[e(755)],n[e(790)])?this[e(546)](t):this[e(569)](t);continue;case"3":if(n[e(597)](this[e(803)],!1))return;continue;case"4":n[e(545)](this[e(526)][e(413)],0)&&(n[e(434)](setTimeout,()=>{const n=e;try{(null==t?void 0:t[n(437)])&&this[n(602)][n(467)](t[n(437)])}catch(a){}},150),this[e(602)][e(462)](n[e(667)],this[e(611)]),this[e(602)][e(462)](n[e(809)],this[e(521)]));continue}break}}),__publicField(this,_Ce,t=>{const e=t$1,n={ELRaf:function(t,e){return t===e},zhcDF:function(t,e){return t===e},EWljN:e(658)};n[e(522)](this[e(803)],!1)||(n[e(645)](t[e(755)],n[e(513)])?this[e(690)](t):this[e(547)](t))}),__publicField(this,_Be,t=>{const e=t$1,n={dyDDX:function(t,e){return t===e},wRjub:e(719),QNohy:e(552),nQWTS:function(t,e){return t(e)},qrEbB:function(t,e){return t<e},bRrTh:function(t,e){return t-e},emdSW:function(t,e){return t<e},ZFgMh:function(t,e){return t-e},PITQz:e(409)};this[e(688)](t),n[e(426)](this[e(526)][e(413)],0)&&(this[e(602)][e(646)](t[e(437)]),this[e(602)][e(725)](n[e(568)],this[e(611)]),this[e(602)][e(725)](n[e(614)],this[e(521)])),this[e(517)](this[e(390)]),this[e(744)]=g$7[e(596)];const{x:i,y:r}=n[e(618)](getXY,this[e(560)]),s=n[e(618)](getXY,t);n[e(403)](Math[e(512)](n[e(566)](i,s.x)),3)&&n[e(799)](Math[e(512)](n[e(749)](r,s.y)),3)&&this[e(564)](n[e(628)],t)}),__publicField(this,_Ae,t=>{const e=t$1,n={UNLzr:e(612),PGxFD:function(t,e){return t===e},NHOTb:function(t,e){return t!==e}},i=n[e(421)][e(389)]("|");let r=0;for(;;){switch(i[r++]){case"0":if(n[e(444)](this[e(803)],!1)||n[e(444)](this[e(692)],!1)||n[e(668)](this[e(744)],g$7[e(596)]))return;continue;case"1":t[e(662)]();continue;case"2":this[e(517)](this[e(390)]);continue;case"3":this[e(517)](this[e(644)]);continue;case"4":this[e(392)](this[e(439)](t));continue}break}}),__publicField(this,_ze,t=>{const e=t$1,n={KiSIh:e(592),RGIKV:function(t,e){return t===e},GkpVw:e(702),TTAjG:e(412)};console[e(733)](n[e(697)]),n[e(410)](t[e(677)],n[e(542)])&&(this[e(438)]=!0,document[e(462)](n[e(661)],this[e(679)],{passive:!0,capture:!0}))}),__publicField(this,_ye,t=>{const e=t$1,n={JRgIv:function(t,e){return t===e},kMvdf:e(702),WLDcQ:e(412)};n[e(557)](t[e(677)],n[e(676)])&&(this[e(438)]=!1,document[e(725)](n[e(490)],this[e(679)],{passive:!0,capture:!0}))}),__publicField(this,_xe,t=>{const e=t$1,n={Pgafw:function(t,e){return t===e}};n[e(589)](this[e(803)],!1)||n[e(589)](this[e(559)],!1)||this[e(607)](t)}),__publicField(this,_we,t=>{const e=t$1;({izbkI:function(t,e){return t===e}})[e(654)](this[e(803)],!1)||t[e(662)]()}),this);const i=t$1,r={fJcdL:i(418),GrhPL:i(745),sJuiD:i(712),QIRpK:i(714),OKisR:i(570),lPEXK:i(456),Vtfnh:i(636)},s=r[i(550)][i(389)]("|");let a=0;for(;;){switch(s[a++]){case"0":this[i(602)][i(462)](r[i(530)],this[i(521)]);continue;case"1":this[i(724)]=this[i(455)][i(639)]()[i(723)]();continue;case"2":this[i(775)]=this[i(445)][i(772)];continue;case"3":n();continue;case"4":this[i(445)]=t;continue;case"5":this[i(455)]=(new Quaternion)[i(643)](t.up,new Vector3(0,1,0));continue;case"6":document[i(462)](r[i(787)],this[i(428)],{passive:!0,capture:!0});continue;case"7":this[i(622)]=this[i(445)][i(801)][i(639)]();continue;case"8":this[i(602)][i(462)](r[i(400)],this[i(735)],{passive:!1});continue;case"9":this[i(773)]=this[i(705)][i(639)]();continue;case"10":this[i(602)][i(462)](r[i(511)],this[i(494)]);continue;case"11":this[i(602)][i(485)][i(465)]=r[i(791)];continue;case"12":this[i(528)]=null;continue;case"13":this[i(602)][i(462)](r[i(435)],this[i(480)]);continue;case"14":this[i(602)]=e;continue;case"15":this[i(810)]();continue}break}}[(_Xf=t$1(642),_Wf=t$1(644),_Vf=t$1(390),_Uf=t$1(789),_Tf=t$1(608),_Sf=t$1(583),_Rf=t$1(803),_Qf=t$1(705),_Pf=t$1(431),_Of=t$1(529),_Nf=t$1(496),_Mf=t$1(669),_Lf=t$1(533),_Kf=t$1(519),_Jf=t$1(609),_If=t$1(685),_Hf=t$1(395),_Gf=t$1(657),_Ff=t$1(730),_Ef=t$1(703),_Df=t$1(461),_Cf=t$1(692),_Bf=t$1(575),_Af=t$1(554),_zf=t$1(640),_yf=t$1(601),_xf=t$1(559),_wf=t$1(706),_vf=t$1(783),_uf=t$1(452),_tf=t$1(447),_sf=t$1(716),_rf=t$1(590),_qf=t$1(516),_pf=t$1(738),_of=t$1(523),_nf=t$1(445),_mf=t$1(602),_lf=t$1(773),_kf=t$1(622),_jf=t$1(775),_if=t$1(528),_hf=t$1(744),_gf=t$1(460),_ff=t$1(448),_ef=t$1(678),_df=t$1(555),_cf=t$1(806),_bf=t$1(729),_af=t$1(736),_$e=t$1(466),__e=t$1(734),_Ze=t$1(693),_Ye=t$1(691),_Xe=t$1(650),_We=t$1(798),_Ve=t$1(742),_Ue=t$1(556),_Te=t$1(482),_Se=t$1(526),_Re=t$1(721),_Qe=t$1(438),t$1(505))](){const t=t$1;return this[t(460)][t(478)]}[t$1(479)](){const t=t$1;return this[t(460)][t(784)]}[t$1(474)](){const t=t$1;return this[t(445)][t(801)][t(760)](this[t(705)])}[t$1(653)](t){const e=t$1,n={MntEm:e(712)};t[e(462)](n[e(689)],this[e(581)]),this[e(528)]=t}[t$1(762)](){const t=t$1,e={jHYol:t(712)};this[t(528)][t(725)](e[t(754)],this[t(581)]),this[t(528)]=null}[t$1(574)](){const t=t$1;this[t(773)][t(483)](this[t(705)]),this[t(622)][t(483)](this[t(445)][t(801)]),this[t(775)]=this[t(445)][t(772)]}[t$1(663)](){const t=t$1,e={blgAD:t(500)}[t(750)][t(389)]("|");let n=0;for(;;){switch(e[n++]){case"0":this[t(705)][t(483)](this[t(773)]);continue;case"1":this[t(445)][t(635)]();continue;case"2":this[t(517)](this[t(642)]);continue;case"3":this[t(445)][t(801)][t(483)](this[t(622)]);continue;case"4":this[t(810)]();continue;case"5":this[t(445)][t(772)]=this[t(775)];continue;case"6":this[t(744)]=g$7[t(596)];continue}break}}[(_Pe=t$1(450),_Oe=t$1(455),_Ne=t$1(724),_Me=t$1(579),_Le=t$1(489),_Ke=t$1(509),t$1(810))](t=null){const e=t$1,n={tmmAa:function(t,e){return t===e},NrGMH:function(t,e){return t*e},napVP:function(t,e){return t*e},OTMRd:function(t,e){return t(e)},RnwaW:function(t,e){return t(e)},QsQsJ:function(t,e){return t<e},RsphP:function(t,e){return t>e},tRDRg:function(t,e){return t>e},argbT:function(t,e){return t<=e},tJkLc:function(t,e){return t/e},SEqcj:function(t,e){return t+e},vCime:function(t,e){return t===e},jJdib:function(t,e){return t*e},oGSAr:function(t,e){return t-e},BUGwj:function(t,e){return t-e},DlueZ:function(t,e){return t-e},IjuUK:function(t,e){return t>e},SABgT:function(t,e){return t>e},iImmY:function(t,e){return t*e},TlpRb:function(t,e){return t-e},dKFCs:e(504)},i=this[e(445)][e(801)];this[e(450)][e(483)](i)[e(764)](this[e(705)]),this[e(450)][e(737)](this[e(455)]),this[e(460)][e(717)](this[e(450)]),this[e(716)]&&n[e(794)](this[e(744)],g$7[e(596)])&&this[e(777)](this[e(726)](t)),this[e(703)]?(this[e(460)][e(784)]+=n[e(672)](this[e(448)][e(784)],this[e(461)]),this[e(460)][e(478)]+=n[e(781)](this[e(448)][e(478)],this[e(461)])):(this[e(460)][e(784)]+=this[e(448)][e(784)],this[e(460)][e(478)]+=this[e(448)][e(478)]);let r=this[e(657)],s=this[e(730)];n[e(687)](isFinite,r)&&n[e(415)](isFinite,s)&&(n[e(649)](r,-Math.PI)?r+=v$1:n[e(586)](r,Math.PI)&&(r-=v$1),n[e(649)](s,-Math.PI)?s+=v$1:n[e(701)](s,Math.PI)&&(s-=v$1),n[e(655)](r,s)?this[e(460)][e(784)]=Math[e(497)](r,Math[e(565)](s,this[e(460)][e(784)])):this[e(460)][e(784)]=n[e(701)](this[e(460)][e(784)],n[e(786)](n[e(681)](r,s),2))?Math[e(497)](r,this[e(460)][e(784)]):Math[e(565)](s,this[e(460)][e(784)])),this[e(460)][e(478)]=Math[e(497)](this[e(685)],Math[e(565)](this[e(395)],this[e(460)][e(478)])),this[e(460)][e(440)](),n[e(551)](this[e(703)],!0)?this[e(705)][e(572)](this[e(555)],this[e(461)]):this[e(705)][e(595)](this[e(555)]),this[e(705)][e(764)](this[e(431)]),this[e(705)][e(600)](this[e(519)],this[e(609)]),this[e(705)][e(595)](this[e(431)]),this[e(447)]?this[e(460)][e(648)]=this[e(699)](this[e(460)][e(648)]):this[e(460)][e(648)]=this[e(699)](n[e(778)](this[e(460)][e(648)],this[e(678)])),this[e(450)][e(683)](this[e(460)]),this[e(450)][e(737)](this[e(724)]),i[e(483)](this[e(705)])[e(595)](this[e(450)]),this[e(445)][e(468)](this[e(705)]),n[e(794)](this[e(703)],!0)?(this[e(448)][e(784)]*=n[e(695)](1,this[e(461)]),this[e(448)][e(478)]*=n[e(695)](1,this[e(461)]),this[e(555)][e(405)](n[e(808)](1,this[e(461)]))):(this[e(448)][e(446)](0,0,0),this[e(555)][e(446)](0,0,0));if(this[e(447)]&&this[e(482)]){const t=this[e(450)][e(413)]();let i=this[e(699)](n[e(672)](t,this[e(678)]));const r=n[e(531)](t,i);this[e(445)][e(801)][e(572)](this[e(742)],r),this[e(445)][e(398)](),this[e(783)]?this[e(705)][e(446)](0,0,-1)[e(700)](this[e(445)][e(443)])[e(405)](i)[e(595)](this[e(445)][e(801)]):(this[e(789)][e(629)][e(483)](this[e(445)][e(801)]),this[e(789)][e(732)][e(446)](0,0,-1)[e(700)](this[e(445)][e(443)]),n[e(649)](Math[e(512)](this[e(445)].up[e(797)](this[e(789)][e(732)])),this[e(608)])?this[e(445)][e(468)](this[e(705)]):(this[e(583)][e(514)](this[e(445)].up,this[e(705)]),this[e(789)][e(694)](this[e(583)],this[e(705)])))}if(this[e(678)]=1,this[e(482)]=!1,n[e(774)](this[e(579)][e(540)](this[e(445)][e(801)]),l$2)||n[e(771)](n[e(593)](8,n[e(429)](1,this[e(489)][e(797)](this[e(445)][e(423)]))),l$2)||n[e(771)](this[e(509)][e(540)](this[e(705)]),0)){const t=n[e(585)][e(389)]("|");let i=0;for(;;){switch(t[i++]){case"0":this[e(509)][e(483)](this[e(705)]);continue;case"1":this[e(489)][e(483)](this[e(445)][e(423)]);continue;case"2":this[e(579)][e(483)](this[e(445)][e(801)]);continue;case"3":return!0;case"4":this[e(517)](this[e(642)]);continue}break}}return!1}[t$1(758)](){const t=t$1,e={AdyhT:t(805),tesGl:t(712),EqGMf:t(636),DDXvp:t(745),GDjTg:t(570),moMPv:t(714),ITdnZ:t(552),YrymA:t(719)},n=e[t(696)][t(389)]("|");let i=0;for(;;){switch(n[i++]){case"0":document[t(725)](e[t(491)],this[t(428)],{capture:!0});continue;case"1":this[t(602)][t(725)](e[t(698)],this[t(480)]);continue;case"2":this[t(602)][t(725)](e[t(709)],this[t(521)]);continue;case"3":this[t(602)][t(725)](e[t(743)],this[t(494)]);continue;case"4":this[t(528)]&&(this[t(528)][t(725)](e[t(491)],this[t(581)]),this[t(528)]=null);continue;case"5":this[t(602)][t(725)](e[t(582)],this[t(735)]);continue;case"6":this[t(602)][t(725)](e[t(759)],this[t(521)]);continue;case"7":this[t(602)][t(725)](e[t(471)],this[t(611)]);continue}break}}[t$1(726)](t){const e=t$1,n={pvXeX:function(t,e){return t!==e},uQhtx:function(t,e){return t*e},EXJIC:function(t,e){return t/e},zatVl:function(t,e){return t/e},YZIDI:function(t,e){return t/e}};return n[e(788)](t,null)?n[e(495)](n[e(495)](n[e(525)](n[e(495)](2,Math.PI),60),this[e(590)]),t):n[e(495)](n[e(543)](n[e(633)](n[e(495)](2,Math.PI),60),60),this[e(590)])}[t$1(599)](t){const e=t$1,n={XGznQ:function(t,e){return t*e}},i=Math[e(512)](n[e(588)](t,.01));return Math[e(537)](.95,n[e(588)](this[e(575)],i))}[t$1(777)](t,e=!1){const n=t$1;(this[n(640)]||!e)&&(this[n(448)][n(784)]-=t)}[t$1(707)](t,e=!1){const n=t$1;(this[n(554)]||!e)&&(this[n(448)][n(478)]-=t)}[(_Je=t$1(632),t$1(470))](t,e){const n=t$1;this[n(632)][n(476)](e,0),this[n(632)][n(405)](-t),this[n(555)][n(595)](this[n(632)])}[(_Ie=t$1(396),t$1(453))](t,e){const n=t$1;!{LELri:function(t,e){return t===e}}[n(510)](this[n(783)],!0)?(this[n(396)][n(476)](e,0),this[n(396)][n(477)](this[n(445)].up,this[n(396)])):this[n(396)][n(476)](e,1),this[n(396)][n(405)](t),this[n(555)][n(595)](this[n(396)])}[(_He=t$1(686),t$1(493))](t,e){const n=t$1,i={WGKuk:function(t,e){return t/e},qVEzC:function(t,e){return t*e},aeDtI:function(t,e){return t/e},HUoBB:function(t,e){return t*e}},r=this[n(602)],s=this[n(445)][n(801)];this[n(686)][n(483)](s)[n(764)](this[n(705)]);let a=this[n(686)][n(413)]();a*=Math[n(451)](i[n(746)](i[n(795)](i[n(746)](this[n(445)][n(454)],2),Math.PI),180)),this[n(470)](i[n(746)](i[n(795)](i[n(795)](2,t),a),r[n(710)]),this[n(445)][n(443)]),this[n(453)](i[n(802)](i[n(795)](i[n(768)](2,e),a),r[n(710)]),this[n(445)][n(443)])}[t$1(420)](t=.95){this[t$1(678)]/=t}[t$1(404)](t=.95){this[t$1(678)]*=t}[t$1(613)](t,e){const n=t$1,i={quyMD:function(t,e){return t-e},RxVAK:function(t,e){return t*e},kkJTn:function(t,e){return t/e},xthVM:function(t,e){return t+e}};if(!this[n(447)])return;this[n(482)]=!0;const r=this[n(602)][n(625)](),s=i[n(627)](t,r[n(503)]),a=i[n(627)](e,r[n(767)]),o=r[n(807)],c=r[n(598)];this[n(556)].x=i[n(627)](i[n(469)](i[n(630)](s,o),2),1),this[n(556)].y=i[n(508)](i[n(469)](-i[n(630)](a,c),2),1),this[n(742)][n(446)](this[n(556)].x,this[n(556)].y,1)[n(604)](this[n(445)])[n(764)](this[n(445)][n(801)])[n(619)]()}[t$1(699)](t){const e=t$1;return Math[e(497)](this[e(529)],Math[e(565)](this[e(496)],t))}[t$1(713)](t){const e=t$1;this[e(806)][e(446)](t[e(770)],t[e(544)])}[t$1(665)](t){const e=t$1;this[e(613)](t[e(770)],t[e(770)]),this[e(691)][e(446)](t[e(770)],t[e(544)])}[t$1(641)](t){const e=t$1;this[e(466)][e(446)](t[e(770)],t[e(544)])}[t$1(728)](t){const e=t$1,n={IleEb:function(t,e){return t/e},BWfQv:function(t,e){return t*e},pEFXs:function(t,e){return t*e},lzVWl:function(t,e){return t/e},gLHLb:function(t,e){return t*e}};this[e(729)][e(446)](t[e(770)],t[e(544)]),this[e(736)][e(615)](this[e(729)],this[e(806)])[e(405)](this[e(601)]);const i=this[e(602)];this[e(777)](n[e(424)](n[e(473)](n[e(666)](2,Math.PI),this[e(736)].x),i[e(710)]),!0),this[e(707)](n[e(408)](n[e(507)](n[e(507)](2,Math.PI),this[e(736)].y),i[e(710)]),!0),this[e(806)][e(483)](this[e(729)]),this[e(810)]()}[t$1(616)](t){const e=t$1,n={gPieK:e(769),gYJUm:function(t,e){return t>e},tyQuG:function(t,e){return t<e}},i=n[e(741)][e(389)]("|");let r=0;for(;;){switch(i[r++]){case"0":this[e(691)][e(483)](this[e(650)]);continue;case"1":this[e(650)][e(446)](t[e(770)],t[e(544)]);continue;case"2":n[e(765)](this[e(798)].y,0)?this[e(420)](this[e(599)](this[e(798)].y)):n[e(561)](this[e(798)].y,0)&&this[e(404)](this[e(599)](this[e(798)].y));continue;case"3":this[e(798)][e(615)](this[e(650)],this[e(691)]);continue;case"4":this[e(810)]();continue}break}}[t$1(436)](t){const e=t$1,n={LrrJp:e(606)}[e(751)][e(389)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(493)](this[e(693)].x,this[e(693)].y);continue;case"1":this[e(810)]();continue;case"2":this[e(693)][e(615)](this[e(734)],this[e(466)])[e(405)](this[e(706)]);continue;case"3":this[e(466)][e(483)](this[e(734)]);continue;case"4":this[e(734)][e(446)](t[e(770)],t[e(544)]);continue}break}}[t$1(392)](t){const e=t$1,n={iDNsi:function(t,e){return t<e},uUQRX:function(t,e){return t>e}};this[e(613)](t[e(770)],t[e(544)]),n[e(442)](t[e(793)],0)?this[e(404)](this[e(599)](t[e(793)])):n[e(680)](t[e(793)],0)&&this[e(420)](this[e(599)](t[e(793)])),this[e(810)]()}[t$1(607)](t){const e=t$1,n={gDjYV:function(t,e){return t/e},MNGMI:function(t,e){return t*e},uQxEW:function(t,e){return t*e},dRQds:function(t,e){return t*e},Vntcq:function(t,e){return t*e}};let i=!1;switch(t[e(402)]){case this[e(516)].UP:t[e(417)]||t[e(518)]||t[e(486)]?this[e(707)](n[e(722)](n[e(804)](n[e(804)](2,Math.PI),this[e(601)]),this[e(602)][e(710)]),!0):this[e(493)](0,this[e(452)]),i=!0;break;case this[e(516)][e(567)]:t[e(417)]||t[e(518)]||t[e(486)]?this[e(707)](n[e(722)](n[e(804)](n[e(804)](-2,Math.PI),this[e(601)]),this[e(602)][e(710)]),!0):this[e(493)](0,-this[e(452)]),i=!0;break;case this[e(516)][e(603)]:t[e(417)]||t[e(518)]||t[e(486)]?this[e(777)](n[e(722)](n[e(617)](n[e(441)](2,Math.PI),this[e(601)]),this[e(602)][e(710)]),!0):this[e(493)](this[e(452)],0),i=!0;break;case this[e(516)][e(610)]:t[e(417)]||t[e(518)]||t[e(486)]?this[e(777)](n[e(722)](n[e(624)](n[e(804)](-2,Math.PI),this[e(601)]),this[e(602)][e(710)]),!0):this[e(493)](-this[e(452)],0),i=!0}i&&(t[e(662)](),this[e(810)]())}[t$1(487)](t){const e=t$1,n={bEQaw:function(t,e){return t===e},qhNQU:function(t,e){return t*e},SeRRS:function(t,e){return t+e}};if(n[e(594)](this[e(526)][e(413)],1))this[e(806)][e(446)](t[e(535)],t[e(675)]);else{const i=this[e(399)](t),r=n[e(573)](.5,n[e(416)](t[e(535)],i.x)),s=n[e(573)](.5,n[e(416)](t[e(675)],i.y));this[e(806)][e(446)](r,s)}}[t$1(558)](t){const e=t$1,n={jtFlC:function(t,e){return t===e},zkzXQ:function(t,e){return t*e},SEogH:function(t,e){return t+e}};if(n[e(782)](this[e(526)][e(413)],1))this[e(466)][e(446)](t[e(535)],t[e(675)]);else{const i=this[e(399)](t),r=n[e(532)](.5,n[e(671)](t[e(535)],i.x)),s=n[e(532)](.5,n[e(671)](t[e(675)],i.y));this[e(466)][e(446)](r,s)}}[t$1(757)](t){const e=t$1,n={vYxPM:function(t,e){return t-e},XeFyx:function(t,e){return t+e},YgBDF:function(t,e){return t*e},loidl:function(t,e){return t*e}},i=this[e(399)](t),r=n[e(449)](t[e(535)],i.x),s=n[e(449)](t[e(675)],i.y),a=Math[e(427)](n[e(577)](n[e(756)](r,r),n[e(391)](s,s)));this[e(691)][e(446)](0,a)}[t$1(800)](t){const e=t$1;this[e(692)]&&this[e(757)](t),this[e(559)]&&this[e(558)](t)}[t$1(684)](t){const e=t$1,n={tMcIV:function(t,e){return t-e},CGzJY:function(t,e){return t-e}};this[e(692)]&&this[e(757)](t);const[i,r]=this[e(747)](),s=n[e(682)](r.x,i.x),a=n[e(776)](r.y,i.y);this[e(406)]=this[e(430)]=Math[e(731)](a,s),this[e(487)](t)}[(_Ge=t$1(406),_Fe=t$1(430),t$1(747))](){const t=t$1,e=this[t(526)][0],n=this[t(526)][1];return[this[t(721)][e],this[t(721)][n]]}[t$1(785)](t){const e=t$1,n={mNeFM:function(t,e){return t==e},WVdzJ:function(t,e){return t*e},fGtXs:function(t,e){return t+e},ZjpfB:function(t,e){return t+e},YjzDg:function(t,e){return t-e},IGaLL:function(t,e){return t>e},Ubfvw:function(t,e){return t<e},sCUOi:function(t,e){return t*e},sqtqC:function(t,e){return t*e},QytMe:function(t,e){return t/e},hikGu:function(t,e){return t*e},UjbyR:function(t,e){return t*e}};if(n[e(515)](this[e(526)][e(413)],1))this[e(729)][e(446)](t[e(535)],t[e(675)]);else{const i=this[e(399)](t),r=n[e(674)](.5,n[e(432)](t[e(535)],i.x)),s=n[e(674)](.5,n[e(780)](t[e(675)],i.y));this[e(729)][e(446)](r,s)}const[i,r]=this[e(747)](),s=n[e(527)](r.x,i.x),a=n[e(527)](r.y,i.y),o=Math[e(731)](a,s);let c=n[e(527)](o,this[e(430)]);n[e(704)](c,Math.PI)?c-=n[e(674)](2,Math.PI):n[e(549)](c,-Math.PI)&&(c+=n[e(506)](2,Math.PI)),this[e(430)]=o,this[e(777)](n[e(660)](-c,this[e(601)]),!0),this[e(736)][e(615)](this[e(729)],this[e(806)])[e(405)](this[e(601)]);const l=this[e(602)];this[e(707)](n[e(652)](n[e(670)](n[e(475)](2,Math.PI),this[e(736)].y),l[e(710)]),!0),this[e(806)][e(483)](this[e(729)])}[t$1(631)](t){const e=t$1,n={jYSZQ:function(t,e){return t===e},OpzeR:function(t,e){return t*e},DQTQk:function(t,e){return t+e},HapQC:function(t,e){return t+e}};if(n[e(498)](this[e(526)][e(413)],1))this[e(734)][e(446)](t[e(535)],t[e(675)]);else{const i=this[e(399)](t),r=n[e(584)](.5,n[e(407)](t[e(535)],i.x)),s=n[e(584)](.5,n[e(457)](t[e(675)],i.y));this[e(734)][e(446)](r,s)}this[e(693)][e(615)](this[e(734)],this[e(466)])[e(405)](this[e(706)]),this[e(493)](this[e(693)].x,this[e(693)].y),this[e(466)][e(483)](this[e(734)])}[t$1(720)](t){const e=t$1,n={CGWoZ:function(t,e){return t-e},PGNPm:function(t,e){return t-e},lquJI:function(t,e){return t+e},AXbPB:function(t,e){return t*e},CsKTn:function(t,e){return t*e},Ehsrk:function(t,e){return t/e},tHrNb:function(t,e){return t+e},bCMEY:function(t,e){return t*e},VDRHC:function(t,e){return t+e}},i=this[e(399)](t),r=n[e(388)](t[e(535)],i.x),s=n[e(792)](t[e(675)],i.y),a=Math[e(427)](n[e(419)](n[e(492)](r,r),n[e(637)](s,s)));this[e(650)][e(446)](0,a),this[e(798)][e(446)](0,Math[e(537)](n[e(605)](this[e(650)].y,this[e(691)].y),this[e(575)])),this[e(420)](this[e(798)].y),this[e(691)][e(483)](this[e(650)]);const o=n[e(492)](n[e(425)](t[e(535)],i.x),.5),c=n[e(394)](n[e(463)](t[e(675)],i.y),.5);this[e(613)](o,c)}[t$1(651)](t){const e=t$1;this[e(692)]&&this[e(720)](t),this[e(559)]&&this[e(631)](t)}[t$1(718)](t){const e=t$1;this[e(692)]&&this[e(720)](t),this[e(785)](t)}[(_Ee=t$1(560),_De=t$1(480),_Ce=t$1(611),_Be=t$1(521),t$1(569))](t){const e=t$1,n={EmFSZ:function(t,e){return t===e},YDSmA:function(t,e){return t===e},ZEJhy:function(t,e){return t===e},iejhm:function(t,e){return t!==e}};let i;switch(t[e(752)]){case 0:i=this[e(738)][e(603)];break;case 1:i=this[e(738)][e(796)];break;case 2:i=this[e(738)][e(610)];break;default:i=-1}switch(i){case MOUSE[e(761)]:if(n[e(524)](this[e(692)],!1))return;this[e(665)](t),this[e(744)]=g$7[e(761)];break;case MOUSE[e(621)]:if(t[e(417)]||t[e(518)]||t[e(486)]){if(n[e(563)](this[e(559)],!1))return;this[e(641)](t),this[e(744)]=g$7[e(401)]}else this[e(713)](t),this[e(744)]=g$7[e(621)];break;case MOUSE[e(401)]:if(t[e(417)]||t[e(518)]||t[e(486)])this[e(713)](t),this[e(744)]=g$7[e(621)];else{if(n[e(411)](this[e(559)],!1))return;this[e(641)](t),this[e(744)]=g$7[e(401)]}break;default:this[e(744)]=g$7[e(596)]}n[e(484)](this[e(744)],g$7[e(596)])&&this[e(517)](this[e(644)])}[t$1(547)](t){const e=t$1,n={PpKbc:function(t,e){return t===e}};switch(this[e(744)]){case g$7[e(621)]:this[e(728)](t);break;case g$7[e(761)]:if(n[e(548)](this[e(692)],!1))return;this[e(616)](t);break;case g$7[e(401)]:if(n[e(548)](this[e(559)],!1))return;this[e(436)](t)}}[(_Ae=t$1(735),t$1(439))](t){const e=t$1,n=t[e(571)],i={clientX:t[e(770)],clientY:t[e(544)],deltaY:t[e(793)]};switch(n){case 1:i[e(793)]*=16;break;case 2:i[e(793)]*=100}return t[e(417)]&&!this[e(438)]&&(i[e(793)]*=10),i}[(_ze=t$1(428),_ye=t$1(679),_xe=t$1(581),t$1(546))](t){const e=t$1,n={gqKYH:function(t,e){return t===e},MMHWH:function(t,e){return t===e},GGzHb:function(t,e){return t===e},jZSsu:function(t,e){return t===e},UJxJM:function(t,e){return t!==e}};switch(this[e(488)](t),this[e(526)][e(413)]){case 1:switch(this[e(523)][e(538)]){case TOUCH[e(621)]:this[e(487)](t),this[e(744)]=g$7[e(664)];break;case TOUCH[e(401)]:if(n[e(578)](this[e(559)],!1))return;this[e(558)](t),this[e(744)]=g$7[e(562)];break;default:this[e(744)]=g$7[e(596)]}break;case 2:switch(this[e(523)][e(753)]){case TOUCH[e(397)]:if(n[e(472)](this[e(692)],!1)&&n[e(458)](this[e(559)],!1))return;this[e(800)](t),this[e(744)]=g$7[e(638)];break;case TOUCH[e(673)]:if(n[e(534)](this[e(692)],!1))return;this[e(684)](t),this[e(744)]=g$7[e(748)];break;default:this[e(744)]=g$7[e(596)]}break;default:this[e(744)]=g$7[e(596)]}n[e(634)](this[e(744)],g$7[e(596)])&&this[e(517)](this[e(644)])}[t$1(690)](t){const e=t$1,n={NxVYk:function(t,e){return t===e},dPVRI:function(t,e){return t===e},ZixAP:function(t,e){return t===e}};switch(this[e(488)](t),this[e(744)]){case g$7[e(664)]:this[e(785)](t),this[e(810)]();break;case g$7[e(562)]:if(n[e(501)](this[e(559)],!1))return;this[e(631)](t),this[e(810)]();break;case g$7[e(638)]:if(n[e(576)](this[e(692)],!1)&&n[e(501)](this[e(559)],!1))return;this[e(651)](t),this[e(810)]();break;case g$7[e(748)]:if(n[e(459)](this[e(692)],!1))return;this[e(718)](t),this[e(810)]();break;default:this[e(744)]=g$7[e(596)]}}[(_we=t$1(494),t$1(520))](t){const e=t$1;this[e(526)][e(464)](t[e(437)])}[t$1(688)](t){const e=t$1,n={VvqeF:function(t,e){return t<e},EfStW:function(t,e){return t==e}};delete this[e(721)][t[e(437)]];for(let i=0;n[e(414)](i,this[e(526)][e(413)]);i++)if(n[e(626)](this[e(526)][i],t[e(437)]))return void this[e(526)][e(591)](i,1)}[t$1(488)](t){const e=t$1;let n=this[e(721)][t[e(437)]];({bKBnp:function(t,e){return t===e}})[e(499)](n,void 0)&&(n=new Vector2,this[e(721)][t[e(437)]]=n),n[e(446)](t[e(535)],t[e(675)])}[t$1(399)](t){const e=t$1,n={YISaF:function(t,e){return t===e}}[e(433)](t[e(437)],this[e(526)][0])?this[e(526)][1]:this[e(526)][0];return this[e(721)][n]}}function M$e(){const t=["update","CGWoZ","split","_endEvent","loidl","handleMouseWheel","ArrowRight","bCMEY","maxPolarAngle","panUpV3","DOLLY_PAN","updateMatrixWorld","getSecondPointerPosition","QIRpK","PAN","code","qrEbB","dollyIn","multiplyScalar","_touchStartAngle","DQTQk","lzVWl","click","RGIKV","ZEJhy","keyup","length","VvqeF","RnwaW","SeRRS","ctrlKey","3|4|14|11|9|7|2|12|5|1|10|13|0|8|6|15","lquJI","dollyOut","UNLzr","VOhpn","quaternion","IleEb","tHrNb","dyDDX","sqrt","interceptControlDown","TlpRb","_touchPrevAngle","cursor","fGtXs","YISaF","bJZbR","Vtfnh","handleMouseMovePan","pointerId","controlActive","customWheelEvent","makeSafe","dRQds","iDNsi","matrix","PGxFD","object","set","zoomToCursor","sphericalDelta","vYxPM","updateOffset","tan","keyPanSpeed","panUp","fov","updateQuat","none","HapQC","GGzHb","ZixAP","spherical","dampingFactor","addEventListener","VDRHC","push","touchAction","panStart","setPointerCapture","lookAt","RxVAK","panLeft","YrymA","MMHWH","BWfQv","getDistance","UjbyR","setFromMatrixColumn","crossVectors","phi","getAzimuthalAngle","onPointerDown","4mZnZeC","performCursorZoom","copy","iejhm","style","shiftKey","handleTouchStartRotate","trackPointer","updateLastQuaternion","WLDcQ","tesGl","AXbPB","pan","onContextMenu","uQhtx","maxDistance","max","jYSZQ","bKBnp","0|3|5|1|2|4|6","NxVYk","2857435KqKkFn","left","4|2|1|0|3","getPolarAngle","sCUOi","gLHLb","xthVM","updateLastTargetPosition","LELri","OKisR","abs","EWljN","setFromNormalAndCoplanarPoint","mNeFM","keys","dispatchEvent","metaKey","minTargetRadius","addPointer","onPointerUp","ELRaf","touches","EmFSZ","EXJIC","pointers","YjzDg","_domElementKeyEvents","minDistance","GrhPL","DlueZ","zkzXQ","maxZoom","jZSsu","pageX","6620367TMddVa","pow","ONE","0|3|4|1|2","distanceToSquared","end","GkpVw","zatVl","clientY","YdjHw","onTouchStart","onMouseMove","PpKbc","Ubfvw","fJcdL","vCime","pointerup","cos","enablePitch","panOffset","mouse","JRgIv","handleTouchStartPan","enablePan","_startPointerEvent","tyQuG","TOUCH_PAN","YDSmA","emit","min","bRrTh","BOTTOM","wRjub","onMouseDown","contextmenu","deltaMode","addScaledVector","qhNQU","saveState","zoomSpeed","dPVRI","XeFyx","gqKYH","updateLastPosition","76478YynSGp","onKeyDown","moMPv","_plane","OpzeR","dKFCs","RsphP","ArrowUp","XGznQ","Pgafw","autoRotateSpeed","splice","TCL: interceptControlDown","iImmY","bEQaw","add","NONE","sttWV","height","getZoomScale","clampLength","rotateSpeed","domElement","LEFT","unproject","Ehsrk","4|2|0|3|1","handleKeyDown","TILT_LIMIT","maxTargetRadius","RIGHT","onPointerMove","0|1|3|4|2","updateZoomParameters","QNohy","subVectors","handleMouseMoveDolly","uQxEW","nQWTS","normalize","18APLpjb","ROTATE","position0","viewchange","Vntcq","getBoundingClientRect","EfStW","quyMD","PITQz","origin","kkJTn","handleTouchMovePan","panLeftV3","YZIDI","UJxJM","updateProjectionMatrix","pointerdown","CsKTn","TOUCH_DOLLY_PAN","clone","enableRotation","handleMouseDownPan","_changeEvent","setFromUnitVectors","_startEvent","zhcDF","releasePointerCapture","ArrowLeft","radius","QsQsJ","dollyEnd","handleTouchMoveDollyPan","QytMe","listenToKeyEvents","izbkI","argbT","2303580YszTIW","minAzimuthAngle","touch","48PvAcbm","sqtqC","TTAjG","preventDefault","reset","TOUCH_ROTATE","handleMouseDownDolly","pEFXs","GMlig","NHOTb","minZoom","hikGu","SEogH","NrGMH","DOLLY_ROTATE","WVdzJ","pageY","kMvdf","key","scale","interceptControlUp","uUQRX","SEqcj","tMcIV","setFromSpherical","handleTouchStartDollyRotate","minPolarAngle","panOffsetV3","OTMRd","removePointer","MntEm","onTouchMove","dollyStart","enableZoom","panDelta","intersectPlane","oGSAr","AdyhT","KiSIh","EqGMf","clampDistance","transformDirection","tRDRg","Control","enableDamping","IGaLL","target","panSpeed","rotateUp","14QetnFl","DDXvp","clientHeight","29CmLzbJ","keydown","handleMouseDownRotate","wheel","297zpbiWw","autoRotate","setFromVector3","handleTouchMoveDollyRotate","pointermove","handleTouchMoveDolly","pointerPositions","gDjYV","invert","updateQuatInverse","removeEventListener","getAutoRotationAngle","DEG2RAD","handleMouseMoveRotate","rotateEnd","maxAzimuthAngle","atan2","direction","log","panEnd","onMouseWheel","rotateDelta","applyQuaternion","mouseButtons","1396600tKBTgW","3378234pJpyVf","gPieK","dollyDirection","GDjTg","state","pointercancel","WGKuk","getPointerPositions","TOUCH_DOLLY_ROTATE","ZFgMh","blgAD","LrrJp","button","TWO","jHYol","pointerType","YgBDF","handleTouchStartDolly","dispose","ITdnZ","distanceTo","DOLLY","stopListenToKeyEvents","start","sub","gYJUm","ArrowDown","top","HUoBB","1|3|2|0|4","clientX","SABgT","zoom","target0","IjuUK","zoom0","CGzJY","rotateLeft","jJdib","263240MIdCCG","ZjpfB","napVP","jtFlC","screenSpacePanning","theta","handleTouchMoveRotate","tJkLc","sJuiD","pvXeX","_ray","hhxyu","lPEXK","PGNPm","deltaY","tmmAa","qVEzC","MIDDLE","dot","dollyDelta","emdSW","handleTouchStartDollyPan","position","aeDtI","enabled","MNGMI","3|1|2|5|7|6|0|4","rotateStart","width","BUGwj","RaDwn"];return(M$e=function(){return t})()}function M$d(){var t=["position","DOLLY","split","screenSpacePanning","579280OhnPuO","target","object","4873IyVImC","4013723NscbRL","20QFdUvM","4265408Hqpoda","ROTATE","mouseButtons","5VRwHYo","copy","2479710zPCEYa","PAN","98877BaASVh","sub","update","touches","add","7|6|5|0|8|3|4|1|2","setPosition","166miLBQb","DOLLY_ROTATE","3848364ysrIVN","posv3Temp","NUyAF","owpmZ"];return(M$d=function(){return t})()}var o$2=m$d;function m$d(t,e){return t-=494,M$d()[t]}!function(t,e){for(var n=m$d,i=t();;)try{if(352116===parseInt(n(511))/1*(parseInt(n(498))/2)+parseInt(n(521))/3*(-parseInt(n(513))/4)+-parseInt(n(517))/5*(parseInt(n(519))/6)+parseInt(n(512))/7+-parseInt(n(514))/8+parseInt(n(500))/9+parseInt(n(508))/10)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$d);let g$6=class extends OrbitControls{constructor(t,e){super(t,e),__publicField(this,_$f,!1),__publicField(this,__f,{LEFT:MOUSE[o$2(520)],MIDDLE:MOUSE[o$2(505)],RIGHT:MOUSE[o$2(515)]}),__publicField(this,_Zf,{ONE:TOUCH[o$2(520)],TWO:TOUCH[o$2(499)]}),__publicField(this,_Yf,new Vector3)}[(_$f=o$2(507),__f=o$2(516),_Zf=o$2(494),_Yf=o$2(501),o$2(497))](t){for(var e=o$2,n={owpmZ:e(496),NUyAF:function(t,e){return t(e)}},i=n[e(503)][e(506)]("|"),r=0;;){switch(i[r++]){case"0":case"1":this[e(509)].z=0;continue;case"2":this[e(523)]();continue;case"3":this[e(510)][e(504)][e(495)](this[e(501)]);continue;case"4":this[e(509)][e(518)](t);continue;case"5":this[e(501)].z=0;continue;case"6":this[e(501)][e(518)](t);continue;case"7":n[e(502)](isNaN,t.y);continue;case"8":this[e(501)][e(522)](this[e(509)]);continue}break}}};var q=m$c;function M$c(){var t=["HDXtS","OnHTb","width","6583094EKAcAk","Linear","rotateUp","nsNcd","renderNow","pitchEnable","minPitch","getElementById","Jgpkd","qVFlo","yOsun","lpVqM","maxResolution","click","abs","autoClear","iLVuu","orientationchange","subVectors","cssText","1858610uRtsGD","pitch","resolution","qIgjC","zoomIn","resolve","setPosition","ZboyR","datumsToSpherical","ebVjH","jCago","multiplyScalar","WfvgT","lng","TnixF","camera","number","set","start","max","split","hCPsX","HKqGj","XaINn","getStatus","_thetaXYPlane","PjlQb","npelE","container2","min","phi","Oirjp","getFit","USNAs","SmsjB","shadow","devicePixelRatio","_centerTween","dot","lFmfO","length","FdCah","_zoomTweenNum","oLEJo","BZKbF","now","LOG2E","forceContextLoss","aspect","oPAIs","lat","XwLVy","point","highp","4|2|0|3|1|5","sub","1792ZqmLLR","_maxResolution","getMaxResolution","zoomEnable","resolution2Level","maxDistance","enabled","minPolarAngle","WVXZz","container3","zoomToPosition","theta","ybGbX","createElement","YgcPU","zoom","setStatus","SFTQD","vNAMc","maxPitch","height","1|6|2|4|7|5|10|3|8|0|9","GbKPK","getAzimuthalAngle","zOGmG","getWorldDirection","addEventListener","getPitch","rKiGh","easing","relative","ktWSO","style","intersectObjectsBy2D","OywEq","div","_minResolution","XEYsM","4498960xycRzd","bcYFC","_maxZoom","viewchange","dispose","enableZoom","kORKQ","minDistance","vFOV","zAauV","vXjTY","lraas","MEuOf","string","wipPT","TlYaA","3|6|1|2|4|5|0","atan2","level2Resolution","nlzog","Xomfv","5189058gpVkDs","dWoQO","UwAcF","onComplete","map","setZooms","setMaxResolution","checkNormalResize","domObserver","rdXVR","minResolution","render","enablePan","jUpnH","olRzC","HwnkJ","uJrrb","getRotation","setViewSize","clientHeight","1|3|0|5|2|4","FKJgF","css2dRenderer","pjJDb","34sEziuY","initRender","SmwTg","domElement","oPIGA","XBCgN","OJdKD","clear","KFEWs","zozWe","WQmTJ","rotation","maxPolarAngle","calResolution","updateProjectionMatrix","emit","clientWidth","ItJMO","vFovHeight","27063GoYlQP","userData","setContainer","setZoom","_resolution2CameraDistance","spherical","cqSWY","uEbRL","controls","update","CrLil","EunCC","updateSize","_minZoom","add","zXGvD","object","sphericalToDatums","bWFDB","setPixelRatio","kihlU","interact","promise","1|9|8|0|3|10|7|4|5|6|2","container","epMPY","appendChild","shadowMap","qsIEj","zoomOut","BUsdb","setCenter","thetaXYPlane","warpScene","observe","getMinResolution","position:absolute;top:0;left:0;width:100%;height:100%;","disconnect","rotationEnable","_zoomTween","getCenter","onUpdate","jFjSf","renderer","TWnOL","enableRotation","MuEDM","872801zyPQHW","sqrt","maxZoom","lngLatToCoord","TZjvj","rotateLeft","_lastRenderTime","toFixed","tan","_pitchTween","RxMjV","plane","clone","setMinResolution","dollyIn","removeEventListener","setZoomAndCenter","6|9|8|0|5|4|3|1|7|2","stop","vACVA","vdUhV","JIYUD","nhGrD","setRotation","fov","QZgrH","updateMatrixWorld","fXeKY","umrvv","_resizeTimer","log","setPitch","4|3|0|1|5|2","YCxWO","target","dragEnable","copy","pjTAM","setResolution","enablePitch","LstfK","45813dRxzHO","bShCY","sizeChanged","sGvfB","HcCYk","ZoomLevel","ZOAOf","oSNTN","pow","getResolution","isArray","resize","_frameId","xjtmy","None","HNEsf","_rotationTween","getZoom","Sqwsu","GVVyD","TNqSN","EAXwE","RAF","setSize","minZoom","PKLkw","wsSvY","GrqLX","getPolarAngle","_resolution","Uwclv","center","coordsToLngLat","dollyOut","position","Shmrp"];return(M$c=function(){return t})()}!function(t,e){for(var n=m$c,i=t();;)try{if(752327===-parseInt(n(316))/1+-parseInt(n(250))/2*(parseInt(n(357))/3)+parseInt(n(510))/4+-parseInt(n(416))/5+parseInt(n(531))/6+parseInt(n(396))/7+-parseInt(n(472))/8*(parseInt(n(269))/9))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$c);let l$1=(_bg=class{static[(_ag=q(362),q(528))](t){var e=q,n={BUsdb:function(t,e){return t/e},dWoQO:function(t,e){return t-e}};return n[e(299)](this[e(362)],Math[e(365)](2,n[e(532)](t,1)))}static[q(476)](t){var e=q,n={wsSvY:function(t,e){return t/e},CrLil:function(t,e){return t+e},qVFlo:function(t,e){return t*e}},i=n[e(383)](this[e(362)],t);return n[e(279)](i=n[e(405)](Math[e(346)](i),Math[e(462)]),1)}static[q(263)](t,e){var n=q,i=t[n(497)](new Vector3),r=new Vector3;return r[n(414)](e,t[n(391)]),{uEbRL:function(t,e){return t*e}}[n(276)](t[n(270)][n(268)],i[n(454)](r))}},__publicField(_bg,_ag,78271.52),_bg);function m$c(t,e){return t-=236,M$c()[t]}class MapControl extends EventDispatcher{constructor(t){var e=q,n={nhGrD:e(513),jUpnH:e(409),GrqLX:e(507),jCago:e(502),MEuOf:e(305),YCxWO:e(368),kihlU:e(413)};super(),__publicField(this,_xg),__publicField(this,_wg),__publicField(this,_vg),__publicField(this,_ug),__publicField(this,_tg),__publicField(this,_sg),__publicField(this,_rg),__publicField(this,_qg),__publicField(this,_pg),__publicField(this,_og,0),__publicField(this,_ng,30),__publicField(this,_mg),__publicField(this,_lg),__publicField(this,_kg),__publicField(this,_jg,new PerspectiveCamera(36.86989764584402,1,.01,1e10)),__publicField(this,_ig),__publicField(this,_hg,0),__publicField(this,_gg),__publicField(this,_fg,()=>{var t=q,e={WVXZz:function(t,e){return t(e)},yOsun:function(t,e,n){return t(e,n)}};e[t(480)](clearTimeout,this[t(345)]),this[t(345)]=e[t(406)](setTimeout,()=>{var e=t;this[e(281)](),this[e(535)][e(368)]()},50)}),__publicField(this,_eg),__publicField(this,_dg),__publicField(this,_cg,!0),this[e(444)]=document[e(485)](n[e(384)]),this[e(481)]=document[e(485)](n[e(384)]),this[e(444)][e(504)][e(391)]=n[e(426)],this[e(535)]=t,this[e(251)](),this[e(444)][e(295)](this[e(312)][e(253)]),this[e(444)][e(295)](this[e(481)]),this[e(481)][e(504)][e(415)]=this[e(444)][e(504)][e(415)]=this[e(312)][e(253)][e(504)][e(415)]=n[e(522)],this[e(277)]=new g$6(this[e(431)],this[e(481)]),this[e(277)].on(n[e(338)],t=>{var i=e;this[i(265)](n[i(338)],{center:this[i(388)],zoom:this[i(487)],rotation:this[i(261)],pitch:this[i(417)]})}),window[e(498)](n[e(349)],this[e(368)]),window[e(498)](n[e(289)],this[e(368)]),this[e(277)].on(n[e(239)],t=>{var i=e;let r=this[i(535)][i(290)][i(505)](t,[this[i(535)][i(290)][i(327)]])[0];r[i(468)].z=0;let s=this[i(389)](r[i(468)][i(328)]()[i(283)](this[i(535)][i(388)]));this[i(265)](n[i(239)],{lnglat:s,originEvent:t,pos:[r[i(468)].x,r[i(468)].y],point:r[i(468)]})})}[(_xg=q(293),_wg=q(386),_vg=q(444),_ug=q(481),_tg=q(539),_sg=q(395),_rg=q(492),_qg=q(508),_pg=q(473),_og=q(512),_ng=q(282),_mg=q(312),_lg=q(248),_kg=q(277),_jg=q(431),_ig=q(518),_hg=q(322),_gg=q(535),q(251))](){for(var t=q,e={rdXVR:t(333),XBCgN:function(t,e){return t*e},TZjvj:function(t,e){return t/e},lFmfO:function(t,e){return t<=e},epMPY:t(469),hCPsX:function(t,e){return t/e}},n=e[t(540)][t(436)]("|"),i=0;;){switch(n[i++]){case"0":this[t(312)][t(411)]=!1;continue;case"1":this[t(518)]=e[t(255)](2,Math[t(324)](e[t(320)](e[t(255)](this[t(431)][t(340)],Math.PI),360)));continue;case"2":this[t(312)][t(288)](window[t(452)]);continue;case"3":this[t(431)][t(342)]();continue;case"4":this[t(431)][t(270)][t(350)]=new Vector3;continue;case"5":this[t(431)][t(391)][t(433)](0,.001,1);continue;case"6":this[t(312)]=new WebGLRenderer({antialias:e[t(455)](devicePixelRatio,1),precision:e[t(294)],alpha:!0,sortObjects:!1,outputEncoding:SRGBColorSpace,stencil:!1,logarithmicDepthBuffer:!0});continue;case"7":this[t(431)][t(270)][t(268)]=e[t(437)](this[t(518)],1024);continue;case"8":this[t(312)][t(296)][t(478)]=this[t(535)][t(451)];continue;case"9":this[t(248)]=new CSS2DRenderer({element:this[t(481)]});continue}break}}[(_fg=q(368),q(389))](t,e){var n=q,i={PjlQb:function(t,e){return t===e},QZgrH:n(285),TlYaA:function(t,e){return t in e}};return Array[n(367)](t)?(e=t[1],t=t[0]):i[n(442)](typeof t,i[n(341)])&&i[n(525)]("x",t)&&(e=t.y,t=t.x),UnitsUtils[n(286)](+t,+e)}[q(319)](t,e){var n=q,i={qIgjC:function(t,e){return t===e},XEYsM:n(285),SmsjB:function(t,e){return t in e},Jgpkd:n(429)};return Array[n(367)](t)?(e=t[1],t=t[0]):i[n(419)](typeof t,i[n(509)])&&i[n(450)](i[n(404)],t)&&(e=t[n(466)],t=t[n(429)]),UnitsUtils[n(424)](+t,+e)}[q(514)](){for(var t=q,e={HcCYk:t(292),ybGbX:function(t,e){return t(e)},GbKPK:t(368),bcYFC:t(413)},n=e[t(361)][t(436)]("|"),i=0;;){switch(n[i++]){case"0":this[t(312)]=null;continue;case"1":e[t(484)](cancelAnimationFrame,this[t(369)]);continue;case"2":this[t(539)]=null;continue;case"3":this[t(248)]=null;continue;case"4":window[t(331)](e[t(494)],this[t(368)]);continue;case"5":window[t(331)](e[t(511)],this[t(368)]);continue;case"6":this[t(539)][t(306)]();continue;case"7":e[t(484)](clearTimeout,this[t(538)]);continue;case"8":this[t(312)][t(514)]();continue;case"9":this[t(312)][t(463)]();continue;case"10":this[t(277)][t(514)]();continue}break}}[q(271)](t){for(var e=q,n={TWnOL:e(470),oLEJo:function(t,e){return t===e},Shmrp:e(523)},i=n[e(313)][e(436)]("|"),r=0;;){switch(i[r++]){case"0":this[e(539)]=new ResizeObserver(this[e(368)]);continue;case"1":this[e(293)][e(295)](this[e(444)]);continue;case"2":if(!this[e(293)])return;continue;case"3":this[e(539)][e(303)](this[e(293)]);continue;case"4":n[e(459)](typeof t,n[e(392)])?this[e(293)]=document[e(403)](t):this[e(293)]=t;continue;case"5":this[e(244)](this[e(293)][e(266)],this[e(293)][e(245)]);continue}break}}[q(440)](){var t=q;return{pitchEnable:this[t(401)],zoomEnable:this[t(475)]}}[q(488)](t){for(const e in t)this[e]=t[e]}[q(499)](){var t=q;return{Oirjp:function(t,e){return t*e}}[t(447)](this[t(277)][t(274)][t(446)],RAD2DEG)}[q(347)](t,e){var n,i=q,r={nlzog:function(t,e){return t*e},HNEsf:function(t,e){return t-e},sGvfB:function(t){return t()},ZOAOf:function(t,e){return t!==e},umrvv:function(t,e){return t*e},YgcPU:function(t,e){return t/e},LstfK:function(t,e){return t/e}};null==(n=this[i(325)])||n[i(334)]();let s=r[i(360)](getPromise);t*=DEG2RAD;let a=this[i(277)][i(385)](),o=r[i(372)](a,t);if(e=r[i(363)](e,void 0)?e:r[i(344)](r[i(486)](Math[i(410)](o),r[i(356)](Math.PI,4)),300)){let t=0;this[i(325)]=new Tween({a:0}).to({a:1},e)[i(501)](Easing[i(397)][i(371)])[i(310)](e=>{var n=i;let s=r[n(529)](r[n(372)](e.a,t),o);this[n(277)][n(398)](s),this[n(277)][n(278)](),t=e.a})[i(534)](()=>{s[i(421)](this)})[i(434)]()}else this[i(277)][i(398)](o),this[i(277)][i(278)]();return s[i(291)]}[q(300)](t,e=300){var n,i=q;null==(n=this[i(453)])||n[i(334)]();let r={OywEq:function(t){return t()}}[i(506)](getPromise),s=this[i(319)](t)[i(471)](this[i(535)][i(388)]);var a=s.x,o=s.y,c=new Vector3(a,o,0);return e?this[i(453)]=new Tween(this[i(277)][i(350)][i(328)]()).to(c,e)[i(501)](Easing[i(397)][i(371)])[i(310)](t=>{var e=i;this[e(277)][e(422)](t)})[i(534)](()=>{r[i(421)](this)})[i(434)]():(this[i(277)][i(422)](c),r[i(421)](this)),r[i(291)]}[q(309)](){var t=q;return this[t(389)](this[t(277)][t(350)][t(328)]()[t(283)](this[t(535)][t(388)]))}[q(482)](t,e=this[q(487)]+1,n=2e3){var i,r=q,s={FdCah:function(t,e){return t+e},pjTAM:function(t,e){return t*e},lpVqM:function(t,e){return t-e},rKiGh:function(t,e){return t-e},iLVuu:function(t,e){return t*e},kORKQ:function(t){return t()},TNqSN:function(t,e){return t in e},fXeKY:function(t,e){return t==e}};null==(i=this[r(308)])||i[r(334)]();let a=s[r(516)](getPromise);var o,c;if(s[r(377)]("x",t)?(o=t.x,c=t.y):(o=t[0],c=t[1]),s[r(343)](n,0))this[r(487)]=e,this[r(388)]=[o,c],a[r(421)](this);else{var l=this[r(487)],u=this[r(388)][0],h=this[r(388)][1];this[r(308)]=new Tween({a:0}).to({a:1},n)[r(310)]((t,n)=>{var i=r;this[i(487)]=s[i(457)](s[i(353)](s[i(407)](e,l),n),l),u=s[i(457)](s[i(353)](s[i(500)](o,u),n),u),h=s[i(457)](s[i(412)](s[i(407)](c,h),n),h),this[i(388)]=[u,h]})[r(534)](t=>{a[r(421)](this)})[r(434)]()}return a[r(291)]}[q(448)](t){var e=q,n={RxMjV:function(t,e){return t/e},WfvgT:function(t,e){return t+e},HDXtS:function(t,e){return t+e},zozWe:function(t,e){return t-e},vXjTY:function(t,e){return t-e},ktWSO:function(t,e){return t/e},SmwTg:function(t,e){return t*e}};let i=n[e(326)](n[e(428)](t[2],t[0]),2),r=n[e(326)](n[e(393)](t[3],t[1]),2),s=n[e(259)](t[2],t[0]),a=n[e(520)](t[3],t[1]),o=Math[e(445)](this[e(395)],this[e(492)]);var c=n[e(503)](s,n[e(326)](n[e(252)](2,o),3)),l=n[e(326)](a,n[e(503)](n[e(252)](2,o),3));c=Math[e(435)](c,l);var u=l$1[e(476)](c);return i+=this[e(535)][e(388)].x,r+=this[e(535)][e(388)].y,{zoom:u,position:new Vector3(i,r,0),lnglat:this[e(389)](i,r)}}[q(332)](t,e,n){var i=q,r={ebVjH:function(t,e){return t===e},bShCY:i(432)};return this[i(482)](e,t,r[i(425)](typeof n,r[i(358)])?n:0)}[q(244)](t,e){var n=q,i={JIYUD:function(t,e){return t==e},vdUhV:function(t,e){return t/e},nsNcd:function(t,e){return t/e},qsIEj:n(359)};if(i[n(337)](t,0)||i[n(337)](e,0))return-1;this[n(395)]=t,this[n(492)]=e,this[n(431)][n(270)][n(268)]=i[n(336)](this[n(518)],this[n(492)]),this[n(431)][n(464)]=i[n(399)](this[n(395)],this[n(492)]),this[n(431)][n(264)](),this[n(312)][n(380)](this[n(395)],this[n(492)]),this[n(248)][n(380)](this[n(395)],this[n(492)]),this[n(329)](this[n(508)]),this[n(537)](this[n(473)]),this[n(354)](this[n(386)]),this[n(265)](i[n(297)])}[q(366)](){return this[q(418)]}[q(354)](t){this[q(418)]=t}[q(273)](t){for(var e=q,n={wipPT:e(493),FKJgF:function(t,e){return t/e},WQmTJ:function(t,e){return t/e},zOGmG:function(t,e){return t-e}},i=n[e(524)][e(436)]("|"),r=0;;){switch(i[r++]){case"0":var s=h[e(328)]();continue;case"1":var a=new Vector3;continue;case"2":var o=n[e(247)](t,this[e(431)][e(270)][e(268)]);continue;case"3":var c=n[e(260)](n[e(496)](u,n[e(496)](d,o)),p[e(454)](l));continue;case"4":var l=(new Vector3)[e(414)](a,h);continue;case"5":var u=l[e(454)](h);continue;case"6":var h=new Vector3(0,-.001,1);continue;case"7":var d=l[e(454)](a);continue;case"8":p[e(427)](c);continue;case"9":return s[e(471)](p),s[e(456)]();case"10":var p=(new Vector3)[e(414)](a,h);continue}break}}[q(537)](t){var e=q,n={olRzC:function(t,e){return t!=e},EAXwE:function(t,e){return t(e)}};if(n[e(240)](void 0,t)&&!n[e(378)](isNaN,t)&&(this[e(473)]=t,this[e(277)]&&this[e(431)][e(270)][e(268)])){var i=this[e(273)](this[e(473)]);this[e(277)][e(477)]=i}}[q(329)](t){var e=q,n={Sqwsu:function(t,e){return t!=e},Uwclv:function(t,e){return t(e)}};if(n[e(375)](void 0,t)&&!n[e(387)](isNaN,t)&&(this[e(508)]=t,this[e(277)]&&this[e(431)][e(270)][e(268)])){var i=this[e(273)](this[e(508)]);this[e(277)][e(517)]=i}}[q(474)](){return this[q(473)]}[q(304)](){return this[q(508)]}[q(420)](){var t=q;this[t(277)][t(330)](),this[t(277)][t(278)]()}[q(298)](){var t=q;this[t(277)][t(390)](),this[t(277)][t(278)]()}[q(243)](){var t=q;return{BZKbF:function(t,e){return t*e}}[t(460)](this[t(277)][t(274)][t(483)],RAD2DEG)}[q(339)](t,e=300){var n,i=q,r={GVVyD:function(t,e){return t*e},EunCC:function(t,e){return t-e},vNAMc:function(t,e){return t*e},vACVA:function(t){return t()},Xomfv:function(t,e){return t%e},oPIGA:function(t,e){return t*e},KFEWs:function(t,e){return t*e},oPAIs:function(t,e){return t>e},zXGvD:function(t,e){return t<e},xjtmy:function(t,e){return t/e}};null==(n=this[i(373)])||n[i(334)](),t=r[i(490)](t,DEG2RAD);let s=r[i(335)](getPromise);var a=this[i(277)][i(495)](),o=r[i(530)](t,r[i(254)](2,Math.PI)),c=r[i(280)](o,a);if(c%=r[i(258)](2,Math.PI),e){r[i(465)](c,Math.PI)&&(c-=r[i(258)](2,Math.PI)),r[i(284)](c,-Math.PI)&&(c+=r[i(254)](2,Math.PI)),e=r[i(254)](r[i(370)](Math[i(410)](c),r[i(370)](Math.PI,4)),500);let t=0;this[i(373)]=new Tween({a:0}).to({a:1},e)[i(501)](Easing[i(397)][i(371)])[i(310)](e=>{var n=i;let s=r[n(376)](r[n(280)](e.a,t),-c);this[n(277)][n(321)](s),this[n(277)][n(278)](),t=e.a})[i(534)](()=>{s[i(421)](this)})[i(434)]()}else this[i(277)][i(321)](-c),this[i(277)][i(278)](),s[i(421)](this);return s[i(291)]}[(_eg=q(308),_dg=q(458),q(272))](t,e=300){var n,i=q,r={HKqGj:function(t){return t()},HwnkJ:function(t,e){return t===e}};let s=r[i(438)](getPromise);if(e){if(r[i(241)](this[i(458)],t))return;null==(n=this[i(308)])||n[i(334)](),this[i(458)]=t,this[i(308)]=new Tween(this)[i(501)](Easing[i(397)][i(371)]).to({zoom:t},e)[i(534)](()=>{var t=i;s[t(421)](this),this[t(458)]=-1})[i(434)]()}else this[i(487)]=t,s[i(421)](this);return s[i(291)]}[q(536)](t){var e=q;this[e(318)]=t[1],this[e(381)]=t[0]}[q(374)](){return this[q(487)]}[q(281)](){var t=q,e={bWFDB:function(t,e){return t!==e},zAauV:function(t,e){return t(e)},OnHTb:function(t,e,n){return t(e,n)}};this[t(293)]&&(e[t(287)](this[t(293)][t(266)],0)&&e[t(287)](this[t(293)][t(245)],0)?(e[t(519)](clearTimeout,this[t(538)]),this[t(244)](this[t(293)][t(266)],this[t(293)][t(245)])):this[t(538)]=e[t(394)](setTimeout,()=>{this[t(281)]()},20))}[q(434)](){this[q(379)]()}[(_cg=q(400),q(379))](){var t=q,e={USNAs:function(t,e){return t(e)},uJrrb:t(348)};if(this[t(369)]=e[t(449)](requestAnimationFrame,()=>{this[t(379)]()}),this[t(400)])for(var n=e[t(242)][t(436)]("|"),i=0;;){switch(n[i++]){case"0":this[t(312)][t(257)]();continue;case"1":this[t(535)][t(237)](this[t(431)]);continue;case"2":this[t(322)]=Date[t(461)]();continue;case"3":this[t(277)][t(278)]();continue;case"4":v$h[t(278)]();continue;case"5":this[t(248)][t(237)](this[t(535)][t(302)],this[t(431)]);continue}break}}get[q(388)](){return this[q(309)]()}set[q(388)](t){this[q(300)](t,0)}set[q(418)](t){var e=q,n={OJdKD:function(t,e){return t!=e},jFjSf:function(t,e){return t(e)},XaINn:e(526),XwLVy:function(t,e){return t/e},pjJDb:function(t,e){return t-e}};if(t&&n[e(256)](void 0,t)&&!n[e(311)](isNaN,t)&&(t=Math[e(435)](this[e(508)],Math[e(445)](t,this[e(473)])),this[e(386)]=t,this[e(277)]&&this[e(431)][e(270)][e(268)]))for(var i=n[e(439)][e(436)]("|"),r=0;;){switch(i[r++]){case"0":c[e(427)](l),this[e(431)][e(391)][e(471)](c),this[e(431)][e(342)](!0),this[e(277)][e(278)]();continue;case"1":var s=u[e(454)](this[e(277)][e(350)]);continue;case"2":var a=u[e(454)](this[e(431)][e(391)]);continue;case"3":var o=n[e(467)](this[e(386)],this[e(431)][e(270)][e(268)]);continue;case"4":var c=(new Vector3)[e(414)](this[e(277)][e(350)],this[e(431)][e(391)]);continue;case"5":var l=n[e(467)](n[e(249)](a,n[e(249)](s,o)),c[e(454)](u));continue;case"6":var u=this[e(431)][e(497)](new Vector3);continue}break}}get[q(418)](){var t=q,e=l$1[t(263)](this[t(431)],this[t(277)][t(350)]);return this[t(386)]=e,this[t(386)]}set[q(408)](t){this[q(537)](t)}get[q(408)](){return this[q(473)]}set[q(236)](t){this[q(329)](t)}get[q(236)](){return this[q(508)]}set[q(261)](t){this[q(339)](t,0)}get[q(261)](){return this[q(243)]()}set[q(487)](t){var e=q;this[e(354)](l$1[e(528)](t))}get[q(487)](){var t=q;return+l$1[t(476)](this[t(418)])[t(323)](2)}set[q(318)](t){var e=q;this[e(512)]=t;var n=l$1[e(528)](t);this[e(329)](n)}get[q(318)](){var t=q;return{UwAcF:function(t,e){return t==e}}[t(533)](void 0,this[t(512)])&&(this[t(512)]=21),this[t(512)]}set[q(381)](t){var e=q;this[e(282)]=t;var n=l$1[e(528)](t);this[e(537)](n)}get[q(381)](){var t=q;return{PKLkw:function(t,e){return t==e}}[t(382)](void 0,this[t(282)])&&(this[t(282)]=1),this[t(282)]}set[q(301)](t){for(var e=q,n={TnixF:e(246),ZboyR:function(t,e){return t-e},cqSWY:function(t,e){return t+e},SFTQD:function(t,e){return t*e},lraas:function(t,e){return t*e}},i=n[e(430)][e(436)]("|"),r=0;;){switch(i[r++]){case"0":s[e(352)](this[e(431)][e(391)])[e(471)](this[e(277)][e(350)]);continue;case"1":this[e(441)]=t;continue;case"2":this[e(277)][e(398)](n[e(423)](a,t));continue;case"3":var s=new Vector3;continue;case"4":this[e(277)][e(278)]();continue;case"5":var a=Math[e(527)](Math[e(317)](n[e(275)](n[e(489)](s.x,s.x),n[e(521)](s.y,s.y))),s.z);continue}break}}get[q(301)](){return this[q(441)]}set[q(417)](t){this[q(347)](t)}get[q(417)](){return this[q(499)]()}set[q(402)](t){var e=q;this[e(277)][e(479)]={npelE:function(t,e){return t*e}}[e(443)](t,DEG2RAD)}get[q(402)](){var t=q;return{ItJMO:function(t,e){return t*e}}[t(267)](this[t(277)][t(479)],RAD2DEG)}set[q(491)](t){var e=q;this[e(277)][e(262)]={oSNTN:function(t,e){return t*e}}[e(364)](t,DEG2RAD)}get[q(491)](){var t=q;return{MuEDM:function(t,e){return t*e}}[t(315)](this[t(277)][t(262)],RAD2DEG)}set[q(401)](t){var e=q;this[e(277)][e(355)]=t}get[q(401)](){var t=q;return this[t(277)][t(355)]}set[q(351)](t){var e=q;this[e(277)][e(238)]=t}get[q(351)](){var t=q;return this[t(277)][t(238)]}set[q(475)](t){var e=q;this[e(277)][e(515)]=t}get[q(475)](){var t=q;return this[t(277)][t(515)]}set[q(307)](t){var e=q;this[e(277)][e(314)]=t}get[q(307)](){var t=q;return this[t(277)][t(314)]}}function m$b(t,e){t-=183;return M$b()[t]}const M8=m$b;!function(t,e){const n=m$b,i=t();for(;;)try{if(842842===parseInt(n(226))/1*(parseInt(n(210))/2)+parseInt(n(196))/3*(-parseInt(n(188))/4)+parseInt(n(247))/5*(-parseInt(n(236))/6)+-parseInt(n(216))/7*(parseInt(n(245))/8)+parseInt(n(183))/9*(-parseInt(n(235))/10)+parseInt(n(190))/11+parseInt(n(215))/12)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$b);class MapNodeGeometry extends BufferGeometry{constructor(t=1,e=1,n=1,i=1,r=!1,s=10){const a=m$b,o={OPCup:a(250),poaXQ:a(232)};super();const c=[],l=[],u=[],h=[];MapNodeGeometry[a(230)](t,e,n,i,c,l,u,h),r&&MapNodeGeometry[a(241)](t,e,n,i,s,c,l,u,h),this[a(197)](c),this[a(211)](o[a(186)],new Float32BufferAttribute(l,3)),this[a(211)](o[a(221)],new Float32BufferAttribute(u,3)),this[a(211)]("uv",new Float32BufferAttribute(h,2))}static[M8(230)](t=1,e=1,n=1,i=1,r,s,a,o){const c=M8,l={uXyvz:function(t,e){return t/e},fZNPF:function(t,e){return t+e},kITUz:function(t,e){return t<e},AvwMy:function(t,e){return t-e},xkcZx:function(t,e){return t*e},pPejQ:function(t,e){return t<e},nuOzt:function(t,e){return t/e},TzHJu:function(t,e){return t*e},hSpVO:function(t,e){return t+e},gESiL:function(t,e){return t*e},dSDAC:function(t,e){return t+e},BmxvX:function(t,e){return t+e},tlUtz:function(t,e){return t+e},TIvnJ:function(t,e){return t+e}},u=l[c(198)](t,2),h=l[c(198)](e,2),d=l[c(212)](n,1),p=l[c(212)](i,1),f=l[c(198)](t,n),m=l[c(198)](e,i);for(let g=0;l[c(219)](g,p);g++){const t=l[c(206)](l[c(222)](g,m),h);for(let e=0;l[c(240)](e,d);e++){const r=l[c(206)](l[c(222)](e,f),u);s[c(243)](r,0,t),a[c(243)](0,1,0),o[c(243)](l[c(184)](e,n),l[c(206)](1,l[c(184)](g,i)))}}for(let g=0;l[c(240)](g,i);g++)for(let t=0;l[c(240)](t,n);t++){const e=l[c(212)](t,l[c(233)](d,g)),n=l[c(239)](t,l[c(231)](d,l[c(229)](g,1))),i=l[c(229)](l[c(185)](t,1),l[c(233)](d,l[c(208)](g,1))),s=l[c(214)](l[c(185)](t,1),l[c(231)](d,g));r[c(243)](e,n,s,n,i,s)}}static[M8(241)](t=1,e=1,n=1,i=1,r,s,a,o,c){const l=M8,u={OowMG:function(t,e){return t/e},LCIwP:function(t,e){return t+e},sCSdP:function(t,e){return t/e},DTrws:function(t,e){return t<e},ymMJX:function(t,e){return t-e},BuoGd:function(t,e){return t*e},IUwNB:function(t,e){return t<e},YCqUJ:function(t,e){return t+e},zQzrc:function(t,e){return t+e},mHWuH:function(t,e){return t+e},IUdXl:function(t,e){return t/e},vVUwZ:function(t,e){return t<e},fTBMo:function(t,e){return t-e},CjhlP:function(t,e){return t*e},JQATb:function(t,e){return t*e},ilKuy:function(t,e){return t/e},AscMg:function(t,e){return t<e},dHUJN:function(t,e){return t+e},chHIW:function(t,e){return t+e},TtCZi:function(t,e){return t+e},dHVjk:function(t,e){return t<e},AuQNS:function(t,e){return t<e},kNqmL:function(t,e){return t*e},lxRzN:function(t,e){return t+e},Foyyq:function(t,e){return t+e},uasvb:function(t,e){return t-e},dJIdr:function(t,e){return t-e},IkZnc:function(t,e){return t-e},hKVQw:function(t,e){return t/e},ISZPR:function(t,e){return t<e},SRNUV:function(t,e){return t*e},xiTrz:function(t,e){return t+e},WIDqC:function(t,e){return t+e}},h=u[l(195)](t,2),d=u[l(195)](e,2),p=u[l(187)](n,1),f=u[l(187)](i,1),m=u[l(195)](t,n),g=u[l(242)](e,i);let A=u[l(195)](a[l(189)],3);for(let y=0;u[l(224)](y,p);y++){const t=u[l(220)](u[l(209)](y,m),h),e=-d;a[l(243)](t,-r,e),o[l(243)](0,1,0),c[l(243)](u[l(242)](y,n),1)}for(let y=0;u[l(207)](y,n);y++){const t=y,e=u[l(204)](y,1),n=u[l(194)](y,A),i=u[l(246)](u[l(194)](y,A),1);s[l(243)](e,n,t,e,i,n)}A=u[l(225)](a[l(189)],3);for(let y=0;u[l(217)](y,p);y++){const t=u[l(223)](u[l(193)](y,m),h),e=u[l(223)](u[l(205)](i,g),d);a[l(243)](t,-r,e),o[l(243)](0,1,0),c[l(243)](u[l(238)](y,n),0)}let v=u[l(220)](u[l(223)](u[l(205)](p,f),n),1);for(let y=0;u[l(248)](y,n);y++){const t=u[l(246)](v,y),e=u[l(191)](u[l(227)](v,y),1),n=u[l(194)](y,A),i=u[l(227)](u[l(199)](y,A),1);s[l(243)](t,n,e,n,i,e)}A=u[l(195)](a[l(189)],3);for(let y=0;u[l(228)](y,f);y++){const t=u[l(220)](u[l(205)](y,g),d),e=-h;a[l(243)](e,-r,t),o[l(243)](0,1,0),c[l(243)](0,u[l(220)](1,u[l(195)](y,i)))}for(let y=0;u[l(237)](y,i);y++){const t=u[l(244)](y,f),e=u[l(205)](u[l(227)](y,1),f),n=u[l(234)](y,A),i=u[l(251)](u[l(187)](y,A),1);s[l(243)](t,n,e,n,i,e)}A=u[l(242)](a[l(189)],3);for(let y=0;u[l(217)](y,f);y++){const t=u[l(249)](u[l(244)](y,g),d),e=u[l(192)](u[l(209)](n,m),h);a[l(243)](e,-r,t),o[l(243)](0,1,0),c[l(243)](1,u[l(218)](1,u[l(213)](y,i)))}for(let y=0;u[l(201)](y,i);y++){const t=u[l(251)](u[l(203)](y,f),i),e=u[l(202)](u[l(244)](u[l(251)](y,1),f),i),n=u[l(200)](y,A),r=u[l(194)](u[l(194)](y,A),1);s[l(243)](e,n,t,e,r,n)}}}function M$b(){const t=["301PXVjDv","vVUwZ","IkZnc","kITUz","ymMJX","poaXQ","xkcZx","fTBMo","DTrws","IUdXl","13185SpCYOh","chHIW","dHVjk","dSDAC","buildPlane","gESiL","normal","TzHJu","lxRzN","2322870TBEkBE","626496DPuPZa","AuQNS","ilKuy","hSpVO","pPejQ","buildSkirt","sCSdP","push","kNqmL","309920AOqQIJ","mHWuH","20XXUUzw","AscMg","uasvb","position","Foyyq","9YGcGNR","nuOzt","BmxvX","OPCup","LCIwP","360872NZBvrn","length","15050189KaglGP","dHUJN","dJIdr","CjhlP","zQzrc","OowMG","39XdMKVU","setIndex","uXyvz","TtCZi","WIDqC","ISZPR","xiTrz","SRNUV","YCqUJ","JQATb","AvwMy","IUwNB","tlUtz","BuoGd","182DbqqyA","setAttribute","fZNPF","hKVQw","TIvnJ","21160956FITEMA"];return(M$b=function(){return t})()}const I$1=m$a;function m$a(t,e){t-=166;return M$a()[t]}function M$a(){const t=["702NEisZZ","1748860MRPndS","parentNode","needsUpdate","_dispose","warn","12155DYmOvW","21MfXNCD","SYkFO","width","2548784JRRbyy","matrixAutoUpdate","canvas","position","height","fillRect","visible","115290hOpJKS","format","level","add","vKNQT","nodesLoaded","material","UrsuN","14DiinEU","tKtFG","getContext","xMPpp","1499418SjOgnu","createElement","onBeforeCompile","OmiXZ","AggPo","GlJPH","gvhcC","subdivided","fillStyle","vCbnX","geometry","fetchTile","childrens","generateMipmaps","22yUYcEG","loadData","undefined","dispose","RUXWz","updateMatrix","magFilter","childrenCache","updateMatrixWorld","simplify","#fff","defaultTexture","getimg Failed","yxrMP","3|8|7|2|6|11|5|0|9|4|10|1","minFilter","set","children","AmKje","map","initialize","renderOrder","split","BQiGY","jKfgp","mapView","mSkbg","_onBeforeCompile","scale","isMesh","disposed","LOMvs","WQnKm","EIPcq","11735YowVxI","length","subdivide","QhXSI","minZoom","7068xnTfVA","qgXNb","maxZoom","copy","createChildNodes"];return(M$a=function(){return t})()}function g$5(t=I$1(175),e=1,n=1){const i=I$1,r={AggPo:function(t,e,n){return t(e,n)}}[i(242)](createOffscreenCanvas,e,n),s=r[i(236)]("2d");s[i(246)]=t,s[i(224)](0,0,e,n);const a=new Texture(r);return a[i(227)]=RGBAFormat,a[i(171)]=LinearFilter,a[i(180)]=LinearFilter,a[i(251)]=!1,a[i(212)]=!0,a}function createOffscreenCanvas(t,e){const n=I$1,i={mSkbg:function(t,e){return t!==e},QhXSI:n(167),AmKje:n(221)};if(i[n(191)](typeof OffscreenCanvas,i[n(202)]))return new OffscreenCanvas(t,e);{let r=document[n(239)](i[n(183)]);return r[n(218)]=t,r[n(223)]=e,r}}!function(t,e){const n=m$a,i=t();for(;;)try{if(164695===parseInt(n(199))/1*(parseInt(n(234))/2)+-parseInt(n(216))/3*(-parseInt(n(204))/4)+parseInt(n(215))/5*(parseInt(n(209))/6)+-parseInt(n(226))/7+parseInt(n(219))/8+-parseInt(n(238))/9+parseInt(n(210))/10*(-parseInt(n(252))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$a);const _MapPlaneNode=class t extends Mesh{constructor(e,n,i=0,r=0,s=0){var a=(...t)=>(super(...t),__publicField(this,_Gg),__publicField(this,_Fg),__publicField(this,_Eg),__publicField(this,"x"),__publicField(this,"y"),__publicField(this,_Dg,!1),__publicField(this,_Cg,!1),__publicField(this,_Bg,0),__publicField(this,_Ag),this);const o=I$1,c={qgXNb:o(179)}[o(205)][o(187)]("|");let l=0;for(;;){switch(c[l++]){case"0":this.x=r;continue;case"1":this[o(185)]();continue;case"2":this[o(211)]=e;continue;case"3":a(t[o(248)],new MeshBasicMaterial({depthTest:!1,depthWrite:!1}));continue;case"4":this[o(220)]=!1;continue;case"5":this[o(228)]=i;continue;case"6":this[o(186)]=-999;continue;case"7":this[o(190)]=n;continue;case"8":this[o(232)][o(240)]=n[o(192)];continue;case"9":this.y=s;continue;case"10":this[o(225)]=!1;continue;case"11":this[o(195)]=!1;continue}break}}async[(_Hg=I$1(176),_Gg=I$1(190),_Fg=I$1(211),_Eg=I$1(228),_Dg=I$1(245),_Cg=I$1(195),_Bg=I$1(231),_Ag=I$1(172),_zg=I$1(250),_yg=I$1(248),I$1(185))](){const e=I$1,n={GlJPH:function(t,e){return t<=e},jKfgp:function(t,e){return t!==e},yxrMP:function(t,e){return t===e}};n[e(243)](this[e(228)],this[e(190)][e(228)])&&await this[e(166)](),this[e(195)]?this[e(213)]():(n[e(189)](this[e(211)],null)&&(this[e(211)][e(231)]++,n[e(178)](this[e(211)][e(231)],t[e(250)])&&(this[e(211)][e(194)]=!1)),this[e(225)]=!0)}[I$1(201)](){const t=I$1,e={gvhcC:function(t,e){return t>e},EIPcq:function(t,e){return t+e}},n=this[t(190)][t(206)];e[t(244)](this[t(182)][t(200)],0)||e[t(244)](e[t(198)](this[t(228)],1),n)||this[t(245)]||(this[t(208)](),this[t(245)]=!0)}[I$1(174)](){const t=I$1,e={vKNQT:function(t,e){return t<e},RUXWz:function(t,e){return t-e}},n=this[t(190)][t(203)];if(!e[t(230)](e[t(169)](this[t(228)],1),n)&&this[t(245)]){for(let n=0;e[t(230)](n,this[t(182)][t(200)]);n++)this[t(182)][n][t(213)]();this[t(245)]=!1,this[t(194)]=!0,this[t(182)]=[],this[t(231)]=0}}async[I$1(166)](){const e=I$1,n={LOMvs:function(t,e){return t<e},vCbnX:function(t,e){return t>e},BQiGY:e(177)};if(n[e(196)](this[e(228)],this[e(190)][e(203)])||n[e(247)](this[e(228)],this[e(190)][e(206)]))return this[e(232)][e(184)]=t[e(176)],void(this[e(232)][e(212)]=!0);try{const t=await this[e(190)][e(249)](this[e(228)],this.x,this.y);if(this[e(195)])return;const n=new Texture(t);n[e(251)]=!1,n[e(227)]=RGBAFormat,n[e(171)]=LinearFilter,n[e(180)]=LinearFilter,n[e(212)]=!0,this[e(232)][e(184)]=n}catch(i){if(this[e(195)])return;console[e(214)](n[e(188)],this),this[e(232)][e(184)]=t[e(176)]}this[e(232)][e(212)]=!0}[I$1(213)](){const t=I$1,e={tKtFG:function(t,e){return t!==e}};this[t(195)]=!0,super[t(168)]();try{this[t(232)][t(168)](),this[t(232)][t(184)]&&e[t(235)](this[t(232)][t(184)],MapNode[t(176)])&&this[t(232)][t(184)][t(168)]()}catch(n){}try{this[t(248)][t(168)]()}catch(i){}}[I$1(208)](){const e=I$1,n={OmiXZ:function(t,e){return t+e},UrsuN:function(t,e){return t*e},WQnKm:function(t,e){return t+e},SYkFO:function(t,e){return t+e},xMPpp:function(t,e){return t+e}},i=n[e(241)](this[e(228)],1),r=n[e(233)](this.x,2),s=n[e(233)](this.y,2);let a=new Vector3(.5,1,.5),o=new t(this,this[e(190)],i,r,s);o[e(193)][e(207)](a),o[e(222)][e(181)](-.25,0,-.25),this[e(229)](o),o[e(170)](),o[e(173)](!0),o=new t(this,this[e(190)],i,n[e(197)](r,1),s),o[e(193)][e(207)](a),o[e(222)][e(181)](.25,0,-.25),this[e(229)](o),o[e(170)](),o[e(173)](!0),o=new t(this,this[e(190)],i,r,n[e(197)](s,1)),o[e(193)][e(207)](a),o[e(222)][e(181)](-.25,0,.25),this[e(229)](o),o[e(170)](),o[e(173)](!0),o=new t(this,this[e(190)],i,n[e(217)](r,1),n[e(237)](s,1)),o[e(193)][e(207)](a),o[e(222)][e(181)](.25,0,.25),this[e(229)](o),o[e(170)](),o[e(173)](!0)}};__publicField(_MapPlaneNode,_Hg,g$5()),__publicField(_MapPlaneNode,_zg,4),__publicField(_MapPlaneNode,_yg,new MapNodeGeometry(1,1,1,1,!1));let MapPlaneNode=_MapPlaneNode;const K$1=m$9;function m$9(t,e){t-=126;return M$9()[t]}function M$9(){const t=["setFromObject","kPhxH","GFCTj","renderOrder","zIndex","9243kRgWZL","getImg","onload","1045226Qhokfb","position","fillRect","qieED","lNkUf","coXYl","add","etrCy","targetColor","#8DABFF","controls","1611216ZtJRqY","hDchY","sort","handleColorReplace","17770uPEsWv","camera","getZoom","ayrCb","jLfoK","IWAcW","fragmentShader","amap","sub","center","tan","reverse","splice","cVsqI","#AED3FF","replace","crossOrigin","MkGUc","1srIUTD","target","sourceColor","wEbLv","\n if (distance(diffuseColor.rgb, vec3(","size","fov","SPIlo","wnsVs","jNLVq","map","Anonymous","epRyJ","_onBeforeCompile","getDistance","onerror","odfTa","img","cUiWT","copy","Vjnfg","minZoom","max","mapData","DXxin","TsTVn","YKIJg","fillStyle","#FCF9F2","EARTH_PERIMETER","maxZoom","#D0E9A8","updateSphere","lYbSB","1309644NjTRCQ","createElement","src","gQwbA","HnyPU","drawImage","radius","all","now","getContext","rotateX","cache","#include <map_fragment>\n","NfVhf","init","traverse","tilecolorReplace","idx","bdXsE","length","JoVfR","subdivide","GUWnr","min","FhjGD","removeTile","fetchTile","aspect","toString","level","lVslP","intersectNode","getTileUrl","0|5|2|6|1|3|4","sphere","split","6251Lagppr","indexOf","rFaog","options",", diffuseColor.a);\n }\n ","WMVCi","urGJr","function","#include <map_fragment>","4|2|0|3|1|5","jKJtF",")) < 0.075) {\n diffuseColor = vec4(","join","viewchange","564cIxrpg","#fff","root","SWtyA","addTile","#EDF5FC","vOeJi","SMscW","fmxKF","wPMLm","remove","#A9EC88","pzGrq","intersectsBox","tiles","push","set","ozMZT","5864085OjANYm","isShowBaseColor","scale","onViewChange","box","round","defaultImg","simplify","floor","dispose","444888sTsMha","degToRad"];return(M$9=function(){return t})()}!function(t,e){const n=m$9,i=t();for(;;)try{if(966909===parseInt(n(137))/1*(parseInt(n(259))/2)+-parseInt(n(171))/3+parseInt(n(249))/4+-parseInt(n(239))/5+parseInt(n(221))/6*(-parseInt(n(207))/7)+parseInt(n(270))/8+parseInt(n(256))/9*(parseInt(n(274))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$9);class MapTileView extends Object3D{constructor(t){const e=K$1,n={HnyPU:function(t,e){return t>e},lNkUf:function(t,e){return t-e},GFCTj:function(t,e){return t(e)},jKJtF:function(t,e,n){return t(e,n)},MkGUc:function(t,e,n){return t(e,n)},JoVfR:e(222),cVsqI:function(t,e){return t/e},lVslP:e(220)};super(),__publicField(this,_Ug,30),__publicField(this,_Tg,1),__publicField(this,_Sg),__publicField(this,_Rg),__publicField(this,_Qg),__publicField(this,_Pg,256),__publicField(this,_Og),__publicField(this,_Ng,new Box3),__publicField(this,_Mg,new Sphere),__publicField(this,_Lg),__publicField(this,_Kg,0),__publicField(this,_Jg,[]),__publicField(this,_Ig,{}),this[e(147)]=t,this[e(260)].z=0,this[e(254)]=-10,this[e(169)](this[e(147)][e(126)][e(276)]()),this[e(241)][e(237)](UnitsUtils[e(166)],1,UnitsUtils[e(166)]),this[e(260)][e(127)](this[e(147)][e(128)]),this[e(245)]=n[e(136)](createOffscreenCanvas,this[e(142)],this[e(142)]);const i=this[e(245)][e(180)]("2d");i[e(164)]=n[e(191)],i[e(261)](0,0,this[e(142)],this[e(142)]),this[e(181)](n[e(132)](Math.PI,2));let r,s=Date[e(179)]();this[e(147)][e(126)].on(n[e(201)],t=>{const i=e;this[i(235)][i(190)]&&(n[i(175)](n[i(263)](Date[i(179)](),s),300)&&(s=Date[i(179)](),this[i(242)]()),n[i(253)](clearTimeout,r),r=n[i(217)](setTimeout,()=>{this[i(242)]()},500))})}[(_Ug=K$1(167),_Tg=K$1(158),_Sg=K$1(223),_Rg=K$1(150),_Qg=K$1(147),_Pg=K$1(142),_Og=K$1(245),_Ng=K$1(243),_Mg=K$1(205),_Lg=K$1(200),K$1(169))](t){const e=K$1,n={epRyJ:function(t,e){return t+e},ozMZT:function(t,e){return t/e},lYbSB:function(t,e){return t*e},GUWnr:function(t,e){return t*e}};this[e(200)]=ua.pc?Math[e(247)](n[e(149)](t,.3)):Math[e(244)](t);const i=MathUtils[e(250)](n[e(238)](this[e(147)][e(275)][e(143)],2)),r=n[e(170)](this[e(147)][e(126)][e(269)][e(151)](),Math[e(129)](i)),s=n[e(193)](r,this[e(147)][e(275)][e(198)]),a=Math[e(159)](r,s);this[e(205)][e(128)][e(156)](this[e(147)][e(126)][e(269)][e(138)]),this[e(205)][e(177)]=a}[K$1(242)](){const t=K$1;this[t(188)]=0,this[t(169)](this[t(147)][t(126)][t(276)]()),this[t(223)][t(186)](e=>{this[t(202)](e)})}[(_Kg=K$1(188),K$1(202))](t){const e=K$1;this[e(205)][e(234)](this[e(243)][e(251)](t))&&{FhjGD:function(t,e){return t<e}}[e(195)](t[e(200)],this[e(200)])?t[e(192)]():t[e(246)]()}[K$1(185)](){const t=K$1,e={qieED:t(204),ayrCb:function(t,e,n){return t(e,n)}},n=e[t(262)][t(206)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(223)]&&this[t(223)][t(248)]();continue;case"1":this[t(223)]=new MapPlaneNode(null,this);continue;case"2":if(!this[t(235)][t(190)])return;continue;case"3":this[t(265)](this[t(223)]);continue;case"4":e[t(277)](setTimeout,()=>{this[t(242)]()},500);continue;case"5":this[t(223)]=null;continue;case"6":this[t(273)]();continue}break}}[(_Jg=K$1(235),K$1(225))](t){const e=K$1,n={SPIlo:e(216)}[e(144)][e(206)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[e(167)]=Math[e(194)](...this[e(235)][e(147)](t=>t[e(167)]));continue;case"1":!this[e(223)]&&this[e(185)]();continue;case"2":this[e(235)][e(272)]((t,n)=>n[e(255)]-t[e(255)]);continue;case"3":t[e(231)]=()=>{this[e(196)](t)};continue;case"4":this[e(235)][e(236)](t);continue;case"5":return t}break}}[K$1(196)](t){const e=K$1;let n=this[e(235)][e(208)](t);({IWAcW:function(t,e){return t>e}})[e(279)](n,-1)&&this[e(235)][e(131)](n,1),this[e(185)]()}[(_Ig=K$1(182),K$1(257))](t,e,n,i){const r=K$1,s={NfVhf:function(t,e){return t(e)},bdXsE:function(t,e){return t+e},kPhxH:function(t,e){return t+e},vOeJi:function(t,e){return t!==e},jLfoK:r(154),fmxKF:r(148),TsTVn:function(t,e){return t==e},odfTa:r(214),rFaog:function(t,e,n,i){return t(e,n,i)},WMVCi:function(t,e){return t+e},SWtyA:function(t,e){return t+e},YKIJg:function(t,e,n){return t(e,n)},DXxin:function(t,e){return t*e}};return new Promise((a,o)=>{const c=r,l={cUiWT:function(t,e){return s[m$9(184)](t,e)}};s[c(163)](setTimeout,()=>{const r=c,o={pzGrq:function(t,e){return s[m$9(184)](t,e)}};let u=s[r(189)](s[r(252)](s[r(252)](t[r(199)](),e),n),i),h=this[r(182)][u];s[r(227)](h,void 0)&&s[r(184)](a,h);const d=document[r(172)](s[r(278)]);d[r(258)]=()=>{const t=r;this[t(182)][u]=d,o[t(233)](a,d)},d[r(152)]=()=>{const t=r;this[t(182)][u]=null,l[t(155)](a,null)},d[r(135)]=s[r(229)],s[r(162)](typeof t,s[r(153)])?d[r(173)]=s[r(209)](t,e,n,i):d[r(173)]=t[r(134)](/\[z\]|\{z\}/,s[r(212)](i,""))[r(134)](/\[x\]|\{x\}/,s[r(212)](e,""))[r(134)](/\[y\]|\{y\}/,s[r(224)](n,""))},s[c(161)](this[c(188)]++,5))})}async[K$1(197)](t,e,n){const i=K$1,r={urGJr:function(t,e,n){return t(e,n)},coXYl:i(222)};let s=this[i(235)][i(147)](r=>{const s=i;return this[s(257)](r[s(203)],e,n,t)}),a=await Promise[i(178)](s);if(a[i(190)]){const t=r[i(213)](createOffscreenCanvas,this[i(142)],this[i(142)]),e=t[i(180)]("2d");return e[i(164)]=r[i(264)],e[i(261)](0,0,this[i(142)],this[i(142)]),a[i(130)]()[i(147)](t=>t&&e[i(176)](t,0,0,this[i(142)],this[i(142)])),t}return this[i(245)]}[K$1(273)](){var t,e,n,i,r,s;const a=K$1,o={wPMLm:a(215),gQwbA:function(t,e){return t+e},hDchY:a(183),etrCy:a(168),Vjnfg:a(232),wnsVs:a(133),SMscW:a(268),jNLVq:a(165),wEbLv:a(226)};let c=[[new Color(o[a(266)]),new Color(o[a(157)])],[new Color(o[a(145)]),new Color(o[a(228)])],[new Color(o[a(146)]),new Color(o[a(140)])]];(null==(t=this[a(147)][a(160)][a(210)])?void 0:t[a(187)])&&(null==(n=null==(e=this[a(147)][a(160)][a(210)])?void 0:e[a(187)])?void 0:n[a(190)])&&(c=null==(s=null==(r=null==(i=this[a(147)][a(160)][a(210)])?void 0:i[a(187)])?void 0:r[a(147)])?void 0:s.call(r,t=>[new Color(t[a(139)]),new Color(t[a(267)])]));const l=c[a(147)](([t,e])=>{const n=a;return n(141)+t.r+","+t.g+","+t.b+n(218)+e.r+","+e.g+","+e.b+n(211)})[a(219)]("\n");this[a(147)][a(160)][a(210)][a(240)]?this[a(150)]=()=>null:this[a(150)]=t=>{const e=a;t[e(280)]=t[e(280)][e(134)](o[e(230)],o[e(174)](o[e(271)],l))}}}function m$8(t,e){return t-=236,M$8()[t]}var s=m$8;function M$8(){var t=["AUfnP","10001:136","ywwRV","10001:124","oWHlx","10001:30","10001:15","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAT4SURBVEiJrZdNaBtHFMf/M7uSd1VbMCL4Q8YYbAimCr1Uh14KoUaG5lRIY5FCEuUSy6UJdg1podAIQpu0gTqk0MgUUschCXIKvfVg41IopCEo4BwUTIJthGPFX/FiJdGspN2dHizLWluS5bZ/mIM0M+/33pvdN2+BGjQfCSm56enTZjp9w1xdTZobG1mLc0twbplLL3RraSllrKzEcvfvf/by7Fl3LTZJtUk+NdXu9Pm+IoyFrIUFhzE3CyuVgplKAbq+aYAxEEWF5PXC4feDNNRnrdW139aj0cHGK1eW9g3OPX16Vm5puWwtL7v08RgsTaslEFDG4Az0QO7q4mJ9/aLU3n6pJrCIRGTzxIk7hLFjeiwGc262JmA5B9RwP6yXL3+Vb98+TiIRoyJYRCKyGe6bxOs3h/nYTQjOKxomjIEAVTNBGYNyKgRI9E8pOhIohdvAxuzsOBTlWObqcEVjss8HpTcIsQVUVeQmJ5CPxyvucfWFAULuyZ2dvbvA5uLieajqdzx6vWIUdYEeSD4f9JujxTVbKTXicWQnJ8ruI6oK18AgzLW1c86DB38EAAoA6aGhA8TtvlALlI9EbWssTUPm6jAknw91gZ6yewXn0GMxyC0tl/nUVHsxYiOZHLNWVk7o47E9oQAgv+2zzRtPEgAAtS8MM5GoGLmrLwxSX/+z1Nx8RpqPhBTWfXRUv3vHIQrvZiWo4BykoQGucD/kQ4eKI/fgb4hXr2A8fgznh0dAG9xl3wZzbhbOD7rfCcnPr9DWI5+eFOm0q1yKd0L3kuAcfCRaMe2WpsFaWHC0fjRwnEpdXe+VeyL3C60VbszNQuroeJ8im+02UynbpMPvh+z3F8+UMFYc1OPZZYx6PLY1AIpw2Wd/HqxUCshmu2VY1gGh2yNyBnrAo9chOIfjXT+UYLBqlK6+sO23Hosh/ygO/eYoXAODeH3h6+KcmUoBTmczJW63KkrOlzIGcF5zba4mS9MgNK2YhU2vdBCn00F3Fmvxn3G7Ve4moiKXNaAo2+CCh7TUy38pyhigqrbsEcYg0mkug+trktfbYpRM6uMxKKdC4CNRGE8SeH3p221jHs+uM82MRGGtr2//oesgqgo13I/cjmJCFBWgdI1alP5FvV7bpJFIwEwkoBYAonBWQtPsgIKs9XXbGmCzihnx+K7LQ/J6gbq6KWolk3/IHZ27jGUnJ4pwoqplU1lORFWrlk6H3w9zZuYBfTU2dldqazPKnel+4XtBKWMgbndm8fefxggAmM+f/yJ0PZQpFIyd+r8uCaU3CNrYeEtubz9JASA/PX2RNjVxqUzKd0YOAPlHcduoBUoZg9zVlclcu/Y5UNoIzDwZQGPzcObqcMXaXBfo2SylJff2VnuzF1QN9wOcfyG1tn5vAwNA/tmze4SQjyulHNh8OJyBHqDgHGEM+ngMRiJRcY9rYBDQ9fKtD1DS7JnW4dL2plIUAoCosoaoKtSTp4D6t6o3e0V4ob2t1grtJamjE0owCKFp96Rbtz6p2t6WylxcPE/c7gvGzIwrNzmxr4Ze6Q2CNjVljBcvvtxq7naq6idMemjogOvcuR+ox3NUpNOufDwOM5WC0Pl2ihUFktcL6vVC7ugEbWvLC00bzSUS36jd3cmavK2k+UhIyT18eKb40ba8/Mbi3LI4t8yNjay5upo00+kbuenp0/ORkLK3ReAfK9C2WFnsW6kAAAAASUVORK5CYII=","mapWGS84Tile","8|6|12|3|2|10|11|1|0|5|7|4|9","10002:3","amap","10001:22","BZqNS","10001:36","10002:15","toLngLat","10005:17","10001:152","road:borders:land","length","type","4033017VwXbaC","10004:1","10001:29","3|4|1|2|0","10001:35","4|0|5|1|2|3","vJrXd","10001:27","10001:131","uZvWw","regionParser","10001:102","OEFfQ","10001:26","EDCiG","10005:41","10001:28","ixseM","GSKKK","10001:24","oOMco","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAUySURBVEiJrVdtTFNnFH56AXvbChSKbQfN2pp2iKBIYoqZGQPdNH5usWNEg6YSYYuhLNscGM30CtmmU1wmZjFjIUQRg8y5sahb3FyDcXE6U0fW4KCxrbbQFgqV0XtbJbgfWqX0Xihk59fte07Pc86b53y8QAxSaKDIq7e6tg/7R5tcHp/D5x8JBWhmPEAHx+/1eYP3+r19TvdA20+dNyvXGKmkWHzyplKeu3BNuTRPs1cqSTFYHX0Jll47bC4P7E43AkwIACCVJEMoIKHOkKMoPxfiJFHIPTB8ftfRpvcvfkW5Zwx8u9tqVKbLDzo9g8LjLR3wDvljSQTSVDFK1hZgyUIN4/ON1GnV6Z/FBFxIUfHHtxha50mSixtaOmDpdcQEyBZA7Xtb4fE9+LaqtXmziaLGJurjJoOefGfn5eDDR+v2HTsFl8c3K1AACDBB3OjqwYr8xQv1uvwCc6LotN1kGg/rIzL+u8d+VijgF394qHHWgGxSW7UNPKA95yXV2+EzIvxhu99fPU+SXHyosf1/BQWAQ41nMU+SXHy722qMAN5QQaWJkxL37/vyFCuJSta+ilOff4T6mgqIBCSrc2mqGPU1FThxwIii/NwIXYAJoqGlA8p0+cFzF64pnwEf2bPjqLnbKmQDFQlIlKwpgEhAQq2QRTkNS5l+FdQK2RNWrymI0lt6HXB6BoVL8zR7AYAoNFCkVCLWt13sZHUYYIIRt2BzsZemzfn83GJlr4TjLR2QSlIMhQaKjGs68UUZOYe/6fwv11iNAeBGVw8CTBBtlzo5y8tidcA79ACWXgfOX/4dj8bGomwCTBC5C+bHvbxk/t34vAXaZd9NASoSkFhfpINuUSaytSo00T/D7vJE2KgyZFixLBe6RZkIMCGoFTK0Xexk5Yul147Vy5e+QtCh0Equ6wMA3eJMrC/Mh1QiRo5WiTL96igbY+kbz2zCPKjfXc7qz+bygA6FVhKPH4+n0UyQE3gymXK0yihmiwT8qP9xsd/udIPkJ8iJlKS5Aq/vAauRSEAiR6ucNpiZSIAJgZyTkEBMNaB0izNndD4TIZiHD8fYrgoAa7YAoFbIOK9yOpFKkjE8MsoQNBMcVCnkrEZcmYkEJFQK2ayAhQISPB4xSBA83lV1BruTrdWHsbX6cMRZQ0sHNhnrIur5XaoBN7r+efbb5vRgk7GO1ac6Qw4hn/8rceeu60q2VsUZYYAJIjCB9QGOCojFBnhCTPOd3utE/Znvz2hefGFMmirmBqend+r1PW8WAxzbijRVjBTxXLr2xA8niUsN1IjLO9RSWbqRG/jpfgUAAz52p96h5yXJFVzJ2gJ4ff5zpmYqSABA501LXYY8jcnmYPHEDCYGwRkoHQ0sTRUjL0tD7/r0mw+Ap2OxTP/aXdu9/j3G0o2sZWJzuuH1+WFzejizsU9ou7ZJvTy8f/lH/j3w49fUIDCpe3T12Nt5wFv7jp2cNquZSH1NOWgmxL76AEBVa/Pm5EShqb6mHFORLVYRCUjUVm1DfHycqbK1ectEXcSWaTeZxs2JotOvZy3KWl+kyw7P4dlItlaJj3duAc2E2subG9+cvN5yNmrb/f5qcVLifnO3Vcg1W9lEmipGZelGKGRptKPPvXtJlqaBzW7KJ8yGCirtyJ4dR6USsX7YPyr87Y+/YHO5QTNBhCeaSMCHSiGHOkOGbK0KGmX6I69vuPlPs/UT/brls3sNhKXQQJFXrpsrwo82p3sg8OTRxoz7/CMhl8fnGPaPNl291bW90EDFND3+Az8sOmdUBvK3AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAR3SURBVEiJrZd/TFtVFMe/59I2hUc2C6RPcLjQuIwsaRPGH0IWYxfsEpuMGCckoH+AyfzLARqDMhL3x0QWMzfAP9WxmA1UXMxIxERgqywGEsOINCEsYgnhx1YGdGU8Sml5xz8qUugPHuL5672+c+/n3HvP+d5TQIPZ29nomuTqRWXj2oyfpxYUNbgSZHVlndWpJ+ralJ/nZvwb3/U84HdfvcEHtMxJyT7eHOPDJ3LQKEuo+nOR9W4vMOljeHyAEor4yBIgGYA8E6HEApiMFJxbwY/1P+G9nmp6tGfw/Vk+l5eBS9N+TmsZZMwrWtYBmCWg0kY4nkOBxwouHs2iZk1g+13WtR1DhyyhrGVQhdurDRgvgGaHwKOn/EPtOFW4TlI4Idh+l3XXC9C7vMb2pgGGsv7foNHwxpcFUgRcVSNwRMO3gUe9/L2kR1ltj7o/4g779BUCiLpsMpVv/iY2HyaWuF6WUNb06/8LBYCmAYYsoez+LJ/bBj7dwVmZqbjQ0KtqSqLSfMK3ZQKtToJZ2t1fWQdaBlXkZeDSzTE+/C/48ilcGZ7jNC3QShvhbCFBMgAWE6HNKZBn2n2c2wtM+zntRA4aAUDY29lolnCmY5Q1QSus2wtBMgBtToESS1JJAAC0DDJkCVX2djamfPX5x28b9Xj91tjeodFWlEsgQtLyU0JAQTZSXjxEHlGQjaJ+z/6gm1ZhJVTakvu5vYDVrL6kC4RFyaQvcSbXFZOmbYyGS3rgy+H4RzfpYwTCokQwc1YioThbGAttGVTR6d6atNPN2FmCpfmEuuL4wXp8gFHHz+pMqZTqVeJHV5QbO7jSJtDQuwXq+4vR7BAxflaZAMTOq4QAo470Itn91NCrYme2S/rI9t8eZ9weZ9QVR7Y22rrHGTW7qJ9uLYywpIc+3nbPK8C8wohW1pqe7SJzvo9hMTFanVur9vgS67wsAb4AB3RKCAsWE7K1XnttToGVdUb3g8h76VEg3aA9+SQDQEQLuhSo9/JMVD40s7uAALEr7h5HzIqTWZ6JkKpT+3Vjj8Udq8zlnW5tEX/9WgSwefa71e1OK7EAIw8xJK4OofNIJoW1iH20yelAumFvY8wSkJFKq5/cE9+In9+i5dll3EhUd4mSpMRCKM2PPyZRvlTaCPMKbrmqaU0AwIAHFw8dpIBVjnUemgH6PdrOHwDcXo6r12YJKMyh1Q9+wftAVJ38PsN1zz+DqzU96r5bnnjQZofA03V8+EIGfbYNDAB/PFS7iPDG+T7tK9RirU4BJYT4rQ8A1I5TxQEjuVqdQlNnsZtJhki/lSLgqhlDZfS3bWDXSQpXjcChhNDV7Ngf3CpHxAZEXTs7TCBJQz+xxPWZqbgwPMdpHaN7a+jrigm5B2l1cgkfHX+Ovojnl7T6T3dw1uVTuGKWcGYpwGn9nsh9qqwD3n8CkfSAxRRRJKsMHMmkkFfB9d/m0PTmMZrSFm4Cs7ezsW9i453NP23TT1RlJcjqSpDVBUUNzvh5alHZuOaa5Gp7Oxu1zPk3AczbrAArvrAAAAAASUVORK5CYII=","ysMpZ","1273368KURcQG","dTClF","ycmKk","GGlcr","NyHfV","10001:33","NHqLe","10001:13","SHNZB","#ff6600","sinh","ycEPL","10002:6","road:roads:highSpeedRailway","gLzmP","ZCApd","qfxwg","min","center","10001:11","x-vd-v","skKnj","BJhTO","off","10001:18","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAUNSURBVEiJtZdtTFNXGMf/be69a3vZxVsZFWg3XkyorbBJNKMYFggBVOIH48qicYtEYrJlM6ExZpsf1JhlL1lwybJ92uxmCGZ0RrNIJhKFaaRdYmS+tKtLacUWayv25drbym2j+8BgLX2h1e3/8Z7nPr9z7vOc/zkXyEOVRqPkjMvV4+f541Ph8LQ3ys+FhbknYUF4cjsUemwPB+85wqGffnTcfl8+MMDkk1OUa/BL27VXusqrD75M07uvBx6SZp8P1lAQ1mAAnBAHAKiKaDAkBS3LQl9VgxKJZO5uJHK6a3i470FPz/2CwZfuz3ygLpZ/5uDCsj7LBDw8n89CoKRpGOrq0VpWEZvh+aPrSko+zQ88NkZMaDSDSlqmN1jMMPt9eQEzTcDU1g43H/l5o82+A62tiezgsTHCvm7daGDuccueS7+BiwvPBE2Gf9/cAkIsHldPTrYnw1PAEz7fEEOS+s5zw88FXCpTWzsAkalJoehOA98KBA4wFPm5/sJoSj0ZkkJ3dTU0K1hoWTkYioSKLkpJ7OYj8PA8OEHAOY8bZr8vLcfI5i24E+H2vbGq4utFcPngYMkf27ZNbz3/qyz5BSVN4/ymLjAUBQAw+30w+zLXXMuy6FSqAACcIEB/cRTWYHBxXFeqwLcbm6MnXH9q9msapgkAONvR0T/mnZEt7dzuqppFKABYg0EMuaYygnupNf+ukKLQWaFKAZv9Pji4sKyrvPrgfmAvUWk0SpRF9PZ3r1zKmDAlea0avbXqZeOyqc8ygYtbtu6uNBr3EV80N7/jj8bSVttbq0anUgVOEHDo2tWCAEca1qNTqYI1FMSIx7343MPzuB54SH7V0rKDaCkra/zGbkt7+XDDegDzjWNyOQsCG+rqoWVZHHtdB00SGADMPh/erlndLH6USLQl12JBnPB8exgAwhl8wBoK4lEi0SZ+iqclmYyi7/dndy1gvpkMFnM6OBiAjCRWiV+SSqXuSLoPj3jcWbdOXmCfL+PEOSEOGUGQ4mUOqP9NRDQRTzAUSWbz5WKSgq5UkXdChqJQTFJZx1VFNB7EYjEiHBdmtay8LNuxx1DUP17734ghKYggmhUTEF3WrmBzBhfS4cvFalkWLxLEBfHVB7MXdYrsn5ITBGhODeFwHiZy+NpVNP5yJidcX1WDca/XIn7PYjlZL1+ZUNJ0xkCGotDfqIO+qmZZ8J5aNQx19Sn+niwlTaNUJo0euHz5hDiwaxfn5LiBY41NaYFuPgJg/rDQsrnLAQAqumjRy62hdFMy1NXDE+FP3enpeUwAwLDTeXTP2rVv6UoV0uS9Z3I50Vu7ZhGqPDmQE2zb3g2GomANpnr0wmpbyyqir50+bQAAMQB8tGGD82bw4cf9jTowS7aCyTUFazCYV42/+8sOThDQf+tGGtTU1g5/LHbk3s6ds8AS97ji85pEEL2pvzC6LKQQjWzqAhePp1x9xMkBG232HfIXJOMjm7qQrdkKEUPOewAhFo832Ww7k8dSwGhtTagnJ9u5eNxkamt/LriuVIGRzVsAiExLb5hADqO+FQgcKJVKD415Z2T9N28UdKE/1tiE1Uxx1B4OfLhwuVuqnCdE+eBgydmOjn5lEb3dH43JFhqNiwtYONEYioSWlUO7goVOocCr8pXxuzz/w/A95yf7NQ3Tec02myqNRsmQw7F34afNEQ7x8z9tc0+8UX5uKhye9vP88TMuV0+l0SjJJ+ffEi03zQDiLXQAAAAASUVORK5CYII=","MRbwF","10001:6","Point","nMyft","#444","10004:18","LBvlY","MtiNN","udKDO","qmuUN","CNHQc","region:","_callback","10002:27","10001:138","woyTK","replace","poilabelParser","name","VKQXt","YGJyK","10001:54","wvvwY","10001:41","10001:117","xDuuQ","ebMyo","vroJF","eBCrc","10001:49","THtLm","#9933cc","isArray","vNvci","KVSKq","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATiSURBVEiJrZdrTJNnFMf/xZfRi9BCsVRgKd3oNsQNSYw1WUbKjB+8zsiQaJTURZgxFre5yaYR3kCWwQQWhezDSJAAYpC5C1G2ZJl0GBPRmQqxwdFmbbGFtlBaCX0vanAflhJK39rL9v/09jw9z++5nfOcB4hCGi3Jv3lv7LDXt9DhcHlsHt8866foRT/FLE5OuZnJafeU3TnT9+vw3ePbdGRKNH3yXtR49fotxcbC3DMyaarWbJtKNJqssDhcsNqd8NMsAEAmFUMo4EOZJUexugCSFBHrnPH++GlLx8eD35LOmMH3x806Raa8we6aFbb1DMA954tmIpClSVC2vQgb1uXSHs98vUqZ+VVUYA1JEm0HtL1rpOLS1p4BGE22qIBcA6g7cQguz+Pvq3o79+tJ8tny9lUroV0fHvuNefJ0R82FbjhcnrigAOCnGdwZm8C76rfWlWxSFxmSRZesev1ioD1oxg8mrFeEgqTSk43tcQO5VFdVDh7Qv/61nH0BW0Lgw/Jo+tQaqbi0sb3/f4UCQGP7FayRikvvj5t1QeBdlWS6JCW5tuZ8d9SHKBb5aQatPQNQZMobrl6/pQAAAgCaTh9pMYybhSuhzdUVUGbLY4K453w4WtsaYjeabLC7ZoUbC3PPAKhM0GhJvkwqKekbHA75c6zQSGrrGYBMmqrVaEk+UXP0vXKvbyFktlzy0wyu6e+gb/CPuMDuOR/MtqnEet3e/QmFb6g2D42MRuUoEvBRtq0IzdWVQXZZmgR1VeUQCfgR+zCarFj/6ivvEBTLbrE4wmY2TimzM4KhJw4tZSyL3QUgEMd/hfhaHC5QLLuFeP58MZ2imZjAXFAA2KlRB7Xv1dWH+FjtTvCTEuVEaspqgdvzOC6wn2ZgNNlgRGhaDcw81IcF/6XERCLCBRURfE0/AiHH3kZaRYJ+8uSZSJCU6I9juWVp4pCDtnxQh06dC/WRiuGdX6ATKJqZzYkzXv00C4vdBbfHB7fHh8Dg/TSDs+e7OH2EAj54vIRZIoHHu6nMytjHdQIjgxmcbPxu6XexugC6g7vR2jMAq4N7j5VZcgiTkn4nHv7tuJGvytmHX0IzV6waGhmF1eEMe7ACgzM8NN0mmi//dPmHc1+0ydIkxMrs9cBkw3qVgrODsm1FnHb33OOwYFmaBKmS1dQHZ3/u4gGAeXL6Is2w2poLoftSrC5A2faipViNRlzxCwC6g7uRJU/vfj0nu5wAgOG7xvo9WzeX5asUgpWlztDIKIwmG8q2F6FYXbBkD5ev3XPcOUGWJkFhXi5V/lnTJ8CyIL73wPRR9tr0b042tCNcaAUyFQDOqy+cAn4UxVQrX177dRAYAMYmrP084H2uJf8vaq6uAEWz3KUPAFT1du4XJwv1zdUVMe1pOIkEfNRVlYMgVumP93YeWN4WVGVa9fpFQ7Lo0ta8N/N2Fm/KvzM2EXbZIylfpcDZYwdA0Wx/RWf7npXlbdhEbXk0fUqSklxrGDcL+waHYyrojx/cjeyMdMo25fx8Q14u52F44Q2xq5JMbzp9pEUmlZR4fQvCoZFRWBxOUDSDwI0mEiQhJ1sOZVYG8lU5yFVkPnV7vJ1/Gsxflux4O77XQEAaLcm/cdtQGXi02Z0z/n8fbfSixzfPOlwem9e30HHz3thhjZaMXIYA+AcfiyTGkHk4MgAAAABJRU5ErkJggg==","root","10002:1","mapTile","rQMzl","GInRF","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAWDSURBVEiJrVdrTFMHFP7AltLSlnltvYxbBmnrRqdWXBiMEDsSJehcHA8xQdhEswgZojMY3GIyuxkfI6CZhoUfk5EFbOYDTRa2MdTUbYo4cViJEGw7Cr1Ibak8Wm4vGrY/tpHa1kL2/bq559zznXNyXhcIA6VZ2uhu/cD28TFXo83qtIw7pthpl2eWcbGzDwcdntHBsZHRIeePf/5k2FW54aQ4HJsRoYRtLdcTV2cmH1hCikqHBmxco4HGiMkO2uwA42IBAAQpBl8YhXi5FGnZKoheEbCOhxMX6/a37P325+rReRP33bFUypIkx0aHnQJd3WU4bZPhBAKCFCOnJB2q1ETmsX3qUOIbcUfDItZmaTnF33x8hiBFhbq6DhgNdFiEgRyoqMnHmG3y/Jk9p4u0eu3T5+WL/EnLmnZ1zLBPNtZXt+KR9fGCSAGAcbPo7TQjLVv15tv56RpRj6BFP6if9crnRPzgrvUsPyaqsLZCt2DCQKioyQcQcW7ZKtkW77tI7wNttFUTpKiw8au2kEaUagpHzpchpyQd/BheWMSNX7aBIEWFfXcslXOIq7JqJWJCeLC+uvWlRbSYFIMv5GF9STqOXChDUVU2CDJ0BzFuFrq6DsiSJMfaWq4n+oh3NxQfv3/bIgi3chcCo4HG6LBTsDoz+QAARJZmaaOJpbEF7c1d8zLU3tyFQ9uaoKvrCLvVdHWXsYQUlZZmaaM55Z9v/mjC6Zp3tL/O01EAcNomMTRg41ZqtxZxklOT3rl6tnveRpRqCvFyKSiFFADAuFg4bZPo7TSHzIDRQCPjvRVrOCwzs3bEbA+bbGWGHABQUVMQUCevXAOjwYpg027EZAfLzKzlYPZfCeOaCUlIyaXILV8DpVoWpoMy7PhiIwLNA9rsAC+aG8cRETH8YKnxzt20bFVYhPSzBWIyWEGbHAF1GBeLqGgulxMRZE94Z22oHjU+IzAZrDAaaDBuFpRcCkohgSYvBb03TLjXaQ74LYdlnjzlC3lcxs3OEeSWaeaQMi4WRgMNo8GKEbMdRgMNfgwPlEIChVoGTV4KKLkUTtvks1XJQ1q2CnvXn3whoCmnm+F43KyDkkte9U+3yWAF42Z9aaPNdhCkGJRcghUZCuSWaXwVfe+GCQDAF/JQv60VmrwUrC9JDxgpXxgFREY4OIiM+CNeId3in5Jrl3p8LZNTkg5KIQFBin0R3eroQ3tzF3YcfB+/X+rBYlIMpVoG/8z5I14uBY8fdSXS0v/wqlJNvaBQUZOPipoC5JVrfMZokx2HtjX5epY2By6gUEjLVqH/9uDNyOYTV3QJy8in/kX0fOt4DwKvAy+LKhgIUoxYQjjdcPT8D5Gnftk9+cg63lxUtW5BxvzBj+EFXZc5JelwPpq40KTXehYBwNrVm+4tT5fvHH5g4zptUz4DSao4AMDKDDmSkuNAJhCg5FIkqeJAyaVITk2EmIjBygwFklRx4At5SE5NhFItAzeKg2sXe9DfbfFFu2lH5vTXHzZu6Bz8bdrXxPf/+udTMoE4UfuJbsGpDAbvTPC4PPspJVkD+J0+A3eHz0UAm+urW/9X4n31RWDcM4FPHwA4s+d0kTCWr99XX/TSqyIc8GN4qKjJxyJOpL5lz3dbn5fNuTL1g/pZUY+gRbV2lerdvJTlvZ3mBaddqaZQdvgDMO6Zc9+XN+T6n7dBD3raaKsWE8KD929bBO3NXfM66Iuq1iEugZi2Djo+U72VeCqQXshfmKqsWsnuhuLjxNLYggmnS3Crow8jZjsY14zPEb6QB0ouQbxCCqWawmuvk0/GbFNNf1/vP7yxONMSlrfBUJqljb7Z3rvT+9NmGxpzT7s8s9Muz+y4Y4q1WZ2W8TFXY7d+YHtpljY6HJv/AUPdZb44jkljAAAAAElFTkSuQmCC","#ff3399","285292Ciueat","#339933","aLbTB","DmOQX","aLsgL","bHpZU","LUQEO","dispose","road:borders:China","dRxBF","pow","lqIFq","road:roads:highWay","10001:38","10001:108","wikLc","BLKMJ","TzDHk","level","TQliu","vBjYi","OXPMS","shift","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARFSURBVEiJrZdfaBxFHMe/uzt7O3e53KbJcddUSCTFBCsJNKVSrIKh9Ckv0holeSg5HwKiBRWsQh9cKKIo1AcpviVRoaKx8SlPohewarGahoYEGkiul5Kkd831srm9vd3b2V0fSuJd3Nxd/nzhYG/2N/OZ+THzm+8CNSiuJGh6thAzNTasZ1jS2GCmZdgOMxwn/8gy8o/YipYpfr/8j/72LSUTqmVMrtLLxd8LrdF28bIk84O5VUtUlyxoKYZ8moEZDgCAygIEyiEYIYh2+uGr481Clv10Z1h9t0eJPNw1OLtoXAxExU/1NRaYn8jBUO1aFgIqC2h9sQ6Nbb6CseFcCR0RP6kJHFdccjxWvC7JQt+9iQ2oS1ZNQK8JdA00wFi3f5we9fX3KBzbERxXXHLyLfazpTsvz91QwUx3T9BS+LFzMjgBk7evkbOl8DLwetL8QZD4vqmRx/sCblfXQAM4YKyhVXpts43ffNBWrUuSLPTNjasHCgWAuRsqJFnoyy4aFzfbOACIKyvhF96PJqe/zga2b6Ln32wClYUdB2WGg6mRbNXNJ7eIePYVWV+eLh5rO+1P8gBwYih8NbtQ/B8UQEUoABDKQ24RK8YAgLpkQV9jgWi7eBkA+LiSoFQWzidv5qt23q/mJ3KQZH4wriQo6TgXuWDmHM/VlspQ7bKjRSQOTe3SrsCGaiO3aonP9R3uJ01t0qkHf+pVO2kphvWl4tZ/Kgtl4I7eUFns8t/eY6pLFpqP05eIbeKMlmaeQaUKt0sIV1hhtJOWPGNHsJZisE2cIa7rhm2jeqF4OFMoS3UwQvDUyUDVftuVTzPwIg4TX5D311KHgxERXEm9IVLF+2VHMcOB4ONEwlW+oP4DRwmCUbInmJeIbbmMUF5kZuVVp2YMlB65zUtgt6KygKLmFAgz3LW6CGmulu6mZ3xlhWKvqRYoB47j1niXd36rJYWE8qCysPUjlK/ax0vBCIEg4Rc+v+z8WkvJOyhFO/3ILJq3+MR4/rv6ZpF51eRa0+kV59VGZQFSPa/fG09/wwGAtlocsYru4N3r62WB3bHGPe9kQ7Xx11eZsraO3hACYeHb0BHfBQIAK7P6ladP1b8ut4j+0iJxkIaAygIOHfXpf3yeeg8ocSCZBeOdQBP5Ymr48b4tjxe0a6ABdsH9INgsflYGBoDsfXMMHF7dnvL9qjvWCNt0vK0PAEyP+vrFAD/ZHWusagBqEZG4J35LwOSdEd9A6bsycI/CsdvXyFnbdMa6Bhr2BZdbRHS/0QgOGNvuMIEKhl5btS6JIf6j7EIxkLyZ35Whb++tRyBMdD1lfXiojX7pFVfxoMaVlfCJofBVKgvnzZwTSM0UoKUZbMPdmgihPOoiTy4QuUVEfbNomaozmpq3Pm477U/WNNudJ5CgK3fzQ5sfbfk1K28ZtmMZtmNsMFPPsKSpseH0bCEWVxK0+ojAv0Wy18UmSsUVAAAAAElFTkSuQmCC","10001:123","LsTpU","hLnyF","EULGS","EhYjn","70GQOWbF","Lfikj","vQUKF","qiLgI","10001:69","#756BF5","WOzwU","10001:21","sdwLl","10001:7","MultiLineString","DMdQS","viewchange","mGVjr","#555555","qsDIJ","10004:4","xOwLS","#333388","floor","LlFda","bRmCA","OTYIb","traverse","AYRSl","#000000","uNUlu","10001:165","aErXA","#3399ff","fRpyM","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATCSURBVEiJrVdvTFNXFP+1wFqelJfNB/iaWCJKUyX9sKLAtk6auLBkxYSooDBj2oiOxrk4J4yMBCuE2UyjC1umcQiMIfuDuJnAJ4IrEQnO2YQ1SFMHtJ3yBhQmtLy2YnAfSBlU+vpg+316755zz+/cc88991yABzRGnbhzoE/v9j6pd0wyzrGZqYDHPzvv8bPzQxOP/EMTj0adk8wP1+93vZ9pfDeej00Bl7DuTluyRp5RISUTdA+YkRiLywb7mAv2cRe8fhYAQJMU4sQE5Iky5CrVeHldfGD07/GfjtSf/fCesfGvVRPfHbYe35K00TTiZoiqjjow024+CwFNUjiizsNrKUrf2MxkdZp081lexBqjJvq8/lKLlKTyz3TUweKy8SJcyYHLReV4/MR9vbTRUGg2mp8tlUeFktYfa+70zT3VGlpMcE4xayIFAG+ARfdDC3Yr1dv2ZO7b2b/Ocs1hdswH5ctW/Jtz8EeJiMg/2FC5ZsKVcKmoHABatydvLQiOCYMfNsZZJiWp/NIbtbwNqmQKdJ34Cs36KkhERFi9srZaSEkq/+6w9fgy4nRjIZUQT54uaTFxJpFERODcng+QnaoCAOQq1ZCICciTZNgpV4Wd5wmwONNRhy1JG011d9qSF4mbjlZf6B2yEpEy98COHGTLVajUFoMmKXTbLQAAZtodMQktLhtG3AyhkWdUAIBAY9SJ20o/n9R/U81JTJMUbhrOL/7fd9lgaDFBIiLgCbCcpEttfF9cM/fOpyXxwlN7Dh9ye6YjrjZdpnjhX54o400KLETmATMSU5FfUijMSlFmtVt7Ik46os57YSxXqQYAZKeqcNNwHjRJRbRjcdnwarLiTaE34NtlH3dxKssTZSsa1SrVkIgInHyrCDRJoVJbHJHYPuaCN+DbJcTz51Sw7oZDcGWhkIiJxUQD/g0/J/G4C7Exog3C9XFkbKT9zeY4KqGycE4G4fWzIF4SxQgjXFCgSYrX3gURDH8kCH1z/mdx4vCKwWLBFxIxgdSk8OGmSQqT3mmf0ONn3Vz7whXmcOAKd5yYAAQCtzBaGHVbzuFh6Pnlg+xUVdhwyxNliBPFdkX3P7bfUskUBStqAcgw6VZNzIVcpRp9w9a+6JobV7679cnVL2mSig7N7gPbc9YUamDhvF7salk2RpMUKAnJvnf5apMAAAaZkYbZp36docW0TLFZXwWubYhEHHqvV2qLkULR36ZJtxyKBoBfBnqrC7K0+1UyRezSW+b/bAhoksLrm5VszjnDSWDJIe4Z6j+Rsl568WB95aoKP1/Sy0XlmPGxHyvo5M+WEQPAPcdgq0CAfaEh/69o1lfBE2BXbn0AoLTRUPgKITE366tWVa3CQSIicKmoHDFRUeZTDYaipbJlXabD7JjvX2e5plG+vbVwR05a90MLvGsMu0qmQO3+j+AJsK3HrhzOC21vwxZqG+MsS4gnT/cOWYmve35eVUNfqS3GJopm/xj7szwzRfnFSnqcN0S6sZBqOlp9YQNJ7XV7pol2a8/i8yXoSPD5Ik+SQSVTYBu9aW50eqLRbP+1pviNvU5e3oaDxqgTt/9++2jw0eZwj84uPNpm58dmpgKOScbp9j6p7xzo02uMOjEfm/8ASLDpDGPzmCYAAAAASUVORK5CYII=","QnmSa","xrXvo","forEach","EewPr","normal","oAfBT","wUCdb","&lv=","10001:59","road:roads:secondaryRoad","MultiPolygon","JTyuM","10002:8","67383GIAPpF","LaANq","WkslP","SpBga","XwtyO","YtGEb","roadlabelParser","10001:46","dZdFE","10001:1","lvHMo","jZLNP","fzphL","fEiYW","#333","10004:2","mdPbc","map","lTIso","rZfii","10005:54","filter","Yigpn","nbKGm","FnyCR","qiYYv","HZQvZ","fKPkO","PfSqi","request","10001:16","hClGo","SnZVS","10001:12","build","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAR8SURBVEiJrZdfaFtVHMe/59z8661Jx3IzprWG6oPtgxOcFh/WUSh78WHY1lo6N0lhbErdcD5MIegCJTh8WKE+SIubQ6dSa7figxuMSLUipdJJNyR1SEvsEup6m2bNbtKb5J7jQ9I2ae+9pu1+cOHwO/f3+5zf7/zOub8LlCE84HPk7o53acrSJbYUi7CHcZWpCuOqwrT4vRW2OBfT4tFB7XboncW+N1zl+CRmk+lbw16Ht8EPp8fH7s9YWTQMJkfA5Qh4JpV34PSA2EUQyQuhrhFErFJZYv7ayshHZx7rHprfMlibu3OKuGvO83hMzIb6wZNyOYGAOCVYGlpBvfvSfDneI+x95uOywDzQZOHHP/sGLnd7NjQAFg2XBdRbgK3FD/Zg4XvhYncnCYzmDME80GThp7+6yVPJpsz1XkBNbQtaDLe+cgZEEEZJ37FDxfASMLsX/o7bK9ozg/4dATeK7VU/CMgQfbL+9VUdXR1ocuQsXO727I+9jxQKAJnrvYDL3a7N3TlVAl7u75SIWHUucy24uYgKFQsAlgNHIdQ1AsCarjgqa/MJfbKaQjY0AOKuOZ++NexdA1ce7rnAIlOiXuUKtfsh1O5fG9PqegCA9cDREjhxShDqDsLS0KrLZtEweDwmOrwNfgCgPOBz0CqpLTdxVddgY2Qlc05pk87yUquuHgCyoX7A6fHxgM9Bsx1dbzIloRstAFAT8Gr05ep5Uga7P2PVjrzVSYWn9r2sTY8ZOidOCcRViMBemX+A/N67PLo2Qt1BQ38sGgapfrbRQjLpZi5HjMEuDwSXB7T2RRC7mN/n4wMgdhHM4JwbpRoAmByBkEk3U865xE0uitzUjbwzu7juuDDWZicNF2skXI4AVsdeC6ncVcGTC8bgX6+AJ+WSimbRMLTpX2C2RYbgTAqw2q3U9PNUEG3qRr4iAXA1hcxIcFvQYqHIqjliE//3xdX0FafcSMy2jjg94EoiTbmqyGZndd1A0h1vgiYXkPtd/04A8gsnhMiUEzpmdlZ1jU2KRwuPQSsUpK6t5AW3VYQo/v37J6MDX2LgNIZtRYS6Rmj/3B6niZsD39I9tTmz9AFYv0RgnmpTH04JtHJXyjr4xZfUffrrZZaYv2JtPrktZ1sRS0Mr2AN5mAQur1AAyP71Ww/Z/XjaLOXazCS4mgJPLui2Q9rsZH4upt8qEacE6n0+pfzw4XtAUQeizf7xLnFX96qD/h23PHpQW4sfPJN+X5C8n5SAASA39+cQIeS1zEjwkYJtHUEQNa3f+gCAcLG7k4jOUVtHcNsFVCJ2Md9vCcIo+fztI8VTJWASGM2RvmOHiJoesrX4dwSn1fWwdwRBQIY2dpiAWUMvR84Sseoci0yJuYmrW2rorc0nQXY/keKLcx8INc99qvuemZPl/k6p8nDPBVoltTElIWrTY/nfl0J1AwCx5ZtBKnlBq+tB9zydRXLh8kpkIljxQpvxh74c4QGfIxP++cTqT5sWjypMVRhTFcYexlW2FItoytKl3N3xLh7wOcrx+R9ZeOO1dwe6XgAAAABJRU5ErkJggg==","10001:3","10001:10","YduxP","10001:159","SQpun","934715ofIXCB","kpprb","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAASeSURBVEiJtZdfTFNXHMe/vdw2bbkMHGQeidrZFEQetmtCqiYuucaY8I5/cERTEuKDYVp4kCZDF5VlZQ+jyYwva6RxcXMDs/gkydK1yUwkpNG7xRjEO/FahAp06DjcW0rb7AHb0NI/13+fx3PO/X1/53fO+f1+F9BAQBCMC35/ezwavRILh+X43NxygtJUktKUOjkZUycnp1VZ/mX+5s3O0V27PtBiU1dscvraNcuHe/Z8qd+0yaGMj+uXRBGqJCEmSUhSCgAwEAKG42Cy2bChuRn6qqrl5enp3x6cPt1lDwYjry38MhT6wrxtmzv29Kl5yu1GPFLQRhYGQrDR4UCF3a4mZmcvmnbs+EaTcEAQ2KaBgZ8MhBwKu91YEkVNgvkcsHo8iM/MDIe6u4/uCwYTBYUDgsDuHhz8PfHihSD39mbC+aYYCIGlrw86lg2OtrcfWCueJbx4796vZRx36FFHx1sJ5mL1eABgqGLnzsPrhJWJiTNlFRX9j53OvOe5obkZlXv3Qk8IDISgjOMAAElKEY9EEJMkUFHEf7dvr4tUGcehzutF7NmzU5VNTd9nhEOCUPPpjRuydPKkOVe0nOexxeWCgZDM2HOfL+NcGcehtrMzM5ekFP84nYhJ0jo7lnPnlLmRkcbatjZZBwDKgwdXY7J8LOx2r9tpw/XrWaJaiEciGG9tXTdu9Xigr6z8wWi1nmADgmDUE9Iinz+f14iBEMQjEeRzKh8f9/UVdHTK7Ua9z+cICMIp9pOenuMr0ei6EOei9VklKc2cfy7xSATK+LieP3v2KFNht+9eGBnRZPRdsCSKKOf5z5iUouxXcy7C+0SVJKQUZT+LVKomVSJRpLOQFgqFOU1MksAYjYRlq6tNWvIwx/OahEuRpBSMyaRnipan9wiTUtVEqfC8SwyEIBGNqkyC0nmjzVbyg7Dbjfnh4YLz88PDeNLbW9IOw3EAw8wzYJg/TRqEl0QRtMhbpqKIJVEsWdFMNhsYs9nPqvfv/1HO84cLLYxHIjAQgjqvt+iN3eJyAVi91cWe54bmZiyOjY0yExcu/Gzevj1RKM096e0tutM0aaeoKEIuEHIDIdBXVyt/9/df1QGA+vDhYEJRHI+dzoJG67xeJCnFzKVLWePp0H7kcMBASN7ikGaLywWjxfKjubHxOAsAs37/xdojR46U87wpX06uOXgwk/hLJZKNDgee+3x5d1thtyt/tbR0A2sagZejo06jxTLwqKMj64Kkz1eVJEyVqFCbXS5wPI/x1tasZiKd+ZKLiz3m+vpvs4QBYPHu3SHodAcLhfxNeXVMWa0Ps3ZBqLv7KFtVFazzel+7+OejjONg9XigY9lgqKvr87VzWcL7gsHEaHv7gSSlQ1aP563Ey3kedV4vAAzldphAkYZemZg4o6+u/mpxbMy8tscqhYEQbHa5YNy6VVEmJ13p5i6XojUiJAg1jZcvf6cnpGUlGjUvjIys1tNXnSWwGk6jzQaTzYZynoe5oWFlZWbG9++dO1/XtrXJmrwtREAQjNFbt06kf9pisryUoDSVoDQVn5tbjoXDcjwavbLg97cHBMGoxeb/MugSVB1hmDUAAAAASUVORK5CYII=","roadParser","OIiOo","KjjAy","OAWrY","kOyON","10001:8","string","sptMh","Lskgj","level2","10001:14","10001:78","JVuKO","https://vdata.amap.com/tiles?mapType=normal&v=3&style=5&version=1.4.28&rd=1&t=","sihWF","aVRyn","bHEvY","10005:15","_onViewchange","10002:2","10002:17","ADjVz","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARdSURBVEiJtZd/TBtlGMe/96s/jh8t8RiFxMIUA5iQJZgwkwUkWYb/TREhwQ3SxWF0c5kaMyUL8WJjMP4xQ0y2RCapy9Q4XFD+mwbDxjSoCaYjC+BISutsCxRoob3e9a53/mFKyryy48e+f92973PP53nf93nf9znAgFy8zzJxJ3kiGlcGQ8uKf2VNkRJJVRVEVb2/KIv3F5VgaCn17egfwpvH+OVCIz6JrTqv/5Isr69kzhcXkS5fUGGm51MILKQRCMsQJA0AwNkosBYCTgeNhgMWFOaR0uJqerhvMPq2h98X3jZ4ak4887iD+TgUSbMDI+uIRNNGBgLOTqGlkUVtpSm5vKa6nyxj+gyBm3iNvuRKfc3ZqLaBkXXM+GVDQL0AejptWIylvzvtMXWM8YSSE9zEa/TVU8pP64LW1H8tBkHUdgTNhp9tKwRFYez4RfpINnwTeHpeusaaybbegdVdAR9UT5cdgDZUU2Fuz7SRmQd/SD7H2ai2/qG1PYUCQP+1GDgb1TY1J57JtBEA0MEHuUvvlvg/HIyyuZLoy97inI4DCwoi0TTGvRImZyVdm+pyBqdaC4VRb+rp1kNWPwkA7pPcham5VE7ow+QsoVFXZcbZ9kIca87XtZnxywhF0mx9JXMeAEgX77Nwdrp1+JZgGPTf6ERMzkr/22bNB61oPmjV/W5gZB3FRaTLxfss9Ksv7OuKxdPbGu20X8blkfWN95bn8vBiI7vx/kyVGT/+ltQN2BdUmNdfcnSQtU+Znx33ioahehq+mdg0cmcJnTvo+RSqn2AayKSEw4GwktPQqCIx1ZBdYCGNpITDpKZq3F4cFNXlTFYQuZctEJZhZuCgbfmUdStDPeVZiA2Q00Hj+frNyXRDZ30zEiQNZoZkaGLL+0lfdVVm1FWZdftue0XcNpAztJjSFNZMMLud7hm/jOGbiYdeKpyNQiyeTtKCqEWcDqY0EtM/cXJBMjtBEDUEwrLh5GItBAiSiNAUoY47S6j2yVnDXCxF04amU09OBw2rGaPkX/+oP9dUmHbkZCdqOGDB1D1pgvz8+8Q3FaW0wtmpRw7l7BRs+ZTwxQ+LV8iv+MfWwivq1e6jBY8c3NLIIhJVrnv4/SIJAL/ejbtLOSqZfQjstTg7hdpKk9B7OfIOkFWBeO+Jb5Vx9Ke9A6u7Lnn0oD2dNgii9l55KfPJJjAA3J2XhkgQL/ddie4p2N1dBEFS9UsfADjtMXUUsMSYu7sIe5FsrIVAT5cdFIWxNzymV7L7NoHHeEI5fpE+IkjqUE+nbVfw6nIG7u4iANrQgxUmsEVB7w/J52wF5AdTcyl2+JawrYK++2gBSjlK+Dssv19baflMz27LK6KDD3Luk9wFzk63xuJpdtwrIhBWIIjaxtXHmgk4HQycJRRqKkzYX0bLS6uq5/c5+aPWQ1a/oWhzycX7LON/Jl7L/LQFl+REIqmqiaSqrqwpUmhZ8UfjyuDEneQJF++zGPH5L7rV9DtKFQf2AAAAAElFTkSuQmCC","iNRNW","nVVeb","road:roads:nationalRoad","BCnqR","dISSE","10001:5","FeDzw","rBDmj","GhUCk","building","ecVai","rdXMR","10004:3","ocLyV","49nBIenP","GYpzb","atan","Skztv","aoIZb","10004:8","tCPkg","10001:25","parse","bnHWc","KrYhQ","zcxmO","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAPvSURBVEiJvZdvSBt3GMe/z+/iTK4kFY0sU9owCm184dhEwcHEiRTpq7azMFxnqYIdXe3AwVqpC50TO92gbyYtKGxDLEJLK4NBKdI5SAtORbZCnd2Yoy12DmOwCV7M5e6evTgThvMu8c/2hbz7/p7PPcfvvs8TQhZiZqfe91GDMTtZBdldi0Tch1Ulh4jAeYWqECJi6FpIClSERFNwkIiimWqSLfBmn1+fHusw/np6Eol4DmQ3yFsE2nsA2OUxPYvzgBIDz06ZBfMKE1xYPJITHGwjooVNg9WelrN4+msPohGZAuUQde9ClFQAsnvjA0oMxi+T4OkxGKFvQbsL4sh/qSvn0+HPMnVvdsDs0C41X1cbSznZ3cTGzARvVvrMBKttdbxW4wYzOzJCk+1HxtTGUtaGejcNXC/t1hUT3n5kzBae6lS7dWXb0PVw7VLz9Q2hyY5j53YamoYP9bLaWMpqT8vZ9a/Yq56pXlHb6nYcmlKyu4nVM9UrfLPPDwACAPTO45cRjchSS1dWF3Arko6eBqIRWZ8e6wAABzM7tdY360XVYfNzsVMiDmN0GMb4bfD87wAAKt4HUXkI4mADkOuyPEolFaBAOYw/Hp5k5g+kjiKtGb/99JY4ehpU9LLlQV76E3rXCRg/3gGeLwFsmL/nS+CH4+DJUVBZDcjqOwcA2Q2+/52E+bk5gQf3KgHYd5uIQ+89BV54bP1gC4+h954CEnFLTyqAjNnJKgHZXUuBcutEAmCMDttC/wk3RoetDWuRC9ldK4jIawcFAGP8dkZotl7aewBIxH2Cl8MuKiy2NacuUjbK6N3lAVaVHEFkO6D+Mwk4ZQ0r9uOTivdlXTCTlxfnQXneuCDZHeYnj+yfrvJQ1uCMXiUGZg4LQ9dCHH4GKDHrYgcbQD5/Rij5/GaQ2EFnpwAldldI+1/7PjXELZXrgnS+3xZOPj+k8/226ZVmvPLGODGzR3vv9SX4SxyOC1/Zt7SNyAQAfSAI/jmkOPp+KAAAaMG3v1YbS7e0bWQrfWbCnMufvDMIrE0n7dXqLtpdENdHrtp3vA3pA0HAk69IF699mAY769+fE/6SCzw7Bf3a5zsPHbkKhJ+B8go7iSj8L0Oyu+nG/776AOuWvR2Ap1aejMteCp5a+tS2Ota3cOGMmQlz1VnrdCOoZVAnO46d4+XFi4hGZFF1GFRWk9VCb9wZMkPCk69gz/72F9oHvtzIbv8Xhtmrdx6/zIvz9RyNyACQmt3pibYSBT95hHT65bqS4sU930hlNd1U32o5xLMaTczsTPZ/fAIP7lVCdtcSkZeXw2ZaOOUkcl0LUGJ3RaAiJLV+MUxEq5lq/g2tSIAYH+JjrQAAAABJRU5ErkJggg==","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHLSURBVDiNlZO/axphGMe/7+vr9b3oXVIVMuSaqtihEOgPcJEGacEM3S67g3OhU/6MkCH/QKHOiVuGtLSUhi4dmkCHgmL1ehkk6tnzrp7xfnQIBnJN4fxM7/B8vg88vF8gRC+XqnQlXu+Kgt0RmNcRmKfJ4lAT2YFRzJbD82T+CHa2EvqbL3XPclT5kYJEPgMmcQCAO3YwOR/BPNVBBNZQaqUq2T22rwOCna2Etv/hm5jPPEhvFkDvsPCiqyDTweCkhak+aq6/fvGE7B7bBAB+pZOH8WWurr7cuFUMc/H+B6YXVuPewNqmRjFbDi5dNf2sEEkGgPRmAZ7lqL1cqhJ7ZVh78tP1h0v3U5EDCKMIPB9/NINQxOPPxbWVyPKcRD4DuP429Z3Z8vzai8AkjsDzOV3YDEFJjDru2FlYdMcOKI//pmD00G73Fw6YnI+A2ewj5Zmlt+aZDn/qRt9uOjBPdUgbyj5d/Tl8F0vyxuBzK3LA4KQFIrDG3a+dTxQAlFqpOmn3m72j73DN/9/Dn7pXv1AfNZVaqQrcUqbg0lXlxwrEtZUbZbLbfZhnOmJJfqNM/2AUs2VNZAeaLA7nde6Kgt2VeL2XS1XC838BETG885n+l9EAAAAASUVORK5CYII=","buildingParser","10001:174","XqeUW","EWYcX","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARISURBVEiJrZZfSFt3FMe/53dvMF7UZI0ThbqEvrgOxchoN6QuEWe39aFTWgX3UrOHjj2UdXvoBh1k0o7JHrqWPe2lcWOUMjcsFFqGdElwSIuUpHStdgybzBadNW2u1mSa3Hv2EBeMTa7G9Dz+fvd3Pt/zu7/zh7AFYx/M2H+xT9/hahOa2sFSRS1JFSYQwMmHqwR+rJM8Jh75xzD14Q90AIub+SRD4N3TduzsOgnF0c9PJkwcCwJqGLwYBlLxjAPFAchWwNIMqu8HldWs6InpkeS1to8rejFXNFibHz0mqpoGeWlS0cMeIBHZLIiMKQ6IBi+o5u0kEjOnaMfer7YEZj9kNAUuoNzeo4c84Fhga8A8AqRWP3g58jPdae+jdqQLgtkPGa/+Mcorj9z6RHf2OrdtigNizwhImAK42di5Hp4LXgj8xLKlRw+2lAbcYKLVDyIapmp3b3YtC42HTqDc3qNPdD9XKADoE91Aub1Hmx89lgPmy6iGuc6rjbdv/REVY6k49JAHoqppkO+etmfB2HfjDM9fVdZDpTfvQzrIkA4yaNfxktkcC4CXJhXs7DoJAIJ9MEOxH9LvDeR+qIbBa0Jo10clgwFAD3sAxdHPPphJiw4dJUvzd4UelNg7ArK5oU+fK46SiIBnhp711+oHrf7zvoyat17nvwYLnueFAKi2C6LBWxw4FYeWB8yxINj+QZsQmtoB9ZaB8mhxwP8Bc5fyb6hhCE3tEMxcjXThQrHdysV/f59/fTEMlipqBZXVlbNRCqXiMNzPZ4lIYcGpOEiqMAnj/rRmi+GiuDyTP9r1JiO9lIbJajKsy2sR6/cGgMT9ksCkOMArs0kZKXWBqpx1RtfJC8FMEUk9AceCxtTNfotsBREtyDrJY7A4e1HoFWLtgaXiEI1ngcazhn5ZDcOwyViaoUuWa7J4PP4b21y9bOQtFYcWbAHVvlu4VZqsmb1N0o/q+8Hzv14nvoIq7F+Kaf4m2eiaRMMXoAYvkIhAC7bkCKDaLogWX0agUaNRHJDeuJ7AhVqboANYxPKfPwqnz1Ap6o9kD1OVMzeKl45kIlYcoPp+A/FeIBH9hTz4VwDASnT4FFW+nCSbu+Ahnj6XyemFwDM5qk8NZHJXDeetz1nBNe8k8PtrnwDrJhCeu3Iclbu/2XiNz8XW5i+k4p+SteXrHDAA6PP+YRAO6+Ptz5UrXCFQWs0/+gAA3Wnvo7IXA8IVAhRH6USTNdMGhSmA2+73csTkgNuRxs3GTkqrw1KrvyQ42dyQXCEQ0fDGCRMwGOg5HjoBc52X568qmVIZ2RpRcUA4faDK3Ql98fZnUk3nt3mFGfngy6jGvhtnoNgPcXJW4ZkhQL0FpNd1LJM1k14WJ8jmAr2wJ4VEZAgPLn1Jr3y+vWaeFeCDWYsOHdWSs+f56VRUX5pc5tW4zqtxXU8+WOGnU1EtOXueH170sA/mrfj8D4k86DhZb9xxAAAAAElFTkSuQmCC","VnFuU","ecCVE","iduPz","10001:2","SjMqX","RyGlL","10001:147","THZXQ","FUHnL","max","qihHv","load","sHvLi","codeBook","response","_features","10001:32","10001:99","DDKTv","eRuXH","parseCode","sXPjT","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAScSURBVEiJvZdtSFtXGMf/59ybeG+8CbtaNDqKq9Zi5xcFmf0ihIrQDroNOh0trDNlVBnTWgvtOj80W5m2HbRVoTgoOixuaAaFDdqC2MkqZS1uy4eVOnWGtGvU+rbm7SbmvuxDl2FMYq4V9od8uefc5/c/5zx5znMBHbI53NywS7Iv+eTexwuKZ+G5EvFLqhqQVNU9J4fdc4rX80wevHEv/HFl05JFT0yy0eC1Ealgb6mxLU8k9Y+eKAbXTBRTXgXTXgWBsAYAsIoUAkdQnM9gX0UGRDOJeBeUG8d7/j4x+mXO3KbB45OrTTvymPOeedXUMRTE3IqqZyGwihT2Gh6VJQbp2bJybneBoUMX2ObQ2Mvvy99YRVrbPhiEa0bWBUxmoKvRjNkl9bvWAfbQqIPEBYoD2xwa29eoDK8ENFtbfwABSXsp6Fp4+wcCWAaj9h6mZi08Dvzbn9EhgSO1R6/4tgRcr84GMwiBs7zIUJcAnnwaPWXm6YXmHn/CeTYdMKG2KiNp0ICkIWbUKtKkRyPwBL0tFjxdVJordhm7AYACgO2kb1u2hZ5NBrWK9D/o7LKa8BN4AnsNh/IiFl2NZthr+KTm2geD2JHHnL82IhUAAAsAV5tNl+5PyKaNMrf7+xCcY5GE5zc/ewUAcGt8FQJH0PSWCVaRovuHUFyOuGZkeOZV095SYxuAY9TmcHO5WfRg37CUEgoA/hSJtva5cyyC5h4/yotYNB0wJcztGAoiTyT1Noebo6ffzDuy5FM3XO1m5JqR4bwbxv4KY8LY3IqKR08UQ9s71kPsGyXsnoEfE7dwvfZXJCaXmScw84k1KNXuvDAWxdt7jFVsMEKqp7xKWnB5EYvyIjbpmMDTtO/HNOVVEIyQaqqp2rZY3X1ZVZUa0NlghlVMb2Daq4A3wkqzLJTf6vlOexXkZVFUlRrSzg2ENXBGYmA3vJ50asorQ+ApduYzut+hoVXIArd1fEDSf3st+1SJBiVtcTNOtyqBIyCULFJKtbvF/yO4OJ9BZoY2Qn/3yHfKCtMnhR5ZxfQL2FeRgQcT8s/08/7gtyXbWVnPXyGVBJ5i2qugvIjFTxdFfPpeJpLVBqtIkW2hoQs3Z/sJAPzxl9wXDGv1x7/yJ0zubDCnLBwxBSQNHUNB+CUNVpEiENYw7VUSbrozdZl4LYe5/noBe4QCwIhLPleQy0hlhYkAPecv8AQ78xm4ZmTc/mUVYw+jSa/XyhI29FFXqBVY0wjcm1ht2ZHDXD56xbfllme9Yv2XX1JP73rVcDEODAC/TkWdIHg32ZZvRb0tFgTCWlzrE5dRrQPsIVEgo70tFl11N50EnqCzwQyWweiJ6+zhtWNx0UcdRLb3MDWBsObsatRX9FOprJBFb4sFhMC5vsMENmjoJ59GT2Vb6Nn7E7Kpb1jaVEN/pi4TBbk05J5VPok1d+u1YZG2nfRtu9psupSbRQ8u+VTT7fEIpv79fIkZEbgXGV2cz6Cs0IDd25no7Ir29Z2Hq198WM17dLlNacDh5m49CB+LfbR55uWgX1JVv6SqC8+VyOMFxbPkk3uHXZLd5nBzemL+A8Q2BxJWmqcfAAAAAElFTkSuQmCC","hpQOA","WBlRC","bwxDk","assign","10002:11","10002:9","10001:4","poilabel:","PGtoB","10001:23","push","iRDZl","rSrZm","10001:17","KaGsO","hOTHh","indexOf","offsetCode","qJgEv","UnLpy","10002:5","xhfcJ","ZSvEZ","10001:20","QxvNw","stbRG","336636iIqEiC","nJTel","road:borders:provincial","mGjHy","eWDUh","&preload=0","road:roads:levelThreeRoad","split","substr","IKpCq","10001:42","lDAqa","10001:34","KYcUc","ASDFGHJKLQWERTYUIO!sdfghjkleiu3~yr5-P&mq9`%zCN*b=8@^xpVM","join","kYAko","WWofW","Parser","codeBookLen","_onViewChange","iBhPG","_decoder","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAARxSURBVEiJtZdvSBtnHMe/udxdcnc1f05rY+I/qIVVKdQXlq0wtEiwbG8KnYIblLQvtoGzbKt0gzIqlLEyuhY2HOubZGydsjlY3xQmsqrdLGVSLOuWtlOWapsYo00uau68y+Xciy2SNJcQ/33f3N3z/O75PPd7nuf3+x1QhHyegHn27tJJSVC9y/PyjCgkZUVMaYqU0uJz8upSWA7Fw/L307/F37nWPWUpZkxDoU7/jViNs5E7x5WSntjsKhWZlhAPKYgFZSQlDQDA8RQohoDNSaP2UAnMJaS8sqj8NPJZ4L2OLxvCGwaHH4jdtkr64lJYYScGIkhE1WI+BBxPor6NR8V+VhJjqQt8jemTosAjvWtkwxtSP8tT7RMDESxMS0UB9SbQ3OVC4lnyR38/03mk15A18yzwSO8a2fiWPKysaC3j3vC6Ozcrjidx+JQDBiNGJ6+a3JnwLHBkSvyBYoj24UtPtwR8Xi1dTgAYLN/HdqTbiPSNEJTPsjzVftubdz9sWuPeMFieag8/ELuzwP1nHpWZLcbzY33BojfRRpSUNEwMRGCrpC/6b8Rq1sFHT1dfnvOL7E5A01qYlrAUVlhnI3cOAAifJ2Bmeeq4fyiaZfjKRzVov7IXNpdp2+ATAxFwpaTH5wmYiea37SekuJrztRxPAgAohli/pu83q0RURWx2lWrtLu0kK17Y9eLDm7GCL+xrtqKhjQfFEJgai+Pe9UUcPuWAzUXr2otRFfeuL0IIKjl9kWkJe1+yvkyqcqpVCOUaZOrgsbKsSQT/TMDmosHxlK49x1Nw91RhtC+UE4DiIQWqnGolNKCsUKCgddyr16anhjZ7TlssKMNoIhwEU0IyiWgy78uKpCF4P7H+nIiqiBQZRvU2ZlLSQNIERRbOT//ptjcM1wEOrJ3E44nl/8/lQlHwfCJVeU2lGILK5+6Dx0qzYrbrAFf04ImomrPGHE9BWlYlUl1NLdpdpgoxT/DYyjlmdZaQYggQwCK5BvxqddIdmeuYqeD9xIazFMeT2F3H6PbZnDRIk/EXMjqj3CyvYzr8Q/pneepWfMM5ubapJC+49lAJ5h6u3CHGr4UH7FVmNR2pdlIcT4KxkuLYV7FvDAAQm5V9STnlGe0L7Si4qbMcVgf1LV/DnCAA4MkfwgXLHlrK557tEMeTqKhnxZ8/n30fyKhAQn7xXcse6srwpSdbLnn0oM1dLqir2gc2l+nTLDAAzP8tDhoMeG27Xe7uqURS0vRLHwDw9zOd9C5i1N1Tie3YbBRDoKXLCYMRo399x7ye2ZcFPtJrUCevmtxJSRts7nJtCb67joG7pwoABp+vMIECBb0QlM+aLcbzc36R9Q9FN1TQN3WWw+KgReGp8qFjP/uFnl3BFNF/5lHZ0dPVl1meOi7FVfbx78sQQgqSkoZ0RqMYAnaXCVYnjfI6BvZqczLxTP06NJn4uP5V+0xRs80nnydg/ueO8Gb6py0+LycUMaUpYkoThaS8PC/PSILqnb27dNLnCZiLGfNfb+PubT2Qn2MAAAAASUVORK5CYII=","road:","DALVh","xyJyF","MXAVD","10001:109","owYUA","road:roads:provincialRoad","10002:13","cxEai","fat","status","tiles","10001:70","10001:134","road:water","OjkLc","vjYCO","2971404XULdnT","qZUVy","10001:98","10001:9","XCkWY","then","10001:31","IQYQZ","#33cc33","eckEb","RawNw","38ORSpgT","AZunh","10001:68","LOALF","JDrvR","eipzk","10001:72","mZHXE","text","10001:19","FqsZy","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAATdSURBVEiJtZd/bBNlGMe/96u9vbBdF09aFmknzrD9QUgwARKzSkKQP0x0E7dkCEtRRkAkaGLQhSCNi4wYgy4aTKzOBVTiBgH3n1HMZJCgJpgxzYos6a7i2o2Otd16vetd7/xDW/fjOjuG378u7z15P/e8eZ7v+xxQhHz+EH/tRnp3fFrvjEzo0t2krqbShiErhnF7XFNuj+ujkTuZry79LL/8vH+irJg9qYVenr+a9myo4o48WE77QqM6NzSSQXgsi3BUg6yaAABRYEB4Cm4Xi9p1PMqW0er4ZPZCe2f81S7/iuiiwYPDysFVLu5EJJYlgd4pxOLZYhKB6GBQ7yVYW2VLTySNtkcquPaiwJv9JvuRL/OlKDANgd4pBCWtKKDVB7TuEjCeyJ470GVr6vNTekHwZr/Jfv6S/u2UbG7u6E5AVsx7gs6EH2ooA8Ogb+cpdutM+Czw0IjaTex0w9HA5JKAc9Xa7ABg9tRU2htza3TuQYpoh0WBaejoSd5XKAB0dCcgCkzD4LBycBa4yT8qCqX0sfYziaKLaDGSFROB3imscnEnzl9NewCABYC2PeLJweEMKQRdv8aGbRsJ3E4WsmIgKGm4cFmGKNDYtrEEbicLwtMIj+noH1BwZUCZt0dQ0hCJZcmGKu4IgL2Uzx/i33/NM/FW56Ql+FBjGdavsS8qwysDCgK9U/PWRQeD4/vKtX3HpTL6xWdWNCemswWzdTtZy/XrN9WCrVbt4SzXY/EsQqM6t+9ZVxO99lH7pn6Lo6nzEhC+sLGlimg1q5MaGsmgejVXS6dVbAlH9XkB9U8sK5htMar2cDjUON+2w2NZpFVsoU3DFJdqFItROKrBzsFFC8uZklji/rdQIcmqCTtHczS14P30/4lWMqZO7IunL1ug8BaSKDBITGfTrKyYMbeLWxlLqAWDZcVEUMpAiuogPA2Pi81XbFDSIEV1yIqRX8/d1VYiPAWKpmIsQxn9bifTeP2mdWBHdxIzayBXiLleDUoaCE9BFJi/He0HOQ+wktvFosSOS+zvfxrf11TaGi9elucFeVwsHhAY1K7j8xuFx3R882M6b4t1XoJtG8msjIKSBqsWBYDadTwGb6nX2I8vps5+0lr+oehg2LnutePJ5QhKGgK9UwhHNRCeRnUlh3ovQb2XIJYwIAo0OroTeRdzO1k8Vm1HnZfMg4oOBsJyRv706/HTFACEIvpnimr42k/H80F1XoKgpFnaYm68cTtZdPQkLW800cHA7WRx/ea/tdPydClWisyZqodszRQAfPFdfPVTm0p/PXU+WXKvo85/SXQwePMFh7z/3THPWX9FLF8BA7eUVypE9r2jgckljzxW0NZdAmTFfN2zknsHmDP6/Dai9tCgnpt55PdDbS3lkFXDevQBgANdtqZSQvW1tZRDdDBLBhKeQmuzAwyDvv1dth0z380C9/kpfecpdqusGj2tu4Qlwas9HNpaygGYPXMnTGCBgV6KaIeFUvrY4HCGXLgsL2qg/6d65T+i2htrq/gPrOIWNNwm/6jYtkc8KTrY7YnpLOkfUBCO6pAVM+9mxE7B7eLgdjKoqbTh4QpWuzNpdP00rL29/fESqaivLSSfP8T3/5Lam/tpG72jpVJpw0ilDeNuUlcjE7oUn9Y7r91I7/b5Q3wxe/4FTcsooBbPIn4AAAAASUVORK5CYII=","road:roads:ringRoad","Caoqr","gcgVm","OBdcl"];return(M$8=function(){return t})()}function g$4(t){return t}!function(t,e){for(var n=m$8,i=t();;)try{if(701109===-parseInt(n(615))/1*(-parseInt(n(410))/2)+-parseInt(n(448))/3+parseInt(n(541))/4+-parseInt(n(250))/5+-parseInt(n(399))/6+-parseInt(n(290))/7*(-parseInt(n(472))/8)+-parseInt(n(358))/9*(-parseInt(n(570))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$8);var l=s(421),v=s(433),z=s(601),B=s(497),r=s(308),w$1=s(564),H$3=s(252),o$1=s(244),F$2=s(533),k$1=s(539),P$1=s(303),I=s(302),i$1=s(275),S$1=s(470),K=s(331),t=s(469),n=s(381);class TilePois{constructor(t){__publicField(this,_Yg),__publicField(this,_Xg),__publicField(this,_Wg,{level2:0,codeBook:s(372),codeBookLen:0,H:0}),__publicField(this,_Vg);var e=s,n={rSrZm:function(t,e){return t|e},bHpZU:function(t,e){return t&e},EDCiG:function(t,e){return t<<e},tCPkg:function(t,e){return t-e},qfxwg:function(t,e){return t<<e},wUCdb:function(t,e){return t/e},LOALF:function(t,e){return t<<e},AUfnP:function(t,e){return t&e},qiYYv:function(t,e,n,i){return t(e,n,i)},YGJyK:function(t,e){return t+e},XqeUW:function(t,e){return t+e},KjjAy:e(582),OBdcl:function(t,e,n){return t(e,n)}};function i(t,i,r){var s,a,o=e;return[r,n[o(344)](n[o(546)](t,s=n[o(462)](n[o(296)](n[o(488)](1,s=Math[o(589)](n[o(608)](r,2))),1),a=n[o(296)](r,s))),n[o(546)](i,a=n[o(296)](n[o(413)](1,a),1))),n[o(344)](n[o(426)](i,s),n[o(546)](t,a))]}this[e(632)]=t,this[e(324)]={},this[e(632)][e(437)].on(n[e(255)],this[e(271)]=n[e(425)](debounce,()=>{var t,r,s,a=e,o=0,c=[],l=(null==(r=null==(t=this[a(632)][a(536)])?void 0:t[a(393)])?void 0:r[a(446)])?this[a(632)][a(536)][a(534)]:null==(s=this[a(632)][a(434)])?void 0:s[a(534)];if(l){l[a(593)](t=>{var e=a;c[e(342)](t),o=Math[e(318)](t[e(559)],o)}),o=n[a(296)](Math[a(489)](o,18),1);var u=(c=c[a(636)](t=>t[a(559)]===o))[a(632)](t=>{var e=a,r=n[e(640)](i,t.x,t.y,t[e(559)]);return n[e(518)](n[e(518)](n[e(306)](n[e(518)](r[0],","),r[1]),","),r[2])});this[a(320)](o,u)}},500))}[(_Yg=s(324),_Xg=s(510),_Wg=s(380),_Vg=s(632),s(320))](t,e){var n=s,i={GYpzb:function(t,e){return t>e},OIiOo:n(453),aErXA:function(t,e){return t(e)},SjMqX:function(t,e){return t(e)},dTClF:function(t,e){return t+e},uZvWw:n(376),sHvLi:function(t,e){return t===e},aVRyn:n(435),mdPbc:function(t,e){return t<=e},udKDO:n(492),rBDmj:n(372),BZqNS:function(t,e){return t!=e},EewPr:n(259),YtGEb:function(t,e){return t<e},ebMyo:function(t,e){return t+e},mZHXE:function(t,e){return t+e},LUQEO:function(t,e){return t+e},hOTHh:n(266),ywwRV:n(609),ycEPL:n(363),ysMpZ:n(418)};this[n(324)]={};var r=i[n(473)](i[n(524)](i[n(417)](i[n(547)](i[n(347)],e[n(373)](";")),i[n(428)]),t),i[n(483)]);this[n(632)][n(238)]({url:r,responseType:i[n(471)]})[n(404)](e=>{var r=n,s={bRmCA:i[r(254)],kOyON:function(t,e){return i[r(598)](t,e)},vjYCO:function(t,e){return i[r(313)](t,e)},ecCVE:function(t,e){return i[r(473)](t,e)},mGjHy:i[r(457)]};if(i[r(321)](200,e[r(392)]))for(var a=i[r(268)][r(365)]("|"),o=0;;){switch(a[o++]){case"0":this[r(380)][r(262)]=Math[r(551)](2,t);continue;case"1":this[r(380)][r(377)]=h[r(446)];continue;case"2":i[r(631)](JSON[r(298)](c[r(563)]())[i[r(506)]]||"v5","v5")&&(d=333,h=u[r(366)](0,27));continue;case"3":var c=p[r(365)]("|"),l=[],u=i[r(283)],h=u,d=512;continue;case"4":this[r(243)]();continue;case"5":c[r(604)](t=>{var e=r;i[e(291)](t[e(446)],2)&&l[e(342)](JSON[e(298)](t))});continue;case"6":if(i[r(439)](i[r(605)],typeof p))return;continue;case"7":l[r(604)](t=>{for(var e=r,n=s[e(591)][e(365)]("|"),i=0;;){switch(n[i++]){case"0":var a=t[e(563)]();continue;case"1":var o={z:s[e(257)](parseInt,u[0]),x:s[e(257)](parseInt,u[1]),y:s[e(398)](parseInt,u[2])};continue;case"2":l=this[s[e(310)](u[3],s[e(361)])](t,o);continue;case"3":for(var c in l){t=l[c];this[e(324)][c]?Array[e(530)](this[e(324)][c])?this[e(324)][c][e(342)](...t):Object[e(335)](this[e(324)][c],t):this[e(324)][c]=t}continue;case"4":var l;continue;case"5":var u=a[e(365)]("-");continue}break}});continue;case"8":var p=e[r(323)];continue;case"9":this[r(510)]&&this[r(510)](this,1);continue;case"10":this[r(380)].H=d;continue;case"11":this[r(380)][r(322)]=h;continue;case"12":if(i[r(620)](p[r(446)],10))return[];continue}break}})}[s(243)](){}[s(329)](t){for(var e=s,n={GInRF:function(t,e){return t<e},FUHnL:function(t,e){return t(e)},dRxBF:function(t,e){return t*e},lTIso:function(t,e){return t-e},vQUKF:function(t,e){return t+e}},i=this[e(380)][e(322)],r=t[e(349)],a=this[e(380)].H,o=this[e(380)][e(377)],c=[],l=NaN,u=0;n[e(538)](u,r[e(446)]);u++){var h=r[u],d=i[e(348)](h);n[e(317)](isNaN,l)?l=n[e(550)](d,o):(c[e(342)](n[e(633)](n[e(572)](l,d),a)),l=NaN)}return c}[s(442)](t,e,n,i,r){var a=s,o={qihHv:function(t,e){return t-e},eckEb:function(t,e){return t*e},nVVeb:function(t,e){return t/e},vJrXd:function(t,e){return t+e},mGVjr:function(t,e){return t-e},qmuUN:function(t,e){return t/e}};return[o[a(319)](o[a(408)](o[a(277)](o[a(454)](t,o[a(277)](i,256)),n),360),180),o[a(277)](o[a(408)](180,Math[a(292)](Math[a(482)](o[a(408)](Math.PI,o[a(583)](1,o[a(277)](o[a(408)](2,o[a(454)](e,o[a(507)](r,256))),n)))))),Math.PI)]}[s(515)](e,i){var a=s,o={dZdFE:function(t,e){return t>e},DmOQX:function(t,e){return t!=e},ecVai:function(t,e){return t<e},bwxDk:function(t,e){return t>=e},xOwLS:function(t,e){return t>=e},EWYcX:a(449),GSKKK:a(491),VnFuU:a(246),SpBga:a(312),VKQXt:a(565),TzDHk:a(481),eWDUh:a(338),sihWF:a(325),oOMco:a(394),MRbwF:a(456),QxvNw:a(599),lqIFq:a(579),OEFfQ:a(503),ADjVz:a(288),ocLyV:a(555),fKPkO:a(242),OAWrY:a(496),dISSE:a(574),TQliu:a(386),bnHWc:a(459),AYRSl:a(554),aLsgL:a(389),LlFda:a(529),OXPMS:a(499),nbKGm:a(479),EhYjn:a(263),SQpun:a(432),AZunh:a(239),WkslP:a(264),xDuuQ:a(624),sXPjT:a(281),OjkLc:a(630),XCkWY:a(427),uNUlu:a(512),JTyuM:a(597),RawNw:a(467),nJTel:a(440),Lfikj:a(463),FqsZy:a(345),eipzk:a(419),iNRNW:a(355),oWHlx:a(297),SHNZB:a(586),KVSKq:a(461),kYAko:a(336),rdXMR:a(407),XwtyO:a(270),BCnqR:a(443),lvHMo:a(635),qJgEv:a(588),BJhTO:a(258),vBjYi:a(577),THtLm:a(326),EULGS:a(438),gcgVm:a(341),sptMh:a(401),FeDzw:a(412),skKnj:a(295),stbRG:a(522),KrYhQ:a(540),YduxP:a(455),iduPz:a(305),GhUCk:a(464),HZQvZ:a(429),Skztv:a(245),DMdQS:a(542),MtiNN:a(405),LBvlY:a(450),DDKTv:a(416),UnLpy:a(521),NyHfV:a(444),CNHQc:a(431),MXAVD:a(315),aoIZb:a(368),fEiYW:a(622),FnyCR:a(527),owYUA:a(519),qZUVy:a(248),fRpyM:a(610),PGtoB:a(477),IQYQZ:a(370),ycmKk:a(273),KaGsO:a(502),QnmSa:a(535),JVuKO:a(272),iBhPG:a(436),eBCrc:a(452),cxEai:a(595),xrXvo:a(337),WBlRC:a(614),xhfcJ:a(629),SnZVS:a(352),iRDZl:a(484),vNvci:a(511),LaANq:a(402),WWofW:a(395),ixseM:a(575),sdwLl:a(441),BLKMJ:function(t,e){return t+e},KYcUc:a(339),aLbTB:function(t,e){return t>e},hClGo:a(584),lDAqa:a(500),bHEvY:function(t,e){return t(e)}},c={};return e[a(604)](e=>{var s=a,u=[];if(e){var h=e[0],d=e[4];if(c[d=o[s(557)](o[s(371)],d)]||(c[d]=[]),h[s(604)](t=>{var n=s,r=(t[2],t[0]);o[n(623)](r[n(348)]("^"),-1)&&(r=r[n(514)]("^","\n"));var a=this[n(329)]({offsetCode:t[1],x:i.x,y:i.y});if(o[n(544)](r,"↑")&&!(o[n(286)](a[0],0)||o[n(334)](a[0],256)||o[n(286)](a[1],0)||o[n(587)](a[1],256))){var c=this[n(442)](i.x,i.y,this[n(380)][n(262)],a[0],a[1]);u[n(342)]({name:r,center:c,order:e[5],type:e[6],data:e})}}),o[s(543)](u[s(446)],0))for(var p=0;o[s(286)](p,u[s(446)]);p++){let e=u[p],i={fillStyle:o[s(240)],fontSize:12,iconWidth:16,iconHeight:16,shadowBlur:2};if(e[s(447)]){var f=function(e){var i=s;switch(e){case o[i(307)]:case o[i(466)]:case o[i(309)]:case o[i(618)]:case o[i(517)]:return{iconImage:l,fillStyle:o[i(558)],iconWidth:20,iconHeight:20};case o[i(362)]:case o[i(267)]:case o[i(468)]:case o[i(498)]:return{iconImage:v,fillStyle:o[i(356)],iconWidth:20,iconHeight:20};case o[i(552)]:case o[i(460)]:case o[i(274)]:case o[i(289)]:case o[i(236)]:case o[i(256)]:case o[i(280)]:case o[i(560)]:case o[i(299)]:case o[i(594)]:case o[i(545)]:return{iconImage:z,fillStyle:o[i(590)],iconWidth:20,iconHeight:20};case o[i(562)]:case o[i(638)]:case o[i(569)]:case o[i(249)]:case o[i(411)]:case o[i(617)]:case o[i(523)]:case o[i(330)]:case o[i(397)]:case o[i(403)]:case o[i(596)]:case o[i(613)]:return{iconImage:w$1,iconWidth:20,iconHeight:20};case o[i(409)]:case o[i(359)]:case o[i(571)]:case o[i(420)]:case o[i(415)]:case o[i(276)]:case o[i(430)]:case o[i(480)]:case o[i(532)]:case o[i(374)]:return{iconImage:B,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(619)]:case o[i(279)]:case o[i(625)]:return{iconImage:H$3,fillStyle:o[i(350)],iconWidth:20,iconHeight:20};case o[i(494)]:case o[i(561)]:case o[i(528)]:case o[i(568)]:case o[i(424)]:case o[i(260)]:case o[i(282)]:case o[i(493)]:return{iconImage:r,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(357)]:return{iconImage:o$1,fillStyle:o[i(300)],iconWidth:20,iconHeight:20};case o[i(247)]:case o[i(311)]:return{iconImage:F$2,fillStyle:o[i(350)],iconWidth:20,iconHeight:20};case o[i(284)]:case o[i(641)]:case o[i(293)]:return{iconImage:k$1,fillStyle:o[i(581)],iconWidth:20,iconHeight:20};case o[i(505)]:case o[i(504)]:return{iconImage:i$1,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(327)]:case o[i(351)]:case o[i(476)]:case o[i(508)]:return{iconImage:K,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(385)]:case o[i(294)]:case o[i(628)]:case o[i(639)]:case o[i(387)]:return{iconImage:S$1,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(400)]:case o[i(600)]:return{iconImage:t,fillStyle:o[i(287)],iconWidth:20,iconHeight:20};case o[i(340)]:case o[i(406)]:return{iconImage:P$1,fontSize:16,iconWidth:8,iconHeight:8};case o[i(474)]:return{iconImage:P$1,fillStyle:o[i(346)],fontSize:12,iconWidth:4,iconHeight:4};case o[i(602)]:case o[i(265)]:case o[i(379)]:case o[i(526)]:return{iconImage:I,fillStyle:o[i(390)],fontSize:17,iconWidth:15,iconHeight:15};case o[i(603)]:case o[i(333)]:return{iconImage:I,fillStyle:o[i(353)],fontSize:13,iconWidth:8,iconHeight:8};case o[i(241)]:case o[i(343)]:case o[i(531)]:return{iconImage:I,fillStyle:o[i(353)],fontSize:16,iconWidth:12,iconHeight:12};case o[i(616)]:case o[i(375)]:return{iconImage:n,fillStyle:o[i(465)],fontSize:12,iconWidth:20,iconHeight:20};case o[i(578)]:return{}}}(e[s(447)]);f&&Object[s(335)](i,f)}c[d][s(342)]({geometry:{type:o[s(369)],coordinates:o[s(269)](g$4,u[p][s(490)])},properties:{...u[p],style:i}})}}}),c}[s(253)](t,e){var n=s,i={RyGlL:function(t,e){return t<e},nMyft:function(t,e){return t(e)},WOzwU:function(t,e){return t+e},jZLNP:n(382),qiLgI:n(391),oAfBT:n(553),PfSqi:n(422),fzphL:n(611),Caoqr:n(278),zcxmO:n(388),vroJF:n(485),wikLc:n(364),NHqLe:n(396),rQMzl:n(549),THZXQ:n(445),DALVh:n(360),gLzmP:n(606),Lskgj:n(580)},r=this,a={};return t[n(604)]((t,s)=>{var o=n;if(t){var c=t[0],l=t[3];a[l=i[o(576)](i[o(626)],l)]||(a[l]=[]);var u=[];t[4][o(365)](":"),c[o(604)]((t,n)=>{for(var s=o,a=[],c=r[s(329)]({offsetCode:t,x:e.x,y:e.y}),l=0,h=c[s(446)];i[s(314)](l,h);){var d=c[l++],p=c[l++],f=r[s(442)](e.x,e.y,r[s(380)][s(262)],d,p);a[s(342)](i[s(501)](g$4,f))}u[s(342)](a)});var h=4,d=i[o(573)],p=!1;switch(l){case i[o(607)]:case i[o(237)]:h=20;break;case i[o(627)]:case i[o(423)]:case i[o(301)]:case i[o(525)]:p=!1,h=8;break;case i[o(556)]:p=!1,h=4;break;case i[o(478)]:case i[o(537)]:case i[o(316)]:case i[o(383)]:d=i[o(486)],h=.1,p=!1}var f={geometry:{type:i[o(261)],coordinates:u},properties:{level:l,linetype:d,linewidth:h,sizeattenuation:p,wireframe:1}};a[l][o(342)](f)}}),a}[s(304)](t,e){var n=s,i={kpprb:function(t,e){return t<e},LsTpU:function(t,e){return t(e)},hLnyF:n(612)},r={building:[]};return t[n(604)](t=>{var s=n;t&&t[0][s(604)](n=>{for(var a=s,o=[],c=this[a(329)]({offsetCode:n,x:e.x,y:e.y}),l=0,u=c[a(446)];i[a(251)](l,u);){var h=c[l++],d=c[l++],p=this[a(442)](e.x,e.y,this[a(380)][a(262)],h,d);o[a(342)](i[a(566)](g$4,p))}o[a(342)]([o[0][0],o[0][1]]),r[a(285)][a(342)]({geometry:{type:i[a(567)],coordinates:[[o]]},properties:{height:t[3],a6:t[6]}})})}),r}[s(458)](t,e){var n=s,i={wvvwY:n(451),IKpCq:n(612),eRuXH:function(t,e){return t+e},xyJyF:n(509),hpQOA:function(t,e){return t<e},OTYIb:function(t,e){return t(e)}},r={};return t[n(604)](t=>{for(var s=n,a=i[s(520)][s(365)]("|"),o=0;;){switch(a[o++]){case"0":u[s(604)](t=>{for(var n=s,i=[],r=this[n(329)]({offsetCode:t,x:e.x,y:e.y}),a=0,o=r[n(446)];l[n(475)](a,o);){var u=r[a++],h=r[a++],d=this[n(442)](e.x,e.y,this[n(380)][n(262)],u,h);i[n(342)](l[n(487)](g$4,d))}i[n(342)]([i[0][0],i[0][1]]),c[n(342)]([i])}),r[h][s(342)]({geometry:{type:i[s(367)],coordinates:c},properties:{}});continue;case"1":r[h=i[s(328)](i[s(384)],h)]||(r[h]=[]);continue;case"2":var c=[];continue;case"3":var l={GGlcr:function(t,e){return i[s(332)](t,e)},ZCApd:function(t,e){return i[s(592)](t,e)}};continue;case"4":var u=t[0],h=t[3];continue}break}}),r}[s(621)](t,e){var n=s,i={JDrvR:function(t,e){return t(e)},qsDIJ:function(t,e){return t>e},rZfii:function(t,e){return t>e},ZSvEZ:n(500)},r=[];return t[n(604)](t=>{var s=n,a={woyTK:function(t,e){return i[m$8(414)](t,e)}},o=[],c=void 0;if(t){var l=t[0],u=null,h=null;i[s(585)](l[s(446)],1)&&(u=[],h=[]),l[s(604)]((t,n)=>{var i=s;u&&u[i(342)](t[0]);var r=t[1],l=this[i(329)]({offsetCode:r,x:e.x,y:e.y}),d=a[i(513)](g$4,this[i(442)](e.x,e.y,this[i(380)][i(262)],l[0],l[1]));h&&h[i(342)](d),o[i(342)]({name:t[0],center:d}),c=t[2]}),i[s(634)](o[s(446)],0)&&(u?r[s(342)]({geometry:{type:i[s(354)],coordinates:o[0][s(490)]},properties:{name2:u,lpos:h,level:c,roadLevel:t[3][s(365)](":")[1]}}):r[s(342)]({geometry:{type:i[s(354)],coordinates:o[0][s(490)]},properties:{name:o[0][s(516)],level:c,roadLevel:t[3][s(365)](":")[1]}}))}}),{roadlabels:r}}[s(548)](){var t=s,e={Yigpn:t(582)};this[t(632)][t(495)](e[t(637)],this[t(378)])}}const P=m$7;function m$7(t,e){t-=247;return M$7()[t]}!function(t,e){const n=m$7,i=t();for(;;)try{if(933383===-parseInt(n(315))/1+-parseInt(n(299))/2+parseInt(n(329))/3+-parseInt(n(273))/4*(parseInt(n(254))/5)+parseInt(n(256))/6*(-parseInt(n(292))/7)+parseInt(n(348))/8*(parseInt(n(333))/9)+parseInt(n(255))/10*(parseInt(n(303))/11))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$7);class BaseParticles extends Points{constructor(t={}){var e=(...t)=>(super(...t),__publicField(this,_jh),__publicField(this,_ih,[]),__publicField(this,_hh,[]),__publicField(this,_gh,[]),__publicField(this,_fh,[]),__publicField(this,_eh,[]),__publicField(this,_dh,-1),__publicField(this,_ch),__publicField(this,_bh),__publicField(this,_ah),__publicField(this,_$g,P(248)),__publicField(this,_Zg,()=>{const t=P;this[t(304)](),this[t(297)][t(309)](),this[t(277)]&&this[t(277)][t(309)]()}),this);const n=P,i={pWPqR:n(349),COKnW:function(t,e){return t/e},QDoqK:n(313)},r=i[n(281)][n(252)]("|");let s=0;for(;;){switch(r[s++]){case"0":this[n(307)][n(250)](i[n(326)](Math.PI,2),0,0);continue;case"1":this[n(347)]=new TextureLoader;continue;case"2":this[n(321)]={color:t[n(332)]||i[n(305)],size:t[n(302)]||.1,width:t[n(338)]||.1,height:t[n(328)]||.5,depth:t[n(318)]||.1,numbers:t[n(262)]||20,direction:t[n(339)]||[0,0,0],scale:t[n(308)]||[1,1,1],position:t[n(298)]||[0,0,0],renderOrder:t[n(279)]||1,map:t[n(283)]||""};continue;case"3":this[n(343)]=new Vector3(this[n(321)][n(339)][0],this[n(321)][n(339)][1],this[n(321)][n(339)][2]);continue;case"4":this[n(298)][n(250)](this[n(321)][n(298)][0],this[n(321)][n(298)][1],this[n(321)][n(298)][2]);continue;case"5":e();continue;case"6":this[n(265)]();continue;case"7":this[n(275)]();continue;case"8":this[n(279)]=this[n(321)][n(279)];continue;case"9":this[n(308)][n(250)](this[n(321)][n(308)][0],this[n(321)][n(308)][1],this[n(321)][n(308)][2]);continue}break}}[(_jh=P(321),_ih=P(253),_hh=P(324),_gh=P(344),_fh=P(287),_eh=P(266),_dh=P(270),_ch=P(260),_bh=P(347),_ah=P(343),_$g=P(295),P(265))](){const t=P;this[t(277)]=new ShaderMaterial({transparent:!0,blending:AdditiveBlending,vertexShader:t(267),fragmentShader:t(251),uniforms:{size:{value:this[t(321)][t(302)]},color:{value:new Color(this[t(321)][t(332)])},map:{value:null},useMap:{value:0}},depthTest:!0,depthWrite:!1}),this[t(321)][t(283)]&&this[t(340)](this[t(321)][t(283)])}[P(340)](t){const e=P;this[e(347)][e(274)](t,t=>{const n=e;if(this[n(277)]&&this[n(277)][n(312)]){const e=this[n(277)];e[n(312)][n(283)][n(264)]=t,e[n(312)][n(355)][n(264)]=1,e[n(293)]=!0}})}[P(275)](){const t=P,e={DcLAk:function(t,e){return t<e},NklNV:t(331),LKDvM:function(t,e){return t+e},wTrBO:function(t,e){return t+e},CIXzX:function(t,e){return t+e},GToYf:function(t,e){return t*e},rxPUz:function(t,e){return t-e},WWMFR:function(t,e){return t*e},JtIwU:function(t,e){return t*e},rVrTA:function(t,e){return t-e},KicsI:function(t,e){return t*e},FuwLM:function(t,e){return t+e},KIJaJ:t(298),owSFX:t(308),ipCab:t(258),AkXEm:t(249)};this[t(253)]=[],this[t(324)]=[],this[t(344)]=[],this[t(266)]=[],this[t(287)]=[];for(let n=0;e[t(319)](n,this[t(321)][t(262)]);n++){const n=e[t(325)][t(252)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(344)][t(350)](e[t(278)](Math[t(353)](),.1));continue;case"1":this[t(266)][t(350)](e[t(278)](Math[t(353)](),.5),e[t(296)](Math[t(353)](),.5),e[t(278)](Math[t(353)](),.5));continue;case"2":this[t(287)][t(350)](e[t(261)](e[t(271)](Math[t(353)](),1200),100));continue;case"3":this[t(253)][t(350)](e[t(271)](e[t(276)](e[t(271)](Math[t(353)](),2),1),this[t(321)][t(338)]),e[t(294)](Math[t(353)](),this[t(321)][t(328)]),e[t(352)](e[t(290)](e[t(247)](Math[t(353)](),2),1),this[t(321)][t(318)]));continue;case"4":this[t(324)][t(350)](e[t(306)](e[t(271)](Math[t(353)](),.2),.2));continue}break}}this[t(297)][t(316)](e[t(257)],new Float32BufferAttribute(this[t(253)],3)),this[t(297)][t(316)](e[t(282)],new Float32BufferAttribute(this[t(324)],1)),this[t(297)][t(316)](e[t(335)],new Float32BufferAttribute(this[t(344)],1)),this[t(297)][t(316)](e[t(336)],new Float32BufferAttribute(this[t(287)],1))}[P(288)](t){const e=P,n={CQmKN:function(t,e){return t(e)},geyYj:function(t,e){return t===e},kVOmD:function(t,e){return t-e},YdGgs:function(t,e){return t<e},RCtEP:function(t,e){return t/e},SknPu:function(t,e){return t*e},jEYTl:function(t,e){return t+e},EIKoZ:function(t,e){return t*e},AYZRX:function(t,e){return t+e},tcXwQ:function(t,e){return t*e},Gcpbc:function(t,e){return t<=e},uViMS:e(354),faKwP:function(t,e){return t*e},HxMDB:function(t,e){return t+e},aFgQq:function(t,e){return t+e},CttgE:function(t,e){return t/e}};if(this[e(270)]=n[e(280)](requestAnimationFrame,this[e(288)][e(341)](this)),n[e(351)](this[e(260)],void 0))return void(this[e(260)]=t);const i=n[e(345)](t,this[e(260)]);this[e(260)]=t;const r=this[e(297)][e(314)][e(298)][e(286)],s=this[e(297)][e(314)][e(258)][e(286)],a=this[e(297)][e(314)][e(249)][e(286)];for(let o=0;n[e(272)](o,this[e(266)][e(289)]);o+=3){const t=n[e(300)](o,3);if(r[o]+=n[e(259)](n[e(259)](.001,this[e(266)][o]),this[e(343)].x),r[n[e(317)](o,1)]+=n[e(259)](n[e(330)](.001,this[e(266)][n[e(317)](o,1)]),this[e(343)].y),r[n[e(301)](o,2)]+=n[e(330)](n[e(327)](.001,this[e(266)][n[e(301)](o,2)]),this[e(343)].z),a[t]-=i,n[e(337)](a[t],0)){const i=n[e(268)][e(252)]("|");let s=0;for(;;){switch(i[s++]){case"0":this[e(287)][t]=n[e(301)](n[e(269)](Math[e(353)](),1200),100);continue;case"1":r[n[e(346)](o,1)]=this[e(253)][n[e(301)](o,1)];continue;case"2":r[o]=this[e(253)][o];continue;case"3":a[t]=this[e(287)][t];continue;case"4":r[n[e(285)](o,2)]=this[e(253)][n[e(346)](o,2)];continue}break}}s[t]=n[e(345)](1,n[e(284)](a[t],this[e(287)][t]))}this[e(297)][e(314)][e(298)][e(293)]=!0,this[e(297)][e(314)][e(258)][e(293)]=!0,this[e(297)][e(314)][e(249)][e(293)]=!0}[P(291)](){const t=P;({QeGfV:function(t,e){return t===e}})[t(342)](this[t(270)],-1)&&this[t(288)](0)}[P(304)](){const t=P,e={VTkzV:function(t,e){return t!==e},nmYEQ:function(t,e){return t(e)}};e[t(320)](this[t(270)],-1)&&(e[t(323)](cancelAnimationFrame,this[t(270)]),this[t(270)]=-1,this[t(260)]=void 0)}[(__g=P(322),_Zg=P(309),__g)](t={}){const e=P,n={QKJLx:function(t,e){return t!==e},WMgAv:function(t,e){return t!==e},NVddM:function(t,e){return t!==e}},i=n[e(310)](t[e(262)],void 0)||n[e(311)](t[e(338)],void 0)||n[e(310)](t[e(328)],void 0)||n[e(310)](t[e(318)],void 0);if(Object[e(263)](this[e(321)],t),t[e(339)]&&this[e(343)][e(250)](t[e(339)][0],t[e(339)][1],t[e(339)][2]),t[e(298)]&&this[e(298)][e(250)](t[e(298)][0],t[e(298)][1],t[e(298)][2]),t[e(308)]&&this[e(308)][e(250)](t[e(308)][0],t[e(308)][1],t[e(308)][2]),n[e(334)](t[e(279)],void 0)&&(this[e(279)]=t[e(279)]),this[e(277)]&&this[e(277)][e(312)]){const i=this[e(277)];t[e(332)]&&i[e(312)][e(332)][e(264)][e(250)](t[e(332)]),n[e(310)](t[e(302)],void 0)&&(i[e(312)][e(302)][e(264)]=t[e(302)]),t[e(283)]&&this[e(340)](t[e(283)]),i[e(293)]=!0}i&&this[e(275)]()}}function M$7(){const t=["loadTexture","bind","QeGfV","smokeDir","opacities","kVOmD","HxMDB","texLoader","9232vDJvfo","5|2|1|3|9|0|4|8|6|7","push","geyYj","JtIwU","random","2|1|4|0|3","useMap","KicsI","BaseParticles","lifecycle","set","\n uniform vec3 color;\n uniform sampler2D map;\n uniform float useMap;\n varying float vOpacity;\n\n #include <common>\n #include <logdepthbuf_pars_fragment>\n \n void main(){\n #include <logdepthbuf_fragment>\n\n // 计算到粒子中心的距离\n float d = distance(gl_PointCoord, vec2(0.5));\n \n // 圆形粒子\n if(d < 0.5){\n if(useMap == 0.0){\n // 纯色粒子\n gl_FragColor = vec4(color, vOpacity);\n } else {\n // 纹理粒子\n vec2 uv = vec2(gl_PointCoord.x, 1.0 - gl_PointCoord.y);\n vec4 mapTexel = texture2D(map, uv);\n gl_FragColor = vec4(color, vOpacity * mapTexel.a);\n }\n } else {\n // 超出圆形范围,丢弃片元\n discard;\n }\n\n #include <tonemapping_fragment>\n gl_FragColor = linearToOutputTexel(gl_FragColor);\n }\n ","split","positions","797665RwqSlk","40810JLexGM","2927436UIrLmB","KIJaJ","opacity","SknPu","updateTime","CIXzX","numbers","assign","value","initMaterial","animationTag","\n uniform float size;\n attribute float scale;\n attribute float opacity;\n varying float vOpacity;\n\n #include <logdepthbuf_pars_vertex>\n #include <common>\n \n void main(){\n // 计算模型视图变换\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n \n // 根据距离计算粒子大小(透视效果)\n gl_PointSize = scale * size * (300.0 / -mvPosition.z);\n \n // 计算最终位置\n gl_Position = projectionMatrix * mvPosition;\n \n // 传递不透明度\n vOpacity = opacity;\n \n #include <logdepthbuf_vertex>\n }\n ","uViMS","faKwP","animationIndex","GToYf","YdGgs","40sTxria","load","initGeometry","rxPUz","material","LKDvM","renderOrder","CQmKN","pWPqR","owSFX","map","CttgE","aFgQq","array","lifeCycle","animate","length","rVrTA","start","7QtrBLW","needsUpdate","WWMFR","type","wTrBO","geometry","position","3139624kqpFQA","RCtEP","AYZRX","size","10087bWRXZT","stop","QDoqK","FuwLM","rotation","scale","dispose","QKJLx","WMgAv","uniforms","#ff0000","attributes","252751kUWNvW","setAttribute","jEYTl","depth","DcLAk","VTkzV","opts","updateConfig","nmYEQ","scales","NklNV","COKnW","tcXwQ","height","2134407RNMjLP","EIKoZ","3|4|0|2|1","color","3006tZUWEl","NVddM","ipCab","AkXEm","Gcpbc","width","direction"];return(M$7=function(){return t})()}var w=m$6;function m$6(t,e){return t-=347,M$6()[t]}function M$6(){var t=["stop","remove","1910214jaBCxs","scene","add","start","1|3|2|0|4","split","30WfgLnr","1929224zdSKLZ","560352vlZGyn","particles","60wRJjNr","gKram","27635553ehyKal","weatherOptions","1002317mEcVCm","map","isPlaying","5000OavJRX","79786VGyCJX","dispose","effect","mapData","options"];return(M$6=function(){return t})()}!function(t,e){for(var n=m$6,i=t();;)try{if(629648===-parseInt(n(364))/1+parseInt(n(367))/2*(-parseInt(n(360))/3)+-parseInt(n(358))/4*(parseInt(n(356))/5)+-parseInt(n(350))/6+parseInt(n(368))/7+-parseInt(n(357))/8+parseInt(n(362))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$6);class WeatchEffect{constructor(t){__publicField(this,_ph),__publicField(this,_oh,null),__publicField(this,_nh,!1),this[w(365)]=t}[(_ph=w(365),_oh=w(359),_nh=w(366),w(353))](t=(t=>null==(t=(t=>null==(t=(t=>null==(t=this[w(365)][w(371)])?void 0:t[w(347)])())?void 0:t[w(363)])())?void 0:t[w(370)])()){for(var e=w,n={gKram:e(354)}[e(361)][e(355)]("|"),i=0;;){switch(n[i++]){case"0":this[e(365)][e(351)][e(352)](this[e(359)]);continue;case"1":if(!t)return;continue;case"2":this[e(359)]=new BaseParticles(t);continue;case"3":this[e(348)]();continue;case"4":this[e(359)]&&!this[e(366)]&&(this[e(359)][e(353)](),this[e(366)]=!0);continue}break}}[w(348)](){var t=w;this[t(359)]&&this[t(366)]&&(this[t(359)][t(348)](),this[t(366)]=!1),this[t(359)]&&this[t(369)]()}[w(369)](){var t=w;this[t(359)]&&(this[t(365)][t(351)][t(349)](this[t(359)]),this[t(359)][t(369)](),this[t(359)]=null)}}const J=m$5;function m$5(t,e){t-=163;return M$5()[t]}function M$5(){const t=["xRDMn","layer","getMapData","instanceScale","</div> --\x3e\n ","intersectObjectsBy2D","disable","PVNqU","amap","lat","container2","rotateX","eskHr","VARQp","testMsg","_noClick","SnoyF","</div>\n \x3c!-- <div>计步器","getZoom","body","IYrCw","defailtTile","mzpWP","bQYJS","className","destory","setPitch","stop","QvFhS","TCaddEventListenerL: pointerupevt","js:","minPitch","🚀 ~ showIndoorFitscreen:","XYAhf","getAreaByName","lightList","environmentIntensity","forEach","xkGvz","jbq","renderOrder","disconnect","iconHeight","lFJjO","lightGroup","interact","visibilitychange","YgaLh","18ellbjo","display: flex;padding:5px;justify-content: space-around;","assign","getStatus","isLight","request","clientHeight","createPointLight","pointerup","values","zOyaU","BHnqK","setCenter","Thrzp","oLViu","#67C23A","naviInfo","circle","send","setFromPoints","eVkSg","uOycZ","loaded","clone","log","hcCPz","isArray","GzhGT","WgelS","createAmbientLight","GGrHv","path","VEosW","isShadow",".json","mobileView","512765cFdwaN","red","showIndoorFitscreen","height:100%;width:100%;","KNaHf","backToMap","jbxuj","includes","start","setContainer","cIfhj","bias","toggleModelAnimation","shadow","onawv","uihVD","far","#FFFFFF","texture","&x=","mapConfig","tTbVe","lTOHt","isClosedRotat","floorHeight","getPolygonById","SryxV","modelData","cross","qWDyj","getItemById","gpsPath","slice","setZoom","BeBOT","Hcgnz","MapData/","isAutoIndoor","castShadow","environmentRotation","container","areaZoom","hideTilePoi","pointermove","sZjUG","setZoomAndCenter","enableOperation","isOutdoor","setDefaultLayer","xDoOx","Model","zooms","&scl=1<ype=11","name","responseType","fillStyle","xxsEK","api","max","dGqxX","teTmd","tile","0.5","wgzZy","156OZtDWh","splice","BiaWX","renderer","LsqVY","eKoSs","position:absolute;left:0;right:0;top:0;height:0;pointer-events:none;\nbackground: linear-gradient(180deg,rgb(56 125 255), rgb(166 197 255) 30%, rgba(0,0,0,0));z-index:1;","domElement","fVbVw","QYXpU","getPitch","oefOm","getFloorById","eUYBI","ewliI","afHfZ","remoeBuild","MOuGU","sideMap","ylnme","lngLatToCoord","ClNid","Bjdig","dYTvs","maxPitch","testMsgArr","0px","xbHOy","EaNvx","vmap","satelliteTile","buildId","PnKGS","WlTqn","fromScene","qmYus","mCiHW","CWqOO","PUmlv","pitch","decay","then","ZZtZb","uyHUT","tilePois","setRotation","event","loadAsync","isWater","spwpU","length","children","file","instanceRotation","extrasMaterial","tiledmapUrl","floorScene","touchstart","xgwPo","_mapLayer","weatherEffect","random","48WSkMZQ","_handleResizevisibilitychangeEvent","json","dnVQF","AFxEp","fov","tilePoisGroup","beaconDetectShow","originEvent","switchFloor","findIndex","height","isSky","push","transform","hideWithPolygon","position","innerHTML","scene","RRSni","hideIndoor","skyImg","getNaviRotation","visible","noMap","removeAllCustomMarker","object3d","outerFloor","SFAsJ","30GXgCTc","testaaa","zuxjM","wodlW","cVPUv","observe","poWuO","onclick","open","WgGRR","215091EUHWwa","dragEnable","showIndoor","Polygon","JkmEF","0|4|2|3|1","auto","eYSRy","mapId","getMapDataById","Marker","markerCollisionPool","ZeUIT","getSize","addMarker","build","testOption","FYqHD","ceil","rotationEnable","addFromChildrnPool","left","order","manyFloorModeChange","5Ymdyip","_click","dir","IAHfD","instances","XSgat","polygonDataArr","features","oyicE","addBuild","47688kwAkol","ZETyd","addCustomNaviLine","vXHjA","setStatus","color","没有找到地图:","traverse","setSatelliteLayer","instanceId","dBvpH","wAPPh","JQvtC","distanceTo","IYzUY","getCenter","removeTile","HkXfu","kMJUw","addTile","onDistanceDetect","pmremGenerator","mapTile","REhiZ","createDirectionalLight","sub","height:100%;width:100%;position:relative","_callback","area","userData","OqUIX","viewMode","collision","NEhPQ","setView","string","line","bboxView","isNavi","join","mapSize","hySeI","manyFloorMode","rotation","getPolygonByIdCache","testMsgSprite","response","low-power","Change","sizeRatio","abs","addCustomMarker","HFtXg","coordsToLngLat","KCClG","#F56C6C","api2","near","handleMarkerCollision","tileMaxZoom","async","coordinates","href","ctEaI","1|4|5|0|2|3","click","floor","stringify","ildjp","lUCIr","https://wprd0","properties","_removeAllFloorControlEvent","oBAbG","inDoorModelScale","api/Map/Data/","AEsVs","indexOf","add","remove","xnWOI","iLuQO","vPqvY","Rfbdr","mobileZooms","clear","removeFromParent","DdfDa","view","warpScene","environment","wmIdn","coordsToLngLatWorld","tnOSK","addNaviLinePass","Fvnzq","rssi","QRxyI","currentShowBuilds","intersectObjectsByLine","QzRTN","adUsa","create","addSkyImg","curentFloor","testSprite","minor","buildData","Sprite","gpYZi","addNaviLine","recoverOtherBuild","pitchEnable","iXyjc","getMapObj","keys","debugPath","mergeOptions","addDomMarker","disableOperation","createElement","OjYfX","geometry","JYhvw","#fff","right","fitPoints","RhvQp","none","lnglat","vTyxO","sfMNE","7|10|9|11|8|14|12|13|3|1|5|0|4|6|2","closeDistanceDetect","toFixed","VFuBR","bVQVv","Wgkby","lSzKe","handleMapClick","beaconDetect","skyHud","bgAAO","clientWidth","removeNaviLine","toDHA","getPointsFitWorld","lock","addTilePoi","initMap","gadTh","LGqCj","rxITP","xqQoc","mapEl","options","beaconFilterList","aqWZF","UxLPU","QhtHj","load","minZoom","addDefaultFloor","split","dispose","text","nqSfx","AkLrS","wiQbH","</div>\n <div>信.标检测","FbbkG","cssText","get","SgSwQ","buildChange","LgFBt","setViewMode","kSlFB","getPointsFit","FtUkA","shadow=","zPauV","_features","noTile","floorId","EMLoL","DLPBW","blob","wheel","innerText","getElementById","COJRv","gHzQx","OaYGR","readyState","instanceType","IcgDn","QBEok","\n <div>信标","pointerEvents","AZWYr","Xrzto","geovr","type","YkEhn","addLight","664912cugItc","beaconDetectShowGroup","PUFto","MkyLX","flat","</div>\n <div>路线","center","testSpriteGroup","opacity","plane","distance","data","radius","#E6A23C","addSkyHud","VpZxN","onreadystatechange",".zip","kYgBW","_messageEvent","getFit","message","buttons","mapData","mapBackgroundColor","hidePolygon","addCustomMarker方法已弃用, 请使用addMarker方法","maxInMapDistance","markerPool","ThYBe","find","handleSpriteCollision","&y=","material","fitPolygon","nMFVh","getModelById","wheelDelta","EgtbF","user-select: none;position:absolute;left:0%;bottom:50%;background:#000;opacity:0.5;color:#fff;font-size:12px;padding: 5px;z-index:999;","2230398IhfpGp","debugBeacon","gpsFloors","showlogs","button","PDDAL","intensity","pMftA","top","camera","div","xMjBN","angle","style","CRkwq","lowPower","tan","sort","testPoint","removeAmapFeatures","HmaXc","polygonLoaded","touches",".is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&z=","UUDZn","set","traverseVisible","sky-mask","QjTrs","key","VsBqo","计步器","emit","SuBCJ","vtnjQ","vnAhV","render","isTile","nhMjZ","EvJes","XKFWP","FNavu","dulAg","getRotation","1|0|3|2|4","translateX(-90%)","object","SGflg","parent","topMap","lng","ById","addSky","route","location","ZwEWe","rect","removeTilePoi","width","fTwnh","WPlQt","filter","clamp","floorChange","nextIdx","parse","jzZhI","UiiQJ","tyUvE","zoom","3|4|2|0|1","viewchange","Uhrfg","polygonData","isSimulate","cogHe","recoverAmapFeatures","bottom","angleTo","absolute","JubmO","removeOtherBuild","DhujD","PEfYo","CpIib","hZFoN","setZ","312753llrcYG","point","BrgPP","getBoundingClientRect","PDHGq","childrenPool","ThuIO","getBuildById","hideOutViewIndoor","MDkpR","compileEquirectangularShader","map","polygonGroup","uCrhz","addEventListener","iwBHP","URbAh","apsCv","aeKde","handleResize",".is.autonavi.com/appmaptile?style=6&z=","parentArea","testBox","scale","fmtYs","iofQz","lWitc","getMapDataByIdCache","IYLNs","aaanA","points","tFlrk","tDcHs","409216xAsNnp","fontSize","_hide","maxZoom","getPolygonDataById","iconImage","XTzvM","update","DEG2RAD","#909399","customMarkerData","dlita","removeEventListener","lZOen","getMarkerById","removeCustomMarker","qnkwb","gTmJT","glowShader","resize","lZunV","KIpyS","DcUNC","domObserver","setAllFloorControl","naQoa","enableDistanceDetect","target","GVmAS","AQbPK","mapChilds","copy","zcuRy","backgroundColor","getBuildDataById","fBDPM","dwfte","DxZhj","showIndoorZoom","pointerdown","navi","lCJsW","append","min","lngLatToCoordWorld","status"];return(M$5=function(){return t})()}let o;if(function(t,e){const n=m$5,i=t();for(;;)try{if(205577===-parseInt(n(695))/1+parseInt(n(789))/2*(parseInt(n(329))/3)+-parseInt(n(535))/4+-parseInt(n(319))/5*(-parseInt(n(575))/6)+-parseInt(n(662))/7*(parseInt(n(256))/8)+-parseInt(n(295))/9*(parseInt(n(285))/10)+parseInt(n(825))/11*(parseInt(n(194))/12))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$5),debug){const t=J(393)[J(492)]("|");let e=0;for(;;){switch(t[e++]){case"0":o[J(201)][J(588)][J(543)]=J(192);continue;case"1":o=new Stats;continue;case"2":o[J(201)][J(588)][J(528)]=J(457);continue;case"3":setTimeout(()=>{const t=J;document[t(760)][t(737)](o[t(201)])},1e3);continue;case"4":o[J(201)][J(588)][J(272)]=J(654);continue;case"5":o[J(201)][J(588)][J(583)]=J(220);continue}break}}const F$1=[];class k extends g$q{constructor(i2){const u2=J,S2={naQoa:function(t,e){return t==e},kYgBW:u2(771),xMjBN:function(t,e){return t(e)},dYTvs:u2(811),apsCv:u2(596),lTOHt:u2(485),URbAh:function(t,e,n){return t(e,n)},oyicE:function(t){return t()},sfMNE:u2(673),BiaWX:function(t,e){return t===e},HkXfu:u2(364),FtUkA:u2(585),VEosW:u2(170),GVmAS:u2(556),MkyLX:u2(503),DdfDa:u2(638)};super(),__publicField(this,"el"),__publicField(this,_ei,document[J(449)](J(585))),__publicField(this,_di),__publicField(this,_ci),__publicField(this,_bi),__publicField(this,_ai),__publicField(this,_$h),__publicField(this,__h),__publicField(this,_Zh),__publicField(this,_Yh,new Vector3(0,0,0)),__publicField(this,_Xh,new Scene),__publicField(this,_Wh,new Scene),__publicField(this,_Vh,new Scene),__publicField(this,_Uh,[]),__publicField(this,_Th,{}),__publicField(this,_Sh),__publicField(this,_Rh),__publicField(this,"ar"),__publicField(this,_Qh),__publicField(this,_Ph,!1),__publicField(this,_Oh),__publicField(this,_Nh),__publicField(this,_Mh,[]),__publicField(this,_Lh),__publicField(this,_Kh,reactiveEvent({build:null,manyFloorMode:!1,viewMode:"3D",enableDistanceDetect:!0,closeDistanceDetect:!1,floor:null},(t,e)=>{const n=J,i={VFuBR:function(t,e){return t+e},cIfhj:n(377)};this[n(607)](i[n(464)](t,i[n(835)]),e)})),__publicField(this,_Jh),__publicField(this,_Ih,new Group$1),__publicField(this,_Hh,[]),__publicField(this,"_p"),__publicField(this,_Gh,[]),__publicField(this,_Fh,()=>{const t=J;this[t(476)]||(this[t(476)]={aaanA:function(t,e,n){return t(e,n)}}[t(691)](setTimeout,()=>{const e=t;Object[e(798)](this[e(306)])[e(673)](t=>t[e(414)]()),this[e(563)][e(673)](t=>{t[e(361)]()}),this[e(476)]=null},100))}),__publicField(this,_Eh),__publicField(this,_Dh,{}),__publicField(this,_Ch,{}),__publicField(this,_Bh,new Vector3(0,1,0)),__publicField(this,_Ah,()=>{const t=J,e={ewliI:function(t,e){return t===e},PUFto:t(437),zPauV:function(t,e,n,i){return t(e,n,i)},bVQVv:function(t,e){return t*e},lCJsW:function(t,e){return t/e},FYqHD:function(t,e){return t*e},YgaLh:function(t,e){return t/e},qWDyj:function(t,e){return t*e}},{clientWidth:n,clientHeight:i}=this[t(483)];this[t(378)]=e[t(465)](e[t(736)](i,e[t(312)](2,Math[t(591)](e[t(788)](e[t(854)](this[t(584)][t(261)],MathUtils[t(703)]),2)))),devicePixelRatio),this[t(274)][t(336)](n=>{const i=t;e[i(208)](n[i(532)],e[i(537)])&&e[i(510)](setSize,n,void 0,this[i(378)])})}),__publicField(this,_zh),__publicField(this,_yh),__publicField(this,_xh),__publicField(this,_wh),__publicField(this,_vh,[]),__publicField(this,_uh,[]),__publicField(this,_th),__publicField(this,_sh),__publicField(this,_rh),__publicField(this,_qh,[]),this[u2(484)]=i2,this[u2(484)][u2(590)]=this[u2(484)][u2(590)]||S2[u2(327)](getURLQuery)[u2(590)],this[u2(282)]=new Group$1,this[u2(282)][u2(183)]=S2[u2(460)],this.el=S2[u2(196)](typeof i2.el,S2[u2(346)])?document[u2(519)](i2.el)||document[u2(449)](S2[u2(508)]):i2.el,this.el[u2(588)][u2(500)]=u2(355),this[u2(483)][u2(588)][u2(500)]=u2(828),this[u2(483)][u2(765)]=S2[u2(821)],this.el[u2(737)](this[u2(483)]),window[u2(676)](S2[u2(723)],this[u2(554)]=K2=>{var _a3,_b3;const h2=u2;S2[h2(720)](null==(_b3=(_a3=K2[h2(546)])[h2(406)])?void 0:_b3.call(_a3,S2[h2(553)]),0)&&S2[h2(586)](eval,K2[h2(546)][h2(857)](3))}),this[u2(743)](i2.id,i2[u2(558)])[u2(235)](()=>{const t=u2;if(this[t(558)][t(484)][t(559)]&&(this.el[t(588)][t(728)]=this[t(558)][t(484)][t(559)]),this[t(468)](),this[t(719)](),this[t(566)](),this[t(714)](),this[t(432)](),this[t(177)])this[t(283)]=new P$6(this[t(558)],this),this[t(283)].on(S2[t(679)],()=>{this[t(349)]()}),this[t(407)](this[t(283)]);else if(this[t(558)][t(310)][0]){let e=this[t(328)](this[t(558)][t(310)][0].id);e[t(491)](),this[t(740)][t(310)]=e}this[t(735)]=new Navigation(this),this.ar=new AR(this),this[t(558)][t(484)][t(172)]||this[t(477)](),this[t(549)](),debug&&this[t(735)][t(629)]&&this[t(735)][t(629)].on(S2[t(847)],e=>{this[t(263)](e)}),S2[t(678)](setTimeout,()=>{const e=t;this[e(830)](!0),this[e(607)](S2[e(217)])},0)}),this.on(S2[u2(538)],t=>{const e=u2;this[e(740)][e(310)]?this[e(740)][e(395)]=this[e(740)][e(310)][e(433)]:this[e(740)][e(395)]=null}),this.on(S2[u2(416)],t=>{const e=u2;S2[e(327)](userTouch),S2[e(678)](setTimeout,()=>{this[e(714)]()},0),this[e(534)](),t?this[e(254)][e(768)]():this[e(254)][e(833)]()})}get[(_ei=J(483),_di=J(749),_ci=J(351),_bi=J(238),J(223))](){return this[J(749)]}get[J(838)](){const t=J,e={hySeI:t(509)};return this[t(558)][t(484)][t(822)]||location[t(391)][t(832)](e[t(370)])}get[J(793)](){const t=J;return this[t(558)][t(484)][t(793)]||!1}get[(_ai=J(845),_$h=J(558),__h=J(484),_Zh=J(253),_Yh=J(541),J(197))](){const t=J;return this[t(749)][t(197)]}get[J(584)](){const t=J;return this[t(749)][t(584)]}[(_Xh=J(274),_Wh=J(418),_Vh=J(250),_Uh=J(563),_Th=J(306),_Sh=J(786),_Rh=J(735),_Qh=J(378),_Ph=J(177),_Oh=J(254),_Nh=J(785),_Mh=J(245),_Lh=J(283),_Kh=J(740),_Jh=J(470),J(549))](){const t=J,e={eYSRy:function(t,e){return t+e},VARQp:function(t,e){return t*e},JQvtC:function(t,e){return t+e},xkGvz:function(t,e){return t/e},tDcHs:function(t,e){return t-e},KCClG:t(585),LgFBt:t(602),ThuIO:t(646)};let n=this[t(470)]=document[t(449)](e[t(383)]);this.el[t(737)](n),n.id=e[t(504)],n[t(588)][t(500)]=t(200),this[t(749)].on(e[t(668)],i=>{const r=t;n[r(588)][r(267)]=e[r(302)](e[r(754)](i[r(233)],.4),"%"),n[r(588)][r(543)]=e[r(341)](e[r(779)](e[r(694)](100,i[r(644)]),100),"")})}[J(632)](){const t=J;this[t(238)][t(493)](),this[t(238)]=null,this[t(262)][t(493)]()}[(_Ih=J(262),J(477))](){const t=J,e={Rfbdr:function(t,e){return t!=e},DxZhj:t(453),XKFWP:t(191)};let n;this[t(238)]=new TilePois(this),this[t(250)][t(407)](this[t(262)]),this[t(238)][t(356)]=i=>{const r=t,s={AEsVs:function(t,n){return e[m$5(412)](t,n)},MOuGU:e[r(732)],uCrhz:e[r(615)]};let a=n;n=new Group$1;let o={};n[r(245)][r(673)](t=>t[r(493)]());for(const t in i[r(511)]){i[r(511)][t][r(673)](t=>{const e=r;let i=t[e(400)];if((null==i?void 0:i[e(183)])&&s[e(405)](i[e(183)],"↑")&&i[e(588)]){if(o[i[e(183)]])return;o[i[e(183)]]=1;let r=JSON[e(396)](i),c=null==a?void 0:a[e(245)][e(565)](t=>t[e(358)][e(604)]===r);!c&&(c=new TextSprite({fontSize:i[e(588)][e(696)],strokeStyle:s[e(211)],fillStyle:i[e(588)][e(185)],strokeWidth:.15,src:i[e(588)][e(700)],vmap:this,text:i[e(183)],renderOrder:i[e(317)],iconHeight:i[e(588)][e(783)],group:s[e(675)]}),c[e(272)][e(726)](this[e(214)](t[e(451)][e(390)])),c[e(358)][e(604)]=r),n[e(407)](c[e(415)]())}})}this[r(262)][r(407)](n),null==a||a[r(493)]()}}[J(328)](t){const e=J;let n=this[e(245)][e(565)](n=>n[e(546)].id===t);if(n)return n;if(n=this[e(315)](t),!n){let i=this[e(558)][e(310)][e(565)](e=>e.id===t);i&&(n=new v$b(i,this),this[e(407)](n))}return n}[J(309)](t,e){const n=J;let i=this[n(206)](t);return null==i?void 0:i[n(309)](e)}[J(447)](t,e){const n=J;let i=this[n(206)](t);return null==i?void 0:i[n(447)](e)}[J(380)](t,e){const n=J,i={oLViu:n(335),poWuO:function(t){return t()},eUYBI:n(380),wmIdn:n(561)};let r=this[n(304)](t);return r?(e.id=i[n(291)](createShortId),r[n(705)]=r[n(705)]||[],r[n(705)][n(269)](e),this[n(607)](i[n(207)]),console[n(813)](i[n(420)]),e):console[n(813)](i[n(803)],t)}[J(710)](t){const e=J,n={PDHGq:function(t,e){return t===e},ZETyd:function(t,e){return t(e)},dwfte:e(710)},i=i=>{const r=e,s={teTmd:function(t,e){return n[m$5(666)](t,e)}};null==i||i[r(857)]()[r(673)]((e,n)=>{const a=r;s[a(190)](e.id,t)&&i[a(195)](n,1)})};n[e(330)](i,this[e(558)][e(705)]),this[e(558)][e(310)][e(673)](t=>{const r=e;t[r(395)][r(673)](t=>{const e=r;n[e(330)](i,t[e(705)])})}),this[e(607)](n[e(731)],t)}[J(281)](){const t=J,e={JkmEF:t(281)};delete this[t(558)][t(705)],this[t(558)][t(310)][t(673)](e=>{const n=t;e[n(395)][n(673)](t=>{delete t[n(705)]})}),this[t(607)](e[t(299)])}[J(331)](t,e,n={}){const i=J;let r=this[i(206)](t);return null==r?void 0:r[i(331)](e,n)}[J(210)](t){const e=J;let n=this[e(245)][e(565)](n=>n[e(546)].id===t);n&&this[e(408)](n)}[J(349)](){const t=J,e={vTyxO:function(t,e){return t+e},lSzKe:function(t,e){return t/e},XSgat:function(t,e){return t/e},cogHe:function(t,e){return t+e},RhvQp:function(t,e){return t*e},rxITP:function(t,e){return t+e},zuxjM:function(t,e){return t-e},HmaXc:function(t,e){return t+e},onawv:function(t,e){return t+e},uOycZ:function(t,e){return t-e},JubmO:function(t,e){return t+e},uihVD:function(t,e){return t!==e},WlTqn:function(t,e){return t&&e},qnkwb:function(t,e){return t===e},Xrzto:function(t,e){return t(e)},eKoSs:function(t){return t()},oBAbG:function(t,e){return t<e},SgSwQ:t(646)};let n=new Vector3(0,0,-1),i=50;const r=()=>{const n=t;let r=this[n(197)][n(201)][n(665)](),s=e[n(459)](e[n(467)](this[n(197)][n(201)][n(472)],2),r[n(316)]),a=e[n(459)](e[n(324)](this[n(197)][n(201)][n(795)],2),r[n(583)]);return[[e[n(459)](s,i),e[n(650)](a,i)],[e[n(650)](s,e[n(456)](i,.2)),a],[e[n(481)](s,i),e[n(287)](a,i)],[s,e[n(595)](e[n(595)](a,i),e[n(456)](i,.2))],[s,e[n(839)](e[n(287)](a,i),e[n(456)](i,.2))],[e[n(810)](s,i),e[n(655)](a,i)],[e[n(839)](e[n(287)](s,i),e[n(456)](i,.2)),a],[e[n(287)](s,i),e[n(810)](a,i)]][n(673)](t=>{const e=n;let i=this[e(786)][e(746)]({x:t[0],y:t[1]},[this[e(786)][e(544)]]);return i?i[0][e(663)][e(661)](1e3):[]})};let s=this[t(283)][t(674)][t(245)][t(636)](e=>{var n;return null==(n=e[t(358)][t(648)])?void 0:n[t(436)]});const a=e=>{const i=t;let r=this[i(786)][i(428)](e,n,s)[i(592)]((t,e)=>t[i(545)]-e[i(545)])[0];return null==r?void 0:r[i(621)][i(358)][i(648)]};let o=this[t(558)][t(648)][t(636)](e=>e[t(436)]);o[t(244)]&&this[t(749)].on(e[t(502)],n=>{const i=t;if(this[i(740)][i(371)]||!this[i(740)][i(721)]||this[i(740)][i(462)])return;let s=this[i(739)](n[i(541)])[i(661)](1e3),c=e[i(530)](a,s);!c&&e[i(199)](r)[i(565)](t=>c=a(t)),c&&e[i(402)](n[i(644)],c[i(733)])&&(c=null),c?this[i(735)][i(740)][i(367)]||this[i(735)][i(740)][i(649)]||this[i(297)](c[i(436)].id):this[i(740)][i(310)]=null,this[i(735)][i(740)][i(628)][i(244)]&&o[i(673)](t=>{var n,r;const s=i;!this[s(735)][s(740)][s(628)][s(565)](e=>{var n;return(null==(n=e[s(395)][s(623)])?void 0:n.id)===t.id})&&e[s(840)](null==(n=null==c?void 0:c[s(436)])?void 0:n.id,t.id)&&this[s(276)](t.id);let a=this[s(735)][s(740)][s(367)]||this[s(735)][s(740)][s(649)],o=this[s(735)][s(740)][s(628)][e[s(810)](this[s(735)][s(805)][s(639)],1)];if(e[s(227)](a,o)){e[s(711)](null==(r=o[s(395)][s(623)])?void 0:r.id,t.id)?this[s(297)](t.id):this[s(276)](t.id)}}),!c&&!this[i(735)][i(740)][i(628)][i(244)]&&(this[i(283)]&&new Tween(this[i(283)][i(282)][i(685)]).to({z:1},300)[i(833)](),this[i(427)][i(857)]()[i(673)](t=>{const e=i;this[e(276)](t[e(546)].id)}))})}[J(473)](){const t=J,e={UiiQJ:t(473)};this[t(607)](e[t(642)])}[J(439)](){const t=J,e={ZwEWe:t(473),lWitc:t(439)};this[t(607)](e[t(630)]),this[t(607)](e[t(688)])}[J(423)](){const t=J,e={DcUNC:t(423)};this[t(607)](e[t(717)])}[J(443)](t){const e=J;if(t)return t[e(358)][e(648)]||t[e(358)][e(852)]||t[e(358)][e(325)]?t:this[e(443)](t[e(623)])}[J(432)](){const t=J,e={CpIib:function(t,e){return t/e}};if(this[t(558)][t(484)][t(277)]){const n=texureLoader[t(489)](this[t(558)][t(484)][t(277)]);let i=new Mesh(new SphereGeometry(1e5,100,100),new MeshBasicMaterial({map:n,side:BackSide,transparent:!0,depthWrite:!1}));i[t(752)](e[t(659)](Math.PI,2)),i[t(781)]=-6,this[t(274)][t(407)](i)}}[J(837)](t,e){var n;const i=J;if(!t)return;let r=this[i(571)](t),s=this[i(709)](t),a=this[i(850)](t),o=null==a?void 0:a[i(358)][i(648)];const c=null==(n=a[i(623)])?void 0:n[i(245)][i(636)](e=>{var n,r;return(null==(r=null==(n=e[i(358)])?void 0:n[i(648)])?void 0:r[i(271)])===t});s&&(s[i(697)]=!e),r&&(r[i(279)]=!0,r[i(320)]=!0),a&&(a[i(279)]=!o[i(560)],a[i(320)]=!0,null==c||c[i(778)](t=>{const e=i;t[e(279)]=!0,t[e(320)]=!0})),{aqWZF:function(t,e,n){return t(e,n)}}[i(486)](setTimeout,()=>{const t=i;r&&(r[t(279)]=e,r[t(320)]=e),a&&(a[t(279)]=!o[t(560)]&&e,a[t(320)]=e,null==c||c[t(778)](n=>{var i,r;const s=t,{hidePolygon:a}=(null==(r=null==(i=null==n?void 0:n[s(358)])?void 0:i[s(648)])?void 0:r[s(560)])??{};n[s(279)]=!a&&e,n[s(320)]=e}))},300)}[(_Hh=J(427),J(297))](t,e){const n=J;let i=this[n(427)][n(565)](e=>e[n(546)].id===t);if(i)return e&&i[n(265)](e),this[n(740)][n(310)]=i,i;let r={Fvnzq:function(t){return t()}}[n(424)](getURLQuery)[n(403)]||.3,s=this[n(571)](t),a=this[n(850)](t);return i=this[n(328)](t),this[n(427)][n(269)](i),e?i[n(265)](e):i[n(491)](),((null==s?void 0:s[n(320)])||(null==a?void 0:a[n(320)]))&&(this[n(837)](t,!1),this[n(283)]&&new Tween(this[n(283)][n(282)][n(685)]).to({z:r},300)[n(833)]()),this[n(740)][n(310)]=i,i}[J(827)](t,e,n=!0){var i;const r=J,s={Uhrfg:function(t,e){return t+e},xxsEK:r(773),LsqVY:function(t,e){return t>e},SnoyF:function(t,e){return t+e},spwpU:function(t,e,n){return t(e,n)}};if(console[r(813)](s[r(186)]),!this[r(177)])return void(e&&(null==(i=this[r(740)][r(310)])||i[r(265)](e)));this[r(740)][r(721)]=!1;let a=this[r(699)](t),{zoom:o,lnglat:c}=this[r(475)](a[r(692)]||[],20);n&&(s[r(198)](a[r(692)][r(244)],1)?this[r(749)][r(175)](s[r(757)](a[r(733)],.5),c,300):this[r(749)][r(801)](c,300)),s[r(243)](setTimeout,()=>{const i=r;this[i(297)](t,e),this[i(740)][i(721)]=!0,n&&this[i(749)][i(163)](s[i(647)](this[i(749)][i(759)](),.001))},600)}[J(276)](t){const e=J;let n=this[e(427)][e(266)](n=>n[e(546)].id===t);({ThYBe:function(t,e){return t>e}})[e(564)](n,-1)&&this[e(427)][e(195)](n,1);let i=this[e(571)](t),r=this[e(850)](t);(i&&!i[e(279)]||r&&!r[e(279)])&&(this[e(837)](t,!0),this[e(210)](t))}[J(775)](t,e=!0){const n=J,i={cVPUv:function(t,e){return t===e}};let r=[],s=n=>{var s;const a=m$5;(e?null==(s=n[a(183)])?void 0:s[a(832)](t):i[a(289)](n[a(183)],t))&&r[a(269)](n)};return this[n(558)][n(648)][n(673)](s),this[n(558)][n(310)][n(673)](t=>t[n(395)][n(673)](t=>t[n(648)][n(673)](s))),r}[J(670)](){const t=J,e={xRDMn:function(t,e){return t!==e}};this[t(427)][t(857)]()[t(673)](n=>{const i=t;e[i(741)](n,this[i(740)][i(310)])&&this[i(276)](n[i(546)].id)}),this[t(427)]=[]}[J(593)](t,e=J(826),n=2){const i=J;if(!debug)return;this._p=this._p||{},this._p[e]&&this._p[e][i(493)]();const r=(new BufferGeometry)[i(808)](t);let s=new PointsMaterial({color:e,size:n,transparent:!0,opacity:.5,depthTest:!1,depthWrite:!1,sizeAttenuation:!1});const a=new Points(r,s);a[i(781)]=renderOrderConfig[i(365)],this._p[e]=a,this[i(282)][i(407)](a)}[J(478)](){var t,e,n,i,r;const s=J,a={dnVQF:function(t,e,n){return t(e,n)},wodlW:s(512),Thrzp:s(811)};let{options:o,view:c}=this[s(558)],{isPlane:l}=o;this[s(749)]=new MapControl(this),this[s(749)][s(833)](),F$1[s(269)](this),this[s(749)][s(834)](this[s(483)]),this[s(749)][s(218)]=85,this[s(749)][s(772)]=0,ua.pc?(this[s(749)][s(698)]=debug?30:(null==(t=o[s(181)])?void 0:t[s(244)])?o[s(181)][1]:30,this[s(749)][s(490)]=debug?0:(null==(e=o[s(181)])?void 0:e[s(244)])?o[s(181)][0]:0):(this[s(749)][s(698)]=debug?30:(null==(n=o[s(413)])?void 0:n[s(244)])?o[s(413)][1]:30,this[s(749)][s(490)]=debug?0:(null==(i=o[s(413)])?void 0:i[s(244)])?o[s(413)][0]:0),this[s(749)][s(372)]=c[s(372)]||0,this[s(749)][s(644)]=c[s(644)]||20,a[s(259)](setTimeout,()=>{const t=s;this[t(749)][t(233)]=c[t(233)]||30},0),l&&(this[s(749)][s(441)]=!1,this[s(749)][s(314)]=!1),this[s(749)][s(163)](1,0);let u=this[s(739)](this[s(558)][s(541)]);this[s(541)].x=u.x,this[s(541)].y=u.y,(null==o?void 0:o[s(268)])&&this[s(627)](),this[s(786)]=new l$h(this),debug&&this[s(282)][s(407)](new AxesHelper(999999999)),this[s(274)][s(407)](this[s(282)]),((null==o?void 0:o[s(612)])||o[s(742)]||this[s(558)][s(484)][s(249)]||(null==(r=null==o?void 0:o[s(326)])?void 0:r[s(244)]))&&!location[s(391)][s(832)](a[s(288)])&&(this[s(351)]=new MapTileView(this),(null==o?void 0:o[s(742)])&&this[s(337)](),this[s(250)][s(407)](this[s(351)]),this.on(a[s(802)],()=>{this[s(348)]()})),this[s(418)][s(407)](this[s(274)]),this[s(254)]=new WeatchEffect(this),this[s(254)][s(833)](),this[s(534)](),this[s(681)]()}[J(611)](t){var e,n,i;const r=J;null==(e=this[r(197)])||e[r(414)](),null==(n=this[r(197)])||n[r(611)](this[r(250)],t),null==(i=this[r(197)])||i[r(611)](this[r(418)],t),debug&&o[r(702)]()}[J(348)](){const t=J,e={PUmlv:t(280)};if(!this[t(558)][t(484)][t(249)]||location[t(391)][t(832)](e[t(232)]))return;this[t(345)]&&this[t(345)]();let n={getTileUrl:this[t(558)][t(484)][t(249)],maxZoom:this[t(558)][t(484)][t(388)]||20,minZoom:2,zIndex:2};this[t(351)][t(348)](n),this[t(345)]=()=>this[t(351)][t(345)](n)}[J(178)](){const t=J;this[t(224)]&&this[t(224)][t(408)](),this[t(762)]&&this[t(762)][t(408)](),this[t(762)]=this[t(351)][t(348)]({getTileUrl:(e,n,i)=>t(399)+Math[t(313)](4*Math[t(255)]())+t(598)+i+t(844)+e+t(567)+n+t(182),maxZoom:20,minZoom:0,zIndex:1})}[J(337)](){const t=J;this[t(224)]&&this[t(224)][t(408)](),this[t(762)]&&this[t(762)][t(408)](),this[t(224)]=this[t(351)][t(348)]({getTileUrl:(e,n,i)=>t(399)+Math[t(313)](4*Math[t(255)]())+t(682)+i+t(844)+e+t(567)+n,maxZoom:18,minZoom:0,zIndex:1})}[(_Gh=J(725),J(656))](){const t=J;this[t(725)]=this[t(245)][t(636)](e=>e!==this[t(740)][t(310)]),this[t(725)][t(673)](e=>e[t(415)]())}[J(440)](){const t=J;this[t(725)][t(673)](e=>this[t(407)](e)),this[t(725)]=[]}[J(651)](){const t=J;this[t(250)][t(279)]=!0}[J(594)](){const t=J;this[t(250)][t(279)]=!1}[J(566)](){const t=J,e={eskHr:function(t,e){return t*e},mzpWP:function(t,e){return t+e},MDkpR:function(t,e){return t%e},kSlFB:t(646)};this[t(749)].on(e[t(506)],()=>{var n;const i=t;this[i(387)]();let r=0;null==(n=this[i(351)])||n[i(601)](t=>{var e;return(null==(e=t[i(568)])?void 0:e[i(673)])&&r++}),log[i(578)]({rotation:this[i(749)][i(618)]()[i(463)](2),zoom:this[i(749)][i(759)]()[i(463)](2),pitch:this[i(749)][i(204)]()[i(463)](2),nodeNum:r}),this[i(418)][i(419)]&&(this[i(418)][i(169)].z=e[i(753)](e[i(763)](e[i(671)](this[i(749)][i(618)](),360),180),MathUtils[i(703)]))})}[(_Fh=J(387),J(468))](){const t=J,e={IYrCw:function(t,e){return t!==e},BeBOT:t(394)};this[t(749)].on(e[t(164)],n=>{var i,r,s,a;const o=t;if(e[o(761)](null==(i=n[o(264)])?void 0:i[o(579)],0))return!1;let c=[];this[o(274)][o(336)](t=>{const e=o;t[e(320)]&&!t[e(756)]&&c[e(269)](t)});let l=this[o(786)][o(746)](n[o(264)],c),u=l[o(673)](t=>{var e;const n=o;t[n(621)]=this[n(443)](t[n(621)])||t[n(621)],t[n(621)][n(358)][n(325)]&&(t[n(621)]=t[n(621)][n(323)][t[n(338)]]);const{hideWithPolygon:i}=(null==(e=t[n(621)][n(358)])?void 0:e[n(648)])??{};return i&&(t[n(621)]=this[n(850)](i)),t})[o(565)](t=>t[o(621)][o(358)][o(648)]&&(t[o(621)][o(279)]||t[o(621)][o(320)]));if(!u)return n[o(240)]=n[o(264)],void this[o(607)](e[o(164)],n);u=u||l[0],u[o(240)]=n[o(264)],u[o(458)]=n[o(458)];let h=this[o(443)](u[o(621)])||u[o(621)];if(h){let t=h[o(358)][o(648)],n=h[o(358)][o(852)];if(n&&(t=null==(r=this[o(850)](n.id))?void 0:r[o(546)]),null==t?void 0:t[o(171)]){if(h[o(279)]&&!this[o(740)][o(371)]){const{zoom:e}=this[o(507)](t[o(692)],0);this[o(749)][o(175)](e,this[o(382)](t[o(541)]),300)}}else if((null==t?void 0:t[o(683)])&&h[o(623)]&&!h[o(623)][o(279)]&&!this[o(740)][o(371)]){let e=this[o(699)](t[o(683)]);const{zoom:n}=this[o(507)](e[o(692)],0);this[o(749)][o(175)](n,this[o(382)](e[o(541)]),300)}if((null==(s=null==t?void 0:t[o(623)])?void 0:s[o(310)])&&e[o(761)](t.id,null==(a=this[o(740)][o(310)])?void 0:a[o(546)].id)){let e=t[o(623)][o(310)][o(565)](e=>e.id===t.id);e&&!this[o(740)][o(462)]&&this[o(827)](e.id)}}this[o(607)](e[o(164)],u)})}[J(801)](t,e,n){const i=J;this[i(749)][i(801)](this[i(421)](t),e,n)}[J(830)](t){var e,n;const i=J,r={wiQbH:i(824),xnWOI:function(t,e){return t===e},kMJUw:i(364)};let s,a=this[i(177)]?this[i(558)]:null==(e=this[i(740)][i(310)])?void 0:e[i(433)][i(546)];if(this[i(177)]||this[i(740)][i(310)]){if(!isPc&&(null==(n=a[i(484)])?void 0:n[i(824)])){let t=a[i(484)][i(824)];console[i(813)](t,r[i(497)]),s=r[i(409)](typeof t,r[i(347)])?JSON[i(640)](t):t}else s=a[i(417)];s&&Object[i(444)](s)[i(244)]?this[i(363)](s,t):this[i(455)](a[i(648)][i(673)](t=>t[i(692)])[i(539)](),0,t?0:500)}}[J(363)](t,e){const n=J,i={AFxEp:function(t,e){return t!==e},PEfYo:function(t,e){return t!==e}};if(t[n(541)]&&this[n(749)][n(801)](Array[n(815)](t[n(541)])?t[n(541)]:[t[n(541)][n(625)],t[n(541)][n(750)]],e?0:300),i[n(260)](t[n(233)],void 0)&&this[n(749)][n(792)]()[n(441)]&&this[n(749)][n(767)](t[n(233)],e?0:300),i[n(658)](t[n(644)],void 0)&&this[n(749)][n(163)](t[n(644)],e?0:300),i[n(658)](t[n(372)],void 0)){let i=t[n(372)];i%=360,this[n(749)][n(239)](i,e?0:300)}}[J(421)](t){const e=J;return this[e(749)][e(382)](t)}[J(382)](t){const e=J,n={uyHUT:function(t,e){return t+e},QhtHj:function(t,e){return t+e}};return this[e(749)][e(382)](n[e(237)](t.x,this[e(541)].x),n[e(488)](t.y,this[e(541)].y))}[J(739)](t,e){const n=J;let i=this[n(749)][n(214)](t,e);return new Vector3(i.x,i.y,0)}[J(214)](t,e){const n=J;let i=this[n(749)][n(214)](t,e);return new Vector3(i.x,i.y,0)[n(354)](this[n(541)])}[J(507)](t,e=0){const n=J;let i=this[n(475)](t,e);return i[n(272)][n(354)](this[n(541)]),i[n(458)]=new LngLat(i[n(458)][n(625)],i[n(458)][n(750)]),i}[J(475)](t,e=0){const n=J;let i=new Box2;return i[n(808)](t),this[n(749)][n(555)]([i[n(738)].x,i[n(738)].y,i[n(188)].x,i[n(188)].y])}[J(455)](t,e=0,n=500){const i=J,{zoom:r,lnglat:s}=this[i(475)](t,e);!{XTzvM:function(t,e){return t>e}}[i(701)](t[i(244)],1)?this[i(749)][i(801)](s,n):this[i(749)][i(175)](r,s,n)}[J(569)](t,e=0,n=500){const i=J;if(!t)return;let r=(t=Array[i(815)](t)?t:[t])[i(673)](t=>{var e;return null==(e=this[i(699)](t))?void 0:e[i(692)]})[i(636)](t=>t)[i(539)]();const{zoom:s,lnglat:a}=this[i(475)](r,e);!{KIpyS:function(t,e){return t>e}}[i(716)](r[i(244)],1)?this[i(749)][i(801)](a,n):this[i(749)][i(175)](s,a,n)}[(_Eh=J(350),J(534))](){var t,e,n,i;const r=J,s={lUCIr:function(t,e){return t!==e},zcuRy:r(376),WgelS:r(785),dBvpH:r(645)};if(!location[r(391)][r(832)](s[r(727)]))if(this[r(793)])null==(t=this[r(785)])||t[r(493)](),this[r(785)]=new Object3D,this[r(785)][r(183)]=s[r(817)],this[r(418)][r(407)](this[r(785)]),(null==(n=null==(e=this[r(558)][r(484)])?void 0:e[r(776)])?void 0:n[r(244)])&&(null==(i=this[r(558)][r(484)][r(776)])||i[r(778)](t=>{var e,n,i;const a=r;if(t[a(747)])return;if(t[a(357)]&&s[a(398)](t[a(357)],(null==(i=null==(n=null==(e=this[a(740)])?void 0:e[a(395)])?void 0:n[a(546)])?void 0:i.id)||"1"))return;let o=a(431)+t[a(183)];if(this[o]){let e=this[o](t,this[a(785)]);this[a(785)][a(407)](e)}}));else{const t=s[r(339)][r(492)]("|");let e=0;for(;;){switch(t[e++]){case"0":this[r(418)][r(419)]=this[r(350)][r(228)](new DebugEnvironment,.6,1e-5,1e6)[r(843)];continue;case"1":this[r(418)][r(777)]=this[r(558)][r(484)][r(777)]||1;continue;case"2":this[r(350)][r(672)]();continue;case"3":if(this[r(350)])return;continue;case"4":this[r(350)]=new PMREMGenerator(this[r(197)]);continue}break}}}[J(818)](t){const e=J,n={gadTh:e(453)};let i=new AmbientLight(t[e(334)]||n[e(479)],t[e(581)]||1);return i[e(358)]=t,i}[J(796)](t){var e,n,i;const r=J,s={wAPPh:r(453)};let a=new PointLight(t[r(334)]||s[r(340)],t[r(581)]||1,t[r(545)]||0,t[r(234)]||2);return a[r(272)][r(600)]((null==(e=t[r(272)])?void 0:e.x)||0,(null==(n=t[r(272)])?void 0:n.y)||0,(null==(i=t[r(272)])?void 0:i.z)||100),a[r(358)]=t,a}[J(353)](t){var e,n,i;const r=J,s={ylnme:r(453)};let a=new DirectionalLight(t[r(334)]||s[r(213)],t[r(581)]||1);return a[r(272)][r(600)]((null==(e=t[r(272)])?void 0:e.x)||0,(null==(n=t[r(272)])?void 0:n.y)||0,(null==(i=t[r(272)])?void 0:i.z)||100),a[r(168)]=t[r(822)]||!1,a[r(838)][r(369)][r(633)]=4096,a[r(838)][r(369)][r(267)]=4096,a[r(838)][r(547)]=1,a[r(838)][r(584)][r(583)]=2e3,a[r(838)][r(584)][r(652)]=-2e3,a[r(838)][r(584)][r(316)]=-2e3,a[r(838)][r(584)][r(454)]=2e3,a[r(838)][r(584)][r(386)]=1,a[r(838)][r(584)][r(841)]=99999,a[r(838)][r(836)]=-1e-4,a[r(358)]=t,a}[J(855)](t,e){const n=J,i={ildjp:function(t,e){return t instanceof e}};let r;return this[n(245)][n(565)](s=>{const a=n;return i[a(397)](s,v$b)?s[a(245)][a(565)](n=>{const i=a;return r=n[i(501)+e+i(626)](t),r}):(r=s[a(501)+e+a(626)](t),r)}),r}[J(571)](t){const e=J,n={sZjUG:e(180)};return this[e(855)](t,n[e(174)])}[J(850)](t){const e=J,n={EgtbF:e(298)};return this[e(855)](t,n[e(573)])}[J(709)](t){const e=J,n={pMftA:e(305)};return this[e(855)](t,n[e(582)])}[J(206)](t){const e=J;let n,i=this[e(304)](t);if(i[e(623)]){n=this[e(669)](i[e(623)].id)[e(206)](i.id)}else n=this[e(283)];return n}[J(669)](t){const e=J;let n=[...this[e(245)],...this[e(667)]][e(565)](n=>{var i;return(null==(i=n[e(546)])?void 0:i.id)===t});if(n)return n;{let i=this[e(558)][e(310)][e(565)](e=>e.id===t);if(i)return n=new v$b(i,this),this[e(667)][e(269)](n),n}}[J(729)](t){const e=J;return this[e(558)][e(310)][e(565)](e=>e.id==t)}[(_Dh=J(689),J(304))](t){const e=J,n={dulAg:e(300),QRxyI:function(t,e){return t===e}},i=n[e(617)][e(492)]("|");let r=0;for(;;){switch(i[r++]){case"0":if(!t)return;continue;case"1":return this[e(689)][t];case"2":if(n[e(426)](this[e(558)].id,t))return this[e(558)];continue;case"3":this[e(558)][e(310)][e(565)](n=>{const i=e;return this[i(689)][t]=n[i(395)][i(565)](e=>String(e.id)===String(t)),this[i(689)][t]});continue;case"4":if(this[e(689)][t])return this[e(689)][t];continue}break}}[(_Ch=J(373),J(699))](t){const e=J,n={tnOSK:function(t,e){return t===e}};if(this[e(373)][t])return this[e(373)][t];const i=i=>{const r=e;return n[r(422)](i.id,t)&&(this[r(373)][t]=i),this[r(373)][t]};return this[e(558)][e(648)][e(565)](i),this[e(373)][t]||this[e(558)][e(310)][e(565)](t=>{const n=e;return t[n(395)][n(565)](t=>{const e=n;return t[e(648)][e(565)](i)})}),this[e(373)][t]}[(_Bh=J(321),J(278))](t,e){const n=J,i={gpYZi:function(t,e){return t>e},WgGRR:function(t,e){return t-e},FbbkG:function(t,e){return t-e}};let r=new Vector3(t.x,t.y,0)[n(354)]({x:e.x,y:e.y,z:0}),s=r[n(812)]()[n(853)](this[n(321)]),a=r[n(653)](this[n(321)]);return i[n(438)](s.z,0)?i[n(294)](Math.PI,a):i[n(499)](a,Math.PI)}[J(627)](){}[J(505)](t){const e=J,n={lZunV:function(t,e){return t===e},AZWYr:function(t,e){return t===e},xqQoc:function(t,e,n){return t(e,n)},Bjdig:function(t,e){return t===e}};n[e(715)](this[e(740)][e(360)],t)||(n[e(529)](t,"2D")?(n[e(482)](setTimeout,()=>{const t=e;this[t(274)][t(685)].z=.2},300),this[e(749)][e(767)](0,300),this[e(749)][e(333)]({pitchEnable:!1}),this[e(740)][e(360)]="2D"):n[e(216)](t,"3D")&&(this[e(749)][e(333)]({pitchEnable:!0}),this[e(749)][e(767)](30,300),this[e(274)][e(685)].z=1,this[e(740)][e(360)]="3D"))}[(_Ah=J(714),_zh=J(718),J(681))](){const t=J,e={iwBHP:function(t,e,n){return t(e,n)},QvFhS:t(787)};this[t(718)]=new ResizeObserver(this[t(714)]),this[t(718)][t(290)](this[t(483)]),document[t(676)](e[t(769)],this[t(257)]=()=>{const n=t;e[n(677)](setTimeout,()=>{const t=n;this[t(387)](),this[t(714)]()},100)})}[(_yh=J(401),J(719))](){const t=J,e={IYLNs:function(t,e){return t+e},OqUIX:function(t,e){return t/e},fmtYs:function(t,e){return t>e},xbHOy:function(t,e){return t-e},qmYus:function(t,e){return t/e},VsBqo:function(t,e){return t-e},QjTrs:t(770),GzhGT:function(t,e){return t>e},VpZxN:function(t,e){return t>e},aeKde:function(t,e){return t-e},ZZtZb:function(t,e){return t>e},bQYJS:function(t,e){return t<e},DLPBW:function(t,e){return t-e},COJRv:t(619),mCiHW:t(734),SGflg:t(517),CRkwq:t(173),FNavu:t(251),WPlQt:function(t,e,n){return t(e,n)},PVNqU:t(797),RRSni:t(318),oefOm:function(t,e,n){return t(e,n)}};this.on(e[t(275)],e=>{const n=t;e?(this[n(749)][n(767)](70),this[n(749)][n(344)](),this[n(749)][n(441)]=!1,this[n(749)][n(296)]=!1):(this[n(749)][n(441)]=!0,this[n(749)][n(296)]=!0)});const n=this[t(749)][t(751)];let i,r,s,a,o,c,l,u;n[t(676)](e[t(622)],i=n=>{const i=t;this[i(740)][i(371)]&&this[i(749)][i(163)](e[i(690)](this[i(749)][i(759)](),e[i(359)](n[i(572)],300)),0)}),n[t(676)](e[t(230)],r=e=>{const n=t;this[n(740)][n(371)]&&(c=o=e)}),n[t(676)](e[t(616)],s=t=>{l=t}),n[t(676)](e[t(589)],a=n=>{var i;const r=t;if(this[r(740)][r(371)]&&this[r(740)][r(310)]&&!e[r(686)](null==l?void 0:l[r(597)][r(244)],1)&&o){let t=e[r(221)](n.x,o.x),s=e[r(221)](n.y,o.y);this[r(740)][r(310)][r(282)][r(272)].z-=e[r(229)](s,10),(null==(i=this[r(558)][r(484)])?void 0:i[r(848)])||this[r(749)][r(239)](e[r(605)](this[r(749)][r(618)](),e[r(359)](t,2)),0),o=n}}),e[t(205)](addEventListener,e[t(748)],u=n=>{var i,r;const s=t;if(console[s(813)](e[s(603)]),e[s(816)](null==l?void 0:l[s(597)][s(244)],1))return;if(!this[s(740)][s(371)]||e[s(550)](n[s(557)],1)||!(null==(i=this[s(740)][s(395)])?void 0:i[s(546)][s(623)])||!c)return;let{floor:a}=this[s(740)][s(395)][s(546)][s(623)],u=a[s(406)](this[s(740)][s(395)][s(546)]),h=e[s(680)](n.y,c.y);e[s(236)](Math[s(379)](h),60)&&(e[s(764)](h,0)?u++:u--),u=MathUtils[s(637)](u,0,e[s(515)](a[s(244)],1)),null==(r=this[s(740)][s(310)])||r[s(265)](a[u].id),c=o=null}),this[t(401)]=()=>{const o=t,c=e[o(520)][o(492)]("|");let l=0;for(;;){switch(c[l++]){case"0":n[o(707)](e[o(230)],r);continue;case"1":n[o(707)](e[o(622)],i);continue;case"2":n[o(707)](e[o(589)],a);continue;case"3":n[o(707)](e[o(616)],s);continue;case"4":e[o(635)](removeEventListener,e[o(748)],u);continue}break}}}[(_xh=J(536),J(263))](t){const e=J,n={EMLoL:function(t,e){return t+e},AkLrS:function(t,e){return t+e},vPqvY:function(t,e){return t+e},fVbVw:function(t,e){return t+e},wgzZy:e(826),nMFVh:e(842),QBEok:e(704),YkEhn:function(t,e){return t/e},xDoOx:e(804),iXyjc:e(548),dlita:e(384)};if(!debug||!localStorage[e(469)])return;if(this[e(536)]&&this[e(536)][e(493)](),this[e(536)]=new Object3D,this[e(282)][e(407)](this[e(536)]),!t[e(244)])return;let i=[n[e(179)],n[e(442)],n[e(706)]];t[e(673)]((t,r)=>{const s=e;let a=new TextSprite({text:n[s(514)](n[s(496)](n[s(411)](n[s(202)](t[s(425)],"-"),this[s(304)](t[s(395)])[s(183)]),"-"),t[s(435)]),vmap:this,fillStyle:n[s(193)],strokeStyle:n[s(570)],bgColor:i[r]||n[s(526)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:n[s(533)](n[s(496)](100,t[s(425)]),2)});a[s(272)][s(600)](t.x,t.y,0)[s(354)](this[s(541)]),a[s(781)]=renderOrderConfig[s(263)],this[s(536)][s(407)](a)})}[(_wh=J(542),J(434))](t){const e=J,n={fBDPM:function(t,e){return t+e},KNaHf:e(826),OaYGR:e(842),HFtXg:e(704),hZFoN:e(804),tTbVe:e(548),SuBCJ:e(384)};if(!debug)return;if(this[e(542)]&&this[e(542)][e(493)](),this[e(542)]=new Object3D,this[e(282)][e(407)](this[e(542)]),!t[e(244)])return;let i=[n[e(660)],n[e(846)],n[e(608)]];t[e(673)]((t,r)=>{const s=e;let a=new TextSprite({text:t[s(494)]||n[s(730)](r,""),vmap:this,fillStyle:n[s(829)],strokeStyle:n[s(522)],bgColor:i[r]||n[s(381)],lineGap:.25,strokeWidth:.15,isCollision:!1,fontSize:12});a[s(272)][s(600)](t.x,t.y,0),a[s(781)]=renderOrderConfig[s(263)],this[s(542)][s(407)](a)})}[J(448)](){const t=J,e={AQbPK:t(457)};this.el[t(588)][t(528)]=e[t(724)]}[J(176)](){const t=J,e={UUDZn:t(301)};this.el[t(588)][t(528)]=e[t(599)]}async[(_vh=J(577),_uh=J(856),J(743))](t,e){var n;const i=J,r={UxLPU:function(t,e){return t!==e},geovr:function(t,e){return t<e},lFJjO:function(t,e){return t%e},Hcgnz:function(t,e){return t+e},Wgkby:function(t,e){return t-e},EvJes:function(t,e){return t-e},EaNvx:function(t,e){return t%e},gHzQx:function(t,e){return t*e},nqSfx:function(t,e){return t>e},xgwPo:i(631),jbxuj:function(t,e){return t<e},SFAsJ:function(t,e){return t==e},bgAAO:i(806),XYAhf:function(t,e){return t===e},BHnqK:function(t,e){return t===e},fTwnh:i(713),dGqxX:function(t,e){return t(e)},REhiZ:function(t,e,n){return t(e,n)},eVkSg:function(t,e){return t>e},IAHfD:function(t,e){return t===e},QzRTN:function(t){return t()},LGqCj:function(t,e){return t(e)},tFlrk:function(t,e){return t*e},QYXpU:function(t,e){return t*e},BrgPP:i(385),vXHjA:i(516),adUsa:i(364),PDDAL:i(286),tyUvE:function(t,e){return t*e}};let s;if(e)s={mapData:e};else try{let e=await this[i(794)]({url:(location[i(391)][i(832)](r[i(664)])?H$c[i(385)]:H$c[i(187)])+i(166)+t+i(552),responseType:r[i(332)],retry:0}),a=await r$8[i(241)](e[i(375)]),o=await(null==(n=a[i(246)](t+i(823)))?void 0:n[i(389)](r[i(430)]));s=JSON[i(640)](o)}catch(u){s=(await this[i(794)]({url:H$c[i(187)]+i(404)+t}))[i(375)][i(546)]}let a={beaconData:[],bgi:{url:"",opacity:1,rotation:0,scale:1,show:!1,position:{x:0,y:0,z:0}},build:[],center:[110.317262,25.328664],fenceData:[],modelData:[],name:r[i(580)],path:[],polygonData:[],view:{},mapId:"",id:"1",options:{closePriorityNavigationList:[]},arShowPoints:[],arShowList:[],needLogin:!0};function o(t){const e=i;let n=t[e(692)];if(r[e(487)](n[e(244)],4)||t[e(560)]||t[e(171)]||t[e(624)]||t[e(212)])return;const s=[];for(let i=0;r[e(531)](i,4);i++){const t=r[e(784)](r[e(165)](i,1),4);s[e(269)](new Vector2(r[e(466)](n[t].x,n[i].x),r[e(614)](n[t].y,n[i].y)))}for(let i=0;r[e(531)](i,4);i++){const t=r[e(222)](r[e(165)](i,1),4);let n=r[e(521)](s[i][e(653)](s[t]),RAD2DEG);if(r[e(495)](Math[e(379)](r[e(466)](+n[e(463)](0),90)),2))return}t[e(524)]=r[e(252)];let a=(new Vector2)[e(726)](n[1])[e(354)](n[0]),o=(new Vector2)[e(726)](n[2])[e(354)](n[1]);t[e(247)]=a[e(587)](),t[e(744)]=new Vector3(a[e(244)](),o[e(244)](),t[e(267)]||1)}function c(t){const e=i;if(r[e(831)](t[e(692)][e(244)],20)||t[e(560)]||t[e(171)]||t[e(624)])return;let n=t[e(692)][e(673)](t=>new Vector2(t.x,t.y))[e(673)](n=>n[e(342)](t[e(541)])),s=n[0];n=n[e(673)](t=>+t[e(463)](1));let a=[...new Set(n)];r[e(284)](a[e(244)],1)&&!t[e(212)]&&!t[e(624)]&&(t[e(524)]=r[e(471)],t[e(744)]=new Vector3(s,s,t[e(267)]||1))}if(!s[i(558)]&&(a[i(541)]=s[i(541)],a[i(303)]=s.id,s[i(558)]=JSON[i(396)](a)),s[i(558)]=JSON[i(640)](s[i(558)]),s[i(558)]=r[i(480)](r$1,s[i(558)]),this[i(484)][i(446)]&&Object[i(791)](s[i(558)][i(484)],this[i(484)][i(446)]),this[i(845)]=s,this[i(558)]=s[i(558)],this[i(478)](),this[i(577)][i(269)](this[i(558)]),this[i(558)][i(849)]=-999,this[i(558)][i(648)][i(673)](t=>{var e,n,s,a,l,u;const h=i,d={lZOen:function(t,e){return r[m$5(774)](t,e)}};if(t[h(623)]=this[h(558)],this[h(558)][h(310)][h(673)](e=>{const n=h;d[n(708)](e.id,t.id)&&(t[n(436)]=e)}),(!this[h(558)][h(310)][h(565)](e=>e.id===t.id)||r[h(800)](t[h(248)],r[h(634)]))&&(r[h(189)](c,t),r[h(189)](o,t)),t[h(436)]){let i=this[h(507)](t[h(692)]);if(t[h(733)]=i[h(644)]||0,null==(n=null==(e=this[h(558)])?void 0:e[h(484)])?void 0:n[h(167)])return;let o=isPc?null==(s=this[h(558)][h(417)])?void 0:s[h(644)]:(null==(l=null==(a=this[h(558)][h(484)])?void 0:a[h(824)])?void 0:l[h(644)])||(null==(u=this[h(558)][h(417)])?void 0:u[h(644)]);o&&(t[h(733)]=Math[h(188)](t[h(733)],r[h(165)](o,.5)))}}),this[i(558)][i(562)]=2e3,this[i(558)][i(648)][i(244)]){let t=new Vector3;this[i(558)][i(366)]=this[i(507)](this[i(558)][i(648)][i(673)](t=>t[i(692)])[i(539)]());let e=0;this[i(558)][i(648)][i(778)](({points:n=[]})=>{const s=i,a={DhujD:function(t,e,n){return r[m$5(352)](t,e,n)},NEhPQ:function(t,e){return r[m$5(809)](t,e)}};n[s(244)]&&n[s(778)](n=>{const i=s;let r=a[i(657)](getLineLength,n,t);a[i(362)](r,e)&&(e=r)})}),this[i(558)][i(562)]=r[i(643)](e,3)}this[i(558)][i(852)][i(673)](t=>{const e=i;t.id=t[e(225)]||t.id||r[e(429)](createShortId),t[e(225)]&&(this[e(558)][e(310)][e(565)](n=>{const i=e;if(r[i(774)](n.id,t[i(225)]))return t[i(436)]=n,n[i(852)]=t}),this[e(558)][e(648)][e(565)](n=>{const i=e;if(r[i(322)](n.id,t[i(225)]))return t[i(436)]=t[i(436)],n[i(852)]=t}))}),this[i(177)]=!!this[i(558)][i(648)][i(244)],this[i(558)][i(310)][i(673)](t=>{const e=i;let n=0;t[e(623)]=this[e(558)][e(648)][e(565)](e=>e.id===t.id),t[e(395)][e(673)]((i,s)=>{const a=e,l={toDHA:function(t,e){return r[m$5(480)](t,e)},afHfZ:function(t,e){return r[m$5(480)](t,e)}};i[a(177)]&&this[a(577)][a(269)](i),i[a(623)]=t,i[a(648)][a(244)]&&(i[a(366)]=this[a(507)](i[a(648)][a(636)](t=>!t[a(242)])[a(673)](t=>t[a(692)])[a(539)]()));let u=new Box2;u[a(808)](i[a(648)][a(673)](t=>t[a(692)])[a(539)]());let h=u[a(308)](new Vector2);n=Math[a(188)](n,r[a(693)](r[a(165)](h.x,h.y),.2)),i[a(648)][a(673)](t=>{const e=a;l[e(474)](o,t),l[e(209)](c,t),t[e(623)]=i})}),t[e(395)][e(673)]((i,s)=>{const a=e;i[a(849)]=r[a(203)](r[a(614)](r[a(614)](t[a(395)][a(244)],s),1),this[a(484)][a(849)]||n),i[a(849)]=+i[a(849)][a(463)](0)})});let l=this[i(577)][i(673)](t=>t.id);this[i(856)]=this[i(558)][i(820)][i(636)](t=>l[i(832)](t[i(513)]))}[J(794)]({url:t,method:e=J(501),responseType:n=J(258),retry:i=5}){const r={PnKGS:function(t){return t()},vtnjQ:function(t,e){return t==e},iofQz:function(t,e){return t>=e},hcCPz:function(t,e){return t<e},zOyaU:function(t,e){return t(e)},ClNid:function(t,e){return t>e},gTmJT:function(t,e,n){return t(e,n)},jzZhI:function(t){return t()}};return new Promise((s,a)=>{const o=m$5;let c=new XMLHttpRequest;c[o(184)]=n;let l=()=>{const n=o;c[n(293)](e,t,!0),c[n(807)]()};c[o(551)]=function(){const t=o,e={JYhvw:function(t){return r[m$5(226)](t)}};r[t(609)](c[t(523)],4)&&(r[t(687)](c[t(740)],200)&&r[t(814)](c[t(740)],400)?r[t(799)](s,c):r[t(215)](i--,0)?r[t(712)](setTimeout,()=>{e[t(452)](l)},1e3):r[t(641)](a))},r[o(226)](l)})}[(_th=J(311),_sh=J(684),_rh=J(374),_qh=J(219),J(755))](t,e){const n=J,i={OjYfX:function(t,e){return t!==e},SryxV:n(620),iLuQO:n(457),nhMjZ:n(606),GGrHv:function(t){return t()},IYzUY:n(585),vnAhV:n(790),CWqOO:n(574)};if(this[n(219)][t]=e,!this[n(374)]){this[n(374)]=document[n(449)](i[n(343)]),this[n(684)]=document[n(449)](i[n(343)]),this[n(311)]=document[n(449)](i[n(343)]),this[n(311)][n(588)][n(500)]=i[n(610)];let t=()=>this[n(311)][n(273)]=n(527)+!!localStorage[n(576)]+n(498)+!!localStorage[n(469)]+n(540)+!!localStorage[n(445)]+n(758)+!!localStorage[n(780)]+n(745);i[n(819)](t),this[n(684)][n(737)](this[n(311)]),this[n(684)][n(737)](this[n(374)]),this.el[n(737)](this[n(684)]),this[n(684)][n(588)][n(500)]=i[n(231)],this[n(374)][n(292)]=()=>{const t=n;this[t(684)][t(588)][t(270)]=i[t(450)](this[t(684)][t(588)][t(270)],i[t(851)])?i[t(851)]:i[t(410)]},this[n(311)][n(292)]=e=>{var r;const s=n;let a=null==(r=e[s(722)])?void 0:r[s(518)];(null==a?void 0:a[s(832)]("信标"))&&(localStorage[s(576)]=localStorage[s(576)]?"":"1"),(null==a?void 0:a[s(832)]("检测"))&&(localStorage[s(469)]=localStorage[s(469)]?"":"1"),(null==a?void 0:a[s(832)]("路线"))&&(localStorage[s(445)]=localStorage[s(445)]?"":"1"),(null==a?void 0:a[s(832)](i[s(613)]))&&(localStorage[s(780)]=localStorage[s(780)]?"":"1"),i[s(819)](t)}}this[n(374)][n(518)]=this[n(219)][n(368)]("\n")}[J(766)](){const t=J,e={ZeUIT:t(461),ctEaI:t(556),IcgDn:t(787)},n=e[t(307)][t(492)]("|");let i=0;for(;;){switch(n[i++]){case"0":this[t(749)][t(493)]();continue;case"1":this[t(418)]=null;continue;case"2":this[t(735)][t(629)][t(493)]();continue;case"3":this[t(250)]=null;continue;case"4":this[t(483)][t(408)]();continue;case"5":this[t(274)]=null;continue;case"6":this[t(483)]=null;continue;case"7":this[t(470)][t(408)]();continue;case"8":window[t(707)](e[t(392)],this[t(554)]);continue;case"9":this[t(718)][t(782)]();continue;case"10":this[t(470)]=null;continue;case"11":document[t(707)](e[t(525)],this[t(257)]);continue;case"12":this[t(418)][t(493)]();continue;case"13":this[t(250)][t(493)]();continue;case"14":this[t(401)]();continue}break}}}function m$4(t,e){t-=210;return M$4()[t]}function M$4(){const t=["nyxRt","status","querySelector","onclick","setRotation","viewchange","deg)","createElement","isNavi","396654zFAgXW","290TgXSjq","1591190FWPWPz","HRPVD","cssText","getRotation","appendChild","63mDFOZP","500300KQFsZn","rotateZ(","className","amap","transform","map",'\n <div class="vm-compass"></div>\n ',"2752686sywZTB","vm-compass-container","style","div","1383315NdXmtH","983tqvudB","RrUGT","KWrod","rGbng","innerHTML","isSimulate","navi","4128912BziHsD","config",".vm-compass","7tRfxvF","inset: 80px 20px auto auto;"];return(M$4=function(){return t})()}const H$2=m$4;!function(t,e){const n=m$4,i=t();for(;;)try{if(262103===-parseInt(n(235))/1*(-parseInt(n(216))/2)+parseInt(n(215))/3+parseInt(n(223))/4+-parseInt(n(234))/5+-parseInt(n(230))/6+-parseInt(n(245))/7*(parseInt(n(242))/8)+parseInt(n(222))/9*(parseInt(n(217))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$4);let g$3=(_gi=H$2(243),_fi=H$2(228),class{constructor(t){__publicField(this,_gi),__publicField(this,_fi),__publicField(this,"el");const e=H$2,n={HRPVD:e(233),rGbng:e(231),nyxRt:e(244),RrUGT:e(246),KWrod:e(211)};this[e(228)]=t[e(228)],this[e(243)]=t,this.el=document[e(213)](n[e(218)]),this.el[e(225)]=n[e(238)],this[e(228)].el[e(221)](this.el),this.el[e(239)]=e(229);let i=this.el[e(249)](n[e(247)]);this.el[e(232)][e(219)]=this[e(243)][e(232)]||n[e(236)],this[e(228)][e(226)].on(n[e(237)],t=>{const n=e;i[n(232)][n(227)]=n(224)+this[n(228)][n(226)][n(220)]()+n(212)}),this.el[e(250)]=()=>{const t=e;this[t(228)][t(241)][t(248)][t(214)]||this[t(228)][t(241)][t(248)][t(240)]||this[t(228)][t(226)][t(210)](0,!1,300)}}});function m$3(t,e){t-=440;return M$3()[t]}const i=m$3;function M$3(){const t=["jAPJp",'" data-idx="',"aAUyE","xHJSr","RjQwj","active","remove","OVatf","indexOf","RaTKG","RJWMi","vm-control-floor-groups","tiKfo","navi","byCOw","target","createDom","zkXaM","onclick","floor","showAllFloorButton","center","31587520rKHPvn",' \n <div class="vm-floor-name-container">\n <label class="vm-floor-name vm-floor-name-',"vm-scroll-up","vm-scroll-disable","3336147hGcpRp","pROlS","curentFloor","isNavi","Nhccy","icTug",'<hr class="vm-floor-line">',"vHIzP","vm-floor-name-active",'\n </div>\n <div class="vm-scroll vm-scroll-down" id="vm-scroll_down"></div>\n </div>\n ',"setOneFloorMode","innerHTML","VAOUq","peAnO","manyFloorMode","floorButtonCount","isSimulate","cSegp","setManyFloorMode","map","nsmxK","build","zbpQR","zpUGV","status","yItuc","buildChange","xubRX","vm-floor-name-normal","cssText","inset: 80px 20px auto auto;","classList","createElement","AUaUS","appendChild",'px;">\n ',"kOYxt","#vm-scroll_down","qRyFM",'">\n ',"oAMRe","BRYWz","vm-scroll-down","scrollIntoView","5269428tXAweY","vm-layer-icon","switchFloor","#vm-scroll-up","pdlms","YaCYK","querySelector","data","13299496ggsIrh","vm-floor-name","floorChange",".vm-floor-name-active","replace","18LjABrE","uEncN","7061940Hujjsg","21458CxnwQp",'" data-id="','\n <div class="vm-floor-list-group">\n <div class="vm-scroll vm-scroll-up" id="vm-scroll-up"></div>\n <div class="vm-floor-list" style="max-height: ',"contains","add","className","parentElement","gfzwL","2205413xXyrjP","normal","length","jmOlJ","vaCDS","div","style","\n </label>\n </div>\n ","GiBxy","smooth",' <div class="vm-layer"><div class="vm-layer-icon vm-layer-one"></div></div>',"hREFg","fxkZC","QebmO","vm-layer-many","6znpkkn","dataset","fuMPk","vm-layer-one","166uGDNvy","config","cxUYJ","name"];return(M$3=function(){return t})()}!function(t,e){const n=m$3,i=t();for(;;)try{if(941298===-parseInt(n(556))/1*(parseInt(n(529))/2)+parseInt(n(469))/3+-parseInt(n(513))/4+-parseInt(n(528))/5+-parseInt(n(552))/6*(parseInt(n(537))/7)+-parseInt(n(521))/8+parseInt(n(526))/9*(parseInt(n(465))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$3);let g$2=class{constructor(t){__publicField(this,_ii),__publicField(this,_hi),__publicField(this,"el");const e=i,n={zpUGV:e(516),OVatf:function(t,e){return t===e},fuMPk:e(533),zkXaM:e(449),pdlms:e(468),peAnO:e(506),AUaUS:function(t,e){return t===e},gfzwL:function(t,e){return t+e},zbpQR:function(t){return t()},hREFg:function(t,e,n){return t(e,n)},BRYWz:e(524),cSegp:e(546),yItuc:e(464),nsmxK:e(522),RaTKG:function(t,e){return t!==e},YaCYK:e(514),jAPJp:e(551),aAUyE:e(555),byCOw:e(467),vaCDS:function(t,e){return t>e},cxUYJ:function(t,e){return t-e},xubRX:e(511),QebmO:function(t,e){return t<e},oAMRe:function(t,e){return t+e},uEncN:e(542),jmOlJ:e(454),qRyFM:e(499),RjQwj:e(495),RJWMi:e(523),icTug:e(497),VAOUq:e(477)};this[e(488)]=t[e(488)],this[e(440)]=t,this.el=document[e(501)](n[e(527)]),this.el[e(534)]=n[e(540)],this[e(488)].el[e(503)](this.el),this.el[e(543)][e(498)]=this[e(440)][e(543)]||n[e(507)];const r=()=>{var t,i,r,s;const a=e;if(!this[a(488)][a(493)][a(490)])return;let o=null==(t=this[a(488)][a(493)][a(490)])?void 0:t[a(520)][a(462)][a(451)](this[a(488)][a(493)][a(490)][a(471)][a(520)]);null==(i=document[a(519)](n[a(492)]))||i[a(500)][n[a(450)](o,0)?n[a(554)]:n[a(460)]](n[a(517)]),null==(s=document[a(519)](n[a(482)]))||s[a(500)][n[a(502)](n[a(536)](o,1),null==(r=this[a(488)][a(493)][a(490)])?void 0:r[a(520)][a(462)][a(539)])?n[a(554)]:n[a(460)]](n[a(517)])},s=()=>{const t=e,i={vHIzP:function(t){return n[m$3(491)](t)}};n[t(548)](setTimeout,()=>{const e=t;this[e(459)](),i[e(476)](r)},0)};n[e(491)](s),this[e(488)].on(n[e(447)],s),this[e(488)].on(n[e(453)],s);let a=n[e(474)],o=n[e(481)];this.el[e(461)]=t=>{var i,s,c,l,u,h,d,p,f,m,g,A;const v=e;if(!debug&&this[v(488)][v(456)][v(493)][v(472)]||this[v(488)][v(456)][v(493)][v(485)])return;let y=t[v(458)],S=y[v(500)];if(S[v(532)](n[v(489)])&&n[v(452)](y[v(553)].id,null==(i=this[v(488)][v(493)][v(490)])?void 0:i[v(471)][v(520)].id)&&(null==(s=this.el[v(519)](n[v(536)](".",o)))||s[v(500)][v(525)](o,a),S[v(525)](a,o),null==(c=this[v(488)][v(493)][v(490)])||c[v(515)](y[v(553)].id)),S[v(532)](n[v(518)])&&((null==(l=this[v(488)][v(493)][v(490)])?void 0:l[v(483)])?(this[v(488)][v(493)][v(490)][v(479)](),S[v(525)](n[v(443)],n[v(445)])):(null==(u=this[v(488)][v(493)][v(490)])||u[v(487)](),S[v(525)](n[v(445)],n[v(443)]))),S[v(532)](n[v(457)])){let t=null==(h=this[v(488)][v(493)][v(490)])?void 0:h[v(520)][v(462)][v(451)](this[v(488)][v(493)][v(490)][v(471)][v(520)]);n[v(541)](t,0)&&(null==(p=this[v(488)][v(493)][v(490)])||p[v(515)](null==(d=this[v(488)][v(493)][v(490)])?void 0:d[v(520)][v(462)][n[v(441)](t,1)].id))}if(S[v(532)](n[v(496)])){let t=null==(f=this[v(488)][v(493)][v(490)])?void 0:f[v(520)][v(462)][v(451)](this[v(488)][v(493)][v(490)][v(471)][v(520)]);n[v(550)](n[v(536)](t,1),null==(m=this[v(488)][v(493)][v(490)])?void 0:m[v(520)][v(462)][v(539)])&&(null==(A=this[v(488)][v(493)][v(490)])||A[v(515)](null==(g=this[v(488)][v(493)][v(490)])?void 0:g[v(520)][v(462)][n[v(509)](t,1)].id))}n[v(491)](r),n[v(548)](setTimeout,()=>{var t,e;const i=v;null==(e=null==(t=this.el[i(519)](n[i(510)]))?void 0:t[i(535)])||e[i(512)]({behavior:n[i(486)],block:n[i(494)]})},0)}}[(_ii=i(440),_hi=i(488),i(459))](){const t=i,e={fxkZC:function(t,e){return t+e},tiKfo:t(475),kOYxt:function(t,e){return t===e},xHJSr:t(448),pROlS:t(538),Nhccy:function(t,e){return t(e)},GiBxy:function(t){return t()}};if(!this[t(488)][t(493)][t(490)])return void(this.el[t(480)]="");this.el[t(480)]=e[t(473)](e=>(this[t(440)][t(463)]&&this[t(488)][t(493)][t(490)][t(520)][t(462)][t(539)]>1?t(547):"")+(t(531)+50*(this[t(440)][t(484)]||3)+t(504)+e+t(478)),e[t(545)](()=>{const n=t;let i="";return this[n(488)][n(493)][n(490)][n(520)][n(462)][n(488)]((t,r)=>{const s=n;i+=e[s(549)](r?e[s(455)]:"",s(466)+(e[s(505)](t.id,this[s(488)][s(493)][s(490)][s(471)][s(520)].id)?e[s(446)]:e[s(470)])+s(530)+t.id+s(444)+r+s(508)+t[s(442)]+s(544))}),i}))}};var F=m$2;function m$2(t,e){return t-=305,M$2()[t]}function M$2(){var t=["innerHTML","config","1296UVDqUq","293892wTrzYU","split","837951tEQvEW","183213VQzXsb","map","status","onclick","SfZdZ","vm-control-viewmode","20fQSWPf","setViewMode","inset: 80px 20px auto auto;","YQumF","className","awwfX","cssText","style","div","358712HJlajg","ObuKF","createElement","841792phHTKX","6JbyMUn","2389359kvAxbg","5|0|7|3|2|1|8|4|6","23460fEVTSe","iumwU","viewMode","eGHZj","appendChild"];return(M$2=function(){return t})()}!function(t,e){for(var n=m$2,i=t();;)try{if(199133===-parseInt(n(337))/1+-parseInt(n(334))/2+parseInt(n(336))/3+parseInt(n(319))/4*(parseInt(n(310))/5)+-parseInt(n(323))/6*(parseInt(n(324))/7)+-parseInt(n(322))/8+parseInt(n(333))/9*(parseInt(n(326))/10))break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$2);let g$1=(_ki=F(332),_ji=F(305),class{constructor(t){__publicField(this,_ki),__publicField(this,_ji),__publicField(this,"el");for(var e=F,n={eGHZj:e(325),ObuKF:e(309),awwfX:e(318),iumwU:e(312),SfZdZ:function(t,e){return t===e}},i=n[e(329)][e(335)]("|"),r=0;;){switch(i[r++]){case"0":this[e(305)]=t[e(305)];continue;case"1":this[e(305)].el[e(330)](this.el);continue;case"2":this.el[e(314)]=n[e(320)];continue;case"3":this.el=document[e(321)](n[e(315)]);continue;case"4":this.el[e(317)][e(316)]=this[e(332)][e(317)]||n[e(327)];continue;case"5":var s={YQumF:function(t,i){return n[e(308)](t,i)}};continue;case"6":this.el[e(307)]=t=>{var n=e;this[n(305)][n(311)](s[n(313)](this[n(305)][n(306)][n(328)],"2D")?"3D":"2D"),this.el[n(331)]=this[n(305)][n(306)][n(328)]};continue;case"7":this[e(332)]=t;continue;case"8":this.el[e(331)]=this[e(305)][e(306)][e(328)];continue}break}}});function m$1(t,e){t-=105;return M$1()[t]}const H$1=m$1;function M$1(){const t=["74162gyTgpC","gmoYC","map","classList","appendChild","className","29653019iWZpaO","XgSzt","setZoom","3109290MmDCgj","createElement","5pQfNti","XNbxu","amap","KLyaQ","target","createDom","vm-control-zoom-out","8gfaSOH",'\n <div data-type="in" class="vm-control-zoom-button vm-control-zoom-in">+</div>\n <hr class="vm-control-zoom-hr">\n <div data-type="out" class="vm-control-zoom-button vm-control-zoom-out">-</div>\n ',"innerHTML","cssText","NlBMQ","vm-control-zoom","vm-control-zoom-in","1298164eERfGG","style","461290aCvmoc","2388FQtqZO","zoZjc","config","onclick","2337VMYJdZ","inset: 200px 20px auto auto;","contains","2250736DLkfWb","getZoom","99HJHFrf","div","GqwiM"];return(M$1=function(){return t})()}!function(t,e){const n=m$1,i=t();for(;;)try{if(441590===parseInt(n(117))/1*(-parseInt(n(139))/2)+parseInt(n(131))/3*(-parseInt(n(127))/4)+parseInt(n(110))/5*(-parseInt(n(108))/6)+-parseInt(n(124))/7+-parseInt(n(134))/8+-parseInt(n(136))/9*(parseInt(n(126))/10)+parseInt(n(105))/11)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M$1);class g{constructor(t){__publicField(this,_mi),__publicField(this,_li),__publicField(this,"el");const e=H$1,n={NlBMQ:e(123),gmoYC:function(t,e){return t+e},XNbxu:e(116),XgSzt:function(t,e){return t-e},zoZjc:e(137),KLyaQ:e(122),GqwiM:e(132)};this[e(141)]=t[e(141)],this[e(129)]=t,this.el=document[e(109)](n[e(128)]),this.el[e(144)]=n[e(113)],this[e(141)].el[e(143)](this.el),this[e(115)](),this.el[e(125)][e(120)]=this[e(129)][e(125)]||n[e(138)],this.el[e(130)]=t=>{const i=e;let r=t[i(114)][i(142)];r[i(133)](n[i(121)])?this[i(141)][i(112)][i(107)](n[i(140)](this[i(141)][i(112)][i(135)](),.5),300):r[i(133)](n[i(111)])&&this[i(141)][i(112)][i(107)](n[i(106)](this[i(141)][i(112)][i(135)](),.5),300)}}[(_mi=H$1(129),_li=H$1(141),H$1(115))](){const t=H$1;this.el[t(119)]=t(118)}}const S=m;function M(){const t=["47055555mjOgSS","2026/1/5 15:37:10","397007VbLfqS","9550FhamUm","2112928ejBEWD","189fwRKBc","228240aZFydM","2066108fwofgI","619809VSKcoD","3028SzgowT"];return(M=function(){return t})()}!function(t,e){const n=m,i=t();for(;;)try{if(854665===-parseInt(n(375))/1+-parseInt(n(380))/2+-parseInt(n(371))/3+-parseInt(n(372))/4*(parseInt(n(376))/5)+-parseInt(n(379))/6*(parseInt(n(378))/7)+-parseInt(n(377))/8+parseInt(n(373))/9)break;i.push(i.shift())}catch(r){i.push(i.shift())}}(M);const H={THREE:l$j,TWEEN:v$h,EffectComposer,RenderPass,ShaderPass,EnterType,CSS2DObject,CrossType,convert3dTo2d,gltfLoader,texureLoader,FloorControl:g$2,ZoomControl:g,RoadLine,ViewModeControl:g$1,Compass:g$3,Map:k,FatLine,setSize,TextSprite,version:S(374)};function m(t,e){t-=371;return M()[t]}return H});
|