s.createNoiseInterpolator(a)}noiseData(t,n){const i=t+this.getOffset(t,0,n),o=n+this.getOffset(n,t,0),r=this.getContinentalness(i,o),a=this.getErosion(i,o),s=this.getWeirdness(i,o),c=this.terrainInfo(r,a,s);return Vp.create(i,o,r,a,s,c)}sample(t,n,i){return this.target(t,n,i,this.noiseData(t,i))}target(t,n,i,o){const r=o.shiftedX,a=n+this.getOffset(n,i,t),s=o.shiftedZ,c=this.getTemperature(r,a,s),l=this.getHumidity(r,a,s),_=this.computeDimensionDensity(n<<2,o.terrainInfo);return zp.target(c,l,o.continentalness,o.erosion,_,o.weirdness)}terrainInfo(t,n,i){const o=Yn.point(t,n,i),r=this.shaper.offset(o),a=this.shaper.factor(o),s=this.shaper.jaggedness(o);return Hp.create(r,a,s)}getOffset(t,n,i){return 4*this.offsetNoise.sample(t,n,i)}getTemperature(t,n,i){return this.temperatureNoise.sample(t,n,i)}getHumidity(t,n,i){return this.humidityNoise.sample(t,n,i)}getContinentalness(t,n){return this.continentalnessNoise.sample(t,0,n)}getErosion(t,n){return this.erosionNoise.sample(t,0,n)}getWeirdness(t,n){return this.weirdnessNoise.sample(t,0,n)}makeBaseNoiseFiller(t,n,i){const o=this.baseNoise(t),r=i?this.noodleToggleNoise(t):()=>-1,a=i?this.noodleThicknessNoise(t):()=>0,s=i?this.noodleRidgeANoise(t):()=>0,c=i?this.noodleRidgeBNoise(t):()=>0;return(l,_,d)=>{let u=o();if(u=ja(.64*u,-1,1),u=u/2-u*u*u/24,r()>=0){const m=eP(a(),-1,1,.05,.1),f=Math.abs(1.5*s())-m,p=Math.abs(1.5*c())-m;u=Math.min(u,Math.max(f,p))}return u+=n(l,_,d),u>0?null:sr.AIR}}calculateBlendedBaseNoise(t,n,i,o){const r=this.blendedNoise.sample(t,n,i);return this.calculateBaseNoise(t,n,i,o,r,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,n,i,o,r,a,s){if(!this.settings.islandNoiseOverride){const _=s?this.sampleJaggedNoise(o.jaggedness,t,i):0,d=this.computeDimensionDensity(n,o),u=o.factor*(_+d);r+=u>0?4*u:u}let c=-64,l=64;if(!a&&r>=-64){const _=r-1.5625,d=this.getBigEntrances(t,n,i),u=this.getSpaghettiRoughness(t,n,i),m=this.getSpaghetti3D(t,n,i),f=Math.min(d,m+u);if(_<0)l=f;else{const p=this.getLayerizedCaverns(t,n,i);p>64?r=64:r=this.getCheese(t,n,i)+p+xl(.5,0,1.28*_);const h=this.getSpaghetti2D(t,n,i);c=this.getPillars(t,n,i),l=Math.min(f,h+u)}}return r=ja(r,c,l),r=ja(r=this.applySlide(r,n/xn.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,n,i){if(t===0)return 0;const o=this.jaggedNoise.sample(1500*n,0,1500*i);return o>0?t*o:t/2*o}computeDimensionDensity(t,n){return 1-t/128+n.offset}getBigEntrances(t,n,i){return this.bigEntranceNoise.sample(.75*t,.5*n,.75*i)+.37+xl(.3,0,(n+10)/40)}getSpaghettiRoughness(t,n,i){const o=this.spaghettiRoughnessNoise.sample(t,n,i),r=Bo(this.spaghettiRoughnessModulator.sample(t,n,i),-1,1,0,1);return(.4-Math.abs(o))*r}getSpaghetti2D(t,n,i){const o=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,n,2*i)),r=Bo(this.spaghetti2DThicknessModulator.sample(2*t,n,2*i),-1,1,.6,1.3),a=this.sampleWithRarity(this.spaghetti2DNoise,t,n,i,o),s=Math.abs(o*a)-.083*r,c=xn.minCellY(this.settings),l=Bo(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,c,8),_=Math.abs(l-n/8)-1*r;return ja(Math.max(_,s),-1,1)}getSpaghetti3D(t,n,i){const o=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,n,2*i)),r=Bo(this.spaghetti3DThicknessModulator.sample(t,n,i),-1,1,.065,.088),a=this.sampleWithRarity(this.spaghetti3DNoise1,t,n,i,o),s=Math.abs(o*a)-r,c=this.sampleWithRarity(this.spaghetti3DNoise2,t,n,i,o),l=Math.abs(o*c)-r;return ja(Math.max(s,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,n,i,o,r){return t.sample(n/r,i/r,o/r)}getLayerizedCaverns(t,n,i){return 4*Jr(this.layerNoise.sample(t,8*n,i))}getCheese(t,n,i){return ja(this.cheeseNoise.sample(t,n/1.5,i)+.27,-1,1)}getPillars(t,n,i){const o=Bo(this.pillarRarenessModulator.sample(t,n,i),-1,1,0,2),r=Bo(this.pillarThicknessModulator.sample(t,n,i),-1,1,0,1.1),a=this.pillarNoise.sample(25*t,.3*n,25*i),s=Math.pow(r,3)*(2*a-o);return s<=.03?Number.MIN_SAFE_INTEGER:s}applySlide(t,n){const i=n-xn.minCellY(this.settings);return t=is.apply(this.settings.topSlide,t,xn.cellCountY(this.settings)-i),t=is.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,n,i){const o=xn.minCellY(this.settings)+xn.cellCountY(this.settings),r=xn.minCellY(this.settings),a=xn.cellHeight(this.settings);for(let s=o;s>=r;s-=1){const c=s*a;if(this.calculateBaseNoise(t,c,n,i,-.703125,!0,!1)>=.390625)return c}return Number.MAX_SAFE_INTEGER}}(function(e){e.create=function(t,n,i,o,r,a){return{shiftedX:t,shiftedZ:n,continentalness:i,weirdness:o,erosion:r,terrainInfo:a}}})(Vp||(Vp={})),function(e){e.fromJson=function(t){var n,i,o,r;const a=(n=Te.readObject(t))!==null&&n!==void 0?n:{};return a.absolute!==void 0?(s=(i=Te.readNumber(a.absolute))!==null&&i!==void 0?i:0,()=>s):a.above_bottom!==void 0?function(c){return l=>l.minY+c}((o=Te.readNumber(a.above_bottom))!==null&&o!==void 0?o:0):a.below_top!==void 0?function(c){return l=>l.maxY-c}((r=Te.readNumber(a.below_top))!==null&&r!==void 0?r:0):()=>0;var s}}(_l||(_l={})),function(e){e.create=function(t,n){return{minY:t,height:n,maxY:t+n-1}}}(Wp||(Wp={}));class aP{constructor(t,n,i){this.rule=t,this.defaultBlock=n,this.random=En.create(i).forkPositional(),this.surfaceNoise=Ue.instantiate(this.random,Ue.SURFACE),this.surfaceSecondaryNoise=Ue.instantiate(this.random,Ue.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,n,i,o){const r=Rr.minBlockX(t.pos),a=Rr.minBlockZ(t.pos),s=new sP(this,t,n,i,o),c=this.rule(s);for(let l=0;l<16;l+=1){const _=r+l;for(let d=0;d<1;d+=1){const u=a+d;s.updateXZ(_,u);let m=0,f=Number.MIN_SAFE_INTEGER,p=Number.MAX_SAFE_INTEGER;for(let h=t.maxY;h>=t.minY;h-=1){const b=Rl.create(_,h,u),g=t.getBlockState(b);if(g.equals(sr.AIR)){m=0,f=Number.MIN_SAFE_INTEGER;continue}if(g.isFluid()){f===Number.MIN_SAFE_INTEGER&&(f=h+1);continue}if(p>=h){p=Number.MIN_SAFE_INTEGER;for(let S=h-1;S>=t.minY;S-=1){const N=t.getBlockState(Rl.create(_,S,u));if(N.equals(sr.AIR)||N.isFluid()){p=S+1;break}}}m+=1;const v=h-p+1;if(!g.equals(this.defaultBlock))continue;s.updateY(m,v,f,h);const E=c(_,h,u);E&&t.setBlockState(b,E)}}}}getSurfaceDepth(t,n){return 2.75*this.surfaceNoise.sample(t,0,n)+3+.25*this.random.at(t,0,n).nextDouble()}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return xf(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class sP{constructor(t,n,i,o,r){this.system=t,this.chunk=n,this.noiseChunk=i,this.context=o,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=Ym(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=Ym(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,i,o){this.blockY=o,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=i,this.biome=Ym(()=>this.getBiome(Rl.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const i=t>>4,o=n>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,o<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,o<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,o+1<<4),c=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,o+1<<4);return Math.floor($p((15&t)/16,(15&n)/16,r,a,s,c))+this.surfaceDepth-8}}(function(e){function t(o){return()=>()=>o}function n(o){return r=>{const a=o.map(s=>s(r));return(s,c,l)=>{for(const _ of a){const d=_(s,c,l);if(d)return d}}}}function i(o,r){return a=>(s,c,l)=>{if(o(a))return r(a)(s,c,l)}}e.NOOP=()=>()=>{},e.fromJson=function(o){var r,a,s;const c=(r=Te.readObject(o))!==null&&r!==void 0?r:{};switch((a=Te.readString(c.type))===null||a===void 0?void 0:a.replace(/^minecraft:/,"")){case"block":return t(sr.fromJson(c.result_state));case"sequence":return n((s=Te.readArray(c.sequence,e.fromJson))!==null&&s!==void 0?s:[]);case"condition":return i(Vm.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=n,e.condition=i})(jp||(jp={})),function(e){function t(){return c=>c.blockY>=c.minSurfaceLevel()}function n(c){const l=new Set(c);return _=>l.has(_.biome())}function i(c){return l=>!c(l)}function o(c,l,_,d){return u=>{const m=d?u.stoneDepthBelow:u.stoneDepthAbove,f=l?u.surfaceDepth:0,p=_===0?0:Bo(u.surfaceSecondary(),-1,1,0,_);return m<=1+c+f+p}}function r(c,l,_){return d=>{const u=l(d.context),m=_(d.context);if(d.blockY<=u)return!0;if(d.blockY>=m)return!1;const f=d.system.getRandom(c),p=Bo(d.blockY,u,m,1,0);return f.nextFloat(){if(d.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const u=_?d.stoneDepthAbove:0;return d.blockY+u>=d.waterHeight+c+d.surfaceDepth*l}}function s(c,l,_){return d=>{const u=_?d.stoneDepthAbove:0;return d.blockY+u>=c(d.context)+d.surfaceDepth*l}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(c){var l,_,d,u,m,f,p,h,b,g,v,E;const S=(l=Te.readObject(c))!==null&&l!==void 0?l:{};switch((_=Te.readString(S.type))===null||_===void 0?void 0:_.replace(/^minecraft:/,"")){case"above_preliminary_surface":return N=>N.blockY>=N.minSurfaceLevel();case"biome":return n((d=Te.readArray(S.biome_is,N=>{var C;return(C=Te.readString(N))!==null&&C!==void 0?C:""}))!==null&&d!==void 0?d:[]);case"not":return i(e.fromJson(S.invert));case"stone_depth":return o((u=Te.readInt(S.offset))!==null&&u!==void 0?u:0,(m=Te.readBoolean(S.add_surface_depth))!==null&&m!==void 0&&m,(f=Te.readInt(S.secondary_depth_range))!==null&&f!==void 0?f:0,Te.readString(S.surface_type)==="ceiling");case"vertical_gradient":return r((p=Te.readString(S.random_name))!==null&&p!==void 0?p:"",_l.fromJson(S.true_at_and_below),_l.fromJson(S.false_at_and_above));case"water":return a((h=Te.readInt(S.offset))!==null&&h!==void 0?h:0,(b=Te.readInt(S.surface_depth_multiplier))!==null&&b!==void 0?b:0,(g=Te.readBoolean(S.add_surface_depth))!==null&&g!==void 0&&g);case"y_above":return s(_l.fromJson(S.anchor),(v=Te.readInt(S.surface_depth_multiplier))!==null&&v!==void 0?v:0,(E=Te.readBoolean(S.add_surface_depth))!==null&&E!==void 0&&E)}return e.FALSE},e.abovePreliminarySurface=t,e.biome=n,e.not=i,e.stoneDepth=o,e.verticalGradient=r,e.water=a,e.yAbove=s}(Vm||(Vm={}));class lP{constructor(t,n,i){this.biomeSource=n,this.settings=i,this.sampler=new oP(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Yp.fromList([(o,r,a,s)=>o.updateNoiseAndGenerateBaseState(r,a,s)]),this.surfaceSystem=new aP(i.surfaceRule,i.defaultBlock,t)}fill(t){var n;const i=Math.max(t.minY,this.settings.noise.minY),o=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=xn.cellWidth(this.settings.noise),a=xn.cellHeight(this.settings.noise),s=Math.floor(16/r),c=Math.floor(i/a),l=Math.floor((o-i)/a),_=Rr.minBlockX(t.pos),d=Rr.minBlockZ(t.pos),u=this.getNoiseChunk(t);u.initializeForFirstCellX();for(let m=0;m=0;h-=1){u.selectCellYZ(h,f);for(let b=a-1;b>=0;b-=1){const g=(c+h)*a+b,v=15&g,E=t.getSectionIndex(g);t.getSectionIndex(p.minBlockY)!==E&&(p=t.getOrCreateSection(E));const S=b/a;u.updateForY(S);for(let N=0;Nn)}getNoiseChunk(t){return xf(this.noiseChunkCache,Rr.toLong(t.pos),()=>{const n=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),o=xn.cellWidth(this.settings.noise),r=xn.cellHeight(this.settings.noise),a=Math.floor(16/o),s=Math.floor(n/r),c=Math.floor((i-n)/r),l=Rr.minBlockX(t.pos),_=Rr.minBlockZ(t.pos);return new rP(a,c,s,this.sampler,l,_,()=>0,this.settings)})}}(function(e){e.fromJson=function(t){var n,i,o,r,a,s,c,l,_,d,u;const m=(n=Te.readObject(t))!==null&&n!==void 0?n:{};return{structures:Wm.fromJson(m.structures),surfaceRule:jp.fromJson(m.surface_rule),noise:xn.fromJson(m.noise),defaultBlock:sr.fromJson(m.default_block),defaultFluid:sr.fromJson(m.default_fluid),bedrockRoofPosition:(i=Te.readInt(m.bedrock_roof_position))!==null&&i!==void 0?i:0,bedrockFloorPosition:(o=Te.readInt(m.bedrock_floor_position))!==null&&o!==void 0?o:0,seaLevel:(r=Te.readInt(m.sea_level))!==null&&r!==void 0?r:0,disableMobGeneration:(a=Te.readBoolean(m.disable_mob_generation))!==null&&a!==void 0&&a,aquifersEnabled:(s=Te.readBoolean(m.aquifers_enabled))!==null&&s!==void 0&&s,noiseCavesEnabled:(c=Te.readBoolean(m.noise_caves_enabled))!==null&&c!==void 0&&c,deepslateEnabled:(l=Te.readBoolean(m.deepslate_enabled))!==null&&l!==void 0&&l,oreVeinsEnabled:(_=Te.readBoolean(m.ore_veins_enabled))!==null&&_!==void 0&&_,noodleCavesEnabled:(d=Te.readBoolean(m.noodle_caves_enabled))!==null&&d!==void 0&&d,legacyRandomSource:(u=Te.readBoolean(m.legacy_random_source))!==null&&u!==void 0&&u}}})(k0||(k0={})),function(e){e.fromJson=function(t){var n;const i=(n=Te.readObject(t))!==null&&n!==void 0?n:{};return{stronghold:Te.compose(i.stronghold,Te.readObject,o=>{var r,a,s;return{distance:(r=Te.readInt(o.distance))!==null&&r!==void 0?r:0,spread:(a=Te.readInt(o.spread))!==null&&a!==void 0?a:0,count:(s=Te.readInt(o.count))!==null&&s!==void 0?s:0}}),structures:Te.readMap(i.structures,o=>{var r;return(a=>{var s,c,l;return{spacing:(s=Te.readInt(a.spacing))!==null&&s!==void 0?s:0,separation:(c=Te.readInt(a.separation))!==null&&c!==void 0?c:0,salt:(l=Te.readInt(a.salt))!==null&&l!==void 0?l:0}})((r=Te.readObject(o))!==null&&r!==void 0?r:{})})}}}(Wm||(Wm={}));class cP{constructor(t){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const n=new Gi(t);this.minLimitPerlinNoise=new gn(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new gn(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new gn(n,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new gn(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(t,n,i,o,r){this.settings=t,this.chunkWidth=t.size_horizontal*4,this.chunkHeight=t.size_vertical*4,this.chunkCountY=Math.floor(t.height/this.chunkHeight),t.amplified&&n>0&&(n=1+n*2,i=1+i*4),this.biomeDepth=.265625*(n*.5-.125),this.biomeScale=96/(i*.9+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(t){const n=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(t/this.chunkWidth),o=Math.floor(t%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(i),a=this.fillNoiseColumn(i+1);for(let s=this.chunkCountY-1;s>=0;s-=1)for(let c=this.chunkHeight;c>=0;c-=1){const l=c/this.chunkHeight,_=s*this.chunkHeight+c;n[_]=i1(l,o,r[s],r[s+1],a[s],a[s+1])}return n}fillNoiseColumn(t){const n=this.noiseColumnCache[t-this.xOffset];if(n)return n;const i=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,s=r/this.settings.sampling.y_factor,c=this.settings.random_density_offset?this.getRandomDensity(t):0;for(let l=0;l<=this.chunkCountY;l+=1){let _=this.sampleAndClampNoise(t,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,s);const m=((1-l*2/this.chunkCountY+c)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;_+=m*(m>0?4:1),this.settings.top_slide.size>0&&(_=Em(this.settings.top_slide.target,_,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(_=Em(this.settings.bottom_slide.target,_,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[l]=_}return this.noiseColumnCache[t-this.xOffset]=i,i}getRandomDensity(t){const n=this.depthNoise.sample(t*200,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),o=(n<0?-n*.3:n)*24.575625-2;return o<0?o*.009486607142857142:Math.min(o,1)*.006640625}sampleAndClampNoise(t,n,i,o,r,a,s){let c=0,l=0,_=0,d=1;for(let u=0;u<16;u+=1){const m=gn.wrap(t*o*d),f=gn.wrap(n*r*d),p=gn.wrap(i*o*d),h=r*d,b=this.minLimitPerlinNoise.getOctaveNoise(u);b&&(c+=b.sample(m,f,p,h,n*h)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(m,f,p,h,n*h)/d),u<8){const v=this.mainPerlinNoise.getOctaveNoise(u);v&&(_+=v.sample(gn.wrap(t*a*d),gn.wrap(n*s*d),gn.wrap(i*a*d),s*d,n*s*d)/d)}d/=2}return Em(c/512,l/512,(_/10+1)/2)}}const If=0,dP={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let M0,jm,Xc=[];const qm=new Map;async function uP(e,t,n){var a,s,c;if(xi(n.version,"1.18")){xi(n.version,"1.18.2")&&await RS(n.version);const{settings:l,generator:_}=gP(e,n),d=new EP(-n.offset,n.width,l.noise.minY,l.noise.height);d.generate(_,n.biome);const u=t.data;for(let m=0;mKi.minBlockX(i.pos)<=e&&Ki.maxBlockX(i.pos)>=e);if(!!n)return n.getBlockState(gs.create(e,t,If))}async function mP(e,t,n){const{fn:i,settings:o}=await pP(e,n),r=Array(n.width*o.height);let a=1/0,s=-1/0;for(let l=0;lhP(e,t,i,o))),qm.set(e,t)),ia.DENSITY_FUNCTION.clear().assign(t.getOrThrow(Qt.create("worldgen/density_function"))),ia.NOISE.clear().assign(t.getOrThrow(Qt.create("worldgen/noise")))}async function hP(e,t,n,i){const o=await p1(e,n),r=new Ol(Qt.create(n));for(const[a,s]of o.entries())r.register(Qt.parse(a),i.fromJson(s));t.register(r.key,r)}function gP(e,t){const n=Mp.fromJson(j.DataModel.unwrapLists(e)),i=[e,`${t.seed}`,t.biome];if(!xa(i,M0))if(M0=fd(i),Xc=[],xi(t.version,"1.18.2")){const o=new Tl(Qt.create("unknown"));jm=new N2(t.seed,o,n)}else{const o=new Df("unknown");jm=new lP(t.seed,o,n)}return{settings:n,generator:jm}}function bP(e,t){return e[t]>0?0:e[t+1]>0?150:255}class EP{constructor(t,n,i,o){this.minX=t,this.done=[],this.chunks=[...Array(Math.ceil(n/16)+1)].map((r,a)=>{const s=(t>>4)+a,c=Xc.find(l=>l.pos[0]===s);return c?(this.done[a]=!0,c):new c2(i,o,Ki.create(s,If>>4))})}generate(t,n){this.chunks.forEach((i,o)=>{this.done[o]||(t.fill(i,!0),t.buildSurface(i,n),this.done[o]=!0,Xc.push(i))})}getBlockState(t){const n=(t[0]>>4)-(this.minX>>4);return this.chunks[n].getBlockState(t)}}function vP(e,t,n){const i=new Gi(n.seed),o=Es.fromJson(j.DataModel.unwrapLists(e)),r=new am(i,o),a=-n.offset[0]-100,s=-n.offset[1]-100,c=t.data;for(let l=0;l<256;l+=1)for(let _=0;_<256;_+=1){const d=l*4+_*4*256,u=(l+a)*n.scale,m=(_+s)*n.scale,f=(r.sample(u,m,0)+1)*128;c[d]=f,c[d+1]=f,c[d+2]=f,c[d+3]=255}}const SP=["biomes","temperature","humidity","continentalness","erosion","weirdness"],yP=({model:e,data:t,shown:n,version:i})=>{var N,C;const{locale:o}=An(),[r]=we(go()),[a,s]=we(2),[c,l]=we(void 0),[_,d]=we(new Set(["biomes"])),u=an([0,0]),m=an(1),f=an(void 0),p=BigInt((N=e.get(new j.Path(["generator","seed"])))!=null?N:r),h=bn(()=>{if(!!n)return CP(e.get(new j.Path(["generator","settings"])))},[n]),b=n?NP(t,h):"",g=(C=t.type)==null?void 0:C.replace(/^minecraft:/,""),{canvas:v,redraw:E}=Wl({size(){return[200/m.current,200/m.current]},async draw(y){const A={octaves:h,biomeColors:{},layers:_,offset:u.current,scale:a,seed:p,res:m.current,version:i};await F2(t,y,A),m.current===4&&(clearTimeout(f.current),f.current=setTimeout(()=>{m.current=1,E()},150))},async onDrag(y,A){u.current[0]=u.current[0]+y*200,u.current[1]=u.current[1]+A*200,clearTimeout(f.current),m.current=g==="multi_noise"?4:1,E()},async onHover(y,A){const R={octaves:h,biomeColors:{},layers:_,offset:u.current,scale:a,seed:r,res:1,version:i},D=await P2(t,Math.floor(y*200),Math.floor(A*200),R);l(D)},onLeave(){l(void 0)}},[b,a,r,_]);ct(()=>{n&&(m.current=g==="multi_noise"?4:1,E())},[b,a,r,_,n]);const S=y=>{u.current[0]=u.current[0]*a/y,u.current[1]=u.current[1]*a/y,s(y)};return T(vt,null,T("div",{class:"controls preview-controls"},c&&T(tt,{label:c.biome,class:"no-pointer"}),g==="multi_noise"&&T(Ri,{icon:"stack",tooltip:o("configure_layers")},SP.map(y=>{const A=_.has(y);return T(tt,{label:o(`layer.${y}`),active:A,tooltip:o(A?"enabled":"disabled"),onClick:R=>{d(new Set([y])),R.stopPropagation()}})})),(g==="multi_noise"||g==="checkerboard")&&T(vt,null,T(tt,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>S(a*1.5)}),T(tt,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>S(a/1.5)})),g==="multi_noise"&&T(tt,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>YE(e)})),(c==null?void 0:c.temperature)!==void 0&&T("div",{class:"controls secondary-controls"},T(tt,{class:"no-pointer",label:Object.entries(c).filter(([y])=>y!=="biome").map(([y,A])=>`${y[0].toUpperCase()}: ${A.toFixed(2)}`).join(" ")})),T("canvas",{ref:v,width:"200",height:"200"}))};function NP(e,t){return JSON.stringify([e,t])}function CP(e){switch(typeof e!="string"&&(e=e.legacy_random_source?"minecraft:nether":"minecraft:overworld"),e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}const AP=({data:e,version:t,shown:n})=>{const{locale:i}=An(),[o,r]=we(4),[a,s]=we(go()),{canvas:c,redraw:l}=Wl({size(){return[o*16,o*16]},async draw(d){V2(e,d,{seed:a,version:t,size:[o*16,128,o*16]})}}),_=JSON.stringify(e);return ct(()=>{n&&l()},[_,o,a,n]),T(vt,null,T("div",{class:"controls preview-controls"},T(tt,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>r(Math.min(16,o+1))}),T(tt,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>r(Math.max(1,o-1))}),T(tt,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(go())})),T("canvas",{ref:c,width:"64",height:"64"}))},OP=({data:e,shown:t,version:n})=>{var h,b;const{locale:i}=An(),[o,r]=we(go()),[a,s]=we(!1),[c,l]=we(void 0),_=an(0),d=an(void 0),u=JSON.stringify([e]),m=(b=(h=e==null?void 0:e.noise)==null?void 0:h.height)!=null?b:256,{canvas:f,redraw:p}=Wl({size(){return[m,m]},async draw(g){const v={offset:_.current,width:g.width,seed:o,version:n};await mP(e,g,v)},async onDrag(g){_.current+=g*m,p()},async onHover(g,v){var N,C;const E=Math.floor(g*m-_.current),S=m-Math.max(1,Math.ceil(v*m))+((C=(N=e==null?void 0:e.noise)==null?void 0:N.min_y)!=null?C:0);l(`X=${E} Y=${S}`)},onLeave(){l(void 0)}},[u,o]);return ct(()=>{d.current&&clearInterval(d.current),t&&(p(),a&&(d.current=setInterval(()=>{_.current-=8,p()},100)))},[u,o,t,a]),T(vt,null,T("div",{class:"controls preview-controls"},c&&T(tt,{label:c,class:"no-pointer"}),T(Ri,{icon:"gear",tooltip:i("terrain_settings")},T(tt,{icon:a?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>s(!a)})),T(tt,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>r(go())})),T("canvas",{ref:f,width:m,height:m}))},TP=({data:e,shown:t,version:n})=>{const{locale:i}=An(),[o,r]=we(go()),[a,s]=we(2),c=an([0,0]),l=JSON.stringify([e]),{canvas:_,redraw:d}=Wl({size(){return[256,256]},async draw(m){const f={offset:c.current,scale:a,seed:o,version:n};vP(e,m,f)},async onDrag(m,f){c.current[0]=c.current[0]+m*256,c.current[1]=c.current[1]+f*256,d()}},[l,a,o]);ct(()=>{t&&d()},[l,a,o,t]);const u=m=>{c.current[0]=c.current[0]*a/m,c.current[1]=c.current[1]*a/m,s(m)};return T(vt,null,T("div",{class:"controls preview-controls"},T(tt,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>u(a*1.5)}),T(tt,{icon:"plus",tooltip:i("zoom_in"),onClick:()=>u(a/1.5)}),T(tt,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>r(go())})),T("canvas",{ref:_,width:"256",height:"256"}))},wP=({data:e,shown:t,version:n})=>{var C,y;const{locale:i}=An(),[o,r]=we(go()),[a,s]=we("minecraft:plains"),[c,l]=we(.2),[_,d]=we(.1),[u,m]=we(!1),[f,p]=we(void 0),h=an(0),b=an(void 0),g=JSON.stringify([e,c,_]),v=(y=(C=e==null?void 0:e.noise)==null?void 0:C.height)!=null?y:256,{canvas:E,redraw:S}=Wl({size(){return[v,v]},async draw(A){const R={biome:a,biomeDepth:_,biomeScale:c,offset:h.current,width:A.width,seed:o,version:n};await uP(e,A,R)},async onDrag(A){h.current+=A*v,S()},async onHover(A,R){var F,q;const D=Math.floor(A*v-h.current),M=v-Math.max(1,Math.ceil(R*v))+((q=(F=e==null?void 0:e.noise)==null?void 0:F.min_y)!=null?q:0),L=_P(D,M);p(L?`Y=${M} (${L.getName().path})`:`Y=${M}`)},onLeave(){p(void 0)}},[g,o]);ct(()=>{b.current&&clearInterval(b.current),t&&(async()=>{try{await S(),u&&(b.current=setInterval(()=>{h.current-=8,S()},100))}catch(A){throw A}})()},[g,o,t,a,c,_,u]);const N=bn(()=>{var A;return(A=Tc==null?void 0:Tc.get("worldgen/biome"))!=null?A:[]},[n]);return T(vt,null,T("div",{class:"controls preview-controls"},f&&T(tt,{label:f,class:"no-pointer"}),T(Ri,{icon:"gear",tooltip:i("terrain_settings")},xi(n,void 0,"1.17")?T(vt,null,T(Oc,{label:i("preview.scale"),value:`${c}`,onChange:A=>l(Number(A))}),T(Oc,{label:i("preview.depth"),value:`${_}`,onChange:A=>d(Number(A))})):T(Oc,{label:i("preview.biome"),value:a,onChange:s,dataList:N,larger:!0}),T(tt,{icon:u?"square_fill":"square",label:i("preview.auto_scroll"),onClick:()=>m(!u)})),T(tt,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>r(go())})),T("canvas",{ref:E,width:v,height:v}))},RP=["dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function xP({model:e,version:t,id:n,shown:i}){var r;const[,o]=we(0);if(hd(e,()=>{o(a=>a+1)}),!e)return T(vt,null);if(n==="dimension"&&((r=e.get(new j.Path(["generator","type"])))==null?void 0:r.endsWith("noise"))){const a=e.get(new j.Path(["generator","biome_source"]));if(a)return T(yP,{model:e,version:t,shown:i,data:a})}if(n==="worldgen/density_function"){const a=e.get(new j.Path([]));if(a)return T(OP,{model:e,version:t,shown:i,data:a})}if(n==="worldgen/noise"){const a=e.get(new j.Path([]));if(a)return T(TP,{model:e,version:t,shown:i,data:a})}if(n==="worldgen/noise_settings"){const a=e.get(new j.Path([]));if(a)return T(wP,{model:e,version:t,shown:i,data:a})}if(n==="worldgen/placed_feature"||n==="worldgen/configured_feature"&&xi(t,"1.16","1.17")){const a=e.get(new j.Path([]));if(a)return T(AP,{model:e,version:t,shown:i,data:a})}return T(vt,null)}(function(){var e="ace",t=function(){return this}();!t&&typeof window!="undefined"&&(t=window);var n=function(c,l,_){if(typeof c!="string"){n.original?n.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(_=l),n.modules[c]||(n.payloads[c]=_,n.modules[c]=null)};n.modules={},n.payloads={};var i=function(c,l,_){if(typeof l=="string"){var d=a(c,l);if(d!=null)return _&&_(),d}else if(Object.prototype.toString.call(l)==="[object Array]"){for(var u=[],m=0,f=l.length;m1&&s(l,"")>-1&&(d=RegExp(this.source,i.replace.call(a(this),"g","")),i.replace.call(c.slice(l.index),d,function(){for(var m=1;ml.index&&this.lastIndex--}return l},r||(RegExp.prototype.test=function(c){var l=i.exec.call(this,c);return l&&this.global&&!l[0].length&&this.lastIndex>l.index&&this.lastIndex--,!!l});function a(c){return(c.global?"g":"")+(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.extended?"x":"")+(c.sticky?"y":"")}function s(c,l,_){if(Array.prototype.indexOf)return c.indexOf(l,_);for(var d=_||0;d0?B>I&&(B=I):B==null?B=0:B<0&&(B=Math.max(I+B,0)),B+wte)for(ze=he;ze--;)this[me+ze]=this[te+ze];if(ee&&B===Ve)this.length=Ve,this.push.apply(this,z);else for(this.length=Ve+ee,ze=0;ze>>0;if(c(w)!="[object Function]")throw new TypeError;for(;++ee>>0,ee=Array(z),ae=arguments[1];if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");for(var te=0;te>>0,ee=[],ae,te=arguments[1];if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");for(var me=0;me>>0,ee=arguments[1];if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");for(var ae=0;ae>>0,ee=arguments[1];if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");for(var ae=0;ae>>0;if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");if(!z&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var ee=0,ae;if(arguments.length>=2)ae=arguments[1];else do{if(ee in U){ae=U[ee++];break}if(++ee>=z)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;ee>>0;if(c(w)!="[object Function]")throw new TypeError(w+" is not a function");if(!z&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var ee,ae=z-1;if(arguments.length>=2)ee=arguments[1];else do{if(ae in U){ee=U[ae--];break}if(--ae<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do ae in this&&(ee=w.call(void 0,ee,U[ae],ae,I));while(ae--);return ee}),(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)&&(Array.prototype.indexOf=function(w){var I=b&&c(this)=="[object String]"?this.split(""):J(this),U=I.length>>>0;if(!U)return-1;var z=0;for(arguments.length>1&&(z=X(arguments[1])),z=z>=0?z:Math.max(0,U+z);z>>0;if(!U)return-1;var z=U-1;for(arguments.length>1&&(z=Math.min(z,X(arguments[1]))),z=z>=0?z:U-Math.abs(z);z>=0;z--)if(z in I&&w===I[z])return z;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(w){return w.__proto__||(w.constructor?w.constructor.prototype:a)}),!Object.getOwnPropertyDescriptor){var g="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(w,I){if(typeof w!="object"&&typeof w!="function"||w===null)throw new TypeError(g+w);if(!!l(w,I)){var U,z,ee;if(U={enumerable:!0,configurable:!0},f){var ae=w.__proto__;w.__proto__=a;var z=u(w,I),ee=m(w,I);if(w.__proto__=ae,z||ee)return z&&(U.get=z),ee&&(U.set=ee),U}return U.value=w[I],U}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(w){return Object.keys(w)}),!Object.create){var v;Object.prototype.__proto__===null?v=function(){return{__proto__:null}}:v=function(){var B={};for(var w in B)B[w]=null;return B.constructor=B.hasOwnProperty=B.propertyIsEnumerable=B.isPrototypeOf=B.toLocaleString=B.toString=B.valueOf=B.__proto__=null,B},Object.create=function(w,I){var U;if(w===null)U=v();else{if(typeof w!="object")throw new TypeError("typeof prototype["+typeof w+"] != 'object'");var z=function(){};z.prototype=w,U=new z,U.__proto__=w}return I!==void 0&&Object.defineProperties(U,I),U}}function E(B){try{return Object.defineProperty(B,"sentinel",{}),"sentinel"in B}catch{}}if(Object.defineProperty){var S=E({}),N=typeof document=="undefined"||E(document.createElement("div"));if(!S||!N)var C=Object.defineProperty}if(!Object.defineProperty||C){var y="Property description must be an object: ",A="Object.defineProperty called on non-object: ",R="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(w,I,U){if(typeof w!="object"&&typeof w!="function"||w===null)throw new TypeError(A+w);if(typeof U!="object"&&typeof U!="function"||U===null)throw new TypeError(y+U);if(C)try{return C.call(Object,w,I,U)}catch{}if(l(U,"value"))if(f&&(u(w,I)||m(w,I))){var z=w.__proto__;w.__proto__=a,delete w[I],w[I]=U.value,w.__proto__=z}else w[I]=U.value;else{if(!f)throw new TypeError(R);l(U,"get")&&_(w,I,U.get),l(U,"set")&&d(w,I,U.set)}return w}}Object.defineProperties||(Object.defineProperties=function(w,I){for(var U in I)l(I,U)&&Object.defineProperty(w,U,I[U]);return w}),Object.seal||(Object.seal=function(w){return w}),Object.freeze||(Object.freeze=function(w){return w});try{Object.freeze(function(){})}catch{Object.freeze=function(I){return function(z){return typeof z=="function"?z:I(z)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(w){return w}),Object.isSealed||(Object.isSealed=function(w){return!1}),Object.isFrozen||(Object.isFrozen=function(w){return!1}),Object.isExtensible||(Object.isExtensible=function(w){if(Object(w)===w)throw new TypeError;for(var I="";l(w,I);)I+="?";w[I]=!0;var U=l(w,I);return delete w[I],U}),!Object.keys){var D=!0,M=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],L=M.length;for(var F in{toString:null})D=!1;Object.keys=function(w){if(typeof w!="object"&&typeof w!="function"||w===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var U in w)l(w,U)&&I.push(U);if(D)for(var z=0,ee=L;z0||-1)*Math.floor(Math.abs(B))),B}var J=function(B){if(B==null)throw new TypeError("can't convert "+B+" to object");return Object(B)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){e("./regexp"),e("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(e,t,n){var i="http://www.w3.org/1999/xhtml";if(t.getDocumentHead=function(o){return o||(o=document),o.head||o.getElementsByTagName("head")[0]||o.documentElement},t.createElement=function(o,r){return document.createElementNS?document.createElementNS(r||i,o):document.createElement(o)},t.hasCssClass=function(o,r){var a=(o.className+"").split(/\s+/g);return a.indexOf(r)!==-1},t.addCssClass=function(o,r){t.hasCssClass(o,r)||(o.className+=" "+r)},t.removeCssClass=function(o,r){for(var a=o.className.split(/\s+/g);;){var s=a.indexOf(r);if(s==-1)break;a.splice(s,1)}o.className=a.join(" ")},t.toggleCssClass=function(o,r){for(var a=o.className.split(/\s+/g),s=!0;;){var c=a.indexOf(r);if(c==-1)break;s=!1,a.splice(c,1)}return s&&a.push(r),o.className=a.join(" "),s},t.setCssClass=function(o,r,a){a?t.addCssClass(o,r):t.removeCssClass(o,r)},t.hasCssString=function(o,r){var a=0,s;if(r=r||document,r.createStyleSheet&&(s=r.styleSheets)){for(;a=0?parseFloat((o.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((o.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((o.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(o.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(o.split(" Chrome/")[1])||void 0,t.isAIR=o.indexOf("AdobeAIR")>=0,t.isIPad=o.indexOf("iPad")>=0,t.isChromeOS=o.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(o)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}});ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){var i=e("./keys"),o=e("./useragent"),r=null,a=0;t.addListener=function(d,u,m){if(d.addEventListener)return d.addEventListener(u,m,!1);if(d.attachEvent){var f=function(){m.call(d,window.event)};m._wrapper=f,d.attachEvent("on"+u,f)}},t.removeListener=function(d,u,m){if(d.removeEventListener)return d.removeEventListener(u,m,!1);d.detachEvent&&d.detachEvent("on"+u,m._wrapper||m)},t.stopEvent=function(d){return t.stopPropagation(d),t.preventDefault(d),!1},t.stopPropagation=function(d){d.stopPropagation?d.stopPropagation():d.cancelBubble=!0},t.preventDefault=function(d){d.preventDefault?d.preventDefault():d.returnValue=!1},t.getButton=function(d){return d.type=="dblclick"?0:d.type=="contextmenu"||o.isMac&&d.ctrlKey&&!d.altKey&&!d.shiftKey?2:d.preventDefault?d.button:{1:0,2:2,4:1}[d.button]},t.capture=function(d,u,m){function f(p){u&&u(p),m&&m(p),t.removeListener(document,"mousemove",u,!0),t.removeListener(document,"mouseup",f,!0),t.removeListener(document,"dragstart",f,!0)}return t.addListener(document,"mousemove",u,!0),t.addListener(document,"mouseup",f,!0),t.addListener(document,"dragstart",f,!0),f},t.addTouchMoveListener=function(d,u){var m,f;t.addListener(d,"touchstart",function(p){var h=p.touches,b=h[0];m=b.clientX,f=b.clientY}),t.addListener(d,"touchmove",function(p){var h=p.touches;if(!(h.length>1)){var b=h[0];p.wheelX=m-b.clientX,p.wheelY=f-b.clientY,m=b.clientX,f=b.clientY,u(p)}})},t.addMouseWheelListener=function(d,u){"onmousewheel"in d?t.addListener(d,"mousewheel",function(m){var f=8;m.wheelDeltaX!==void 0?(m.wheelX=-m.wheelDeltaX/f,m.wheelY=-m.wheelDeltaY/f):(m.wheelX=0,m.wheelY=-m.wheelDelta/f),u(m)}):"onwheel"in d?t.addListener(d,"wheel",function(m){var f=.35;switch(m.deltaMode){case m.DOM_DELTA_PIXEL:m.wheelX=m.deltaX*f||0,m.wheelY=m.deltaY*f||0;break;case m.DOM_DELTA_LINE:case m.DOM_DELTA_PAGE:m.wheelX=(m.deltaX||0)*5,m.wheelY=(m.deltaY||0)*5;break}u(m)}):t.addListener(d,"DOMMouseScroll",function(m){m.axis&&m.axis==m.HORIZONTAL_AXIS?(m.wheelX=(m.detail||0)*5,m.wheelY=0):(m.wheelX=0,m.wheelY=(m.detail||0)*5),u(m)})},t.addMultiMouseDownListener=function(d,u,m,f){var p=0,h,b,g,v={2:"dblclick",3:"tripleclick",4:"quadclick"};function E(N){if(t.getButton(N)!==0?p=0:N.detail>1?(p++,p>4&&(p=1)):p=1,o.isIE){var C=Math.abs(N.clientX-h)>5||Math.abs(N.clientY-b)>5;(!g||C)&&(p=1),g&&clearTimeout(g),g=setTimeout(function(){g=null},u[p-1]||600),p==1&&(h=N.clientX,b=N.clientY)}if(N._clicks=p,m[f]("mousedown",N),p>4)p=0;else if(p>1)return m[f](v[p],N)}function S(N){p=2,g&&clearTimeout(g),g=setTimeout(function(){g=null},u[p-1]||600),m[f]("mousedown",N),m[f](v[p],N)}Array.isArray(d)||(d=[d]),d.forEach(function(N){t.addListener(N,"mousedown",E),o.isOldIE&&t.addListener(N,"dblclick",S)})};var s=o.isMac&&o.isOpera&&!("KeyboardEvent"in window)?function(d){return 0|(d.metaKey?1:0)|(d.altKey?2:0)|(d.shiftKey?4:0)|(d.ctrlKey?8:0)}:function(d){return 0|(d.ctrlKey?1:0)|(d.altKey?2:0)|(d.shiftKey?4:0)|(d.metaKey?8:0)};t.getModifierString=function(d){return i.KEY_MODS[s(d)]};function c(d,u,m){var f=s(u);if(!o.isMac&&r){if(u.getModifierState&&(u.getModifierState("OS")||u.getModifierState("Win"))&&(f|=8),r.altGr)if((3&f)!=3)r.altGr=0;else return;if(m===18||m===17){var p="location"in u?u.location:u.keyLocation;if(m===17&&p===1)r[m]==1&&(a=u.timeStamp);else if(m===18&&f===3&&p===2){var h=u.timeStamp-a;h<50&&(r.altGr=!0)}}}if(m in i.MODIFIER_KEYS&&(m=-1),f&8&&m>=91&&m<=93&&(m=-1),!f&&m===13){var p="location"in u?u.location:u.keyLocation;if(p===3&&(d(u,f,-m),u.defaultPrevented))return}if(o.isChromeOS&&f&8){if(d(u,f,m),u.defaultPrevented)return;f&=-9}return!f&&!(m in i.FUNCTION_KEYS)&&!(m in i.PRINTABLE_KEYS)?!1:d(u,f,m)}t.addCommandKeyListener=function(d,u){var m=t.addListener;if(o.isOldGecko||o.isOpera&&!("KeyboardEvent"in window)){var f=null;m(d,"keydown",function(h){f=h.keyCode}),m(d,"keypress",function(h){return c(u,h,f)})}else{var p=null;m(d,"keydown",function(h){r[h.keyCode]=(r[h.keyCode]||0)+1;var b=c(u,h,h.keyCode);return p=h.defaultPrevented,b}),m(d,"keypress",function(h){p&&(h.ctrlKey||h.altKey||h.shiftKey||h.metaKey)&&(t.stopEvent(h),p=null)}),m(d,"keyup",function(h){r[h.keyCode]=null}),r||(l(),m(window,"focus",l))}};function l(){r=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!o.isOldIE){var _=1;t.nextTick=function(d,u){u=u||window;var m="zero-timeout-message-"+_;t.addListener(u,"message",function f(p){p.data==m&&(t.stopPropagation(p),t.removeListener(u,"message",f),d())}),u.postMessage(m,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(d){setTimeout(d,17)}});ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){t.last=function(r){return r[r.length-1]},t.stringReverse=function(r){return r.split("").reverse().join("")},t.stringRepeat=function(r,a){for(var s="";a>0;)a&1&&(s+=r),(a>>=1)&&(r+=r);return s};var i=/^\s\s*/,o=/\s\s*$/;t.stringTrimLeft=function(r){return r.replace(i,"")},t.stringTrimRight=function(r){return r.replace(o,"")},t.copyObject=function(r){var a={};for(var s in r)a[s]=r[s];return a},t.copyArray=function(r){for(var a=[],s=0,c=r.length;sp.length?_e=_e.substr(9):_e.substr(0,4)==p.substr(0,4)?_e=_e.substr(4,_e.length-p.length+1):_e.charAt(_e.length-1)==p.charAt(0)&&(_e=_e.slice(0,-1)),_e==p.charAt(0)||_e.charAt(_e.length-1)==p.charAt(0)&&(_e=_e.slice(0,-1)),_e&&m.onTextInput(_e)),h&&(h=!1),F&&(F=!1))},$=function(_e){if(!v){var Re=f.value;q(Re),R()}},Y=function(_e,Re,De){var Vt=_e.clipboardData||window.clipboardData;if(!(!Vt||l)){var Zt=_||De?"Text":"text/plain";try{return Re?Vt.setData(Zt,Re)!==!1:Vt.getData(Zt)}catch(Le){if(!De)return Y(Le,Re,!0)}}},X=function(_e,Re){var De=m.getCopyText();if(!De)return i.preventDefault(_e);Y(_e,De)?(o.isIOS&&(b=Re,f.value=`
- aa`+De+`a a
-`,f.setSelectionRange(4,4+De.length),h={value:De}),Re?m.onCut():m.onCopy(),o.isIOS||i.preventDefault(_e)):(h=!0,f.value=De,f.select(),setTimeout(function(){h=!1,R(),A(),Re?m.onCut():m.onCopy()}))},J=function(_e){X(_e,!0)},B=function(_e){X(_e,!1)},w=function(_e){var Re=Y(_e);typeof Re=="string"?(Re&&m.onPaste(Re,_e),o.isIE&&setTimeout(A),i.preventDefault(_e)):(f.value="",g=!0)};i.addCommandKeyListener(f,m.onCommandKey.bind(m)),i.addListener(f,"select",M),i.addListener(f,"input",$),i.addListener(f,"cut",J),i.addListener(f,"copy",B),i.addListener(f,"paste",w);var I=function(_e){v||!m.onCompositionStart||m.$readOnly||(v={},v.canUndo=m.session.$undoManager,m.onCompositionStart(),setTimeout(U,0),m.on("mousedown",z),v.canUndo&&!m.selection.isEmpty()&&(m.insert(""),m.session.markUndoGroup(),m.selection.clearSelection()),m.session.markUndoGroup())},U=function(){if(!(!v||!m.onCompositionUpdate||m.$readOnly)){var _e=f.value.replace(/\x01/g,"");if(v.lastValue!==_e&&(m.onCompositionUpdate(_e),v.lastValue&&m.undo(),v.canUndo&&(v.lastValue=_e),v.lastValue)){var Re=m.selection.getRange();m.insert(v.lastValue),m.session.markUndoGroup(),v.range=m.selection.getRange(),m.selection.setRange(Re),m.selection.clearSelection()}}},z=function(_e){if(!(!m.onCompositionEnd||m.$readOnly)){var Re=v;v=!1;var De=setTimeout(function(){De=null;var Zt=f.value.replace(/\x01/g,"");v||(Zt==Re.lastValue?R():!Re.lastValue&&Zt&&(R(),q(Zt)))});L=function(Le){return De&&clearTimeout(De),Le=Le.replace(/\x01/g,""),Le==Re.lastValue?"":(Re.lastValue&&De&&m.undo(),Le)},m.onCompositionEnd(),m.removeListener("mousedown",z),_e.type=="compositionend"&&Re.range&&m.selection.setRange(Re.range);var Vt=!!o.isChrome&&o.isChrome>=53||!!o.isWebKit&&o.isWebKit>=603;Vt&&$()}},ee=a.delayedCall(U,50);i.addListener(f,"compositionstart",I),o.isGecko?i.addListener(f,"text",function(){ee.schedule()}):(i.addListener(f,"keyup",function(){ee.schedule()}),i.addListener(f,"keydown",function(){ee.schedule()})),i.addListener(f,"compositionend",z),this.getElement=function(){return f},this.setReadOnly=function(_e){f.readOnly=_e},this.onContextMenu=function(_e){F=!0,A(m.selection.isEmpty()),m._emit("nativecontextmenu",{target:m,domEvent:_e}),this.moveToMouse(_e,!0)},this.moveToMouse=function(_e,Re){E||(E=f.style.cssText),f.style.cssText=(Re?"z-index:100000;":"")+"height:"+f.style.height+";"+(o.isIE?"opacity:0.1;":"");var De=m.container.getBoundingClientRect(),Vt=r.computedStyle(m.container),Zt=De.top+(parseInt(Vt.borderTopWidth)||0),Le=De.left+(parseInt(De.borderLeftWidth)||0),mi=De.bottom-Zt-f.clientHeight-2,Ot=function(yt){f.style.left=yt.clientX-Le-2+"px",f.style.top=Math.min(yt.clientY-Zt-2,mi)+"px"};Ot(_e),_e.type=="mousedown"&&(m.renderer.$keepTextAreaAtCursor&&(m.renderer.$keepTextAreaAtCursor=null),clearTimeout(ae),o.isWin&&i.capture(m.container,Ot,te))},this.onContextMenuClose=te;var ae;function te(){clearTimeout(ae),ae=setTimeout(function(){E&&(f.style.cssText=E,E=""),m.renderer.$keepTextAreaAtCursor==null&&(m.renderer.$keepTextAreaAtCursor=!0,m.renderer.$moveTextAreaToCursor())},0)}var me=function(_e){m.textInput.onContextMenu(_e),te()};if(i.addListener(f,"mouseup",me),i.addListener(f,"mousedown",function(_e){_e.preventDefault(),te()}),i.addListener(m.renderer.scroller,"contextmenu",me),i.addListener(f,"contextmenu",me),o.isIOS){var he=null,Ve=!1;u.addEventListener("keydown",function(_e){he&&clearTimeout(he),Ve=!0}),u.addEventListener("keyup",function(_e){he=setTimeout(function(){Ve=!1},100)});var ze=function(_e){if(document.activeElement===f&&!Ve){if(b)return setTimeout(function(){b=!1},100);var Re=f.selectionStart,De=f.selectionEnd;if(f.setSelectionRange(4,5),Re==De)switch(Re){case 0:m.onCommandKey(null,0,s.up);break;case 1:m.onCommandKey(null,0,s.home);break;case 2:m.onCommandKey(null,c.option,s.left);break;case 4:m.onCommandKey(null,0,s.left);break;case 5:m.onCommandKey(null,0,s.right);break;case 7:m.onCommandKey(null,c.option,s.right);break;case 8:m.onCommandKey(null,0,s.end);break;case 9:m.onCommandKey(null,0,s.down);break}else{switch(De){case 6:m.onCommandKey(null,c.shift,s.right);break;case 7:m.onCommandKey(null,c.shift|c.option,s.right);break;case 8:m.onCommandKey(null,c.shift,s.end);break;case 9:m.onCommandKey(null,c.shift,s.down);break}switch(Re){case 0:m.onCommandKey(null,c.shift,s.up);break;case 1:m.onCommandKey(null,c.shift,s.home);break;case 2:m.onCommandKey(null,c.shift|c.option,s.left);break;case 3:m.onCommandKey(null,c.shift,s.left);break}}}};document.addEventListener("selectionchange",ze),m.on("destroy",function(){document.removeEventListener("selectionchange",ze)})}};t.TextInput=d});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,n){var i=e("../lib/event"),o=e("../lib/useragent"),r=e("../lib/dom"),a=e("../lib/lang"),s=o.isChrome<18,c=o.isIE,l=e("./textinput_ios").TextInput,_=function(d,u){if(o.isIOS)return l.call(this,d,u);var m=r.createElement("textarea");m.className="ace_text-input",m.setAttribute("wrap","off"),m.setAttribute("autocorrect","off"),m.setAttribute("autocapitalize","off"),m.setAttribute("spellcheck",!1),m.style.opacity="0",d.insertBefore(m,d.firstChild);var f="\u2028\u2028",p=!1,h=!1,b=!1,g="",v=!0;try{var E=document.activeElement===m}catch{}i.addListener(m,"blur",function(te){u.onBlur(te),E=!1}),i.addListener(m,"focus",function(te){E=!0,u.onFocus(te),C()}),this.focus=function(){if(g)return m.focus();var te=m.style.top;m.style.position="fixed",m.style.top="0px",m.focus(),setTimeout(function(){m.style.position="",m.style.top=="0px"&&(m.style.top=te)},0)},this.blur=function(){m.blur()},this.isFocused=function(){return E};var S=a.delayedCall(function(){E&&C(v)}),N=a.delayedCall(function(){b||(m.value=f,E&&C())});function C(te){if(!b){if(b=!0,D)var me=0,he=te?0:m.value.length-1;else var me=te?2:1,he=2;try{m.setSelectionRange(me,he)}catch{}b=!1}}function y(){b||(m.value=f,o.isWebKit&&N.schedule())}o.isWebKit||u.addEventListener("changeSelection",function(){u.selection.isEmpty()!=v&&(v=!v,S.schedule())}),y(),E&&u.onFocus();var A=function(te){return te.selectionStart===0&&te.selectionEnd===te.value.length},R=function(te){p?p=!1:A(m)?(u.selectAll(),C()):D&&C(u.selection.isEmpty())},D=null;this.setInputHandler=function(te){D=te},this.getInputHandler=function(){return D};var M=!1,L=function(te){D&&(te=D(te),D=null),h?(C(),te&&u.onPaste(te),h=!1):te==f.charAt(0)?M?u.execCommand("del",{source:"ace"}):u.execCommand("backspace",{source:"ace"}):(te.substring(0,2)==f?te=te.substr(2):te.charAt(0)==f.charAt(0)?te=te.substr(1):te.charAt(te.length-1)==f.charAt(0)&&(te=te.slice(0,-1)),te.charAt(te.length-1)==f.charAt(0)&&(te=te.slice(0,-1)),te&&u.onTextInput(te)),M&&(M=!1)},F=function(te){if(!b){var me=m.value;L(me),y()}},q=function(te,me,he){var Ve=te.clipboardData||window.clipboardData;if(!(!Ve||s)){var ze=c||he?"Text":"text/plain";try{return me?Ve.setData(ze,me)!==!1:Ve.getData(ze)}catch(_e){if(!he)return q(_e,me,!0)}}},$=function(te,me){var he=u.getCopyText();if(!he)return i.preventDefault(te);q(te,he)?(me?u.onCut():u.onCopy(),i.preventDefault(te)):(p=!0,m.value=he,m.select(),setTimeout(function(){p=!1,y(),C(),me?u.onCut():u.onCopy()}))},Y=function(te){$(te,!0)},X=function(te){$(te,!1)},J=function(te){var me=q(te);typeof me=="string"?(me&&u.onPaste(me,te),o.isIE&&setTimeout(C),i.preventDefault(te)):(m.value="",h=!0)};i.addCommandKeyListener(m,u.onCommandKey.bind(u)),i.addListener(m,"select",R),i.addListener(m,"input",F),i.addListener(m,"cut",Y),i.addListener(m,"copy",X),i.addListener(m,"paste",J),(!("oncut"in m)||!("oncopy"in m)||!("onpaste"in m))&&i.addListener(d,"keydown",function(te){if(!(o.isMac&&!te.metaKey||!te.ctrlKey))switch(te.keyCode){case 67:X(te);break;case 86:J(te);break;case 88:Y(te);break}});var B=function(te){b||!u.onCompositionStart||u.$readOnly||(b={},b.canUndo=u.session.$undoManager,u.onCompositionStart(),setTimeout(w,0),u.on("mousedown",I),b.canUndo&&!u.selection.isEmpty()&&(u.insert(""),u.session.markUndoGroup(),u.selection.clearSelection()),u.session.markUndoGroup())},w=function(){if(!(!b||!u.onCompositionUpdate||u.$readOnly)){var te=m.value.replace(/\u2028/g,"");if(b.lastValue!==te&&(u.onCompositionUpdate(te),b.lastValue&&u.undo(),b.canUndo&&(b.lastValue=te),b.lastValue)){var me=u.selection.getRange();u.insert(b.lastValue),u.session.markUndoGroup(),b.range=u.selection.getRange(),u.selection.setRange(me),u.selection.clearSelection()}}},I=function(te){if(!(!u.onCompositionEnd||u.$readOnly)){var me=b;b=!1;var he=setTimeout(function(){he=null;var ze=m.value.replace(/\u2028/g,"");b||(ze==me.lastValue?y():!me.lastValue&&ze&&(y(),L(ze)))});D=function(_e){return he&&clearTimeout(he),_e=_e.replace(/\u2028/g,""),_e==me.lastValue?"":(me.lastValue&&he&&u.undo(),_e)},u.onCompositionEnd(),u.removeListener("mousedown",I),te.type=="compositionend"&&me.range&&u.selection.setRange(me.range);var Ve=!!o.isChrome&&o.isChrome>=53||!!o.isWebKit&&o.isWebKit>=603;Ve&&F()}},U=a.delayedCall(w,50);i.addListener(m,"compositionstart",B),o.isGecko?i.addListener(m,"text",function(){U.schedule()}):(i.addListener(m,"keyup",function(){U.schedule()}),i.addListener(m,"keydown",function(){U.schedule()})),i.addListener(m,"compositionend",I),this.getElement=function(){return m},this.setReadOnly=function(te){m.readOnly=te},this.onContextMenu=function(te){M=!0,C(u.selection.isEmpty()),u._emit("nativecontextmenu",{target:u,domEvent:te}),this.moveToMouse(te,!0)},this.moveToMouse=function(te,me){g||(g=m.style.cssText),m.style.cssText=(me?"z-index:100000;":"")+"height:"+m.style.height+";"+(o.isIE?"opacity:0.1;":"");var he=u.container.getBoundingClientRect(),Ve=r.computedStyle(u.container),ze=he.top+(parseInt(Ve.borderTopWidth)||0),_e=he.left+(parseInt(he.borderLeftWidth)||0),Re=he.bottom-ze-m.clientHeight-2,De=function(Vt){m.style.left=Vt.clientX-_e-2+"px",m.style.top=Math.min(Vt.clientY-ze-2,Re)+"px"};De(te),te.type=="mousedown"&&(u.renderer.$keepTextAreaAtCursor&&(u.renderer.$keepTextAreaAtCursor=null),clearTimeout(z),o.isWin&&i.capture(u.container,De,ee))},this.onContextMenuClose=ee;var z;function ee(){clearTimeout(z),z=setTimeout(function(){g&&(m.style.cssText=g,g=""),u.renderer.$keepTextAreaAtCursor==null&&(u.renderer.$keepTextAreaAtCursor=!0,u.renderer.$moveTextAreaToCursor())},0)}var ae=function(te){u.textInput.onContextMenu(te),ee()};i.addListener(m,"mouseup",ae),i.addListener(m,"mousedown",function(te){te.preventDefault(),ee()}),i.addListener(u.renderer.scroller,"contextmenu",ae),i.addListener(m,"contextmenu",ae)};t.TextInput=_});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){e("../lib/dom"),e("../lib/event");var i=e("../lib/useragent"),o=0,r=250;function a(l){l.$clickSelection=null;var _=l.editor;_.setDefaultHandler("mousedown",this.onMouseDown.bind(l)),_.setDefaultHandler("dblclick",this.onDoubleClick.bind(l)),_.setDefaultHandler("tripleclick",this.onTripleClick.bind(l)),_.setDefaultHandler("quadclick",this.onQuadClick.bind(l)),_.setDefaultHandler("mousewheel",this.onMouseWheel.bind(l)),_.setDefaultHandler("touchmove",this.onTouchMove.bind(l));var d=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];d.forEach(function(u){l[u]=this[u]},this),l.selectByLines=this.extendSelectionBy.bind(l,"getLineRange"),l.selectByWords=this.extendSelectionBy.bind(l,"getWordRange")}(function(){this.onMouseDown=function(l){var _=l.inSelection(),d=l.getDocumentPosition();this.mousedownEvent=l;var u=this.editor,m=l.getButton();if(m!==0){var f=u.getSelectionRange(),p=f.isEmpty();u.$blockScrolling++,(p||m==1)&&u.selection.moveToPosition(d),u.$blockScrolling--,m==2&&(u.textInput.onContextMenu(l.domEvent),i.isMozilla||l.preventDefault());return}if(this.mousedownEvent.time=Date.now(),_&&!u.isFocused()&&(u.focus(),this.$focusTimout&&!this.$clickSelection&&!u.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(l);return}return this.captureMouse(l),this.startSelect(d,l.domEvent._clicks>1),l.preventDefault()},this.startSelect=function(l,_){l=l||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var d=this.editor;d.$blockScrolling++,this.mousedownEvent.getShiftKey()?d.selection.selectToPosition(l):_||d.selection.moveToPosition(l),_||this.select(),d.renderer.scroller.setCapture&&d.renderer.scroller.setCapture(),d.setStyle("ace_selecting"),this.setState("select"),d.$blockScrolling--},this.select=function(){var l,_=this.editor,d=_.renderer.screenToTextCoordinates(this.x,this.y);if(_.$blockScrolling++,this.$clickSelection){var u=this.$clickSelection.comparePoint(d);if(u==-1)l=this.$clickSelection.end;else if(u==1)l=this.$clickSelection.start;else{var m=c(this.$clickSelection,d);d=m.cursor,l=m.anchor}_.selection.setSelectionAnchor(l.row,l.column)}_.selection.selectToPosition(d),_.$blockScrolling--,_.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(l){var _,d=this.editor,u=d.renderer.screenToTextCoordinates(this.x,this.y),m=d.selection[l](u.row,u.column);if(d.$blockScrolling++,this.$clickSelection){var f=this.$clickSelection.comparePoint(m.start),p=this.$clickSelection.comparePoint(m.end);if(f==-1&&p<=0)_=this.$clickSelection.end,(m.end.row!=u.row||m.end.column!=u.column)&&(u=m.start);else if(p==1&&f>=0)_=this.$clickSelection.start,(m.start.row!=u.row||m.start.column!=u.column)&&(u=m.end);else if(f==-1&&p==1)u=m.end,_=m.start;else{var h=c(this.$clickSelection,u);u=h.cursor,_=h.anchor}d.selection.setSelectionAnchor(_.row,_.column)}d.selection.selectToPosition(u),d.$blockScrolling--,d.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var l=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),_=Date.now();(l>o||_-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(l){var _=l.getDocumentPosition(),d=this.editor,u=d.session,m=u.getBracketRange(_);m?(m.isEmpty()&&(m.start.column--,m.end.column++),this.setState("select")):(m=d.selection.getWordRange(_.row,_.column),this.setState("selectByWords")),this.$clickSelection=m,this.select()},this.onTripleClick=function(l){var _=l.getDocumentPosition(),d=this.editor;this.setState("selectByLines");var u=d.getSelectionRange();u.isMultiLine()&&u.contains(_.row,_.column)?(this.$clickSelection=d.selection.getLineRange(u.start.row),this.$clickSelection.end=d.selection.getLineRange(u.end.row).end):this.$clickSelection=d.selection.getLineRange(_.row),this.select()},this.onQuadClick=function(l){var _=this.editor;_.selectAll(),this.$clickSelection=_.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(l){if(!l.getAccelKey()){l.getShiftKey()&&l.wheelY&&!l.wheelX&&(l.wheelX=l.wheelY,l.wheelY=0);var _=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var d=this.$lastScroll,u=l.domEvent.timeStamp,m=u-d.t,f=l.wheelX/m,p=l.wheelY/m;m=1&&_.renderer.isScrollableBy(l.wheelX*l.speed,0)&&(b=!0),h<=1&&_.renderer.isScrollableBy(0,l.wheelY*l.speed)&&(b=!0),b)d.allowed=u;else if(u-d.allowed_.session.documentToScreenRow(C.row,C.column))return b()}if(p!=E)if(p=E.text.join("
"),u.setHtml(p),u.show(),_._signal("showGutterTooltip",u),_.on("mousewheel",b),l.$tooltipFollowsMouse)g(f);else{var y=f.domEvent.target,A=y.getBoundingClientRect(),R=u.getElement().style;R.left=A.right+"px",R.top=A.bottom+"px"}}function b(){m&&(m=clearTimeout(m)),p&&(u.hide(),p=null,_._signal("hideGutterTooltip",u),_.removeEventListener("mousewheel",b))}function g(v){u.setPosition(v.x,v.y)}l.editor.setDefaultHandler("guttermousemove",function(v){var E=v.domEvent.target||v.domEvent.srcElement;if(i.hasCssClass(E,"ace_fold-widget"))return b();p&&l.$tooltipFollowsMouse&&g(v),f=v,!m&&(m=setTimeout(function(){m=null,f&&!l.isMousePressed?h():b()},50))}),r.addListener(_.renderer.$gutter,"mouseout",function(v){f=null,!(!p||m)&&(m=setTimeout(function(){m=null,b()},50))}),_.on("changeSession",b)}function c(l){a.call(this,l)}o.inherits(c,a),function(){this.setPosition=function(l,_){var d=window.innerWidth||document.documentElement.clientWidth,u=window.innerHeight||document.documentElement.clientHeight,m=this.getWidth(),f=this.getHeight();l+=15,_+=15,l+m>d&&(l-=l+m-d),_+f>u&&(_-=20+f),a.prototype.setPosition.call(this,l,_)}}.call(c.prototype),t.GutterHandler=s});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/event"),o=e("../lib/useragent"),r=t.MouseEvent=function(a,s){this.domEvent=a,this.editor=s,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){i.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){i.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var a=this.editor,s=a.getSelectionRange();if(s.isEmpty())this.$inSelection=!1;else{var c=this.getDocumentPosition();this.$inSelection=s.contains(c.row,c.column)}return this.$inSelection},this.getButton=function(){return i.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=o.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(r.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){var i=e("../lib/dom"),o=e("../lib/event"),r=e("../lib/useragent"),a=200,s=200,c=5;function l(d){var u=d.editor,m=i.createElement("img");m.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",r.isOpera&&(m.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(w){d[w]=this[w]},this),u.addEventListener("mousedown",this.onMouseDown.bind(d));var p=u.container,h,b,g,v,E,S,N=0,C,y,A,R,D;this.onDragStart=function(w){if(this.cancelDrag||!p.draggable){var I=this;return setTimeout(function(){I.startSelect(),I.captureMouse(w)},0),w.preventDefault()}E=u.getSelectionRange();var U=w.dataTransfer;U.effectAllowed=u.getReadOnly()?"copy":"copyMove",r.isOpera&&(u.container.appendChild(m),m.scrollTop=0),U.setDragImage&&U.setDragImage(m,0,0),r.isOpera&&u.container.removeChild(m),U.clearData(),U.setData("Text",u.session.getTextRange()),y=!0,this.setState("drag")},this.onDragEnd=function(w){if(p.draggable=!1,y=!1,this.setState(null),!u.getReadOnly()){var I=w.dataTransfer.dropEffect;!C&&I=="move"&&u.session.remove(u.getSelectionRange()),u.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(w){if(!(u.getReadOnly()||!J(w.dataTransfer)))return b=w.clientX,g=w.clientY,h||q(),N++,w.dataTransfer.dropEffect=C=B(w),o.preventDefault(w)},this.onDragOver=function(w){if(!(u.getReadOnly()||!J(w.dataTransfer)))return b=w.clientX,g=w.clientY,h||(q(),N++),Y!==null&&(Y=null),w.dataTransfer.dropEffect=C=B(w),o.preventDefault(w)},this.onDragLeave=function(w){if(N--,N<=0&&h)return $(),C=null,o.preventDefault(w)},this.onDrop=function(w){if(!!S){var I=w.dataTransfer;if(y)switch(C){case"move":E.contains(S.row,S.column)?E={start:S,end:S}:E=u.moveText(E,S);break;case"copy":E=u.moveText(E,S,!0);break}else{var U=I.getData("Text");E={start:S,end:u.session.insert(S,U)},u.focus(),C=null}return $(),o.preventDefault(w)}},o.addListener(p,"dragstart",this.onDragStart.bind(d)),o.addListener(p,"dragend",this.onDragEnd.bind(d)),o.addListener(p,"dragenter",this.onDragEnter.bind(d)),o.addListener(p,"dragover",this.onDragOver.bind(d)),o.addListener(p,"dragleave",this.onDragLeave.bind(d)),o.addListener(p,"drop",this.onDrop.bind(d));function M(w,I){var U=Date.now(),z=!I||w.row!=I.row,ee=!I||w.column!=I.column;if(!R||z||ee)u.$blockScrolling+=1,u.moveCursorToPosition(w),u.$blockScrolling-=1,R=U,D={x:b,y:g};else{var ae=_(D.x,D.y,b,g);ae>c?R=null:U-R>=s&&(u.renderer.scrollCursorIntoView(),R=null)}}function L(w,I){var U=Date.now(),z=u.renderer.layerConfig.lineHeight,ee=u.renderer.layerConfig.characterWidth,ae=u.renderer.scroller.getBoundingClientRect(),te={x:{left:b-ae.left,right:ae.right-b},y:{top:g-ae.top,bottom:ae.bottom-g}},me=Math.min(te.x.left,te.x.right),he=Math.min(te.y.top,te.y.bottom),Ve={row:w.row,column:w.column};me/ee<=2&&(Ve.column+=te.x.left=a&&u.renderer.scrollCursorIntoView(Ve):A=U:A=null}function F(){var w=S;S=u.renderer.screenToTextCoordinates(b,g),M(S,w),L(S,w)}function q(){E=u.selection.toOrientedRange(),h=u.session.addMarker(E,"ace_selection",u.getSelectionStyle()),u.clearSelection(),u.isFocused()&&u.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),F(),v=setInterval(F,20),N=0,o.addListener(document,"mousemove",X)}function $(){clearInterval(v),u.session.removeMarker(h),h=null,u.$blockScrolling+=1,u.selection.fromOrientedRange(E),u.$blockScrolling-=1,u.isFocused()&&!y&&u.renderer.$cursorLayer.setBlinking(!u.getReadOnly()),E=null,S=null,N=0,A=null,R=null,o.removeListener(document,"mousemove",X)}var Y=null;function X(){Y==null&&(Y=setTimeout(function(){Y!=null&&h&&$()},20))}function J(w){var I=w.types;return!I||Array.prototype.some.call(I,function(U){return U=="text/plain"||U=="Text"})}function B(w){var I=["copy","copymove","all","uninitialized"],U=["move","copymove","linkmove","all","uninitialized"],z=r.isMac?w.altKey:w.ctrlKey,ee="uninitialized";try{ee=w.dataTransfer.effectAllowed.toLowerCase()}catch{}var ae="none";return z&&I.indexOf(ee)>=0?ae="copy":U.indexOf(ee)>=0?ae="move":I.indexOf(ee)>=0&&(ae="copy"),ae}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,u=d.container;u.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var m=r.isWin?"default":"move";d.renderer.setCursorStyle(m),this.setState("dragReady")},this.onMouseDrag=function(d){var u=this.editor.container;if(r.isIE&&this.state=="dragReady"){var m=_(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>3&&u.dragDrop()}if(this.state==="dragWait"){var m=_(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>0&&(u.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(!!this.$dragEnabled){this.mousedownEvent=d;var u=this.editor,m=d.inSelection(),f=d.getButton(),p=d.domEvent.detail||1;if(p===1&&f===0&&m){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var h=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in h&&(h.unselectable="on"),u.getDragDelay()){if(r.isWebKit){this.cancelDrag=!0;var b=u.container;b.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(l.prototype);function _(d,u,m,f){return Math.sqrt(Math.pow(m-d,2)+Math.pow(f-u,2))}t.DragdropHandler=l});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){var i=e("./dom");t.get=function(o,r){var a=new XMLHttpRequest;a.open("GET",o,!0),a.onreadystatechange=function(){a.readyState===4&&r(a.responseText)},a.send(null)},t.loadScript=function(o,r){var a=i.getDocumentHead(),s=document.createElement("script");s.src=o,a.appendChild(s),s.onload=s.onreadystatechange=function(c,l){(l||!s.readyState||s.readyState=="loaded"||s.readyState=="complete")&&(s=s.onload=s.onreadystatechange=null,l||r())}},t.qualifyURL=function(o){var r=document.createElement("a");return r.href=o,r.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){var i={},o=function(){this.propagationStopped=!0},r=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(a,s){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var c=this._eventRegistry[a]||[],l=this._defaultHandlers[a];if(!(!c.length&&!l)){(typeof s!="object"||!s)&&(s={}),s.type||(s.type=a),s.stopPropagation||(s.stopPropagation=o),s.preventDefault||(s.preventDefault=r),c=c.slice();for(var _=0;_1&&(f=u[u.length-2]);var h=s[d+"Path"];return h==null?h=s.basePath:m=="/"&&(d=m=""),h&&h.slice(-1)!="/"&&(h+="/"),h+d+m+f+this.get("suffix")},t.setModuleUrl=function(_,d){return s.$moduleUrls[_]=d},t.$loading={},t.loadModule=function(_,d){var u,m;Array.isArray(_)&&(m=_[0],_=_[1]);try{u=e(_)}catch{}if(u&&!t.$loading[_])return d&&d(u);if(t.$loading[_]||(t.$loading[_]=[]),t.$loading[_].push(d),!(t.$loading[_].length>1)){var f=function(){e([_],function(p){t._emit("load.module",{name:_,module:p});var h=t.$loading[_];t.$loading[_]=null,h.forEach(function(b){b&&b(p)})})};if(!t.get("packaged"))return f();o.loadScript(t.moduleUrl(_,m),f)}},c(!0);function c(_){if(!(!a||!a.document)){s.packaged=_||e.packaged||n.packaged||a.define&&(void 0).packaged;for(var d={},u="",m=document.currentScript||document._currentScript,f=m&&m.ownerDocument||document,p=f.getElementsByTagName("script"),h=0;h0)if(Ve==16){for(Re=_e;Re-1){for(Re=_e;Re=0&&z[Zt]==E;Zt--)I[Zt]=i}}}function X(w,I,U){if(!(o=w){for(ae=ee+1;ae=w;)ae++;for(te=ee,me=ae-1;te=I.length||(ae=U[z-1])!=f&&ae!=p||(te=I[z+1])!=f&&te!=p?h:(r&&(te=p),te==ae?te:h);case N:return ae=z>0?U[z-1]:b,ae==f&&z+10&&U[z-1]==f)return f;if(r)return h;for(he=z+1,me=I.length;he=1425&&Ve<=2303||Ve==64286;if(ae=I[he],ze&&(ae==m||ae==v))return m}return z<1||(ae=I[z-1])==b?h:U[z-1];case b:return r=!1,a=!0,i;case g:return s=!0,h;case A:case R:case M:case L:case D:r=!1;case F:return h}}function B(w){var I=w.charCodeAt(0),U=I>>8;return U==0?I>191?u:q[I]:U==5?/[\u0591-\u05f4]/.test(w)?m:u:U==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(w)?y:/[\u0660-\u0669\u066b-\u066c]/.test(w)?p:I==1642?C:/[\u06f0-\u06f9]/.test(w)?f:v:U==32&&I<=8287?$[I&255]:U==254&&I>=65136?v:h}t.L=u,t.R=m,t.EN=f,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="\xB7",t.doBidiReorder=function(w,I,U){if(w.length<2)return{};var z=w.split(""),ee=new Array(z.length),ae=new Array(z.length),te=[];i=U?d:_,Y(z,te,z.length,I);for(var me=0;mev&&I[me]0&&z[me-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(z[me])&&(te[me-1]=te[me]=t.R_H,me++);z[z.length-1]===t.DOT&&(te[z.length-1]=t.B);for(var me=0;me=0&&(c=this.session.$docRowCache[_])}return c},this.getSplitIndex=function(){var c=0,l=this.session.$screenRowCache;if(l.length)for(var _,d=this.session.$getRowCacheIndex(l,this.currentRow);this.currentRow-c>0&&(_=this.session.$getRowCacheIndex(l,this.currentRow-c-1),_===d);)d=_,c++;return c},this.updateRowLine=function(c,l){if(c===void 0&&(c=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=c===this.session.getLength()-1,this.line=this.session.getLine(c),this.session.$useWrapMode){var _=this.session.$wrapData[c];_&&(l===void 0&&(l=this.getSplitIndex()),l>0&&_.length?(this.wrapIndent=_.indent,this.line=l<_.length?this.line.substring(_[l-1],_[_.length-1]):this.line.substring(_[_.length-1])):this.line=this.line.substring(0,_[l]))}var d=this.session,u=0,m;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(f,p){return f===" "||d.isFullWidth(f.charCodeAt(0))?(m=f===" "?d.getScreenTabSize(p+u):2,u+=m-1,o.stringRepeat(i.DOT,m)):f})},this.updateBidiMap=function(){var c=[],l=this.isLastRow?this.EOF:this.EOL,_=this.line+(this.showInvisibles?l:i.DOT);i.hasBidiCharacters(_,c)?this.bidiMap=i.doBidiReorder(_,c,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(c){if(!!this.seenBidi&&this.characterWidth!==c.$characterSize.width){var l=this.characterWidth=c.$characterSize.width,_=c.$measureCharWidth("\u05D4");this.charWidths[i.L]=this.charWidths[i.EN]=this.charWidths[i.ON_R]=l,this.charWidths[i.R]=this.charWidths[i.AN]=_,this.charWidths[i.R_H]=r.isChrome?_:_*.45,this.charWidths[i.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(c){this.showInvisibles=c,this.currentRow=null},this.setEolChar=function(c){this.EOL=c},this.setTextDir=function(c){this.isRtlDir=c},this.getPosLeft=function(c){c-=this.wrapIndent;var l=i.getVisualFromLogicalIdx(c>0?c-1:0,this.bidiMap),_=this.bidiMap.bidiLevels,d=0;c===0&&_[l]%2!==0&&l++;for(var u=0;u=p&&Ed+f/2;){if(d+=f,u===m.length-1){f=0;break}f=this.charWidths[m[++u]]}return u>0&&m[u-1]%2!==0&&m[u]%2===0?(_0&&m[u-1]%2===0&&m[u]%2!==0?l=1+(_>d?this.bidiMap.logicalFromVisual[u]:this.bidiMap.logicalFromVisual[u-1]):this.isRtlDir&&u===m.length-1&&f===0&&m[u-1]%2===0||!this.isRtlDir&&u===0&&m[u]%2!==0?l=1+this.bidiMap.logicalFromVisual[u]:(u>0&&m[u-1]%2!==0&&f!==0&&u--,l=this.bidiMap.logicalFromVisual[u]),l+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s});ace.define("ace/range",["require","exports","module"],function(e,t,n){var i=function(r,a){return r.row-a.row||r.column-a.column},o=function(r,a,s,c){this.start={row:r,column:a},this.end={row:s,column:c}};(function(){this.isEqual=function(r){return this.start.row===r.start.row&&this.end.row===r.end.row&&this.start.column===r.start.column&&this.end.column===r.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(r,a){return this.compare(r,a)==0},this.compareRange=function(r){var a,s=r.end,c=r.start;return a=this.compare(s.row,s.column),a==1?(a=this.compare(c.row,c.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(c.row,c.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(r){return this.compare(r.row,r.column)},this.containsRange=function(r){return this.comparePoint(r.start)==0&&this.comparePoint(r.end)==0},this.intersects=function(r){var a=this.compareRange(r);return a==-1||a==0||a==1},this.isEnd=function(r,a){return this.end.row==r&&this.end.column==a},this.isStart=function(r,a){return this.start.row==r&&this.start.column==a},this.setStart=function(r,a){typeof r=="object"?(this.start.column=r.column,this.start.row=r.row):(this.start.row=r,this.start.column=a)},this.setEnd=function(r,a){typeof r=="object"?(this.end.column=r.column,this.end.row=r.row):(this.end.row=r,this.end.column=a)},this.inside=function(r,a){return this.compare(r,a)==0?!(this.isEnd(r,a)||this.isStart(r,a)):!1},this.insideStart=function(r,a){return this.compare(r,a)==0?!this.isEnd(r,a):!1},this.insideEnd=function(r,a){return this.compare(r,a)==0?!this.isStart(r,a):!1},this.compare=function(r,a){return!this.isMultiLine()&&r===this.start.row?athis.end.column?1:0:rthis.end.row?1:this.start.row===r?a>=this.start.column?0:-1:this.end.row===r?a<=this.end.column?0:1:0},this.compareStart=function(r,a){return this.start.row==r&&this.start.column==a?-1:this.compare(r,a)},this.compareEnd=function(r,a){return this.end.row==r&&this.end.column==a?1:this.compare(r,a)},this.compareInside=function(r,a){return this.end.row==r&&this.end.column==a?1:this.start.row==r&&this.start.column==a?-1:this.compare(r,a)},this.clipRows=function(r,a){if(this.end.row>a)var s={row:a+1,column:0};else if(this.end.rowa)var c={row:a+1,column:0};else if(this.start.rowl.row||c.row==l.row&&c.column>l.column},this.getRange=function(){var c=this.anchor,l=this.lead;return this.isEmpty()?a.fromPoints(l,l):this.isBackwards()?a.fromPoints(l,c):a.fromPoints(c,l)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var c=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(c,this.doc.getLine(c).length)},this.setRange=this.setSelectionRange=function(c,l){l?(this.setSelectionAnchor(c.end.row,c.end.column),this.selectTo(c.start.row,c.start.column)):(this.setSelectionAnchor(c.start.row,c.start.column),this.selectTo(c.end.row,c.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(c){var l=this.lead;this.$isEmpty&&this.setSelectionAnchor(l.row,l.column),c.call(this)},this.selectTo=function(c,l){this.$moveSelection(function(){this.moveCursorTo(c,l)})},this.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},this.moveTo=function(c,l){this.clearSelection(),this.moveCursorTo(c,l)},this.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(c,l){if(typeof l=="undefined"){var _=c||this.lead;c=_.row,l=_.column}return this.session.getWordRange(c,l)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var c=this.getCursor(),l=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(l)},this.getLineRange=function(c,l){var _=typeof c=="number"?c:this.lead.row,d,u=this.session.getFoldLine(_);return u?(_=u.start.row,d=u.end.row):d=_,l===!0?new a(_,0,d,this.session.getLine(d).length):new a(_,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(c,l,_){var d=c.column,u=c.column+l;return _<0&&(d=c.column-l,u=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(d,u).split(" ").length-1==l},this.moveCursorLeft=function(){var c=this.lead.getPosition(),l;if(l=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(l.start.row,l.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var _=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,_,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-_):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var c=this.lead.getPosition(),l;if(l=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(l.end.row,l.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(l.column=d)}}this.moveCursorTo(l.row,l.column)},this.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,l=this.doc.getLine(c).length;this.moveCursorTo(c,l)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var c=this.lead.row,l=this.lead.column,_=this.doc.getLine(c),d=_.substring(l);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var u=this.session.getFoldAt(c,l,1);if(u){this.moveCursorTo(u.end.row,u.end.column);return}if(this.session.nonTokenRe.exec(d)&&(l+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,d=_.substring(l)),l>=_.length){this.moveCursorTo(c,_.length),this.moveCursorRight(),c0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(u)&&(l-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,l)},this.$shortWordEndIndex=function(c){var l=0,_,d=/\s/,u=this.session.tokenRe;if(u.lastIndex=0,this.session.tokenRe.exec(c))l=this.session.tokenRe.lastIndex;else{for(;(_=c[l])&&d.test(_);)l++;if(l<1){for(u.lastIndex=0;(_=c[l])&&!u.test(_);)if(u.lastIndex=0,l++,d.test(_))if(l>2){l--;break}else{for(;(_=c[l])&&d.test(_);)l++;if(l>2)break}}}return u.lastIndex=0,l},this.moveCursorShortWordRight=function(){var c=this.lead.row,l=this.lead.column,_=this.doc.getLine(c),d=_.substring(l),u=this.session.getFoldAt(c,l,1);if(u)return this.moveCursorTo(u.end.row,u.end.column);if(l==_.length){var m=this.doc.getLength();do c++,d=this.doc.getLine(c);while(c0&&/^\s*$/.test(d));l=d.length,/\s+$/.test(d)||(d="")}var u=o.stringReverse(d),m=this.$shortWordEndIndex(u);return this.moveCursorTo(c,l-m)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(c,l){var _=this.session.documentToScreenPosition(this.lead.row,this.lead.column),d;l===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(_.row,this.lead.row)?(d=this.session.$bidiHandler.getPosLeft(_.column),_.column=Math.round(d/this.session.$bidiHandler.charWidths[0])):d=_.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?_.column=this.$desiredColumn:this.$desiredColumn=_.column);var u=this.session.screenToDocumentPosition(_.row+c,_.column,d);c!==0&&l===0&&u.row===this.lead.row&&u.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[u.row]&&(u.row>0||c>0)&&u.row++,this.moveCursorTo(u.row,u.column+l,l===0)},this.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},this.moveCursorTo=function(c,l,_){var d=this.session.getFoldAt(c,l,1);d&&(c=d.start.row,l=d.start.column),this.$keepDesiredColumnOnChange=!0;var u=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(u.charAt(l))&&u.charAt(l-1)&&(this.lead.row==c&&this.lead.column==l+1?l=l-1:l=l+1),this.lead.setPosition(c,l),this.$keepDesiredColumnOnChange=!1,_||(this.$desiredColumn=null)},this.moveCursorToScreen=function(c,l,_){var d=this.session.screenToDocumentPosition(c,l);this.moveCursorTo(d.row,d.column,_)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(c){var l=this.getRange();return c?(c.start.column=l.start.column,c.start.row=l.start.row,c.end.column=l.end.column,c.end.row=l.end.row):c=l,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},this.getRangeOfMovements=function(c){var l=this.getCursor();try{c(this);var _=this.getCursor();return a.fromPoints(l,_)}catch{return a.fromPoints(l,l)}finally{this.moveCursorToPosition(l)}},this.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(l){var _=l.clone();return _.isBackwards=l.cursor==l.start,_});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},this.fromJSON=function(c){if(c.start==null)if(this.rangeList){this.toSingleRange(c[0]);for(var l=c.length;l--;){var _=a.fromPoints(c[l].start,c[l].end);c[l].isBackwards&&(_.cursor=_.start),this.addRange(_,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},this.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var l=this.ranges.length;l--;)if(!this.ranges[l].isEqual(c[l]))return!1;return!0}}).call(s.prototype),t.Selection=s});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){var i=e("./config"),o=2e3,r=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var s in this.states){for(var c=this.states[s],l=[],_=0,d=this.matchMappings[s]={defaultToken:"text"},u="g",m=[],f=0;f1?p.onMatch=this.$applyToken:p.onMatch=p.token),b>1&&(/\\\d/.test(p.regex)?h=p.regex.replace(/\\([0-9]+)/g,function(g,v){return"\\"+(parseInt(v,10)+_+1)}):(b=1,h=this.removeCapturingGroups(p.regex)),!p.splitRegex&&typeof p.token!="string"&&m.push(p)),d[_]=f,_+=b,l.push(h),p.onMatch||(p.onMatch=null)}}l.length||(d[0]=0,l.push("$")),m.forEach(function(g){g.splitRegex=this.createSplitterRegexp(g.regex,u)},this),this.regExps[s]=new RegExp("("+l.join(")|(")+")|($)",u)}};(function(){this.$setMaxTokenCount=function(a){o=a|0},this.$applyToken=function(a){var s=this.splitRegex.exec(a).slice(1),c=this.token.apply(this,s);if(typeof c=="string")return[{type:c,value:a}];for(var l=[],_=0,d=c.length;_p){var N=a.substring(p,S-E.length);b.type==g?b.value+=N:(b.type&&f.push(b),b={type:g,value:N})}for(var C=0;Co){for(h>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:s,line:a});p1&&c[0]!==l&&c.unshift("#tmp",l),{tokens:f,state:c.length?c:l}},this.reportError=i.reportError}).call(r.prototype),t.Tokenizer=r});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){var i=e("../lib/lang"),o=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(s,c){if(!c){for(var l in s)this.$rules[l]=s[l];return}for(var l in s){for(var _=s[l],d=0;d<_.length;d++){var u=_[d];(u.next||u.onMatch)&&(typeof u.next=="string"&&u.next.indexOf(c)!==0&&(u.next=c+u.next),u.nextState&&u.nextState.indexOf(c)!==0&&(u.nextState=c+u.nextState))}this.$rules[c+l]=_}},this.getRules=function(){return this.$rules},this.embedRules=function(s,c,l,_,d){var u=typeof s=="function"?new s().getRules():s;if(_)for(var m=0;m<_.length;m++)_[m]=c+_[m];else{_=[];for(var f in u)_.push(c+f)}if(this.addRules(u,c),l)for(var p=Array.prototype[d?"push":"unshift"],m=0;m<_.length;m++)p.apply(this.$rules[_[m]],i.deepCopy(l));this.$embeds||(this.$embeds=[]),this.$embeds.push(c)},this.getEmbeds=function(){return this.$embeds};var r=function(s,c){return(s!="start"||c.length)&&c.unshift(this.nextState,s),this.nextState},a=function(s,c){return c.shift(),c.shift()||"start"};this.normalizeRules=function(){var s=0,c=this.$rules;function l(_){var d=c[_];d.processed=!0;for(var u=0;u=this.$rowTokens.length;){if(this.$row+=1,r||(r=this.$session.getLength()),this.$row>=r)return this.$row=r-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var r=this.$rowTokens,a=this.$tokenIndex,s=r[a].start;if(s!==void 0)return s;for(s=0;a>0;)a-=1,s+=r[a].value.length;return s},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var r=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new i(this.$row,a,this.$row,a+r.value.length)}}).call(o.prototype),t.TokenIterator=o});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var i=e("../../lib/oop"),o=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),s=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],l,_={},d={'"':'"',"'":"'"},u=function(p){var h=-1;if(p.multiSelect&&(h=p.selection.index,_.rangeCount!=p.multiSelect.rangeCount&&(_={rangeCount:p.multiSelect.rangeCount})),_[h])return l=_[h];l=_[h]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},m=function(p,h,b,g){var v=p.end.row-p.start.row;return{text:b+h+g,selection:[0,p.start.column+1,v,p.end.column+(v?0:1)]}},f=function(p){this.add("braces","insertion",function(h,b,g,v,E){var S=g.getCursorPosition(),N=v.doc.getLine(S.row);if(E=="{"){u(g);var C=g.getSelectionRange(),y=v.doc.getTextRange(C);if(y!==""&&y!=="{"&&g.getWrapBehavioursEnabled())return m(C,y,"{","}");if(f.isSaneInsertion(g,v))return/[\]\}\)]/.test(N[S.column])||g.inMultiSelectMode||p&&p.braces?(f.recordAutoInsert(g,v,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(g,v,"{"),{text:"{",selection:[1,1]})}else if(E=="}"){u(g);var A=N.substring(S.column,S.column+1);if(A=="}"){var R=v.$findOpeningBracket("}",{column:S.column+1,row:S.row});if(R!==null&&f.isAutoInsertedClosing(S,N,E))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(E==`
-`||E==`\r
-`){u(g);var D="";f.isMaybeInsertedClosing(S,N)&&(D=a.stringRepeat("}",l.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var A=N.substring(S.column,S.column+1);if(A==="}"){var M=v.findMatchingBracket({row:S.row,column:S.column+1},"}");if(!M)return null;var L=this.$getIndent(v.getLine(M.row))}else if(D)var L=this.$getIndent(N);else{f.clearMaybeInsertedClosing();return}var F=L+v.getTabString();return{text:`
-`+F+`
-`+L+D,selection:[1,F.length,1,F.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(h,b,g,v,E){var S=v.doc.getTextRange(E);if(!E.isMultiLine()&&S=="{"){u(g);var N=v.doc.getLine(E.start.row),C=N.substring(E.end.column,E.end.column+1);if(C=="}")return E.end.column++,E;l.maybeInsertedBrackets--}}),this.add("parens","insertion",function(h,b,g,v,E){if(E=="("){u(g);var S=g.getSelectionRange(),N=v.doc.getTextRange(S);if(N!==""&&g.getWrapBehavioursEnabled())return m(S,N,"(",")");if(f.isSaneInsertion(g,v))return f.recordAutoInsert(g,v,")"),{text:"()",selection:[1,1]}}else if(E==")"){u(g);var C=g.getCursorPosition(),y=v.doc.getLine(C.row),A=y.substring(C.column,C.column+1);if(A==")"){var R=v.$findOpeningBracket(")",{column:C.column+1,row:C.row});if(R!==null&&f.isAutoInsertedClosing(C,y,E))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(h,b,g,v,E){var S=v.doc.getTextRange(E);if(!E.isMultiLine()&&S=="("){u(g);var N=v.doc.getLine(E.start.row),C=N.substring(E.start.column+1,E.start.column+2);if(C==")")return E.end.column++,E}}),this.add("brackets","insertion",function(h,b,g,v,E){if(E=="["){u(g);var S=g.getSelectionRange(),N=v.doc.getTextRange(S);if(N!==""&&g.getWrapBehavioursEnabled())return m(S,N,"[","]");if(f.isSaneInsertion(g,v))return f.recordAutoInsert(g,v,"]"),{text:"[]",selection:[1,1]}}else if(E=="]"){u(g);var C=g.getCursorPosition(),y=v.doc.getLine(C.row),A=y.substring(C.column,C.column+1);if(A=="]"){var R=v.$findOpeningBracket("]",{column:C.column+1,row:C.row});if(R!==null&&f.isAutoInsertedClosing(C,y,E))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(h,b,g,v,E){var S=v.doc.getTextRange(E);if(!E.isMultiLine()&&S=="["){u(g);var N=v.doc.getLine(E.start.row),C=N.substring(E.start.column+1,E.start.column+2);if(C=="]")return E.end.column++,E}}),this.add("string_dquotes","insertion",function(h,b,g,v,E){var S=v.$mode.$quotes||d;if(E.length==1&&S[E]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(E)!=-1)return;u(g);var N=E,C=g.getSelectionRange(),y=v.doc.getTextRange(C);if(y!==""&&(y.length!=1||!S[y])&&g.getWrapBehavioursEnabled())return m(C,y,N,N);if(!y){var A=g.getCursorPosition(),R=v.doc.getLine(A.row),D=R.substring(A.column-1,A.column),M=R.substring(A.column,A.column+1),L=v.getTokenAt(A.row,A.column),F=v.getTokenAt(A.row,A.column+1);if(D=="\\"&&L&&/escape/.test(L.type))return null;var q=L&&/string|escape/.test(L.type),$=!F||/string|escape/.test(F.type),Y;if(M==N)Y=q!==$,Y&&/string\.end/.test(F.type)&&(Y=!1);else{if(q&&!$||q&&$)return null;var X=v.$mode.tokenRe;X.lastIndex=0;var J=X.test(D);X.lastIndex=0;var B=X.test(D);if(J||B||M&&!/[\s;,.})\]\\]/.test(M))return null;Y=!0}return{text:Y?N+N:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(h,b,g,v,E){var S=v.doc.getTextRange(E);if(!E.isMultiLine()&&(S=='"'||S=="'")){u(g);var N=v.doc.getLine(E.start.row),C=N.substring(E.start.column+1,E.start.column+2);if(C==S)return E.end.column++,E}})};f.isSaneInsertion=function(p,h){var b=p.getCursorPosition(),g=new r(h,b.row,b.column);if(!this.$matchTokenType(g.getCurrentToken()||"text",s)){var v=new r(h,b.row,b.column+1);if(!this.$matchTokenType(v.getCurrentToken()||"text",s))return!1}return g.stepForward(),g.getCurrentTokenRow()!==b.row||this.$matchTokenType(g.getCurrentToken()||"text",c)},f.$matchTokenType=function(p,h){return h.indexOf(p.type||p)>-1},f.recordAutoInsert=function(p,h,b){var g=p.getCursorPosition(),v=h.doc.getLine(g.row);this.isAutoInsertedClosing(g,v,l.autoInsertedLineEnd[0])||(l.autoInsertedBrackets=0),l.autoInsertedRow=g.row,l.autoInsertedLineEnd=b+v.substr(g.column),l.autoInsertedBrackets++},f.recordMaybeInsert=function(p,h,b){var g=p.getCursorPosition(),v=h.doc.getLine(g.row);this.isMaybeInsertedClosing(g,v)||(l.maybeInsertedBrackets=0),l.maybeInsertedRow=g.row,l.maybeInsertedLineStart=v.substr(0,g.column)+b,l.maybeInsertedLineEnd=v.substr(g.column),l.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(p,h,b){return l.autoInsertedBrackets>0&&p.row===l.autoInsertedRow&&b===l.autoInsertedLineEnd[0]&&h.substr(p.column)===l.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(p,h){return l.maybeInsertedBrackets>0&&p.row===l.maybeInsertedRow&&h.substr(p.column)===l.maybeInsertedLineEnd&&h.substr(0,p.column)==l.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){l.autoInsertedLineEnd=l.autoInsertedLineEnd.substr(1),l.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){l&&(l.maybeInsertedBrackets=0,l.maybeInsertedRow=-1)},i.inherits(f,o),t.CstyleBehaviour=f});ace.define("ace/unicode",["require","exports","module"],function(e,t,n){t.packages={},i({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function i(o){var r=/\w{4}/g;for(var a in o)t.packages[a]=o[a].replace(r,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){var i=e("../tokenizer").Tokenizer,o=e("./text_highlight_rules").TextHighlightRules,r=e("./behaviour/cstyle").CstyleBehaviour,a=e("../unicode"),s=e("../lib/lang"),c=e("../token_iterator").TokenIterator,l=e("../range").Range,_=function(){this.HighlightRules=o};(function(){this.$defaultBehaviour=new r,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new i(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(d,u,m,f){var p=u.doc,h=!0,b=!0,g=1/0,v=u.getTabSize(),E=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var C=this.lineCommentStart.map(s.escapeRegExp).join("|"),S=this.lineCommentStart[0];else var C=s.escapeRegExp(this.lineCommentStart),S=this.lineCommentStart;C=new RegExp("^(\\s*)(?:"+C+") ?"),E=u.getUseSoftTabs();var R=function(J,B){var w=J.match(C);if(!!w){var I=w[1].length,U=w[0].length;!L(J,I,U)&&w[0][U-1]==" "&&U--,p.removeInLine(B,I,U)}},M=S+" ",A=function(J,B){(!h||/\S/.test(J))&&(L(J,g,g)?p.insertInLine({row:B,column:g},M):p.insertInLine({row:B,column:g},S))},D=function(J,B){return C.test(J)},L=function(J,B,w){for(var I=0;B--&&J.charAt(B)==" ";)I++;if(I%v!=0)return!1;for(var I=0;J.charAt(w++)==" ";)I++;return v>2?I%v!=v-1:I%v==0}}else{if(!this.blockComment)return!1;var S=this.blockComment.start,N=this.blockComment.end,C=new RegExp("^(\\s*)(?:"+s.escapeRegExp(S)+")"),y=new RegExp("(?:"+s.escapeRegExp(N)+")\\s*$"),A=function($,Y){D($,Y)||(!h||/\S/.test($))&&(p.insertInLine({row:Y,column:$.length},N),p.insertInLine({row:Y,column:g},S))},R=function($,Y){var X;(X=$.match(y))&&p.removeInLine(Y,$.length-X[0].length,$.length),(X=$.match(C))&&p.removeInLine(Y,X[1].length,X[0].length)},D=function($,Y){if(C.test($))return!0;for(var X=u.getTokens(Y),J=0;J$.length&&(q=$.length)}),g==1/0&&(g=q,h=!1,b=!1),E&&g%v!=0&&(g=Math.floor(g/v)*v),F(b?R:A)},this.toggleBlockComment=function(d,u,m,f){var p=this.blockComment;if(!!p){!p.start&&p[0]&&(p=p[0]);var h=new c(u,f.row,f.column),b=h.getCurrentToken();u.selection;var g=u.selection.toOrientedRange(),v,E;if(b&&/comment/.test(b.type)){for(var S,N;b&&/comment/.test(b.type);){var C=b.value.indexOf(p.start);if(C!=-1){var y=h.getCurrentTokenRow(),A=h.getCurrentTokenColumn()+C;S=new l(y,A,y,A+p.start.length);break}b=h.stepBackward()}for(var h=new c(u,f.row,f.column),b=h.getCurrentToken();b&&/comment/.test(b.type);){var C=b.value.indexOf(p.end);if(C!=-1){var y=h.getCurrentTokenRow(),A=h.getCurrentTokenColumn()+C;N=new l(y,A,y,A+p.end.length);break}b=h.stepForward()}N&&u.remove(N),S&&(u.remove(S),v=S.start.row,E=-p.start.length)}else E=p.start.length,v=m.start.row,u.insert(m.end,p.end),u.insert(m.start,p.start);g.start.row==v&&(g.start.column+=E),g.end.row==v&&(g.end.column+=E),u.selection.fromOrientedRange(g)}},this.getNextLineIndent=function(d,u,m){return this.$getIndent(u)},this.checkOutdent=function(d,u,m){return!1},this.autoOutdent=function(d,u,m){},this.$getIndent=function(d){return d.match(/^\s*/)[0]},this.createWorker=function(d){return null},this.createModeDelegates=function(d){this.$embeds=[],this.$modes={};for(var u in d)d[u]&&(this.$embeds.push(u),this.$modes[u]=new d[u]);for(var m=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],u=0;uthis.row)){var l=s(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(l.row,l.column,!0)}};function a(c,l,_){var d=_?c.column<=l.column:c.column=this.document.getLength()?(_.row=Math.max(0,this.document.getLength()-1),_.column=this.document.getLine(_.row).length):c<0?(_.row=0,_.column=0):(_.row=c,_.column=Math.min(this.document.getLine(_.row).length,Math.max(0,l))),l<0&&(_.column=0),_}}).call(r.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){var i=e("./lib/oop"),o=e("./apply_delta").applyDelta,r=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,c=function(l){this.$lines=[""],l.length===0?this.$lines=[""]:Array.isArray(l)?this.insertMergedLines({row:0,column:0},l):this.insert({row:0,column:0},l)};(function(){i.implement(this,r),this.setValue=function(l){var _=this.getLength()-1;this.remove(new a(0,0,_,this.getLine(_).length)),this.insert({row:0,column:0},l)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(l,_){return new s(this,l,_)},"aaa".split(/a/).length===0?this.$split=function(l){return l.replace(/\r\n|\r/g,`
-`).split(`
-`)}:this.$split=function(l){return l.split(/\r\n|\r|\n/)},this.$detectNewLine=function(l){var _=l.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=_?_[1]:`
-`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r
-`;case"unix":return`
-`;default:return this.$autoNewLine||`
-`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(l){this.$newLineMode!==l&&(this.$newLineMode=l,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(l){return l==`\r
-`||l=="\r"||l==`
-`},this.getLine=function(l){return this.$lines[l]||""},this.getLines=function(l,_){return this.$lines.slice(l,_+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(l){return this.getLinesForRange(l).join(this.getNewLineCharacter())},this.getLinesForRange=function(l){var _;if(l.start.row===l.end.row)_=[this.getLine(l.start.row).substring(l.start.column,l.end.column)];else{_=this.getLines(l.start.row,l.end.row),_[0]=(_[0]||"").substring(l.start.column);var d=_.length-1;l.end.row-l.start.row==d&&(_[d]=_[d].substring(0,l.end.column))}return _},this.insertLines=function(l,_){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(l,_)},this.removeLines=function(l,_){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(l,_)},this.insertNewLine=function(l){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(l,["",""])},this.insert=function(l,_){return this.getLength()<=1&&this.$detectNewLine(_),this.insertMergedLines(l,this.$split(_))},this.insertInLine=function(l,_){var d=this.clippedPos(l.row,l.column),u=this.pos(l.row,l.column+_.length);return this.applyDelta({start:d,end:u,action:"insert",lines:[_]},!0),this.clonePos(u)},this.clippedPos=function(l,_){var d=this.getLength();l===void 0?l=d:l<0?l=0:l>=d&&(l=d-1,_=void 0);var u=this.getLine(l);return _==null&&(_=u.length),_=Math.min(Math.max(_,0),u.length),{row:l,column:_}},this.clonePos=function(l){return{row:l.row,column:l.column}},this.pos=function(l,_){return{row:l,column:_}},this.$clipPosition=function(l){var _=this.getLength();return l.row>=_?(l.row=Math.max(0,_-1),l.column=this.getLine(_-1).length):(l.row=Math.max(0,l.row),l.column=Math.min(Math.max(l.column,0),this.getLine(l.row).length)),l},this.insertFullLines=function(l,_){l=Math.min(Math.max(l,0),this.getLength());var d=0;l0,u=_=0&&this.applyDelta({start:this.pos(l,this.getLine(l).length),end:this.pos(l+1,0),action:"remove",lines:["",""]})},this.replace=function(l,_){if(l instanceof a||(l=a.fromPoints(l.start,l.end)),_.length===0&&l.isEmpty())return l.start;if(_==this.getTextRange(l))return l.end;this.remove(l);var d;return _?d=this.insert(l.start,_):d=l.start,d},this.applyDeltas=function(l){for(var _=0;_=0;_--)this.revertDelta(l[_])},this.applyDelta=function(l,_){var d=l.action=="insert";(d?l.lines.length<=1&&!l.lines[0]:!a.comparePoints(l.start,l.end))||(d&&l.lines.length>2e4&&this.$splitAndapplyLargeDelta(l,2e4),o(this.$lines,l,_),this._signal("change",l))},this.$splitAndapplyLargeDelta=function(l,_){var d=l.lines,u=d.length,m=l.start.row,f=l.start.column,p=0,h=0;do{p=h,h+=_-1;var b=d.slice(p,h);if(h>u){l.lines=b,l.start.row=m+p,l.start.column=f;break}b.push(""),this.applyDelta({start:this.pos(m+p,f),end:this.pos(m+h,f=0),action:l.action,lines:b},!0)}while(!0)},this.revertDelta=function(l){this.applyDelta({start:this.clonePos(l.start),end:this.clonePos(l.end),action:l.action=="insert"?"remove":"insert",lines:l.lines.slice()})},this.indexToPosition=function(l,_){for(var d=this.$lines||this.getAllLines(),u=this.getNewLineCharacter().length,m=_||0,f=d.length;m20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=_,d==-1&&(d=_),m<=d&&c.fireUpdateEvent(m,d)}}};(function(){i.implement(this,o),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,s){var c={first:a,last:s};this._signal("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(a){var s=a.start.row,c=a.end.row-s;if(c===0)this.lines[s]=null;else if(a.action=="remove")this.lines.splice(s,c+1,null),this.states.splice(s,c+1,null);else{var l=Array(c+1);l.unshift(s,1),this.lines.splice.apply(this.lines,l),this.states.splice.apply(this.states,l)}this.currentLine=Math.min(s,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var s=this.doc.getLine(a),c=this.states[a-1],l=this.tokenizer.getLineTokens(s,c,a);return this.states[a]+""!=l.state+""?(this.states[a]=l.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=l.tokens}}).call(r.prototype),t.BackgroundTokenizer=r});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){var i=e("./lib/lang");e("./lib/oop");var o=e("./range").Range,r=function(a,s,c){this.setRegexp(a),this.clazz=s,this.type=c||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,s,c,l){if(!!this.regExp)for(var _=l.firstRow,d=l.lastRow,u=_;u<=d;u++){var m=this.cache[u];m==null&&(m=i.getMatchOffsets(c.getLine(u),this.regExp),m.length>this.MAX_RANGES&&(m=m.slice(0,this.MAX_RANGES)),m=m.map(function(p){return new o(u,p.offset,u,p.offset+p.length)}),this.cache[u]=m.length?m:"");for(var f=m.length;f--;)s.drawSingleLineMarker(a,m[f].toScreenRange(c),this.clazz,l)}}}).call(r.prototype),t.SearchHighlight=r});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){var i=e("../range").Range;function o(r,a){this.foldData=r,Array.isArray(a)?this.folds=a:a=this.folds=[a];var s=a[a.length-1];this.range=new i(a[0].start.row,a[0].start.column,s.end.row,s.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(c){c.setFoldLine(this)},this)}(function(){this.shiftRow=function(r){this.start.row+=r,this.end.row+=r,this.folds.forEach(function(a){a.start.row+=r,a.end.row+=r})},this.addFold=function(r){if(r.sameRow){if(r.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(r),this.folds.sort(function(a,s){return-a.range.compareEnd(s.start.row,s.start.column)}),this.range.compareEnd(r.start.row,r.start.column)>0?(this.end.row=r.end.row,this.end.column=r.end.column):this.range.compareStart(r.end.row,r.end.column)<0&&(this.start.row=r.start.row,this.start.column=r.start.column)}else if(r.start.row==this.end.row)this.folds.push(r),this.end.row=r.end.row,this.end.column=r.end.column;else if(r.end.row==this.start.row)this.folds.unshift(r),this.start.row=r.start.row,this.start.column=r.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");r.foldLine=this},this.containsRow=function(r){return r>=this.start.row&&r<=this.end.row},this.walk=function(r,a,s){var c=0,l=this.folds,_,d,u,m=!0;a==null&&(a=this.end.row,s=this.end.column);for(var f=0;f0)){var m=o(a,d.start);return u===0?s&&m!==0?-_-2:_:m>0||m===0&&!s?_:-_-1}}return-_-1},this.add=function(a){var s=!a.isEmpty(),c=this.pointIndex(a.start,s);c<0&&(c=-c-1);var l=this.pointIndex(a.end,s,c);return l<0?l=-l-1:l++,this.ranges.splice(c,l-c,a)},this.addList=function(a){for(var s=[],c=a.length;c--;)s.push.apply(s,this.add(a[c]));return s},this.substractPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges.splice(s,1)},this.merge=function(){var a=[],s=this.ranges;s=s.sort(function(u,m){return o(u.start,m.start)});for(var c=s[0],l,_=1;_=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var s=this.pointIndex(a);if(s>=0)return this.ranges[s]},this.clipRows=function(a,s){var c=this.ranges;if(c[0].start.row>s||c[c.length-1].start.rowl)break;if(h.start.row==l&&h.start.column>=s.column&&(h.start.column==s.column&&this.$insertRight||(h.start.column+=u,h.start.row+=d)),h.end.row==l&&h.end.column>=s.column){if(h.end.column==s.column&&this.$insertRight)continue;h.end.column==s.column&&u>0&&fh.start.column&&h.end.column==m[f+1].start.column&&(h.end.column-=u),h.end.column+=u,h.end.row+=d}}}if(d!=0&&f=c)return u;if(u.end.row>c)return null}return null},this.getNextFoldLine=function(c,l){var _=this.$foldData,d=0;for(l&&(d=_.indexOf(l)),d==-1&&(d=0),d;d<_.length;d++){var u=_[d];if(u.end.row>=c)return u}return null},this.getFoldedRowCount=function(c,l){for(var _=this.$foldData,d=l-c+1,u=0;u<_.length;u++){var m=_[u],f=m.end.row,p=m.start.row;if(f>=l){p=c?d-=l-p:d=0);break}else f>=c&&(p>=c?d-=f-p:d-=f-c+1)}return d},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(l,_){return l.start.row-_.start.row}),c},this.addFold=function(c,l){var _=this.$foldData,d=!1,u;c instanceof r?u=c:(u=new r(l,c),u.collapseChildren=l.collapseChildren),this.$clipRangeToDocument(u.range);var m=u.start.row,f=u.start.column,p=u.end.row,h=u.end.column;if(!(m0&&(this.removeFolds(v),v.forEach(function(C){u.addSubFold(C)}));for(var E=0;E<_.length;E++){var S=_[E];if(p==S.start.row){S.addFold(u),d=!0;break}else if(m==S.end.row){if(S.addFold(u),d=!0,!u.sameRow){var N=_[E+1];if(N&&N.start.row==p){S.merge(N);break}}break}else if(p<=S.start.row)break}return d||(S=this.$addFoldLine(new o(this.$foldData,u))),this.$useWrapMode?this.$updateWrapData(S.start.row,S.start.row):this.$updateRowLengthCache(S.start.row,S.start.row),this.$modified=!0,this._signal("changeFold",{data:u,action:"add"}),u},this.addFolds=function(c){c.forEach(function(l){this.addFold(l)},this)},this.removeFold=function(c){var l=c.foldLine,_=l.start.row,d=l.end.row,u=this.$foldData,m=l.folds;if(m.length==1)u.splice(u.indexOf(l),1);else if(l.range.isEnd(c.end.row,c.end.column))m.pop(),l.end.row=m[m.length-1].end.row,l.end.column=m[m.length-1].end.column;else if(l.range.isStart(c.start.row,c.start.column))m.shift(),l.start.row=m[0].start.row,l.start.column=m[0].start.column;else if(c.sameRow)m.splice(m.indexOf(c),1);else{var f=l.split(c.start.row,c.start.column);m=f.folds,m.shift(),f.start.row=m[0].start.row,f.start.column=m[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(_,d):this.$updateRowLengthCache(_,d)),this.$modified=!0,this._signal("changeFold",{data:c,action:"remove"})},this.removeFolds=function(c){for(var l=[],_=0;_0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(l){this.expandFold(l)},this)},this.unfold=function(c,l){var _,d;if(c==null?(_=new i(0,0,this.getLength(),0),l=!0):typeof c=="number"?_=new i(c,0,c,this.getLine(c).length):"row"in c?_=i.fromPoints(c,c):_=c,d=this.getFoldsInRangeList(_),l)this.removeFolds(d);else for(var u=d;u.length;)this.expandFolds(u),u=this.getFoldsInRangeList(_);if(d.length)return d},this.isRowFolded=function(c,l){return!!this.getFoldLine(c,l)},this.getRowFoldEnd=function(c,l){var _=this.getFoldLine(c,l);return _?_.end.row:c},this.getRowFoldStart=function(c,l){var _=this.getFoldLine(c,l);return _?_.start.row:c},this.getFoldDisplayLine=function(c,l,_,d,u){d==null&&(d=c.start.row),u==null&&(u=0),l==null&&(l=c.end.row),_==null&&(_=this.getLine(l).length);var m=this.doc,f="";return c.walk(function(p,h,b,g){if(!(hh)break;while(u&&f.test(u.type));u=d.stepBackward()}else u=d.getCurrentToken();return p.end.row=d.getCurrentTokenRow(),p.end.column=d.getCurrentTokenColumn()+u.value.length-2,p}},this.foldAll=function(c,l,_){_==null&&(_=1e5);var d=this.foldWidgets;if(!!d){l=l||this.getLength(),c=c||0;for(var u=c;u=c){u=m.end.row;try{var f=this.addFold("...",m);f&&(f.collapseChildren=_)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(c){if(!this.$foldStyles[c])throw new Error("invalid fold style: "+c+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=c){this.$foldStyle=c,c=="manual"&&this.unfold();var l=this.$foldMode;this.$setFolding(null),this.$setFolding(l)}},this.$setFolding=function(c){if(this.$foldMode!=c){if(this.$foldMode=c,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!c||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=c.getFoldWidget.bind(c,this,this.$foldStyle),this.getFoldWidgetRange=c.getFoldWidgetRange.bind(c,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(c,l){var _=this.foldWidgets;if(!_||l&&_[c])return{};for(var d=c-1,u;d>=0;){var m=_[d];if(m==null&&(m=_[d]=this.getFoldWidget(d)),m=="start"){var f=this.getFoldWidgetRange(d);if(u||(u=f),f&&f.end.row>=c)break}d--}return{range:d!==-1&&f,firstRange:u}},this.onFoldWidgetClick=function(c,l){l=l.domEvent;var _={children:l.shiftKey,all:l.ctrlKey||l.metaKey,siblings:l.altKey},d=this.$toggleFoldWidget(c,_);if(!d){var u=l.target||l.srcElement;u&&/ace_fold-widget/.test(u.className)&&(u.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,l){if(!!this.getFoldWidget){var _=this.getFoldWidget(c),d=this.getLine(c),u=_==="end"?-1:1,m=this.getFoldAt(c,u===-1?0:d.length,u);if(m)return l.children||l.all?this.removeFold(m):this.expandFold(m),m;var f=this.getFoldWidgetRange(c,!0);if(f&&!f.isMultiLine()&&(m=this.getFoldAt(f.start.row,f.start.column,1),m&&f.isEqual(m.range)))return this.removeFold(m),m;if(l.siblings){var p=this.getParentFoldRangeData(c);if(p.range)var h=p.range.start.row+1,b=p.range.end.row;this.foldAll(h,b,l.all?1e4:0)}else l.children?(b=f?f.end.row:this.getLength(),this.foldAll(c+1,b,l.all?1e4:0)):f&&(l.all&&(f.collapseChildren=1e4),this.addFold("...",f));return f}},this.toggleFoldWidget=function(c){var l=this.selection.getCursor().row;l=this.getRowFoldStart(l);var _=this.$toggleFoldWidget(l,{});if(!_){var d=this.getParentFoldRangeData(l,!0);if(_=d.range||d.firstRange,_){l=_.start.row;var u=this.getFoldAt(l,this.getLine(l).length,1);u?this.removeFold(u):this.addFold("...",_)}}},this.updateFoldWidgets=function(c){var l=c.start.row,_=c.end.row-l;if(_===0)this.foldWidgets[l]=null;else if(c.action=="remove")this.foldWidgets.splice(l,_+1,null);else{var d=Array(_+1);d.unshift(l,1),this.foldWidgets.splice.apply(this.foldWidgets,d)}},this.tokenizerUpdateFoldWidgets=function(c){var l=c.data;l.first!=l.last&&this.foldWidgets.length>l.first&&this.foldWidgets.splice(l.first,this.foldWidgets.length)}}t.Folding=s});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){var i=e("../token_iterator").TokenIterator,o=e("../range").Range;function r(){this.findMatchingBracket=function(a,s){if(a.column==0)return null;var c=s||this.getLine(a.row).charAt(a.column-1);if(c=="")return null;var l=c.match(/([\(\[\{])|([\)\]\}])/);return l?l[1]?this.$findClosingBracket(l[1],a):this.$findOpeningBracket(l[2],a):null},this.getBracketRange=function(a){var s=this.getLine(a.row),c=!0,l,_=s.charAt(a.column-1),d=_&&_.match(/([\(\[\{])|([\)\]\}])/);if(d||(_=s.charAt(a.column),a={row:a.row,column:a.column+1},d=_&&_.match(/([\(\[\{])|([\)\]\}])/),c=!1),!d)return null;if(d[1]){var u=this.$findClosingBracket(d[1],a);if(!u)return null;l=o.fromPoints(a,u),c||(l.end.column++,l.start.column--),l.cursor=l.end}else{var u=this.$findOpeningBracket(d[2],a);if(!u)return null;l=o.fromPoints(u,a),c||(l.start.column++,l.end.column--),l.cursor=l.start}return l},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,s,c){var l=this.$brackets[a],_=1,d=new i(this,s.row,s.column),u=d.getCurrentToken();if(u||(u=d.stepForward()),!!u){c||(c=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var m=s.column-d.getCurrentTokenColumn()-2,f=u.value;;){for(;m>=0;){var p=f.charAt(m);if(p==l){if(_-=1,_==0)return{row:d.getCurrentTokenRow(),column:m+d.getCurrentTokenColumn()}}else p==a&&(_+=1);m-=1}do u=d.stepBackward();while(u&&!c.test(u.type));if(u==null)break;f=u.value,m=f.length-1}return null}},this.$findClosingBracket=function(a,s,c){var l=this.$brackets[a],_=1,d=new i(this,s.row,s.column),u=d.getCurrentToken();if(u||(u=d.stepForward()),!!u){c||(c=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var m=s.column-d.getCurrentTokenColumn();;){for(var f=u.value,p=f.length;mR&&(this.$docRowCache.splice(R,A),this.$screenRowCache.splice(R,A))},this.$getRowCacheIndex=function(y,A){for(var R=0,D=y.length-1;R<=D;){var M=R+D>>1,L=y[M];if(A>L)R=M+1;else if(A=A));L++);return D=R[L],D?(D.index=L,D.start=M-D.value.length,D):null},this.setUndoManager=function(y){if(this.$undoManager=y,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),y){var A=this;this.$syncInformUndoManager=function(){A.$informUndoManager.cancel(),A.$deltasFold.length&&(A.$deltas.push({group:"fold",deltas:A.$deltasFold}),A.$deltasFold=[]),A.$deltasDoc.length&&(A.$deltas.push({group:"doc",deltas:A.$deltasDoc}),A.$deltasDoc=[]),A.$deltas.length>0&&y.execute({action:"aceupdate",args:[A.$deltas,A],merge:A.mergeUndoDeltas}),A.mergeUndoDeltas=!1,A.$deltas=[]},this.$informUndoManager=o.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?o.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(y){this.setOption("useSoftTabs",y)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(y){this.setOption("tabSize",y)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(y){return this.$useSoftTabs&&y.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(y){this.setOption("navigateWithinSoftTabs",y)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(y){this.setOption("overwrite",y)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(y,A){this.$decorations[y]||(this.$decorations[y]=""),this.$decorations[y]+=" "+A,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(y,A){this.$decorations[y]=(this.$decorations[y]||"").replace(" "+A,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(y){this.$breakpoints=[];for(var A=0;A0&&(D=!!R.charAt(A-1).match(this.tokenRe)),D||(D=!!R.charAt(A).match(this.tokenRe)),D)var M=this.tokenRe;else if(/^\s+$/.test(R.slice(A-1,A+1)))var M=/\s/;else var M=this.nonTokenRe;var L=A;if(L>0){do L--;while(L>=0&&R.charAt(L).match(M));L++}for(var F=A;Fy&&(y=A.screenWidth)}),this.lineWidgetWidth=y},this.$computeWidth=function(y){if(this.$modified||y){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var A=this.doc.getAllLines(),R=this.$rowLengthCache,D=0,M=0,L=this.$foldData[M],F=L?L.start.row:1/0,q=A.length,$=0;$F){if($=L.end.row+1,$>=q)break;L=this.$foldData[M++],F=L?L.start.row:1/0}R[$]==null&&(R[$]=this.$getStringScreenWidth(A[$])[0]),R[$]>D&&(D=R[$])}this.screenWidth=D}},this.getLine=function(y){return this.doc.getLine(y)},this.getLines=function(y,A){return this.doc.getLines(y,A)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(y){return this.doc.getTextRange(y||this.selection.getRange())},this.insert=function(y,A){return this.doc.insert(y,A)},this.remove=function(y){return this.doc.remove(y)},this.removeFullLines=function(y,A){return this.doc.removeFullLines(y,A)},this.undoChanges=function(y,A){if(!!y.length){this.$fromUndo=!0;for(var R=null,D=y.length-1;D!=-1;D--){var M=y[D];M.group=="doc"?(this.doc.revertDeltas(M.deltas),R=this.$getUndoSelection(M.deltas,!0,R)):M.deltas.forEach(function(L){this.addFolds(L.folds)},this)}return this.$fromUndo=!1,R&&this.$undoSelect&&!A&&this.selection.setSelectionRange(R),R}},this.redoChanges=function(y,A){if(!!y.length){this.$fromUndo=!0;for(var R=null,D=0;Dy.end.column&&(L.start.column+=q),L.end.row==y.end.row&&L.end.column>y.end.column&&(L.end.column+=q)),F&&L.start.row>=y.end.row&&(L.start.row+=F,L.end.row+=F)}if(L.end=this.insert(L.start,D),M.length){var $=y.start,Y=L.start,F=Y.row-$.row,q=Y.column-$.column;this.addFolds(M.map(function(B){return B=B.clone(),B.start.row==$.row&&(B.start.column+=q),B.end.row==$.row&&(B.end.column+=q),B.start.row+=F,B.end.row+=F,B}))}return L},this.indentRows=function(y,A,R){R=R.replace(/\t/g,this.getTabString());for(var D=y;D<=A;D++)this.doc.insertInLine({row:D,column:0},R)},this.outdentRows=function(y){for(var A=y.collapseRows(),R=new _(0,0,0,0),D=this.getTabSize(),M=A.start.row;M<=A.end.row;++M){var L=this.getLine(M);R.start.row=M,R.end.row=M;for(var F=0;F0){var D=this.getRowFoldEnd(A+R);if(D>this.doc.getLength()-1)return 0;var M=D-A}else{y=this.$clipRowToDocument(y),A=this.$clipRowToDocument(A);var M=A-y+1}var L=new _(y,0,A,Number.MAX_VALUE),F=this.getFoldsInRange(L).map(function($){return $=$.clone(),$.start.row+=M,$.end.row+=M,$}),q=R==0?this.doc.getLines(y,A):this.doc.removeFullLines(y,A);return this.doc.insertFullLines(y+M,q),F.length&&this.addFolds(F),M},this.moveLinesUp=function(y,A){return this.$moveLines(y,A,-1)},this.moveLinesDown=function(y,A){return this.$moveLines(y,A,1)},this.duplicateLines=function(y,A){return this.$moveLines(y,A,0)},this.$clipRowToDocument=function(y){return Math.max(0,Math.min(y,this.doc.getLength()-1))},this.$clipColumnToRow=function(y,A){return A<0?0:Math.min(this.doc.getLine(y).length,A)},this.$clipPositionToDocument=function(y,A){if(A=Math.max(0,A),y<0)y=0,A=0;else{var R=this.doc.getLength();y>=R?(y=R-1,A=this.doc.getLine(R-1).length):A=Math.min(this.doc.getLine(y).length,A)}return{row:y,column:A}},this.$clipRangeToDocument=function(y){y.start.row<0?(y.start.row=0,y.start.column=0):y.start.column=this.$clipColumnToRow(y.start.row,y.start.column);var A=this.doc.getLength()-1;return y.end.row>A?(y.end.row=A,y.end.column=this.doc.getLine(A).length):y.end.column=this.$clipColumnToRow(y.end.row,y.end.column),y},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(y){if(y!=this.$useWrapMode){if(this.$useWrapMode=y,this.$modified=!0,this.$resetRowCache(0),y){var A=this.getLength();this.$wrapData=Array(A),this.$updateWrapData(0,A-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(y,A){(this.$wrapLimitRange.min!==y||this.$wrapLimitRange.max!==A)&&(this.$wrapLimitRange={min:y,max:A},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(y,A){var R=this.$wrapLimitRange;R.max<0&&(R={min:A,max:A});var D=this.$constrainWrapLimit(y,R.min,R.max);return D!=this.$wrapLimit&&D>1?(this.$wrapLimit=D,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(y,A,R){return A&&(y=Math.max(A,y)),R&&(y=Math.min(R,y)),y},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(y){this.setWrapLimitRange(y,y)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(y){var A=this.$useWrapMode,R=y.action,D=y.start,M=y.end,L=D.row,F=M.row,q=F-L,$=null;if(this.$updating=!0,q!=0)if(R==="remove"){this[A?"$wrapData":"$rowLengthCache"].splice(L,q);var Y=this.$foldData;$=this.getFoldsInRange(y),this.removeFolds($);var X=this.getFoldLine(M.row),J=0;if(X){X.addRemoveChars(M.row,M.column,D.column-M.column),X.shiftRow(-q);var B=this.getFoldLine(L);B&&B!==X&&(B.merge(X),X=B),J=Y.indexOf(X)+1}for(J;J=M.row&&X.shiftRow(-q)}F=L}else{var w=Array(q);w.unshift(L,0);var I=A?this.$wrapData:this.$rowLengthCache;I.splice.apply(I,w);var Y=this.$foldData,X=this.getFoldLine(L),J=0;if(X){var U=X.range.compareInside(D.row,D.column);U==0?(X=X.split(D.row,D.column),X&&(X.shiftRow(q),X.addRemoveChars(F,0,M.column-D.column))):U==-1&&(X.addRemoveChars(L,0,M.column-D.column),X.shiftRow(q)),J=Y.indexOf(X)+1}for(J;J=L&&X.shiftRow(q)}}else{q=Math.abs(y.start.column-y.end.column),R==="remove"&&($=this.getFoldsInRange(y),this.removeFolds($),q=-q);var X=this.getFoldLine(L);X&&X.addRemoveChars(L,D.column,q)}return A&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,A?this.$updateWrapData(L,F):this.$updateRowLengthCache(L,F),$},this.$updateRowLengthCache=function(y,A,R){this.$rowLengthCache[y]=null,this.$rowLengthCache[A]=null},this.$updateWrapData=function(y,A){var R=this.doc.getAllLines(),D=this.getTabSize(),M=this.$wrapData,L=this.$wrapLimit,F,q,$=y;for(A=Math.min(A,R.length-1);$<=A;)q=this.getFoldLine($,q),q?(F=[],q.walk(function(Y,X,J,B){var w;if(Y!=null){w=this.$getDisplayTokens(Y,F.length),w[0]=b;for(var I=1;IA-B;){var w=L+A-B;if(y[w-1]>=E&&y[w]>=E){J(w);continue}if(y[w]==b||y[w]==g){for(w;w!=L-1&&y[w]!=b;w--);if(w>L){J(w);continue}for(w=L+A,w;w>2)),L-1);w>I&&y[w]I&&y[w]I&&y[w]==v;)w--}else for(;w>I&&y[w]I){J(++w);continue}w=L+A,y[w]==h&&w--,J(w-B)}return D},this.$getDisplayTokens=function(y,A){var R=[],D;A=A||0;for(var M=0;M39&&L<48||L>57&&L<64?R.push(v):L>=4352&&C(L)?R.push(p,h):R.push(p)}return R},this.$getStringScreenWidth=function(y,A,R){if(A==0)return[0,0];A==null&&(A=1/0),R=R||0;var D,M;for(M=0;M=4352&&C(D)?R+=2:R+=1,!(R>A));M++);return[R,M]},this.lineWidgets=null,this.getRowLength=function(y){if(this.lineWidgets)var A=this.lineWidgets[y]&&this.lineWidgets[y].rowCount||0;else A=0;return!this.$useWrapMode||!this.$wrapData[y]?1+A:this.$wrapData[y].length+1+A},this.getRowLineCount=function(y){return!this.$useWrapMode||!this.$wrapData[y]?1:this.$wrapData[y].length+1},this.getRowWrapIndent=function(y){if(this.$useWrapMode){var A=this.screenToDocumentPosition(y,Number.MAX_VALUE),R=this.$wrapData[A.row];return R.length&&R[0]