From a46b74f8cac31f4aed88f9b1d20b3b7ade2ec36e Mon Sep 17 00:00:00 2001 From: Mat Groves Date: Fri, 1 Nov 2013 13:51:25 +0000 Subject: [PATCH] Filter Tweaks Displacement Map Filter tweaked Demos created --- Gruntfile.js | 5 +- bin/pixi.dev.js | 812 +++++++++++------- bin/pixi.dev.js.map | 6 +- bin/pixi.js | 10 +- examples/example 13 - Graphics/index.html | 1 - .../example 15 - Filters/displacementMAP.jpg | Bin 0 -> 20161 bytes .../example 15 - Filters/displacement_BG.jpg | Bin 14477 -> 61854 bytes ...ement_fish1.jpg => displacement_fish1.png} | Bin ...ement_fish2.jpg => displacement_fish2.png} | Bin .../displacement_fish3.jpg | Bin 67276 -> 0 bytes .../displacement_fish3.png | Bin 0 -> 4410 bytes ...ement_fish4.jpg => displacement_fish4.png} | Bin .../example 15 - Filters/displacement_map.jpg | Bin 0 -> 86309 bytes examples/example 15 - Filters/indexAll.html | 161 ++++ examples/example 15 - Filters/indexBlur.html | 6 +- .../indexDisplacement.html | 161 ++++ .../indexDisplacement_2.html | 162 ++++ examples/example 15 - Filters/zeldaWaves.png | Bin 0 -> 38032 bytes examples/example 16 - Displacement/index.html | 59 +- pixi.sublime-workspace | 367 ++++++-- src/pixi/filters/AbstractFilter.js | 18 + src/pixi/filters/BlurFilter.js | 2 +- src/pixi/filters/BlurXFilter.js | 12 +- src/pixi/filters/BlurYFilter.js | 10 +- src/pixi/filters/ColorMatrixFilter.js | 4 + src/pixi/filters/DisplacementFilter.js | 61 +- src/pixi/filters/GreyFilter.js | 5 + src/pixi/filters/InvertFilter.js | 4 + src/pixi/filters/PixelateFilter.js | 52 ++ src/pixi/filters/SepiaFilter.js | 5 + src/pixi/filters/SmartBlurFilter.js | 5 + src/pixi/renderers/webgl/PixiShader.js | 44 +- src/pixi/renderers/webgl/PrimitiveShader.js | 57 ++ src/pixi/renderers/webgl/StripShader.js | 65 ++ src/pixi/renderers/webgl/WebGLBatch.js | 6 +- .../renderers/webgl/WebGLFilterManager.js | 107 ++- src/pixi/renderers/webgl/WebGLGraphics.js | 14 +- src/pixi/renderers/webgl/WebGLRenderGroup.js | 56 +- src/pixi/renderers/webgl/WebGLRenderer.js | 23 +- src/pixi/renderers/webgl/WebGLShaders.js | 265 ++---- 40 files changed, 1809 insertions(+), 756 deletions(-) create mode 100644 examples/example 15 - Filters/displacementMAP.jpg rename examples/example 15 - Filters/{displacement_fish1.jpg => displacement_fish1.png} (100%) rename examples/example 15 - Filters/{displacement_fish2.jpg => displacement_fish2.png} (100%) delete mode 100644 examples/example 15 - Filters/displacement_fish3.jpg create mode 100644 examples/example 15 - Filters/displacement_fish3.png rename examples/example 15 - Filters/{displacement_fish4.jpg => displacement_fish4.png} (100%) create mode 100644 examples/example 15 - Filters/displacement_map.jpg create mode 100644 examples/example 15 - Filters/indexAll.html create mode 100644 examples/example 15 - Filters/indexDisplacement.html create mode 100644 examples/example 15 - Filters/indexDisplacement_2.html create mode 100644 examples/example 15 - Filters/zeldaWaves.png create mode 100644 src/pixi/filters/AbstractFilter.js create mode 100644 src/pixi/filters/PixelateFilter.js create mode 100644 src/pixi/renderers/webgl/PrimitiveShader.js create mode 100644 src/pixi/renderers/webgl/StripShader.js diff --git a/Gruntfile.js b/Gruntfile.js index dc63b6d..4d2ffee 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -34,6 +34,8 @@ module.exports = function(grunt) { '<%= dirs.src %>/utils/Polyk.js', '<%= dirs.src %>/renderers/webgl/WebGLShaders.js', '<%= dirs.src %>/renderers/webgl/PixiShader.js', + '<%= dirs.src %>/renderers/webgl/StripShader.js', + '<%= dirs.src %>/renderers/webgl/PrimitiveShader.js', '<%= dirs.src %>/renderers/webgl/WebGLGraphics.js', '<%= dirs.src %>/renderers/webgl/WebGLRenderer.js', '<%= dirs.src %>/renderers/webgl/WebGLBatch.js', @@ -56,10 +58,11 @@ module.exports = function(grunt) { '<%= dirs.src %>/loaders/ImageLoader.js', '<%= dirs.src %>/loaders/BitmapFontLoader.js', '<%= dirs.src %>/loaders/SpineLoader.js', - + '<%= dirs.src %>/filters/AbstractFilter.js', '<%= dirs.src %>/filters/ColorMatrixFilter.js', '<%= dirs.src %>/filters/GreyFilter.js', '<%= dirs.src %>/filters/DisplacementFilter.js', + '<%= dirs.src %>/filters/PixelateFilter.js', '<%= dirs.src %>/filters/BlurXFilter.js', '<%= dirs.src %>/filters/BlurYFilter.js', '<%= dirs.src %>/filters/BlurFilter.js', diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 4473b7c..de541ea 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -3686,175 +3686,65 @@ PIXI.PolyK._convex = function(ax, ay, bx, by, cx, cy, sign) */ -/* - * the default suoer fast shader! - */ - -PIXI.shaderFragmentSrc = [ - "precision mediump float;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "uniform sampler2D uSampler;", - "void main(void) {", - "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));", - "gl_FragColor = gl_FragColor * vColor;", - "}" -]; - -PIXI.shaderVertexSrc = [ - "attribute vec2 aVertexPosition;", - "attribute vec2 aTextureCoord;", - "attribute float aColor;", - - "uniform vec2 projectionVector;", - "uniform vec2 offsetVector;", - "varying vec2 vTextureCoord;", - - "varying float vColor;", - //"const vec2 offsetVector = vec2(1000.0, 0.0);", - "const vec2 center = vec2(-1.0, 1.0);", - "void main(void) {", - "gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);", - "vTextureCoord = aTextureCoord;", - "vColor = aColor;", - "}" -]; - -/* - * the triangle strip shader.. - */ - -PIXI.stripShaderFragmentSrc = [ - "precision mediump float;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "uniform float alpha;", - "uniform sampler2D uSampler;", - "void main(void) {", - "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));", - "gl_FragColor = gl_FragColor * alpha;", - "}" -]; - - -PIXI.stripShaderVertexSrc = [ - "attribute vec2 aVertexPosition;", - "attribute vec2 aTextureCoord;", - "attribute float aColor;", - "uniform mat3 translationMatrix;", - "uniform vec2 projectionVector;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "void main(void) {", - "vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);", - "gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);", - "vTextureCoord = aTextureCoord;", - "vColor = aColor;", - "}" -]; - -/* - * primitive shader.. - */ - -PIXI.primitiveShaderFragmentSrc = [ - "precision mediump float;", - "varying vec4 vColor;", - "void main(void) {", - "gl_FragColor = vColor;", - "}" -]; - -PIXI.primitiveShaderVertexSrc = [ - "attribute vec2 aVertexPosition;", - "attribute vec4 aColor;", - "uniform mat3 translationMatrix;", - "uniform vec2 projectionVector;", - "uniform vec2 offsetVector;", - "uniform float alpha;", - "varying vec4 vColor;", - "void main(void) {", - "vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", - "v -= offsetVector.xyx;", - "gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);", - "vColor = aColor * alpha;", - "}" -]; - -PIXI.shaderStack = []; - -PIXI.initPrimitiveShader = function() +PIXI.initDefaultShaders = function() { - var gl = PIXI.gl; + PIXI.primitiveShader = new PIXI.PrimitiveShader(); + PIXI.primitiveShader.init(); - var shaderProgram = PIXI.compileProgram(PIXI.primitiveShaderVertexSrc, PIXI.primitiveShaderFragmentSrc) - - gl.useProgram(shaderProgram); + PIXI.stripShader = new PIXI.StripShader(); + PIXI.stripShader.init(); - shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, "aVertexPosition"); - shaderProgram.colorAttribute = gl.getAttribLocation(shaderProgram, "aColor"); - - shaderProgram.projectionVector = gl.getUniformLocation(shaderProgram, "projectionVector"); - shaderProgram.offsetVector = gl.getUniformLocation(shaderProgram, "offsetVector"); - - shaderProgram.translationMatrix = gl.getUniformLocation(shaderProgram, "translationMatrix"); - - - //gl.enableVertexAttribArray(shaderProgram.vertexPositionAttribute); - //gl.enableVertexAttribArray(shaderProgram.colorAttribute); -//gl.enableVertexAttribArray(program.textureCoordAttribute); - - shaderProgram.alpha = gl.getUniformLocation(shaderProgram, "alpha"); - - PIXI.primitiveProgram = shaderProgram; - - -} - -PIXI.initDefaultShader = function() -{ - PIXI.frameBufferStack = []; - PIXI.frameBufferPool = []; - PIXI.defaultShader = new PIXI.PixiShader(); PIXI.defaultShader.init(); - PIXI.pushShader(PIXI.defaultShader); - - // offset.. - - - - // ok and also create 2 spare frame buffers.. -// PIXI.frameBuffer1 = PIXI.generateFrameBuffer(800, 600); -// PIXI.frameBuffer2 = PIXI.generateFrameBuffer(800, 600); -// PIXI.currentFrameBuffer; - - /* - PIXI.shaderStack.push(PIXI.defaultShader); - PIXI.current*/ + + var gl = PIXI.gl; + var shaderProgram = PIXI.defaultShader.program; + + + gl.useProgram(shaderProgram); + + gl.enableVertexAttribArray(PIXI.defaultShader.aVertexPosition); + gl.enableVertexAttribArray(PIXI.defaultShader.colorAttribute); + gl.enableVertexAttribArray(PIXI.defaultShader.aTextureCoord); } - -PIXI.initDefaultStripShader = function() +PIXI.activatePrimitiveShader = function() { - var gl = this.gl; - var shaderProgram = PIXI.compileProgram(PIXI.stripShaderVertexSrc, PIXI.stripShaderFragmentSrc) - - gl.useProgram(shaderProgram); + var gl = PIXI.gl; + + gl.useProgram(PIXI.primitiveShader.program); + gl.disableVertexAttribArray(PIXI.defaultShader.aTextureCoord); +} - shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, "aVertexPosition"); - shaderProgram.projectionVector = gl.getUniformLocation(shaderProgram, "projectionVector"); - shaderProgram.textureCoordAttribute = gl.getAttribLocation(shaderProgram, "aTextureCoord"); - shaderProgram.translationMatrix = gl.getUniformLocation(shaderProgram, "translationMatrix"); - shaderProgram.alpha = gl.getUniformLocation(shaderProgram, "alpha"); +PIXI.deactivatePrimitiveShader = function() +{ + var gl = PIXI.gl; - shaderProgram.colorAttribute = gl.getAttribLocation(shaderProgram, "aColor"); - shaderProgram.projectionVector = gl.getUniformLocation(shaderProgram, "projectionVector"); - shaderProgram.samplerUniform = gl.getUniformLocation(shaderProgram, "uSampler"); - - PIXI.stripShaderProgram = shaderProgram; + gl.useProgram(PIXI.defaultShader.program); + gl.enableVertexAttribArray(PIXI.defaultShader.aTextureCoord); } +PIXI.activateStripShader = function() +{ + var gl = PIXI.gl; + + gl.useProgram(PIXI.stripShader.program); + // gl.disableVertexAttribArray(PIXI.defaultShader.aTextureCoord); +} + +PIXI.deactivateStripShader = function() +{ + var gl = PIXI.gl; + + gl.useProgram(PIXI.defaultShader.program); + //gl.enableVertexAttribArray(PIXI.defaultShader.aTextureCoord); +} + +/* + +SHADER COMPILER HELPERS +*/ + PIXI.CompileVertexShader = function(gl, shaderSrc) { return PIXI._CompileShader(gl, shaderSrc, gl.VERTEX_SHADER); @@ -3873,7 +3763,7 @@ PIXI._CompileShader = function(gl, shaderSrc, shaderType) gl.compileShader(shader); if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - alert(gl.getShaderInfoLog(shader)); + console.log(gl.getShaderInfoLog(shader)); return null; } @@ -3894,68 +3784,12 @@ PIXI.compileProgram = function(vertexSrc, fragmentSrc) gl.linkProgram(shaderProgram); if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) { - alert("Could not initialise shaders"); + console.log("Could not initialise shaders"); } return shaderProgram; } -PIXI.pushShader = function(shader) -{ - var gl = PIXI.gl; - - gl.colorMask(true, true, true, true); - gl.viewport(0, 0, this.width, this.height); - gl.clearColor(0,0,0, 0); - gl.clear(gl.COLOR_BUFFER_BIT); - - PIXI.shaderStack.push(shader); - - var shaderProgram = shader.program; - - // flip! the texture.. - // set the texture! - - // map uniforms.. - gl.useProgram(shaderProgram); - - gl.enableVertexAttribArray(shaderProgram.vertexPositionAttribute); - gl.enableVertexAttribArray(shaderProgram.colorAttribute); - gl.enableVertexAttribArray(shaderProgram.textureCoordAttribute); - - shader.syncUniforms(); - - PIXI.currentShader = shaderProgram; -} - - -PIXI.popShader = function() -{ - var gl = PIXI.gl; - var lastProgram = PIXI.shaderStack.pop(); - - var shaderProgram = PIXI.shaderStack[ PIXI.shaderStack.length-1 ].program; - - gl.useProgram(shaderProgram); - - PIXI.currentShader = shaderProgram; -} - -PIXI.activatePrimitiveShader = function() -{ - var gl = PIXI.gl; - - gl.useProgram(PIXI.primitiveProgram); - gl.disableVertexAttribArray(PIXI.currentShader.textureCoordAttribute); -} - -PIXI.deactivatePrimitiveShader = function() -{ - var gl = PIXI.gl; - - gl.useProgram(PIXI.currentShader); - gl.enableVertexAttribArray(PIXI.currentShader.textureCoordAttribute); -} /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -3980,7 +3814,7 @@ PIXI.PixiShader = function() PIXI.PixiShader.prototype.init = function() { - var program = PIXI.compileProgram(this.vertexSrc || PIXI.shaderVertexSrc, this.fragmentSrc) + var program = PIXI.compileProgram(this.vertexSrc || PIXI.PixiShader.defaultVertexSrc, this.fragmentSrc) var gl = PIXI.gl; @@ -3990,28 +3824,24 @@ PIXI.PixiShader.prototype.init = function() this.uSampler = gl.getUniformLocation(program, "uSampler"); this.projectionVector = gl.getUniformLocation(program, "projectionVector"); this.offsetVector = gl.getUniformLocation(program, "offsetVector"); + this.colorAttribute = gl.getAttribLocation(program, "aColor"); //this.dimensions = gl.getUniformLocation(this.program, "dimensions"); // get and store the attributes this.aVertexPosition = gl.getAttribLocation(program, "aVertexPosition"); this.aTextureCoord = gl.getAttribLocation(program, "aTextureCoord"); - - // get the default shader bits! - program.vertexPositionAttribute = gl.getAttribLocation(program, "aVertexPosition"); - program.colorAttribute = gl.getAttribLocation(program, "aColor"); - program.textureCoordAttribute = gl.getAttribLocation(program, "aTextureCoord"); - - program.projectionVector = gl.getUniformLocation(program, "projectionVector"); - program.samplerUniform = gl.getUniformLocation(program, "uSampler"); - program.offsetVector = gl.getUniformLocation(program, "offsetVector"); - + // add those custom shaders! for (var key in this.uniforms) { + // get the uniform locations.. program[key] = gl.getUniformLocation(program, key); + + + } - + this.program = program; } @@ -4031,8 +3861,14 @@ PIXI.PixiShader.prototype.syncUniforms = function() } if(type == "f2") { + // console.log(this.program[key]) gl.uniform2f(this.program[key], this.uniforms[key].value.x, this.uniforms[key].value.y); } + else if(type == "f4") + { + // console.log(this.uniforms[key].value) + gl.uniform4fv(this.program[key], this.uniforms[key].value); + } else if(type == "mat4") { gl.uniformMatrix4fv(this.program[key], false, this.uniforms[key].value); @@ -4055,6 +3891,148 @@ PIXI.PixiShader.prototype.syncUniforms = function() } +PIXI.PixiShader.defaultVertexSrc = [ + "attribute vec2 aVertexPosition;", + "attribute vec2 aTextureCoord;", + "attribute float aColor;", + + "uniform vec2 projectionVector;", + "uniform vec2 offsetVector;", + "varying vec2 vTextureCoord;", + + "varying float vColor;", + + "const vec2 center = vec2(-1.0, 1.0);", + "void main(void) {", + "gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);", + "vTextureCoord = aTextureCoord;", + "vColor = aColor;", + "}" +]; + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + +PIXI.StripShader = function() +{ + // the webGL program.. + this.program; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float alpha;", + "uniform sampler2D uSampler;", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));", + "gl_FragColor = gl_FragColor * alpha;", + "}" + ]; + + this.vertexSrc = [ + "attribute vec2 aVertexPosition;", + "attribute vec2 aTextureCoord;", + "attribute float aColor;", + "uniform mat3 translationMatrix;", + "uniform vec2 projectionVector;", + "varying vec2 vTextureCoord;", + "varying vec2 offsetVector;", + "varying float vColor;", + "void main(void) {", + "vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);", + "v -= offsetVector.xyx;", + "gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / projectionVector.y + 1.0 , 0.0, 1.0);", + "vTextureCoord = aTextureCoord;", + "vColor = aColor;", + "}" + ]; +} + +PIXI.StripShader.prototype.init = function() +{ + var program = PIXI.compileProgram(this.vertexSrc, this.fragmentSrc) + + var gl = PIXI.gl; + + gl.useProgram(program); + + // get and store the uniforms for the shader + this.uSampler = gl.getUniformLocation(program, "uSampler"); + this.projectionVector = gl.getUniformLocation(program, "projectionVector"); + this.offsetVector = gl.getUniformLocation(program, "offsetVector"); + this.colorAttribute = gl.getAttribLocation(program, "aColor"); + //this.dimensions = gl.getUniformLocation(this.program, "dimensions"); + + // get and store the attributes + this.aVertexPosition = gl.getAttribLocation(program, "aVertexPosition"); + this.aTextureCoord = gl.getAttribLocation(program, "aTextureCoord"); + + this.translationMatrix = gl.getUniformLocation(program, "translationMatrix"); + this.alpha = gl.getUniformLocation(program, "alpha"); + + this.program = program; +} + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + +PIXI.PrimitiveShader = function() +{ + // the webGL program.. + this.program; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec4 vColor;", + "void main(void) {", + "gl_FragColor = vColor;", + "}" + ]; + + this.vertexSrc = [ + "attribute vec2 aVertexPosition;", + "attribute vec4 aColor;", + "uniform mat3 translationMatrix;", + "uniform vec2 projectionVector;", + "uniform vec2 offsetVector;", + "uniform float alpha;", + "varying vec4 vColor;", + "void main(void) {", + "vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", + "v -= offsetVector.xyx;", + "gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);", + "vColor = aColor * alpha;", + "}" + ]; + +} + +PIXI.PrimitiveShader.prototype.init = function() +{ + var program = PIXI.compileProgram(this.vertexSrc, this.fragmentSrc); + + var gl = PIXI.gl; + + gl.useProgram(program); + + // get and store the uniforms for the shader + this.projectionVector = gl.getUniformLocation(program, "projectionVector"); + this.offsetVector = gl.getUniformLocation(program, "offsetVector"); + this.colorAttribute = gl.getAttribLocation(program, "aColor"); + + // get and store the attributes + this.aVertexPosition = gl.getAttribLocation(program, "aVertexPosition"); + + this.translationMatrix = gl.getUniformLocation(program, "translationMatrix"); + this.alpha = gl.getUniformLocation(program, "alpha"); + + this.program = program; +} /** * @author Mat Groves http://matgroves.com/ @Doormat23 @@ -4113,13 +4091,13 @@ PIXI.WebGLGraphics.renderGraphics = function(graphics, projection) // set the matrix transform for the gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + + gl.uniformMatrix3fv(PIXI.primitiveShader.translationMatrix, false, m); - gl.uniformMatrix3fv(PIXI.primitiveProgram.translationMatrix, false, m); - - gl.uniform2f(PIXI.primitiveProgram.projectionVector, projection.x, -projection.y); - gl.uniform2f(PIXI.primitiveProgram.offsetVector, -PIXI.offset.x, -PIXI.offset.y); + gl.uniform2f(PIXI.primitiveShader.projectionVector, projection.x, -projection.y); + gl.uniform2f(PIXI.primitiveShader.offsetVector, -PIXI.offset.x, -PIXI.offset.y); - gl.uniform1f(PIXI.primitiveProgram.alpha, graphics.worldAlpha); + gl.uniform1f(PIXI.primitiveShader.alpha, graphics.worldAlpha); gl.bindBuffer(gl.ARRAY_BUFFER, graphics._webGL.buffer); @@ -4128,8 +4106,8 @@ PIXI.WebGLGraphics.renderGraphics = function(graphics, projection) // its not even used.. but need to be set or it breaks? // only on pc though.. - gl.vertexAttribPointer(PIXI.primitiveProgram.vertexPositionAttribute, 2, gl.FLOAT, false, 4 * 6, 0); - gl.vertexAttribPointer(PIXI.primitiveProgram.colorAttribute, 4, gl.FLOAT, false,4 * 6, 2 * 4); + gl.vertexAttribPointer(PIXI.primitiveShader.aVertexPosition, 2, gl.FLOAT, false, 4 * 6, 0); + gl.vertexAttribPointer(PIXI.primitiveShader.colorAttribute, 4, gl.FLOAT, false,4 * 6, 2 * 4); // set the index buffer! gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, graphics._webGL.indexBuffer); @@ -4638,16 +4616,18 @@ PIXI.WebGLRenderer = function(width, height, view, transparent, antialias) } } - PIXI.initDefaultShader(); - PIXI.initPrimitiveShader(); - PIXI.initDefaultStripShader(); + PIXI.initDefaultShaders(); + - -// PIXI.activateDefaultShader(); + // PIXI.activateDefaultShader(); var gl = this.gl; + + gl.useProgram(PIXI.defaultShader.program); + + PIXI.WebGLRenderer.gl = gl; this.batch = new PIXI.WebGLBatch(gl); @@ -4665,7 +4645,7 @@ PIXI.WebGLRenderer = function(width, height, view, transparent, antialias) this.resize(this.width, this.height); this.contextLost = false; - PIXI.pushShader(PIXI.defaultShader); + //PIXI.pushShader(PIXI.defaultShader); this.stageRenderGroup = new PIXI.WebGLRenderGroup(this.gl); @@ -4727,15 +4707,6 @@ PIXI.WebGLRenderer.prototype.render = function(stage) this.__stage = stage; this.stageRenderGroup.setRenderable(stage); } - - // TODO not needed now... - // update children if need be - // best to remove first! - /*for (var i=0; i < stage.__childrenRemoved.length; i++) - { - var group = stage.__childrenRemoved[i].__renderGroup - if(group)group.removeDisplayObject(stage.__childrenRemoved[i]); - }*/ // update any textures PIXI.WebGLRenderer.updateTextures(); @@ -5475,7 +5446,7 @@ PIXI.WebGLBatch.prototype.render = function(start, end) //TODO optimize this! - var shaderProgram = PIXI.currentShader; + var shaderProgram = PIXI.defaultShader; //gl.useProgram(shaderProgram); @@ -5483,7 +5454,7 @@ PIXI.WebGLBatch.prototype.render = function(start, end) gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); // ok.. gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.verticies) - gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shaderProgram.aVertexPosition, 2, gl.FLOAT, false, 0, 0); // update the uvs //var isDefault = (shaderProgram == PIXI.shaderProgram) @@ -5495,7 +5466,7 @@ PIXI.WebGLBatch.prototype.render = function(start, end) gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.uvs); } - gl.vertexAttribPointer(shaderProgram.textureCoordAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shaderProgram.aTextureCoord, 2, gl.FLOAT, false, 0, 0); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, this.texture._glTexture); @@ -5584,7 +5555,7 @@ PIXI.WebGLRenderGroup.prototype.render = function(projection, buffer) PIXI.WebGLRenderer.updateTextures(); var gl = this.gl; - gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); + gl.uniform2f(PIXI.defaultShader.projectionVector, projection.x, projection.y); this.filterManager.begin(projection, buffer); @@ -5622,14 +5593,10 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project PIXI.WebGLRenderer.updateTextures(); var gl = this.gl; - gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); + gl.uniform2f(PIXI.defaultShader.projectionVector, projection.x, projection.y); this.filterManager.begin(projection, buffer); - //console.log(buffer) - - //gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); - // to do! // render part of the scene... @@ -5717,7 +5684,7 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project endBatch = lastRenderable; } - console.log(endBatch); + //console.log(endBatch); // TODO - need to fold this up a bit! if(startBatch == endBatch) @@ -5783,7 +5750,6 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project */ PIXI.WebGLRenderGroup.prototype.renderSpecial = function(renderable, projection) { - var sta = PIXI.shaderStack.length; var worldVisible = renderable.vcount === PIXI.visibleCount @@ -6374,21 +6340,26 @@ PIXI.WebGLRenderGroup.prototype.initTilingSprite = function(sprite) PIXI.WebGLRenderGroup.prototype.renderStrip = function(strip, projection) { var gl = this.gl; - var shaderProgram = PIXI.stripShaderProgram; - - - gl.useProgram(shaderProgram); + PIXI.activateStripShader(); + + var shader = PIXI.stripShader; + + var program = shader.program; + var m = PIXI.mat3.clone(strip.worldTransform); PIXI.mat3.transpose(m); +// console.log(projection) // set the matrix transform for the - gl.uniformMatrix3fv(shaderProgram.translationMatrix, false, m); - gl.uniform2f(shaderProgram.projectionVector, projection.x, projection.y); - gl.uniform1f(shaderProgram.alpha, strip.worldAlpha); + gl.uniformMatrix3fv(shader.translationMatrix, false, m); + gl.uniform2f(shader.projectionVector, projection.x, projection.y); + gl.uniform2f(shader.offsetVector, -PIXI.offset.x, -PIXI.offset.y); + + gl.uniform1f(shader.alpha, strip.worldAlpha); -/* + /* if(strip.blendMode == PIXI.blendModes.NORMAL) { gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); @@ -6399,23 +6370,22 @@ PIXI.WebGLRenderGroup.prototype.renderStrip = function(strip, projection) } */ - + //console.log("!!") if(!strip.dirty) - { - + { gl.bindBuffer(gl.ARRAY_BUFFER, strip._vertexBuffer); gl.bufferSubData(gl.ARRAY_BUFFER, 0, strip.verticies) - gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); // update the uvs gl.bindBuffer(gl.ARRAY_BUFFER, strip._uvBuffer); - gl.vertexAttribPointer(shaderProgram.textureCoordAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, strip.texture.baseTexture._glTexture); gl.bindBuffer(gl.ARRAY_BUFFER, strip._colorBuffer); - gl.vertexAttribPointer(shaderProgram.colorAttribute, 1, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.colorAttribute, 1, gl.FLOAT, false, 0, 0); // dont need to upload! gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, strip._indexBuffer); @@ -6425,19 +6395,19 @@ PIXI.WebGLRenderGroup.prototype.renderStrip = function(strip, projection) strip.dirty = false; gl.bindBuffer(gl.ARRAY_BUFFER, strip._vertexBuffer); gl.bufferData(gl.ARRAY_BUFFER, strip.verticies, gl.STATIC_DRAW) - gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); // update the uvs gl.bindBuffer(gl.ARRAY_BUFFER, strip._uvBuffer); gl.bufferData(gl.ARRAY_BUFFER, strip.uvs, gl.STATIC_DRAW) - gl.vertexAttribPointer(shaderProgram.textureCoordAttribute, 2, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, strip.texture.baseTexture._glTexture); - + // console.log(strip.texture.baseTexture._glTexture) gl.bindBuffer(gl.ARRAY_BUFFER, strip._colorBuffer); gl.bufferData(gl.ARRAY_BUFFER, strip.colors, gl.STATIC_DRAW) - gl.vertexAttribPointer(shaderProgram.colorAttribute, 1, gl.FLOAT, false, 0, 0); + gl.vertexAttribPointer(shader.colorAttribute, 1, gl.FLOAT, false, 0, 0); // dont need to upload! gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, strip._indexBuffer); @@ -6447,7 +6417,8 @@ PIXI.WebGLRenderGroup.prototype.renderStrip = function(strip, projection) gl.drawElements(gl.TRIANGLE_STRIP, strip.indices.length, gl.UNSIGNED_SHORT, 0); - gl.useProgram(PIXI.currentProgram); + PIXI.deactivateStripShader(); + //gl.useProgram(PIXI.currentProgram); } /** @@ -6461,6 +6432,8 @@ PIXI.WebGLRenderGroup.prototype.renderStrip = function(strip, projection) PIXI.WebGLRenderGroup.prototype.renderTilingSprite = function(sprite, projectionMatrix) { var gl = this.gl; + + var shaderProgram = PIXI.shaderProgram; var tilePosition = sprite.tilePosition; @@ -6573,11 +6546,29 @@ PIXI.WebGLFilterManager.prototype.pushFilter = function(filterBlock) gl.bindTexture(gl.TEXTURE_2D, texture.texture); this.getBounds(filterBlock.target); - + + // addpadding? + //displayObject.filterArea.x + var filterArea = filterBlock.target.filterArea; + + var padidng = filter.padding; + filterArea.x -= padidng; + filterArea.y -= padidng; + filterArea.width += padidng * 2; + filterArea.height += padidng * 2; + + // cap filter to screen size.. + if(filterArea.x < 0)filterArea.x = 0; + if(filterArea.width > this.width)filterArea.width = this.width; + if(filterArea.y < 0)filterArea.y = 0; + if(filterArea.height > this.height)filterArea.height = this.height; + + //gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, filterArea.width, filterArea.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); gl.bindFramebuffer(gl.FRAMEBUFFER, texture.frameBuffer); + // console.log(filterArea) // set view port gl.viewport(0, 0, filterArea.width, filterArea.height); @@ -6587,9 +6578,10 @@ PIXI.WebGLFilterManager.prototype.pushFilter = function(filterBlock) PIXI.offset.x = -filterArea.x; PIXI.offset.y = -filterArea.y; + //console.log(PIXI.defaultShader.projectionVector) // update projection - gl.uniform2f(PIXI.currentShader.projectionVector, filterArea.width/2, -filterArea.height/2); - gl.uniform2f(PIXI.currentShader.offsetVector, -filterArea.x, -filterArea.y); + gl.uniform2f(PIXI.defaultShader.projectionVector, filterArea.width/2, -filterArea.height/2); + gl.uniform2f(PIXI.defaultShader.offsetVector, -filterArea.x, -filterArea.y); //PIXI.primitiveProgram gl.colorMask(true, true, true, true); @@ -6668,7 +6660,9 @@ PIXI.WebGLFilterManager.prototype.popFilter = function() gl.bindTexture(gl.TEXTURE_2D, inputTexture.texture); // draw texture.. - this.applyFilterPass(filterPass, filterArea.width, filterArea.height); + //filterPass.applyFilterPass(filterArea.width, filterArea.height); + this.applyFilterPass(filterPass, filterArea, filterArea.width, filterArea.height); + // swap the textures.. var temp = inputTexture; inputTexture = outputTexture; @@ -6765,19 +6759,20 @@ PIXI.WebGLFilterManager.prototype.popFilter = function() gl.bindTexture(gl.TEXTURE_2D, texture.texture); // apply! - this.applyFilterPass(filter, sizeX, sizeY); + //filter.applyFilterPass(sizeX, sizeY); + this.applyFilterPass(filter, filterArea, sizeX, sizeY); // now restore the regular shader.. gl.useProgram(PIXI.defaultShader.program); - gl.uniform2f(PIXI.currentShader.projectionVector, sizeX/2, -sizeY/2); - gl.uniform2f(PIXI.currentShader.offsetVector, -offsetX, -offsetY); + gl.uniform2f(PIXI.defaultShader.projectionVector, sizeX/2, -sizeY/2); + gl.uniform2f(PIXI.defaultShader.offsetVector, -offsetX, -offsetY); // return the texture to the pool this.texturePool.push(texture); filterBlock._glFilterTexture = null; } -PIXI.WebGLFilterManager.prototype.applyFilterPass = function(filter, width, height) +PIXI.WebGLFilterManager.prototype.applyFilterPass = function(filter, filterArea, width, height) { // use program var gl = PIXI.gl; @@ -6801,6 +6796,16 @@ PIXI.WebGLFilterManager.prototype.applyFilterPass = function(filter, width, heig gl.uniform2f(shader.projectionVector, width/2, -height/2); gl.uniform2f(shader.offsetVector, 0,0) + if(filter.uniforms.dimensions) + { + //console.log(filter.uniforms.dimensions) + filter.uniforms.dimensions.value[0] = this.width;//width; + filter.uniforms.dimensions.value[1] = this.height;//height; + filter.uniforms.dimensions.value[2] = this.vertexArray[0]; + filter.uniforms.dimensions.value[3] = this.vertexArray[5];//filterArea.height; + // console.log(this.vertexArray[5]) + } + shader.syncUniforms(); gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); @@ -6877,38 +6882,41 @@ PIXI.WebGLFilterManager.prototype.getBounds = function(displayObject) { // TODO can be optimized! - what if there is no scale / rotation? - if(tempObject instanceof PIXI.Sprite) + if(tempObject.visible) { - width = tempObject.texture.frame.width; - height = tempObject.texture.frame.height; + if(tempObject instanceof PIXI.Sprite) + { + width = tempObject.texture.frame.width; + height = tempObject.texture.frame.height; - // TODO trim?? - aX = tempObject.anchor.x; - aY = tempObject.anchor.y; - w0 = width * (1-aX); - w1 = width * -aX; + // TODO trim?? + aX = tempObject.anchor.x; + aY = tempObject.anchor.y; + w0 = width * (1-aX); + w1 = width * -aX; - h0 = height * (1-aY); - h1 = height * -aY; + h0 = height * (1-aY); + h1 = height * -aY; - doTest = true; - } - else if(tempObject instanceof PIXI.Graphics) - { - tempObject.updateFilterBounds(); + doTest = true; + } + else if(tempObject instanceof PIXI.Graphics) + { + tempObject.updateFilterBounds(); - var bounds = tempObject.bounds; + var bounds = tempObject.bounds; - width = bounds.width; - height = bounds.height; + width = bounds.width; + height = bounds.height; - w0 = bounds.x - w1 = bounds.x + bounds.width; + w0 = bounds.x + w1 = bounds.x + bounds.width; - h0 = bounds.y - h1 = bounds.y + bounds.height; + h0 = bounds.y + h1 = bounds.y + bounds.height; - doTest = true; + doTest = true; + } } if(doTest) @@ -6957,18 +6965,18 @@ PIXI.WebGLFilterManager.prototype.getBounds = function(displayObject) doTest = false; tempObject = tempObject._iNext; + } while(tempObject != testObject) // maximum bounds is the size of the screen.. - minX = minX > 0 ? minX : 0; - minY = minY > 0 ? minY : 0; - - maxX = maxX < this.width ? maxX : this.width; - maxY = maxY < this.height ? maxY : this.height; + //minX = minX > 0 ? minX : 0; + //minY = minY > 0 ? minY : 0; displayObject.filterArea.x = minX; displayObject.filterArea.y = minY; + +// console.log(maxX+ " : " + minX) displayObject.filterArea.width = maxX - minX; displayObject.filterArea.height = maxY - minY; } @@ -11217,12 +11225,33 @@ PIXI.SpineLoader.prototype.onLoaded = function () { }; +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.AbstractFilter = function(fragmentSrc, unifroms) +{ + this.passes = [this]; + this.dirty = true; + this.padding = 0; + + // set the uniforms + this.uniforms = unifroms || {}; + + this.fragmentSrc = fragmentSrc || []; +} + + /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ PIXI.ColorMatrixFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11248,6 +11277,8 @@ PIXI.ColorMatrixFilter = function() } +PIXI.ColorMatrixFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.ColorMatrixFilter.prototype.constructor = PIXI.ColorMatrixFilter; Object.defineProperty(PIXI.ColorMatrixFilter.prototype, 'matrix', { get: function() { @@ -11265,6 +11296,8 @@ Object.defineProperty(PIXI.ColorMatrixFilter.prototype, 'matrix', { PIXI.GreyFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11286,6 +11319,9 @@ PIXI.GreyFilter = function() ]; } +PIXI.GreyFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.GreyFilter.prototype.constructor = PIXI.GreyFilter; + Object.defineProperty(PIXI.GreyFilter.prototype, 'grey', { get: function() { return this.uniforms.grey.value; @@ -11303,16 +11339,35 @@ Object.defineProperty(PIXI.GreyFilter.prototype, 'grey', { PIXI.DisplacementFilter = function(texture) { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; - + texture.baseTexture._powerOf2 = true; + + // set the uniforms - + //console.log() this.uniforms = { displacementMap: {type: 'sampler2D', value:texture}, scale: {type: 'f2', value:{x:30, y:30}}, - mapDimensions: {type: 'f2', value:{x:texture.width, y:texture.height}} + offset: {type: 'f2', value:{x:0, y:0}}, + mapDimensions: {type: 'f2', value:{x:1, y:5112}}, + dimensions: {type: 'f4', value:[0,0,0,0]} }; + + if(texture.baseTexture.hasLoaded) + { + this.uniforms.mapDimensions.value.x = texture.width; + this.uniforms.mapDimensions.value.y = texture.height; + } + else + { + this.boundLoadedFunction = this.onTextureLoaded.bind(this); + + texture.baseTexture.on("loaded", this.boundLoadedFunction); + } + this.fragmentSrc = [ "precision mediump float;", "varying vec2 vTextureCoord;", @@ -11320,20 +11375,26 @@ PIXI.DisplacementFilter = function(texture) "uniform sampler2D displacementMap;", "uniform sampler2D uSampler;", "uniform vec2 scale;", + "uniform vec2 offset;", + "uniform vec4 dimensions;", "uniform vec2 mapDimensions;",// = vec2(256.0, 256.0);", - "const vec2 textureDimensions = vec2(800.0, 600.0);", + // "const vec2 textureDimensions = vec2(750.0, 750.0);", "void main(void) {", "vec2 mapCords = vTextureCoord.xy;", // "mapCords -= ;", - // "mapCords.y *= -1.0;", - // "mapCords.y += 1.0;", + "mapCords += (dimensions.zw + offset)/ dimensions.xy ;", + "mapCords.y *= -1.0;", + "mapCords.y += 1.0;", "vec2 matSample = texture2D(displacementMap, mapCords).xy;", "matSample -= 0.5;", "matSample *= scale;", - "matSample /= textureDimensions;", + "matSample /= mapDimensions;", "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x + matSample.x, vTextureCoord.y + matSample.y));", "gl_FragColor.rgb = mix( gl_FragColor.rgb, gl_FragColor.rgb, 1.0);", + "vec2 cord = vTextureCoord;", + + //"gl_FragColor = texture2D(displacementMap, cord);", "gl_FragColor = gl_FragColor * vColor;", "}" @@ -11341,6 +11402,19 @@ PIXI.DisplacementFilter = function(texture) } +PIXI.DisplacementFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.DisplacementFilter.prototype.constructor = PIXI.DisplacementFilter; + +PIXI.DisplacementFilter.prototype.onTextureLoaded = function() +{ + + this.uniforms.mapDimensions.value.x = this.uniforms.displacementMap.value.width; + this.uniforms.mapDimensions.value.y = this.uniforms.displacementMap.value.height; + + this.uniforms.displacementMap.value.baseTexture.off("loaded", this.boundLoadedFunction) + +} + Object.defineProperty(PIXI.DisplacementFilter.prototype, 'map', { get: function() { return this.uniforms.displacementMap.value; @@ -11358,6 +11432,67 @@ Object.defineProperty(PIXI.DisplacementFilter.prototype, 'scale', { this.uniforms.scale.value = value; } }); + +Object.defineProperty(PIXI.DisplacementFilter.prototype, 'offset', { + get: function() { + return this.uniforms.offset.value; + }, + set: function(value) { + this.uniforms.offset.value = value; + } +}); +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + +PIXI.PixelateFilter = function() +{ + PIXI.AbstractFilter.call( this ); + + this.passes = [this]; + + // set the uniforms + this.uniforms = { + invert: {type: 'f', value: 0}, + dimensions: {type: 'f4', value:new Float32Array([10000, 100, 10, 10])}, + pixelSize: {type: 'f2', value:{x:10, y:10}}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform vec2 testDim;", + "uniform vec4 dimensions;", + "uniform vec2 pixelSize;", + "uniform sampler2D uSampler;", + "void main(void) {", + "vec2 coord = vTextureCoord;", + + // "vec2 dim = testDim;", + "vec2 size = dimensions.xy/pixelSize;", + + "vec2 color = floor( ( vTextureCoord * size ) ) / size + pixelSize/dimensions.xy * 0.5;", + // "color += (mod(dimensions.xy, size)/dimensions.zw;", + "gl_FragColor = texture2D(uSampler, color);", + "}" + ]; + + +} + +PIXI.PixelateFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.PixelateFilter.prototype.constructor = PIXI.PixelateFilter; + +Object.defineProperty(PIXI.PixelateFilter.prototype, 'size', { + get: function() { + return this.uniforms.pixelSize.value; + }, + set: function(value) { + this.dirty = true; + this.uniforms.pixelSize.value = value; + } +}); /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -11366,6 +11501,8 @@ Object.defineProperty(PIXI.DisplacementFilter.prototype, 'scale', { PIXI.BlurXFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11398,12 +11535,18 @@ PIXI.BlurXFilter = function() ]; } +PIXI.BlurXFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.BlurXFilter.prototype.constructor = PIXI.BlurXFilter; + + Object.defineProperty(PIXI.BlurXFilter.prototype, 'blur', { get: function() { - return this.uniforms.blur.value; + return this.uniforms.blur.value / (1/7000); }, set: function(value) { - this.uniforms.blur.value = value; + + this.dirty = true; + this.uniforms.blur.value = (1/7000) * value; } }); @@ -11415,6 +11558,8 @@ Object.defineProperty(PIXI.BlurXFilter.prototype, 'blur', { PIXI.BlurYFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11447,12 +11592,16 @@ PIXI.BlurYFilter = function() ]; } +PIXI.BlurYFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.BlurYFilter.prototype.constructor = PIXI.BlurYFilter; + Object.defineProperty(PIXI.BlurYFilter.prototype, 'blur', { get: function() { - return this.uniforms.blur.value; + return this.uniforms.blur.value / (1/7000); }, set: function(value) { - this.uniforms.blur.value = value; + //this.padding = value; + this.uniforms.blur.value = (1/7000) * value; } }); @@ -11464,7 +11613,7 @@ Object.defineProperty(PIXI.BlurYFilter.prototype, 'blur', { PIXI.BlurFilter = function() { - + this.blurXFilter = new PIXI.BlurXFilter(); this.blurYFilter = new PIXI.BlurYFilter(); @@ -11506,6 +11655,8 @@ Object.defineProperty(PIXI.BlurFilter.prototype, 'blurY', { PIXI.InvertFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11529,6 +11680,8 @@ PIXI.InvertFilter = function() } +PIXI.InvertFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.InvertFilter.prototype.constructor = PIXI.InvertFilter; Object.defineProperty(PIXI.InvertFilter.prototype, 'invert', { get: function() { @@ -11547,6 +11700,8 @@ Object.defineProperty(PIXI.InvertFilter.prototype, 'invert', { PIXI.SepiaFilter = function() { + PIXI.AbstractFilter.call( this ); + this.passes = [this]; // set the uniforms @@ -11571,6 +11726,9 @@ PIXI.SepiaFilter = function() } +PIXI.SepiaFilter.prototype = Object.create( PIXI.AbstractFilter.prototype ); +PIXI.SepiaFilter.prototype.constructor = PIXI.SepiaFilter; + Object.defineProperty(PIXI.SepiaFilter.prototype, 'sepia', { get: function() { return this.uniforms.sepia.value; diff --git a/bin/pixi.dev.js.map b/bin/pixi.dev.js.map index 4df448c..80d0cf8 100644 --- a/bin/pixi.dev.js.map +++ b/bin/pixi.dev.js.map @@ -25,6 +25,8 @@ "src/pixi/utils/Polyk.js", "src/pixi/renderers/webgl/WebGLShaders.js", "src/pixi/renderers/webgl/PixiShader.js", + "src/pixi/renderers/webgl/StripShader.js", + "src/pixi/renderers/webgl/PrimitiveShader.js", "src/pixi/renderers/webgl/WebGLGraphics.js", "src/pixi/renderers/webgl/WebGLRenderer.js", "src/pixi/renderers/webgl/WebGLBatch.js", @@ -47,9 +49,11 @@ "src/pixi/loaders/ImageLoader.js", "src/pixi/loaders/BitmapFontLoader.js", "src/pixi/loaders/SpineLoader.js", + "src/pixi/filters/AbstractFilter.js", "src/pixi/filters/ColorMatrixFilter.js", "src/pixi/filters/GreyFilter.js", "src/pixi/filters/DisplacementFilter.js", + "src/pixi/filters/PixelateFilter.js", "src/pixi/filters/BlurXFilter.js", "src/pixi/filters/BlurYFilter.js", "src/pixi/filters/BlurFilter.js", @@ -58,6 +62,6 @@ "src/pixi/Outro.js" ], "names": [], - "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACpSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sB;AC9jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACngBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACjeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACn7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,c", + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACpSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sB;AC9jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC/rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACngBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACpgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACn7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACvPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,c", "sourceRoot": "../" } \ No newline at end of file diff --git a/bin/pixi.js b/bin/pixi.js index f89ea8c..06a68b4 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,12 +4,12 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-10-30 + * Compiled: 2013-11-01 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -!function(){function c(){return f.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,f.Matrix}function d(a){return[(255&a>>16)/255,(255&a>>8)/255,(255&a)/255]}function d(a){return[(255&a>>16)/255,(255&a>>8)/255,(255&a)/255]}var e=this,f=f||{};f.Point=function(a,b){this.x=a||0,this.y=b||0},f.Point.prototype.clone=function(){return new f.Point(this.x,this.y)},f.Point.prototype.constructor=f.Point,f.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},f.Rectangle.prototype.clone=function(){return new f.Rectangle(this.x,this.y,this.width,this.height)},f.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},f.Rectangle.prototype.constructor=f.Rectangle,f.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var b=[],c=0,d=a.length;d>c;c+=2)b.push(new f.Point(a[c],a[c+1]));a=b}this.points=a},f.Polygon.prototype.clone=function(){for(var a=[],b=0;bb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},f.Polygon.prototype.constructor=f.Polygon,f.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},f.Circle.prototype.clone=function(){return new f.Circle(this.x,this.y,this.radius)},f.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},f.Circle.prototype.constructor=f.Circle,f.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},f.Ellipse.prototype.clone=function(){return new f.Ellipse(this.x,this.y,this.width,this.height)},f.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width-.5,d=(b-this.y)/this.height-.5;return c*=c,d*=d,.25>c+d},f.Ellipse.getBounds=function(){return new f.Rectangle(this.x,this.y,this.width,this.height)},f.Ellipse.prototype.constructor=f.Ellipse,c(),f.mat3={},f.mat3.create=function(){var a=new f.Matrix(9);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},f.mat3.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},f.mat4={},f.mat4.create=function(){var a=new f.Matrix(16);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},f.mat3.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],m=b[0],n=b[1],o=b[2],p=b[3],q=b[4],r=b[5],s=b[6],t=b[7],u=b[8];return c[0]=m*d+n*g+o*j,c[1]=m*e+n*h+o*k,c[2]=m*f+n*i+o*l,c[3]=p*d+q*g+r*j,c[4]=p*e+q*h+r*k,c[5]=p*f+q*i+r*l,c[6]=s*d+t*g+u*j,c[7]=s*e+t*h+u*k,c[8]=s*f+t*i+u*l,c},f.mat3.clone=function(a){var b=new f.Matrix(9);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b},f.mat3.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[5];return a[1]=a[3],a[2]=a[6],a[3]=c,a[5]=a[7],a[6]=d,a[7]=e,a}return b[0]=a[0],b[1]=a[3],b[2]=a[6],b[3]=a[1],b[4]=a[4],b[5]=a[7],b[6]=a[2],b[7]=a[5],b[8]=a[8],b},f.mat3.toMat4=function(a,b){return b||(b=f.mat4.create()),b[15]=1,b[14]=0,b[13]=0,b[12]=0,b[11]=0,b[10]=a[8],b[9]=a[7],b[8]=a[6],b[7]=0,b[6]=a[5],b[5]=a[4],b[4]=a[3],b[3]=0,b[2]=a[2],b[1]=a[1],b[0]=a[0],b},f.mat4.create=function(){var a=new f.Matrix(16);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},f.mat4.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],f=a[6],g=a[7],h=a[11];return a[1]=a[4],a[2]=a[8],a[3]=a[12],a[4]=c,a[6]=a[9],a[7]=a[13],a[8]=d,a[9]=f,a[11]=a[14],a[12]=e,a[13]=g,a[14]=h,a}return b[0]=a[0],b[1]=a[4],b[2]=a[8],b[3]=a[12],b[4]=a[1],b[5]=a[5],b[6]=a[9],b[7]=a[13],b[8]=a[2],b[9]=a[6],b[10]=a[10],b[11]=a[14],b[12]=a[3],b[13]=a[7],b[14]=a[11],b[15]=a[15],b},f.mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],m=a[9],n=a[10],o=a[11],p=a[12],q=a[13],r=a[14],s=a[15],t=b[0],u=b[1],v=b[2],w=b[3];return c[0]=t*d+u*h+v*l+w*p,c[1]=t*e+u*i+v*m+w*q,c[2]=t*f+u*j+v*n+w*r,c[3]=t*g+u*k+v*o+w*s,t=b[4],u=b[5],v=b[6],w=b[7],c[4]=t*d+u*h+v*l+w*p,c[5]=t*e+u*i+v*m+w*q,c[6]=t*f+u*j+v*n+w*r,c[7]=t*g+u*k+v*o+w*s,t=b[8],u=b[9],v=b[10],w=b[11],c[8]=t*d+u*h+v*l+w*p,c[9]=t*e+u*i+v*m+w*q,c[10]=t*f+u*j+v*n+w*r,c[11]=t*g+u*k+v*o+w*s,t=b[12],u=b[13],v=b[14],w=b[15],c[12]=t*d+u*h+v*l+w*p,c[13]=t*e+u*i+v*m+w*q,c[14]=t*f+u*j+v*n+w*r,c[15]=t*g+u*k+v*o+w*s,c},f.DisplayObject=function(){this.last=this,this.first=this,this.position=new f.Point,this.scale=new f.Point(1,1),this.pivot=new f.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.worldTransform=f.mat3.create(),this.localTransform=f.mat3.create(),this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=new f.Rectangle(0,0,1,1)},f.DisplayObject.prototype.constructor=f.DisplayObject,f.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(f.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(f.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){a?this._mask?(a.start=this._mask.start,a.end=this._mask.end):(this.addFilter(a),a.renderable=!1):(this.removeFilter(this._mask),this._mask.renderable=!0),this._mask=a}}),Object.defineProperty(f.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){this._filters&&this.removeFilter(this._filters),this.addFilter(a);for(var b=[],c=0;c=0&&b<=this.children.length))throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length);if(void 0!=a.parent&&a.parent.removeChild(a),a.parent=this,this.stage){var c=a;do c.interactive&&(this.stage.dirty=!0),c.stage=this.stage,c=c._iNext;while(c)}var d,e,f=a.first,g=a.last;if(b==this.children.length){e=this.last;for(var h=this,i=this.last;h;)h.last==i&&(h.last=a.last),h=h.parent}else e=0==b?this:this.children[b-1].last;d=e._iNext,d&&(d._iPrev=g,g._iNext=d),f._iPrev=e,e._iNext=f,this.children.splice(b,0,a),this.__renderGroup&&(a.__renderGroup&&a.__renderGroup.removeDisplayObjectAndChildren(a),this.__renderGroup.addDisplayObjectAndChildren(a))},f.DisplayObjectContainer.prototype.swapChildren=function(){},f.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&aa;a++)this.children[a].updateTransform()}},f.blendModes={},f.blendModes.NORMAL=0,f.blendModes.SCREEN=1,f.Sprite=function(a){f.DisplayObjectContainer.call(this),this.anchor=new f.Point,this.texture=a,this.blendMode=f.blendModes.NORMAL,this._width=0,this._height=0,a.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},f.Sprite.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Sprite.prototype.constructor=f.Sprite,Object.defineProperty(f.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(f.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),f.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!=a.baseTexture?(this.textureChange=!0,this.texture=a,this.__renderGroup&&this.__renderGroup.updateTexture(this)):this.texture=a,this.updateFrame=!0},f.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},f.Sprite.fromFrame=function(a){var b=f.TextureCache[a];if(!b)throw new Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new f.Sprite(b)},f.Sprite.fromImage=function(a){var b=f.Texture.fromImage(a);return new f.Sprite(b)},f.MovieClip=function(a){f.Sprite.call(this,a[0]),this.textures=a,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.currentFrame=0,this.playing=!1},f.MovieClip.prototype=Object.create(f.Sprite.prototype),f.MovieClip.prototype.constructor=f.MovieClip,Object.defineProperty(f.MovieClip.prototype,"totalFrames",{get:function(){return this.textures.length}}),f.MovieClip.prototype.stop=function(){this.playing=!1},f.MovieClip.prototype.play=function(){this.playing=!0},f.MovieClip.prototype.gotoAndStop=function(a){this.playing=!1,this.currentFrame=a;var b=0|this.currentFrame+.5;this.setTexture(this.textures[b%this.textures.length])},f.MovieClip.prototype.gotoAndPlay=function(a){this.currentFrame=a,this.playing=!0},f.MovieClip.prototype.updateTransform=function(){if(f.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var a=0|this.currentFrame+.5;this.loop||a=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},f.FilterBlock=function(){this.visible=!0,this.renderable=!0},f.Text=function(a,b){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),f.Sprite.call(this,f.Texture.fromCanvas(this.canvas)),this.setText(a),this.setStyle(b),this.updateText(),this.dirty=!1},f.Text.prototype=Object.create(f.Sprite.prototype),f.Text.prototype.constructor=f.Text,f.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,this.style=a,this.dirty=!0},f.Text.prototype.setText=function(a){this.text=a.toString()||" ",this.dirty=!0},f.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.wordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?f:arguments.callee(a,b,f,d,e):arguments.callee(a,b,c,f,e)},c=function(a,c,d){if(a.measureText(c).width<=d||c.length<1)return c;var e=b(a,c,0,c.length,d);return c.substring(0,e)+"\n"+arguments.callee(a,c.substring(e),d)},d="",e=a.split("\n"),f=0;f=2?parseInt(b[b.length-2],10):f.BitmapText.fonts[this.fontName].size,this.dirty=!0},f.BitmapText.prototype.updateText=function(){for(var a=f.BitmapText.fonts[this.fontName],b=new f.Point,c=null,d=[],e=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"==this.style.align?n=e-g[j]:"center"==this.style.align&&(n=(e-g[j])/2),m.push(n)}for(j=0;j0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}f.DisplayObjectContainer.prototype.updateTransform.call(this)},f.BitmapText.fonts={},f.InteractionManager=function(a){this.stage=a,this.mouse=new f.InteractionData,this.touchs={},this.tempPoint=new f.Point,this.mouseoverEnabled=!0,this.pool=[],this.interactiveItems=[],this.interactionDOMElement=null,this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseOut=this.onMouseOut.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.last=0},f.InteractionManager.prototype.constructor=f.InteractionManager,f.InteractionManager.prototype.collectInteractiveSprite=function(a,b){for(var c=a.children,d=c.length,e=d-1;e>=0;e--){var f=c[e];f.interactive?(b.interactiveChildren=!0,this.interactiveItems.push(f),f.children.length>0&&this.collectInteractiveSprite(f,f)):(f.__iParent=null,f.children.length>0&&this.collectInteractiveSprite(f,b))}},f.InteractionManager.prototype.setTarget=function(a){this.target=a,null===this.interactionDOMElement&&this.setTargetDomElement(a.view),document.body.addEventListener("mouseup",this.onMouseUp,!0)},f.InteractionManager.prototype.setTargetDomElement=function(a){null!==this.interactionDOMElement&&(this.interactionDOMElement.style["-ms-content-zooming"]="",this.interactionDOMElement.style["-ms-touch-action"]="",this.interactionDOMElement.removeEventListener("mousemove",this.onMouseMove,!0),this.interactionDOMElement.removeEventListener("mousedown",this.onMouseDown,!0),this.interactionDOMElement.removeEventListener("mouseout",this.onMouseOut,!0),this.interactionDOMElement.removeEventListener("touchstart",this.onTouchStart,!0),this.interactionDOMElement.removeEventListener("touchend",this.onTouchEnd,!0),this.interactionDOMElement.removeEventListener("touchmove",this.onTouchMove,!0)),window.navigator.msPointerEnabled&&(a.style["-ms-content-zooming"]="none",a.style["-ms-touch-action"]="none"),this.interactionDOMElement=a,a.addEventListener("mousemove",this.onMouseMove,!0),a.addEventListener("mousedown",this.onMouseDown,!0),a.addEventListener("mouseout",this.onMouseOut,!0),a.addEventListener("touchstart",this.onTouchStart,!0),a.addEventListener("touchend",this.onTouchEnd,!0),a.addEventListener("touchmove",this.onTouchMove,!0)},f.InteractionManager.prototype.update=function(){if(this.target){var a=Date.now(),b=a-this.last;if(b=30*b/1e3,!(1>b)){if(this.last=a,this.dirty){this.dirty=!1;for(var c=this.interactiveItems.length,d=0;c>d;d++)this.interactiveItems[d].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var e=this.interactiveItems.length;this.interactionDOMElement.style.cursor="default";for(var d=0;e>d;d++){var f=this.interactiveItems[d];(f.mouseover||f.mouseout||f.buttonMode)&&(f.__hit=this.hitTest(f,this.mouse),this.mouse.target=f,f.__hit?(f.buttonMode&&(this.interactionDOMElement.style.cursor="pointer"),f.__isOver||(f.mouseover&&f.mouseover(this.mouse),f.__isOver=!0)):f.__isOver&&(f.mouseout&&f.mouseout(this.mouse),f.__isOver=!1))}}}},f.InteractionManager.prototype.onMouseMove=function(a){this.mouse.originalEvent=a||window.event;var b=this.interactionDOMElement.getBoundingClientRect();this.mouse.global.x=(a.clientX-b.left)*(this.target.width/b.width),this.mouse.global.y=(a.clientY-b.top)*(this.target.height/b.height);var c=this.interactiveItems.length;this.mouse.global;for(var d=0;c>d;d++){var e=this.interactiveItems[d];e.mousemove&&e.mousemove(this.mouse)}},f.InteractionManager.prototype.onMouseDown=function(a){this.mouse.originalEvent=a||window.event;var b=this.interactiveItems.length;this.mouse.global,this.stage;for(var c=0;b>c;c++){var d=this.interactiveItems[c];if((d.mousedown||d.click)&&(d.__mouseIsDown=!0,d.__hit=this.hitTest(d,this.mouse),d.__hit&&(d.mousedown&&d.mousedown(this.mouse),d.__isDown=!0,!d.interactiveChildren)))break}},f.InteractionManager.prototype.onMouseOut=function(){var a=this.interactiveItems.length;this.interactionDOMElement.style.cursor="default";for(var b=0;a>b;b++){var c=this.interactiveItems[b];c.__isOver&&(this.mouse.target=c,c.mouseout&&c.mouseout(this.mouse),c.__isOver=!1)}},f.InteractionManager.prototype.onMouseUp=function(a){this.mouse.originalEvent=a||window.event,this.mouse.global;for(var b=this.interactiveItems.length,c=!1,d=0;b>d;d++){var e=this.interactiveItems[d];(e.mouseup||e.mouseupoutside||e.click)&&(e.__hit=this.hitTest(e,this.mouse),e.__hit&&!c?(e.mouseup&&e.mouseup(this.mouse),e.__isDown&&e.click&&e.click(this.mouse),e.interactiveChildren||(c=!0)):e.__isDown&&e.mouseupoutside&&e.mouseupoutside(this.mouse),e.__isDown=!1)}},f.InteractionManager.prototype.hitTest=function(a,b){var c=b.global;if(a.vcount!==f.visibleCount)return!1;var d=a instanceof f.Sprite,e=a.worldTransform,g=e[0],h=e[1],i=e[2],j=e[3],k=e[4],l=e[5],m=1/(g*k+h*-j),n=k*m*c.x+-h*m*c.y+(l*h-i*k)*m,o=g*m*c.y+-j*m*c.x+(-l*g+i*j)*m;if(b.target=a,a.hitArea&&a.hitArea.contains)return a.hitArea.contains(n,o)?(b.target=a,!0):!1;if(d){var p,q=a.texture.frame.width,r=a.texture.frame.height,s=-q*a.anchor.x;if(n>s&&s+q>n&&(p=-r*a.anchor.y,o>p&&p+r>o))return b.target=a,!0}for(var t=a.children.length,u=0;t>u;u++){var v=a.children[u],w=this.hitTest(v,b);if(w)return b.target=a,!0}return!1},f.InteractionManager.prototype.onTouchMove=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;dd;d++){var h=this.interactiveItems[d];h.touchmove&&h.touchmove(f)}},f.InteractionManager.prototype.onTouchStart=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;di;i++){var j=this.interactiveItems[i];if((j.touchstart||j.tap)&&(j.__hit=this.hitTest(j,g),j.__hit&&(j.touchstart&&j.touchstart(g),j.__isDown=!0,j.__touchData=g,!j.interactiveChildren)))break}}},f.InteractionManager.prototype.onTouchEnd=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;di;i++){var j=this.interactiveItems[i],k=j.__touchData;j.__hit=this.hitTest(j,f),k==f&&(f.originalEvent=a||window.event,(j.touchend||j.tap)&&(j.__hit&&!g?(j.touchend&&j.touchend(f),j.__isDown&&j.tap&&j.tap(f),j.interactiveChildren||(g=!0)):j.__isDown&&j.touchendoutside&&j.touchendoutside(f),j.__isDown=!1),j.__touchData=null)}this.pool.push(f),this.touchs[e.identifier]=null}},f.InteractionData=function(){this.global=new f.Point,this.local=new f.Point,this.target,this.originalEvent},f.InteractionData.prototype.getLocalPosition=function(a){var b=a.worldTransform,c=this.global,d=b[0],e=b[1],g=b[2],h=b[3],i=b[4],j=b[5],k=1/(d*i+e*-h);return new f.Point(i*k*c.x+-e*k*c.y+(j*e-g*i)*k,d*k*c.y+-h*k*c.x+(-j*d+g*h)*k)},f.InteractionData.prototype.constructor=f.InteractionData,f.Stage=function(a){f.DisplayObjectContainer.call(this),this.worldTransform=f.mat3.create(),this.interactive=!0,this.interactionManager=new f.InteractionManager(this),this.dirty=!0,this.__childrenAdded=[],this.__childrenRemoved=[],this.stage=this,this.stage.hitArea=new f.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a),this.worldVisible=!0},f.Stage.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Stage.prototype.constructor=f.Stage,f.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},f.Stage.prototype.updateTransform=function(){this.worldAlpha=1,this.vcount=f.visibleCount;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},f.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=d(this.backgroundColor);var b=this.backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},f.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var h=0,i=["ms","moz","webkit","o"],j=0;j>>>>>>>>"),console.log("_");var b=0,c=a.first;for(console.log(c);c._iNext;)if(b++,c=c._iNext,console.log(c),b>100){console.log("BREAK");break}},f.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].push(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=0,d=a[b.type].length;d>c;c++)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},f.autoDetectRenderer=function(a,b,c,d,e){a||(a=800),b||(b=600);var g=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}();if(g){var h=-1!=navigator.userAgent.toLowerCase().indexOf("msie");g=!h}return g?new f.WebGLRenderer(a,b,c,d,e):new f.CanvasRenderer(a,b,c,d)},f.PolyK={},f.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],g=0;c>g;g++)e.push(g);for(var g=0,h=c;h>3;){var i=e[(g+0)%h],j=e[(g+1)%h],k=e[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(f.PolyK._convex(l,m,n,o,p,q,b)){r=!0;for(var s=0;h>s;s++){var t=e[s];if(t!=i&&t!=j&&t!=k&&f.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)d.push(i,j,k),e.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!b)return console.log("PIXI Warning: shape too complex to fill"),[];var d=[];e=[];for(var g=0;c>g;g++)e.push(g);g=0,h=c,b=!1}}return d.push(e[0],e[1],e[2]),d},f.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},f.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0==g},f.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],f.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {","gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],f.stripShaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],f.stripShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],f.primitiveShaderFragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],f.primitiveShaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);","v -= offsetVector.xyx;","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"],f.shaderStack=[],f.initPrimitiveShader=function(){var a=f.gl,b=f.compileProgram(f.primitiveShaderVertexSrc,f.primitiveShaderFragmentSrc);a.useProgram(b),b.vertexPositionAttribute=a.getAttribLocation(b,"aVertexPosition"),b.colorAttribute=a.getAttribLocation(b,"aColor"),b.projectionVector=a.getUniformLocation(b,"projectionVector"),b.offsetVector=a.getUniformLocation(b,"offsetVector"),b.translationMatrix=a.getUniformLocation(b,"translationMatrix"),b.alpha=a.getUniformLocation(b,"alpha"),f.primitiveProgram=b -},f.initDefaultShader=function(){f.frameBufferStack=[],f.frameBufferPool=[],f.defaultShader=new f.PixiShader,f.defaultShader.init(),f.pushShader(f.defaultShader)},f.initDefaultStripShader=function(){var a=this.gl,b=f.compileProgram(f.stripShaderVertexSrc,f.stripShaderFragmentSrc);a.useProgram(b),b.vertexPositionAttribute=a.getAttribLocation(b,"aVertexPosition"),b.projectionVector=a.getUniformLocation(b,"projectionVector"),b.textureCoordAttribute=a.getAttribLocation(b,"aTextureCoord"),b.translationMatrix=a.getUniformLocation(b,"translationMatrix"),b.alpha=a.getUniformLocation(b,"alpha"),b.colorAttribute=a.getAttribLocation(b,"aColor"),b.projectionVector=a.getUniformLocation(b,"projectionVector"),b.samplerUniform=a.getUniformLocation(b,"uSampler"),f.stripShaderProgram=b},f.CompileVertexShader=function(a,b){return f._CompileShader(a,b,a.VERTEX_SHADER)},f.CompileFragmentShader=function(a,b){return f._CompileShader(a,b,a.FRAGMENT_SHADER)},f._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(alert(a.getShaderInfoLog(e)),null)},f.compileProgram=function(a,b){var c=f.gl,d=f.CompileFragmentShader(c,b),e=f.CompileVertexShader(c,a),g=c.createProgram();return c.attachShader(g,e),c.attachShader(g,d),c.linkProgram(g),c.getProgramParameter(g,c.LINK_STATUS)||alert("Could not initialise shaders"),g},f.pushShader=function(a){var b=f.gl;b.colorMask(!0,!0,!0,!0),b.viewport(0,0,this.width,this.height),b.clearColor(0,0,0,0),b.clear(b.COLOR_BUFFER_BIT),f.shaderStack.push(a);var c=a.program;b.useProgram(c),b.enableVertexAttribArray(c.vertexPositionAttribute),b.enableVertexAttribArray(c.colorAttribute),b.enableVertexAttribArray(c.textureCoordAttribute),a.syncUniforms(),f.currentShader=c},f.popShader=function(){var a=f.gl;f.shaderStack.pop();var b=f.shaderStack[f.shaderStack.length-1].program;a.useProgram(b),f.currentShader=b},f.activatePrimitiveShader=function(){var a=f.gl;a.useProgram(f.primitiveProgram),a.disableVertexAttribArray(f.currentShader.textureCoordAttribute)},f.deactivatePrimitiveShader=function(){var a=f.gl;a.useProgram(f.currentShader),a.enableVertexAttribArray(f.currentShader.textureCoordAttribute)},f.PixiShader=function(){this.program,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor;","}"]},f.PixiShader.prototype.init=function(){var a=f.compileProgram(this.vertexSrc||f.shaderVertexSrc,this.fragmentSrc),b=f.gl;b.useProgram(a),this.uSampler=b.getUniformLocation(a,"uSampler"),this.projectionVector=b.getUniformLocation(a,"projectionVector"),this.offsetVector=b.getUniformLocation(a,"offsetVector"),this.aVertexPosition=b.getAttribLocation(a,"aVertexPosition"),this.aTextureCoord=b.getAttribLocation(a,"aTextureCoord"),a.vertexPositionAttribute=b.getAttribLocation(a,"aVertexPosition"),a.colorAttribute=b.getAttribLocation(a,"aColor"),a.textureCoordAttribute=b.getAttribLocation(a,"aTextureCoord"),a.projectionVector=b.getUniformLocation(a,"projectionVector"),a.samplerUniform=b.getUniformLocation(a,"uSampler"),a.offsetVector=b.getUniformLocation(a,"offsetVector");for(var c in this.uniforms)a[c]=b.getUniformLocation(a,c);this.program=a},f.PixiShader.prototype.syncUniforms=function(){var a=f.gl;for(var b in this.uniforms){var c=this.uniforms[b].type;if("f"==c&&a.uniform1f(this.program[b],this.uniforms[b].value),"f2"==c)a.uniform2f(this.program[b],this.uniforms[b].value.x,this.uniforms[b].value.y);else if("mat4"==c)a.uniformMatrix4fv(this.program[b],!1,this.uniforms[b].value);else if("sampler2D"==c){var d=this.uniforms[b].value;a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,d.baseTexture._glTexture),a.uniform1i(this.program[b],1)}}},f.WebGLGraphics=function(){},f.WebGLGraphics.renderGraphics=function(a,b){var c=f.gl;a._webGL||(a._webGL={points:[],indices:[],lastIndex:0,buffer:c.createBuffer(),indexBuffer:c.createBuffer()}),a.dirty&&(a.dirty=!1,a.clearDirty&&(a.clearDirty=!1,a._webGL.lastIndex=0,a._webGL.points=[],a._webGL.indices=[]),f.WebGLGraphics.updateGraphics(a)),f.activatePrimitiveShader();var d=f.mat3.clone(a.worldTransform);f.mat3.transpose(d),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.primitiveProgram.translationMatrix,!1,d),c.uniform2f(f.primitiveProgram.projectionVector,b.x,-b.y),c.uniform2f(f.primitiveProgram.offsetVector,-f.offset.x,-f.offset.y),c.uniform1f(f.primitiveProgram.alpha,a.worldAlpha),c.bindBuffer(c.ARRAY_BUFFER,a._webGL.buffer),c.vertexAttribPointer(f.primitiveProgram.vertexPositionAttribute,2,c.FLOAT,!1,24,0),c.vertexAttribPointer(f.primitiveProgram.colorAttribute,4,c.FLOAT,!1,24,8),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._webGL.indexBuffer),c.drawElements(c.TRIANGLE_STRIP,a._webGL.indices.length,c.UNSIGNED_SHORT,0),f.deactivatePrimitiveShader()},f.WebGLGraphics.updateGraphics=function(a){for(var b=a._webGL.lastIndex;b3&&f.WebGLGraphics.buildPoly(c,a._webGL),c.lineWidth>0&&f.WebGLGraphics.buildLine(c,a._webGL)):c.type==f.Graphics.RECT?f.WebGLGraphics.buildRectangle(c,a._webGL):(c.type==f.Graphics.CIRC||c.type==f.Graphics.ELIP)&&f.WebGLGraphics.buildCircle(c,a._webGL)}a._webGL.lastIndex=a.graphicsData.length;var d=f.gl;a._webGL.glPoints=new Float32Array(a._webGL.points),d.bindBuffer(d.ARRAY_BUFFER,a._webGL.buffer),d.bufferData(d.ARRAY_BUFFER,a._webGL.glPoints,d.STATIC_DRAW),a._webGL.glIndicies=new Uint16Array(a._webGL.indices),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,a._webGL.indexBuffer),d.bufferData(d.ELEMENT_ARRAY_BUFFER,a._webGL.glIndicies,d.STATIC_DRAW)},f.WebGLGraphics.buildRectangle=function(a,b){var c=a.points,e=c[0],g=c[1],h=c[2],i=c[3];if(a.fill){var j=d(a.fillColor),k=a.fillAlpha,l=j[0]*k,m=j[1]*k,n=j[2]*k,o=b.points,p=b.indices,q=o.length/6;o.push(e,g),o.push(l,m,n,k),o.push(e+h,g),o.push(l,m,n,k),o.push(e,g+i),o.push(l,m,n,k),o.push(e+h,g+i),o.push(l,m,n,k),p.push(q,q,q+1,q+2,q+3,q+3)}a.lineWidth&&(a.points=[e,g,e+h,g,e+h,g+i,e,g+i,e,g],f.WebGLGraphics.buildLine(a,b))},f.WebGLGraphics.buildCircle=function(a,b){var c=a.points,e=c[0],g=c[1],h=c[2],i=c[3],j=40,k=2*Math.PI/j;if(a.fill){var l=d(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=b.points,r=b.indices,s=q.length/6;r.push(s);for(var t=0;j+1>t;t++)q.push(e,g,n,o,p,m),q.push(e+Math.sin(k*t)*h,g+Math.cos(k*t)*i,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){a.points=[];for(var t=0;j+1>t;t++)a.points.push(e+Math.sin(k*t)*h,g+Math.cos(k*t)*i);f.WebGLGraphics.buildLine(a,b)}},f.WebGLGraphics.buildLine=function(a,b){var c=a.points;if(0!=c.length){var e=new f.Point(c[0],c[1]),g=new f.Point(c[c.length-2],c[c.length-1]);if(e.x==g.x&&e.y==g.y){c.pop(),c.pop(),g=new f.Point(c[c.length-2],c[c.length-1]);var h=g.x+.5*(e.x-g.x),i=g.y+.5*(e.y-g.y);c.unshift(h,i),c.push(h,i)}var j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=b.points,F=b.indices,G=c.length/2,H=c.length,I=E.length/6,J=a.lineWidth/2,K=d(a.lineColor),L=a.lineAlpha,M=K[0]*L,N=K[1]*L,O=K[2]*L;j=c[0],k=c[1],l=c[2],m=c[3],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,E.push(j-p,k-q,M,N,O,L),E.push(j+p,k+q,M,N,O,L);for(var P=1;G-1>P;P++)j=c[2*(P-1)],k=c[2*(P-1)+1],l=c[2*P],m=c[2*P+1],n=c[2*(P+1)],o=c[2*(P+1)+1],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,r=-(m-o),s=l-n,D=Math.sqrt(r*r+s*s),r/=D,s/=D,r*=J,s*=J,v=-q+k-(-q+m),w=-p+l-(-p+j),x=(-p+j)*(-q+m)-(-p+l)*(-q+k),y=-s+o-(-s+m),z=-r+l-(-r+n),A=(-r+n)*(-s+m)-(-r+l)*(-s+o),B=v*z-y*w,0==B&&(B+=1),px=(w*A-z*x)/B,py=(y*x-v*A)/B,C=(px-l)*(px-l)+(py-m)+(py-m),C>19600?(t=p-r,u=q-s,D=Math.sqrt(t*t+u*u),t/=D,u/=D,t*=J,u*=J,E.push(l-t,m-u),E.push(M,N,O,L),E.push(l+t,m+u),E.push(M,N,O,L),E.push(l-t,m-u),E.push(M,N,O,L),H++):(E.push(px,py),E.push(M,N,O,L),E.push(l-(px-l),m-(py-m)),E.push(M,N,O,L));j=c[2*(G-2)],k=c[2*(G-2)+1],l=c[2*(G-1)],m=c[2*(G-1)+1],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,E.push(l-p,m-q),E.push(M,N,O,L),E.push(l+p,m+q),E.push(M,N,O,L),F.push(I);for(var P=0;H>P;P++)F.push(I++);F.push(I-1)}},f.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){for(var e=b.points,g=b.indices,h=c.length/2,i=d(a.fillColor),j=a.fillAlpha,k=i[0]*j,l=i[1]*j,m=i[2]*j,n=f.PolyK.Triangulate(c),o=e.length/6,p=0;pp;p++)e.push(c[2*p],c[2*p+1],k,l,m,j)}},f._defaultFrame=new f.Rectangle(0,0,1,1),f.gl,f.WebGLRenderer=function(a,b,c,d,e){this.transparent=!!d,this.width=a||800,this.height=b||600,this.view=c||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var g=this;this.view.addEventListener("webglcontextlost",function(a){g.handleContextLost(a)},!1),this.view.addEventListener("webglcontextrestored",function(a){g.handleContextRestored(a)},!1),this.batchs=[];var h={alpha:this.transparent,antialias:!!e,premultipliedAlpha:!1,stencil:!0};try{f.gl=this.gl=this.view.getContext("experimental-webgl",h)}catch(i){try{f.gl=this.gl=this.view.getContext("webgl",h)}catch(i){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}f.initDefaultShader(),f.initPrimitiveShader(),f.initDefaultStripShader();var j=this.gl;f.WebGLRenderer.gl=j,this.batch=new f.WebGLBatch(j),j.disable(j.DEPTH_TEST),j.disable(j.CULL_FACE),j.enable(j.BLEND),j.colorMask(!0,!0,!0,this.transparent),f.projection=new f.Point(400,300),f.offset=new f.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,f.pushShader(f.defaultShader),this.stageRenderGroup=new f.WebGLRenderGroup(this.gl)},f.WebGLRenderer.prototype.constructor=f.WebGLRenderer,f.WebGLRenderer.getBatch=function(){return 0==f._batchs.length?new f.WebGLBatch(f.WebGLRenderer.gl):f._batchs.pop()},f.WebGLRenderer.returnBatch=function(a){a.clean(),f._batchs.push(a)},f.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(this.__stage=a,this.stageRenderGroup.setRenderable(a)),f.WebGLRenderer.updateTextures(),f.visibleCount++,a.updateTransform();var b=this.gl;if(b.colorMask(!0,!0,!0,this.transparent),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],!this.transparent),b.clear(b.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=a.backgroundColorSplit,f.projection.x=this.width/2,f.projection.y=-this.height/2,this.stageRenderGroup.render(f.projection),a.interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))),f.Texture.frameUpdates.length>0){for(var c=0;cc;c++){var d=6*c,e=4*c;this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)},f.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizen;n++)renderable=this.batchs[n],renderable instanceof f.WebGLBatch?this.batchs[n].render():this.renderSpecial(renderable,b);endBatch instanceof f.WebGLBatch?endBatch.render(0,h+1):this.renderSpecial(endBatch,b)},f.WebGLRenderGroup.prototype.renderSpecial=function(a,b){f.shaderStack.length;var c=a.vcount===f.visibleCount;a instanceof f.TilingSprite?c&&this.renderTilingSprite(a,b):a instanceof f.Strip?c&&this.renderStrip(a,b):a instanceof f.CustomRenderable?c&&a.renderWebGL(this,b):a instanceof f.Graphics?c&&a.renderable&&f.WebGLGraphics.renderGraphics(a,b):a instanceof f.FilterBlock&&this.handleFilterBlock(a,b)},f.WebGLRenderGroup.prototype.handleFilterBlock=function(a,b){var c=f.gl;a.open?a.data instanceof Array?this.filterManager.pushFilter(a):(c.enable(c.STENCIL_TEST),c.colorMask(!1,!1,!1,!1),c.stencilFunc(c.ALWAYS,1,255),c.stencilOp(c.KEEP,c.KEEP,c.REPLACE),f.WebGLGraphics.renderGraphics(a.data,b),c.colorMask(!0,!0,!0,!0),c.stencilFunc(c.NOTEQUAL,0,255),c.stencilOp(c.KEEP,c.KEEP,c.KEEP)):a.data instanceof Array?this.filterManager.popFilter():c.disable(c.STENCIL_TEST)},f.WebGLRenderGroup.prototype.updateTexture=function(a){this.removeObject(a);for(var b=a.first;b!=this.root&&(b=b._iPrev,!b.renderable||!b.__renderGroup););for(var c=a.last;c._iNext&&(c=c._iNext,!c.renderable||!c.__renderGroup););this.insertObject(a,b,c)},f.WebGLRenderGroup.prototype.addFilterBlocks=function(a,b){a.__renderGroup=this,b.__renderGroup=this;for(var c=a;c!=this.root.first&&(c=c._iPrev,!c.renderable||!c.__renderGroup););this.insertAfter(a,c);for(var d=b;d!=this.root.first&&(d=d._iPrev,!d.renderable||!d.__renderGroup););this.insertAfter(b,d)},f.WebGLRenderGroup.prototype.removeFilterBlocks=function(a,b){this.removeObject(a),this.removeObject(b)},f.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(a){a.__renderGroup&&a.__renderGroup.removeDisplayObjectAndChildren(a);for(var b=a.first;b!=this.root.first&&(b=b._iPrev,!b.renderable||!b.__renderGroup););for(var c=a.last;c._iNext&&(c=c._iNext,!c.renderable||!c.__renderGroup););var d=a.first,e=a.last._iNext;do d.__renderGroup=this,d.renderable&&(this.insertObject(d,b,c),b=d),d=d._iNext;while(d!=e)},f.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(a){if(a.__renderGroup==this){a.last;do a.__renderGroup=null,a.renderable&&this.removeObject(a),a=a._iNext;while(a)}},f.WebGLRenderGroup.prototype.insertObject=function(a,b,c){var d=b,e=c;if(a instanceof f.Sprite){var g,h;if(d instanceof f.Sprite){if(g=d.batch,g&&g.texture==a.texture.baseTexture&&g.blendMode==a.blendMode)return g.insertAfter(a,d),void 0}else g=d;if(e)if(e instanceof f.Sprite){if(h=e.batch){if(h.texture==a.texture.baseTexture&&h.blendMode==a.blendMode)return h.insertBefore(a,e),void 0;if(h==g){var i=g.split(e),j=f.WebGLRenderer.getBatch(),k=this.batchs.indexOf(g);return j.init(a),this.batchs.splice(k+1,0,j,i),void 0}}}else h=e;var j=f.WebGLRenderer.getBatch();if(j.init(a),g){var k=this.batchs.indexOf(g);this.batchs.splice(k+1,0,j)}else this.batchs.push(j)}else a instanceof f.TilingSprite?this.initTilingSprite(a):a instanceof f.Strip&&this.initStrip(a),this.insertAfter(a,d)},f.WebGLRenderGroup.prototype.insertAfter=function(a,b){if(b instanceof f.Sprite){var c=b.batch;if(c)if(c.tail==b){var d=this.batchs.indexOf(c);this.batchs.splice(d+1,0,a)}else{var e=c.split(b.__next),d=this.batchs.indexOf(c);this.batchs.splice(d+1,0,a,e)}else this.batchs.push(a)}else{var d=this.batchs.indexOf(b);this.batchs.splice(d+1,0,a)}},f.WebGLRenderGroup.prototype.removeObject=function(a){var b;if(a instanceof f.Sprite){var c=a.batch;if(!c)return;c.remove(a),0==c.size&&(b=c)}else b=a;if(b){var d=this.batchs.indexOf(b);if(-1==d)return;if(0==d||d==this.batchs.length-1)return this.batchs.splice(d,1),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b),void 0;if(this.batchs[d-1]instanceof f.WebGLBatch&&this.batchs[d+1]instanceof f.WebGLBatch&&this.batchs[d-1].texture==this.batchs[d+1].texture&&this.batchs[d-1].blendMode==this.batchs[d+1].blendMode)return this.batchs[d-1].merge(this.batchs[d+1]),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b),f.WebGLRenderer.returnBatch(this.batchs[d+1]),this.batchs.splice(d,2),void 0;this.batchs.splice(d,1),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b)}},f.WebGLRenderGroup.prototype.initTilingSprite=function(a){var b=this.gl;a.verticies=new Float32Array([0,0,a.width,0,a.width,a.height,0,a.height]),a.uvs=new Float32Array([0,0,1,0,1,1,0,1]),a.colors=new Float32Array([1,1,1,1]),a.indices=new Uint16Array([0,1,3,2]),a._vertexBuffer=b.createBuffer(),a._indexBuffer=b.createBuffer(),a._uvBuffer=b.createBuffer(),a._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,a.verticies,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.bufferData(b.ARRAY_BUFFER,a.uvs,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,a.indices,b.STATIC_DRAW),a.texture.baseTexture._glTexture?(b.bindTexture(b.TEXTURE_2D,a.texture.baseTexture._glTexture),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.REPEAT),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.REPEAT),a.texture.baseTexture._powerOf2=!0):a.texture.baseTexture._powerOf2=!0},f.WebGLRenderGroup.prototype.renderStrip=function(a,b){var c=this.gl,d=f.stripShaderProgram;c.useProgram(d);var e=f.mat3.clone(a.worldTransform);f.mat3.transpose(e),c.uniformMatrix3fv(d.translationMatrix,!1,e),c.uniform2f(d.projectionVector,b.x,b.y),c.uniform1f(d.alpha,a.worldAlpha),a.dirty?(a.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,a.verticies,c.STATIC_DRAW),c.vertexAttribPointer(d.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW),c.vertexAttribPointer(d.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,a.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.verticies),c.vertexAttribPointer(d.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(d.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,a.indices.length,c.UNSIGNED_SHORT,0),c.useProgram(f.currentProgram)},f.WebGLRenderGroup.prototype.renderTilingSprite=function(a,b){var c=this.gl;f.shaderProgram;var d=a.tilePosition,e=a.tileScale,g=d.x/a.texture.baseTexture.width,h=d.y/a.texture.baseTexture.height,i=a.width/a.texture.baseTexture.width/e.x,j=a.height/a.texture.baseTexture.height/e.y;a.uvs[0]=0-g,a.uvs[1]=0-h,a.uvs[2]=1*i-g,a.uvs[3]=0-h,a.uvs[4]=1*i-g,a.uvs[5]=1*j-h,a.uvs[6]=0-g,a.uvs[7]=1*j-h,c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.uvs),this.renderStrip(a,b)},f.WebGLRenderGroup.prototype.initStrip=function(a){var b=this.gl;this.shaderProgram,a._vertexBuffer=b.createBuffer(),a._indexBuffer=b.createBuffer(),a._uvBuffer=b.createBuffer(),a._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,a.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.bufferData(b.ARRAY_BUFFER,a.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,a.indices,b.STATIC_DRAW)},f.WebGLFilterManager=function(){this.filterStack=[],this.texturePool=[],this.offsetX=0,this.offsetY=0,this.initShaderBuffers()},f.WebGLFilterManager.prototype.begin=function(a,b){this.width=2*a.x,this.height=2*-a.y,this.buffer=b},f.WebGLFilterManager.prototype.pushFilter=function(a){var b=f.gl;this.filterStack.push(a),a.filterPasses[0],this.offsetX+=a.target.filterArea.x,this.offsetY+=a.target.filterArea.y;var c=this.texturePool.pop();c||(c=new f.FilterTexture(this.width,this.height)),b.bindTexture(b.TEXTURE_2D,c.texture),this.getBounds(a.target);var d=a.target.filterArea;b.bindFramebuffer(b.FRAMEBUFFER,c.frameBuffer),b.viewport(0,0,d.width,d.height),f.projection.x=d.width/2,f.projection.y=-d.height/2,f.offset.x=-d.x,f.offset.y=-d.y,b.uniform2f(f.currentShader.projectionVector,d.width/2,-d.height/2),b.uniform2f(f.currentShader.offsetVector,-d.x,-d.y),b.colorMask(!0,!0,!0,!0),b.clearColor(0,0,0,0),b.clear(b.COLOR_BUFFER_BIT),a._glFilterTexture=c},f.WebGLFilterManager.prototype.popFilter=function(){var a=f.gl,b=this.filterStack.pop(),c=b.target.filterArea,d=b._glFilterTexture;if(b.filterPasses.length>1){a.viewport(0,0,c.width,c.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=c.height,this.vertexArray[2]=c.width,this.vertexArray[3]=c.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=c.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=c.width/this.width,this.uvArray[5]=c.height/this.height,this.uvArray[6]=c.width/this.width,this.uvArray[7]=c.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var e=d,g=this.texturePool.pop();g||(g=new f.FilterTexture(this.width,this.height)),a.bindFramebuffer(a.FRAMEBUFFER,g.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var h=0;hs?s:E,E=E>t?t:E,E=E>u?u:E,E=E>v?v:E,F=F>w?w:F,F=F>x?x:F,F=F>y?y:F,F=F>z?z:F,C=s>C?s:C,C=t>C?t:C,C=u>C?u:C,C=v>C?v:C,D=w>D?w:D,D=x>D?x:D,D=y>D?y:D,D=z>D?z:D),l=!1,A=A._iNext}while(A!=B);E=E>0?E:0,F=F>0?F:0,C=C0&&(f.Texture.frameUpdates=[])},f.CanvasRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b},f.CanvasRenderer.prototype.renderDisplayObject=function(a){var b,c=this.context;c.globalCompositeOperation="source-over";var d=a.last._iNext;a=a.first;do if(b=a.worldTransform,a.visible)if(a.renderable){if(a instanceof f.Sprite){var e=a.texture.frame;e&&e.width&&e.height&&(c.globalAlpha=a.worldAlpha,c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),c.drawImage(a.texture.baseTexture.source,e.x,e.y,e.width,e.height,a.anchor.x*-e.width,a.anchor.y*-e.height,e.width,e.height))}else if(a instanceof f.Strip)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),this.renderStrip(a);else if(a instanceof f.TilingSprite)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),this.renderTilingSprite(a);else if(a instanceof f.CustomRenderable)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),a.renderCanvas(this);else if(a instanceof f.Graphics)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),f.CanvasGraphics.renderGraphics(a,c);else if(a instanceof f.FilterBlock&&a.data instanceof f.Graphics){var g=a.data;if(a.open){c.save();var h=g.alpha,i=g.worldTransform;c.setTransform(i[0],i[3],i[1],i[4],i[2],i[5]),g.worldAlpha=.5,c.worldAlpha=0,f.CanvasGraphics.renderGraphicsMask(g,c),c.clip(),g.worldAlpha=h}else c.restore()}a=a._iNext}else a=a._iNext;else a=a.last._iNext;while(a!=d)},f.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies;a.uvs;var d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},f.CanvasRenderer.prototype.renderTilingSprite=function(a){var b=this.context;b.globalAlpha=a.worldAlpha,a.__tilePattern||(a.__tilePattern=b.createPattern(a.texture.baseTexture.source,"repeat")),b.beginPath();var c=a.tilePosition,d=a.tileScale;b.scale(d.x,d.y),b.translate(c.x,c.y),b.fillStyle=a.__tilePattern,b.fillRect(-c.x,-c.y,a.width/d.x,a.height/d.y),b.scale(1/d.x,1/d.y),b.translate(-c.x,-c.y),b.closePath()},f.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;e-2>f;f++){var g=2*f,h=c[g],i=c[g+2],j=c[g+4],k=c[g+1],l=c[g+3],m=c[g+5],n=d[g]*a.texture.width,o=d[g+2]*a.texture.width,p=d[g+4]*a.texture.width,q=d[g+1]*a.texture.height,r=d[g+3]*a.texture.height,s=d[g+5]*a.texture.height;b.save(),b.beginPath(),b.moveTo(h,k),b.lineTo(i,l),b.lineTo(j,m),b.closePath(),b.clip();var t=n*r+q*p+o*s-r*p-q*o-n*s,u=h*r+q*j+i*s-r*j-q*i-h*s,v=n*i+h*p+o*j-i*p-h*o-n*j,w=n*r*j+q*i*p+h*o*s-h*r*p-q*o*j-n*i*s,x=k*r+q*m+l*s-r*m-q*l-k*s,y=n*l+k*p+o*m-l*p-k*o-n*m,z=n*r*m+q*l*p+k*o*s-k*r*p-q*o*m-n*l*s;b.transform(u/t,x/t,v/t,y/t,w/t,z/t),b.drawImage(a.texture.baseTexture.source,0,0),b.restore()}},f.CanvasGraphics=function(){},f.CanvasGraphics.renderGraphics=function(a,b){for(var c=a.worldAlpha,d=0;d1&&(c=1,console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var d=0;1>d;d++){var e=a.graphicsData[d],g=e.points;if(e.type==f.Graphics.POLY){b.beginPath(),b.moveTo(g[0],g[1]);for(var h=1;hb?b:d,e=b+m>e?b+m:e,g=g>c?b:g,h=c+n>h?c+n:h}else if(k===f.Graphics.CIRC||k===f.Graphics.ELIP){b=a.x,c=a.y;var o=a.radius+l/2;d=d>b-o?b-o:d,e=b+o>e?b+o:e,g=g>c-o?c-o:g,h=c+o>h?c+o:h}else for(var p=0;pb-l?b-l:d,e=b+l>e?b+l:e,g=g>c-l?c-l:g,h=c+l>h?c+l:h}this.bounds=new f.Rectangle(d,g,e-d,h-g)}},f.Graphics.POLY=0,f.Graphics.RECT=1,f.Graphics.CIRC=2,f.Graphics.ELIP=3,f.Strip=function(a,b,c){f.DisplayObjectContainer.call(this),this.texture=a,this.blendMode=f.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(d){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=b,this.height=c,a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},f.Strip.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Strip.prototype.constructor=f.Strip,f.Strip.prototype.setTexture=function(a){this.texture=a,this.width=a.frame.width,this.height=a.frame.height,this.updateFrame=!0},f.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},f.Rope=function(a,b){f.Strip.call(this,a),this.points=b;try{this.verticies=new Float32Array(4*b.length),this.uvs=new Float32Array(4*b.length),this.colors=new Float32Array(2*b.length),this.indices=new Uint16Array(2*b.length)}catch(c){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},f.Rope.prototype=Object.create(f.Strip.prototype),f.Rope.prototype.constructor=f.Rope,f.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=this.indices,d=this.colors,e=a[0],f=a[0];this.count-=.2,b[0]=0,b[1]=1,b[2]=0,b[3]=1,d[0]=1,d[1]=1,c[0]=0,c[1]=1;for(var g=a.length,h=1;g>h;h++){var f=a[h],i=4*h,j=h/(g-1);h%2?(b[i]=j,b[i+1]=0,b[i+2]=j,b[i+3]=1):(b[i]=j,b[i+1]=0,b[i+2]=j,b[i+3]=1),i=2*h,d[i]=1,d[i+1]=1,i=2*h,c[i]=i,c[i+1]=i+1,e=f}}},f.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var b,c=this.verticies,d=a[0],e={x:0,y:0},g=a[0];this.count-=.2,c[0]=g.x+e.x,c[1]=g.y+e.y,c[2]=g.x-e.x,c[3]=g.y-e.y;for(var h=a.length,i=1;h>i;i++){var g=a[i],j=4*i;b=i1&&(k=1);var l=Math.sqrt(e.x*e.x+e.y*e.y),m=this.texture.height/2;e.x/=l,e.y/=l,e.x*=m,e.y*=m,c[j]=g.x+e.x,c[j+1]=g.y+e.y,c[j+2]=g.x-e.x,c[j+3]=g.y-e.y,d=g}f.DisplayObjectContainer.prototype.updateTransform.call(this)}},f.Rope.prototype.setTexture=function(a){this.texture=a,this.updateFrame=!0},f.TilingSprite=function(a,b,c){f.DisplayObjectContainer.call(this),this.texture=a,this.width=b,this.height=c,this.tileScale=new f.Point(1,1),this.tilePosition=new f.Point(0,0),this.renderable=!0,this.blendMode=f.blendModes.NORMAL},f.TilingSprite.prototype=Object.create(f.DisplayObjectContainer.prototype),f.TilingSprite.prototype.constructor=f.TilingSprite,f.TilingSprite.prototype.setTexture=function(a){this.texture=a,this.updateFrame=!0},f.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},f.Spine=function(a){if(f.DisplayObjectContainer.call(this),this.spineData=f.AnimCache[a],!this.spineData)throw new Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+a);this.skeleton=new l.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new l.AnimationStateData(this.spineData),this.state=new l.AnimationState(this.stateData),this.slotContainers=[];for(var b=0,c=this.skeleton.drawOrder.length;c>b;b++){var d=this.skeleton.drawOrder[b],e=d.attachment,g=new f.DisplayObjectContainer;if(this.slotContainers.push(g),this.addChild(g),e instanceof l.RegionAttachment){var h=e.rendererObject.name,i=this.createSprite(d,e.rendererObject);d.currentSprite=i,d.currentSpriteName=h,g.addChild(i)}}},f.Spine.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Spine.prototype.constructor=f.Spine,f.Spine.prototype.updateTransform=function(){this.lastTime=this.lastTime||Date.now();var a=.001*(Date.now()-this.lastTime);this.lastTime=Date.now(),this.state.update(a),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var b=this.skeleton.drawOrder,c=0,d=b.length;d>c;c++){var e=b[c],g=e.attachment,h=this.slotContainers[c];if(g instanceof l.RegionAttachment){if(g.rendererObject&&(!e.currentSpriteName||e.currentSpriteName!=g.name)){var i=g.rendererObject.name;if(void 0!==e.currentSprite&&(e.currentSprite.visible=!1),e.sprites=e.sprites||{},void 0!==e.sprites[i])e.sprites[i].visible=!0;else{var j=this.createSprite(e,g.rendererObject);h.addChild(j)}e.currentSprite=e.sprites[i],e.currentSpriteName=i}h.visible=!0;var k=e.bone;h.position.x=k.worldX+g.x*k.m00+g.y*k.m01,h.position.y=k.worldY+g.x*k.m10+g.y*k.m11,h.scale.x=k.worldScaleX,h.scale.y=k.worldScaleY,h.rotation=-(e.bone.worldRotation*Math.PI/180)}else h.visible=!1}f.DisplayObjectContainer.prototype.updateTransform.call(this)},f.Spine.prototype.createSprite=function(a,b){var c=f.TextureCache[b.name]?b.name:b.name+".png",d=new f.Sprite(f.Texture.fromFrame(c));return d.scale=b.scale,d.rotation=b.rotation,d.anchor.x=d.anchor.y=.5,a.sprites=a.sprites||{},a.sprites[b.name]=d,d};var l={};l.BoneData=function(a,b){this.name=a,this.parent=b},l.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},l.SlotData=function(a,b){this.name=a,this.boneData=b},l.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},l.Bone=function(a,b){this.data=a,this.parent=b,this.setToSetupPose()},l.Bone.yDown=!1,l.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(a,b){var c=this.parent;null!=c?(this.worldX=this.x*c.m00+this.y*c.m01+c.worldX,this.worldY=this.x*c.m10+this.y*c.m11+c.worldY,this.worldScaleX=c.worldScaleX*this.scaleX,this.worldScaleY=c.worldScaleY*this.scaleY,this.worldRotation=c.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var d=this.worldRotation*Math.PI/180,e=Math.cos(d),f=Math.sin(d);this.m00=e*this.worldScaleX,this.m10=f*this.worldScaleX,this.m01=-f*this.worldScaleY,this.m11=e*this.worldScaleY,a&&(this.m00=-this.m00,this.m01=-this.m01),b&&(this.m10=-this.m10,this.m11=-this.m11),l.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var a=this.data;this.x=a.x,this.y=a.y,this.rotation=a.rotation,this.scaleX=a.scaleX,this.scaleY=a.scaleY}},l.Slot=function(a,b,c){this.data=a,this.skeleton=b,this.bone=c,this.setToSetupPose()},l.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(a){this.attachment=a,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(a){this._attachmentTime=this.skeleton.time-a},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var a=this.data;this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a;for(var b=this.skeleton.data.slots,c=0,d=b.length;d>c;c++)if(b[c]==a){this.setAttachment(a.attachmentName?this.skeleton.getAttachmentBySlotIndex(c,a.attachmentName):null);break}}},l.Skin=function(a){this.name=a,this.attachments={}},l.Skin.prototype={addAttachment:function(a,b,c){this.attachments[a+":"+b]=c},getAttachment:function(a,b){return this.attachments[a+":"+b]},_attachAll:function(a,b){for(var c in b.attachments){var d=c.indexOf(":"),e=parseInt(c.substring(0,d)),f=c.substring(d+1),g=a.slots[e];if(g.attachment&&g.attachment.name==f){var h=this.getAttachment(e,f);h&&g.setAttachment(h)}}}},l.Animation=function(a,b,c){this.name=a,this.timelines=b,this.duration=c},l.Animation.prototype={apply:function(a,b,c){c&&0!=this.duration&&(b%=this.duration);for(var d=this.timelines,e=0,f=d.length;f>e;e++)d[e].apply(a,b,1)},mix:function(a,b,c,d){c&&0!=this.duration&&(b%=this.duration);for(var e=this.timelines,f=0,g=e.length;g>f;f++)e[f].apply(a,b,d)}},l.binarySearch=function(a,b,c){var d=0,e=Math.floor(a.length/c)-2;if(0==e)return c;for(var f=e>>>1;;){if(a[(f+1)*c]<=b?d=f+1:e=f,d==e)return(d+1)*c;f=d+e>>>1}},l.linearSearch=function(a,b,c){for(var d=0,e=a.length-c;e>=d;d+=c)if(a[d]>b)return d;return-1},l.Curves=function(a){this.curves=[],this.curves.length=6*(a-1)},l.Curves.prototype={setLinear:function(a){this.curves[6*a]=0},setStepped:function(a){this.curves[6*a]=-1},setCurve:function(a,b,c,d,e){var f=.1,g=f*f,h=g*f,i=3*f,j=3*g,k=6*g,l=6*h,m=2*-b+d,n=2*-c+e,o=3*(b-d)+1,p=3*(c-e)+1,q=6*a,r=this.curves;r[q]=b*i+m*j+o*h,r[q+1]=c*i+n*j+p*h,r[q+2]=m*k+o*l,r[q+3]=n*k+p*l,r[q+4]=o*l,r[q+5]=p*l},getCurvePercent:function(a,b){b=0>b?0:b>1?1:b;var c=6*a,d=this.curves,e=d[c];if(!e)return b;if(-1==e)return 0;for(var f=d[c+1],g=d[c+2],h=d[c+3],i=d[c+4],j=d[c+5],k=e,l=f,m=8;;){if(k>=b){var n=k-e,o=l-f;return o+(l-o)*(b-n)/(k-n)}if(0==m)break;m--,e+=g,f+=h,g+=i,h+=j,k+=e,l+=f}return l+(1-l)*(b-k)/(1-k)}},l.RotateTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=2*a},l.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(a,b,c){a*=2,this.frames[a]=b,this.frames[a+1]=c},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-2]){for(var f=e.data.rotation+d[d.length-1]-e.rotation;f>180;)f-=360;for(;-180>f;)f+=360;return e.rotation+=f*c,void 0}var g=l.binarySearch(d,b,2),h=d[g-1],i=d[g],j=1-(b-i)/(d[g-2]-i);j=this.curves.getCurvePercent(g/2-1,j);for(var f=d[g+1]-h;f>180;)f-=360;for(;-180>f;)f+=360;for(f=e.data.rotation+(h+f*j)-e.rotation;f>180;)f-=360;for(;-180>f;)f+=360;e.rotation+=f*c}}},l.TranslateTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=3*a},l.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(a,b,c,d){a*=3,this.frames[a]=b,this.frames[a+1]=c,this.frames[a+2]=d},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-3])return e.x+=(e.data.x+d[d.length-2]-e.x)*c,e.y+=(e.data.y+d[d.length-1]-e.y)*c,void 0;var f=l.binarySearch(d,b,3),g=d[f-2],h=d[f-1],i=d[f],j=1-(b-i)/(d[f+-3]-i);j=this.curves.getCurvePercent(f/3-1,j),e.x+=(e.data.x+g+(d[f+1]-g)*j-e.x)*c,e.y+=(e.data.y+h+(d[f+2]-h)*j-e.y)*c}}},l.ScaleTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=3*a},l.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(a,b,c,d){a*=3,this.frames[a]=b,this.frames[a+1]=c,this.frames[a+2]=d},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-3])return e.scaleX+=(e.data.scaleX-1+d[d.length-2]-e.scaleX)*c,e.scaleY+=(e.data.scaleY-1+d[d.length-1]-e.scaleY)*c,void 0;var f=l.binarySearch(d,b,3),g=d[f-2],h=d[f-1],i=d[f],j=1-(b-i)/(d[f+-3]-i);j=this.curves.getCurvePercent(f/3-1,j),e.scaleX+=(e.data.scaleX-1+g+(d[f+1]-g)*j-e.scaleX)*c,e.scaleY+=(e.data.scaleY-1+h+(d[f+2]-h)*j-e.scaleY)*c}}},l.ColorTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=5*a},l.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(c,d){c*=5,this.frames[c]=d,this.frames[c+1]=r,this.frames[c+2]=g,this.frames[c+3]=b,this.frames[c+4]=a},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-5]){var f=d.length-1;return e.r=d[f-3],e.g=d[f-2],e.b=d[f-1],e.a=d[f],void 0}var g=l.binarySearch(d,b,5),h=d[g-4],i=d[g-3],j=d[g-2],k=d[g-1],m=d[g],n=1-(b-m)/(d[g-5]-m);n=this.curves.getCurvePercent(g/5-1,n);var o=h+(d[g+1]-h)*n,p=i+(d[g+2]-i)*n,q=j+(d[g+3]-j)*n,r=k+(d[g+4]-k)*n;1>c?(e.r+=(o-e.r)*c,e.g+=(p-e.g)*c,e.b+=(q-e.b)*c,e.a+=(r-e.a)*c):(e.r=o,e.g=p,e.b=q,e.a=r)}}},l.AttachmentTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=a,this.attachmentNames=[],this.attachmentNames.length=a},l.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length},setFrame:function(a,b,c){this.frames[a]=b,this.attachmentNames[a]=c},apply:function(a,b){var c=this.frames;if(!(b=c[c.length-1]?c.length-1:l.binarySearch(c,b,1)-1;var e=this.attachmentNames[d];a.slots[this.slotIndex].setAttachment(e?a.getAttachmentBySlotIndex(this.slotIndex,e):null)}}},l.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},l.SkeletonData.prototype={defaultSkin:null,findBone:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},findBoneIndex:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].name==a)return c;return-1},findSlot:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].name==a)return slot[c];return null},findSlotIndex:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].name==a)return c;return-1},findSkin:function(a){for(var b=this.skins,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},findAnimation:function(a){for(var b=this.animations,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null}},l.Skeleton=function(a){this.data=a,this.bones=[];for(var b=0,c=a.bones.length;c>b;b++){var d=a.bones[b],e=d.parent?this.bones[a.bones.indexOf(d.parent)]:null;this.bones.push(new l.Bone(d,e))}this.slots=[],this.drawOrder=[];for(var b=0,c=a.slots.length;c>b;b++){var f=a.slots[b],g=this.bones[a.bones.indexOf(f.boneData)],h=new l.Slot(f,this,g);this.slots.push(h),this.drawOrder.push(h)}},l.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var a=this.flipX,b=this.flipY,c=this.bones,d=0,e=c.length;e>d;d++)c[d].updateWorldTransform(a,b)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var a=this.bones,b=0,c=a.length;c>b;b++)a[b].setToSetupPose()},setSlotsToSetupPose:function(){for(var a=this.slots,b=0,c=a.length;c>b;b++)a[b].setToSetupPose(b)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return b[c];return null},findBoneIndex:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return c;return-1},findSlot:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return b[c];return null},findSlotIndex:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return c;return-1},setSkinByName:function(a){var b=this.data.findSkin(a);if(!b)throw"Skin not found: "+a;this.setSkin(b)},setSkin:function(a){this.skin&&a&&a._attachAll(this,this.skin),this.skin=a},getAttachmentBySlotName:function(a,b){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(a),b)},getAttachmentBySlotIndex:function(a,b){if(this.skin){var c=this.skin.getAttachment(a,b);if(c)return c}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(a,b):null},setAttachment:function(a,b){for(var c=this.slots,d=0,e=c.size;e>d;d++){var f=c[d];if(f.data.name==a){var g=null;if(b&&(g=this.getAttachment(d,b),null==g))throw"Attachment not found: "+b+", for slot: "+a;return f.setAttachment(g),void 0}}throw"Slot not found: "+a},update:function(a){time+=a}},l.AttachmentType={region:0},l.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},l.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(a,b,c,d,e){var f=this.uvs;e?(f[2]=a,f[3]=d,f[4]=a,f[5]=b,f[6]=c,f[7]=b,f[0]=c,f[1]=d):(f[0]=a,f[1]=d,f[2]=a,f[3]=b,f[4]=c,f[5]=b,f[6]=c,f[7]=d)},updateOffset:function(){var a=this.width/this.regionOriginalWidth*this.scaleX,b=this.height/this.regionOriginalHeight*this.scaleY,c=-this.width/2*this.scaleX+this.regionOffsetX*a,d=-this.height/2*this.scaleY+this.regionOffsetY*b,e=c+this.regionWidth*a,f=d+this.regionHeight*b,g=this.rotation*Math.PI/180,h=Math.cos(g),i=Math.sin(g),j=c*h+this.x,k=c*i,l=d*h+this.y,m=d*i,n=e*h+this.x,o=e*i,p=f*h+this.y,q=f*i,r=this.offset;r[0]=j-m,r[1]=l+k,r[2]=j-q,r[3]=p+k,r[4]=n-q,r[5]=p+o,r[6]=n-m,r[7]=l+o},computeVertices:function(a,b,c,d){a+=c.worldX,b+=c.worldY;var e=c.m00,f=c.m01,g=c.m10,h=c.m11,i=this.offset;d[0]=i[0]*e+i[1]*f+a,d[1]=i[0]*g+i[1]*h+b,d[2]=i[2]*e+i[3]*f+a,d[3]=i[2]*g+i[3]*h+b,d[4]=i[4]*e+i[5]*f+a,d[5]=i[4]*g+i[5]*h+b,d[6]=i[6]*e+i[7]*f+a,d[7]=i[6]*g+i[7]*h+b}},l.AnimationStateData=function(a){this.skeletonData=a,this.animationToMixTime={}},l.AnimationStateData.prototype={defaultMix:0,setMixByName:function(a,b,c){var d=this.skeletonData.findAnimation(a);if(!d)throw"Animation not found: "+a;var e=this.skeletonData.findAnimation(b);if(!e)throw"Animation not found: "+b;this.setMix(d,e,c)},setMix:function(a,b,c){this.animationToMixTime[a.name+":"+b.name]=c},getMix:function(a,b){var c=this.animationToMixTime[a.name+":"+b.name];return c?c:this.defaultMix}},l.AnimationState=function(a){this.data=a,this.queue=[]},l.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(a){if(this.currentTime+=a,this.previousTime+=a,this.mixTime+=a,this.queue.length>0){var b=this.queue[0];this.currentTime>=b.delay&&(this._setAnimation(b.animation,b.loop),this.queue.shift())}},apply:function(a){if(this.current)if(this.previous){this.previous.apply(a,this.previousTime,this.previousLoop);var b=this.mixTime/this.mixDuration;b>=1&&(b=1,this.previous=null),this.current.mix(a,this.currentTime,this.currentLoop,b)}else this.current.apply(a,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(a,b){this.previous=null,a&&this.current&&(this.mixDuration=this.data.getMix(this.current,a),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=a,this.currentLoop=b,this.currentTime=0},setAnimationByName:function(a,b){var c=this.data.skeletonData.findAnimation(a);if(!c)throw"Animation not found: "+a;this.setAnimation(c,b)},setAnimation:function(a,b){this.queue.length=0,this._setAnimation(a,b)},addAnimationByName:function(a,b,c){var d=this.data.skeletonData.findAnimation(a);if(!d)throw"Animation not found: "+a;this.addAnimation(d,b,c)},addAnimation:function(a,b,c){var d={};if(d.animation=a,d.loop=b,!c||0>=c){var e=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;c=null!=e?e.duration-this.data.getMix(e,a)+(c||0):0}d.delay=c,this.queue.push(d)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},l.SkeletonJson=function(a){this.attachmentLoader=a},l.SkeletonJson.prototype={scale:1,readSkeletonData:function(a){for(var b=new l.SkeletonData,c=a.bones,d=0,e=c.length;e>d;d++){var f=c[d],g=null;if(f.parent&&(g=b.findBone(f.parent),!g))throw"Parent bone not found: "+f.parent;var h=new l.BoneData(f.name,g);h.length=(f.length||0)*this.scale,h.x=(f.x||0)*this.scale,h.y=(f.y||0)*this.scale,h.rotation=f.rotation||0,h.scaleX=f.scaleX||1,h.scaleY=f.scaleY||1,b.bones.push(h)}for(var i=a.slots,d=0,e=i.length;e>d;d++){var j=i[d],h=b.findBone(j.bone);if(!h)throw"Slot bone not found: "+j.bone;var k=new l.SlotData(j.name,h),m=j.color;m&&(k.r=l.SkeletonJson.toColor(m,0),k.g=l.SkeletonJson.toColor(m,1),k.b=l.SkeletonJson.toColor(m,2),k.a=l.SkeletonJson.toColor(m,3)),k.attachmentName=j.attachment,b.slots.push(k)}var n=a.skins;for(var o in n)if(n.hasOwnProperty(o)){var p=n[o],q=new l.Skin(o);for(var r in p)if(p.hasOwnProperty(r)){var s=b.findSlotIndex(r),t=p[r];for(var u in t)if(t.hasOwnProperty(u)){var v=this.readAttachment(q,u,t[u]);null!=v&&q.addAttachment(s,u,v)}}b.skins.push(q),"default"==q.name&&(b.defaultSkin=q)}var w=a.animations;for(var x in w)w.hasOwnProperty(x)&&this.readAnimation(x,w[x],b);return b},readAttachment:function(a,b,c){b=c.name||b;var d=l.AttachmentType[c.type||"region"];if(d==l.AttachmentType.region){var e=new l.RegionAttachment; -return e.x=(c.x||0)*this.scale,e.y=(c.y||0)*this.scale,e.scaleX=c.scaleX||1,e.scaleY=c.scaleY||1,e.rotation=c.rotation||0,e.width=(c.width||32)*this.scale,e.height=(c.height||32)*this.scale,e.updateOffset(),e.rendererObject={},e.rendererObject.name=b,e.rendererObject.scale={},e.rendererObject.scale.x=e.scaleX,e.rendererObject.scale.y=e.scaleY,e.rendererObject.rotation=-e.rotation*Math.PI/180,e}throw"Unknown attachment type: "+d},readAnimation:function(a,b,c){var d=[],e=0,f=b.bones;for(var g in f)if(f.hasOwnProperty(g)){var h=c.findBoneIndex(g);if(-1==h)throw"Bone not found: "+g;var i=f[g];for(var j in i)if(i.hasOwnProperty(j)){var k=i[j];if("rotate"==j){var m=new l.RotateTimeline(k.length);m.boneIndex=h;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o];m.setFrame(n,q.time,q.angle),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[2*m.getFrameCount()-2])}else{if("translate"!=j&&"scale"!=j)throw"Invalid timeline type for a bone: "+j+" ("+g+")";var m,r=1;"scale"==j?m=new l.ScaleTimeline(k.length):(m=new l.TranslateTimeline(k.length),r=this.scale),m.boneIndex=h;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o],s=(q.x||0)*r,t=(q.y||0)*r;m.setFrame(n,q.time,s,t),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[3*m.getFrameCount()-3])}}}var u=b.slots;for(var v in u)if(u.hasOwnProperty(v)){var w=u[v],x=c.findSlotIndex(v);for(var j in w)if(w.hasOwnProperty(j)){var k=w[j];if("color"==j){var m=new l.ColorTimeline(k.length);m.slotIndex=x;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o],y=q.color,z=l.SkeletonJson.toColor(y,0),A=l.SkeletonJson.toColor(y,1),B=l.SkeletonJson.toColor(y,2),C=l.SkeletonJson.toColor(y,3);m.setFrame(n,q.time,z,A,B,C),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[5*m.getFrameCount()-5])}else{if("attachment"!=j)throw"Invalid timeline type for a slot: "+j+" ("+v+")";var m=new l.AttachmentTimeline(k.length);m.slotIndex=x;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o];m.setFrame(n++,q.time,q.name)}d.push(m),e=Math.max(e,m.frames[m.getFrameCount()-1])}}}c.animations.push(new l.Animation(a,d,e))}},l.SkeletonJson.readCurve=function(a,b,c){var d=c.curve;d&&("stepped"==d?a.curves.setStepped(b):d instanceof Array&&a.curves.setCurve(b,d[0],d[1],d[2],d[3]))},l.SkeletonJson.toColor=function(a,b){if(8!=a.length)throw"Color hexidecimal length must be 8, recieved: "+a;return parseInt(a.substring(2*b,2),16)/255},l.Atlas=function(a,b){this.textureLoader=b,this.pages=[],this.regions=[];var c=new l.AtlasReader(a),d=[];d.length=4;for(var e=null;;){var f=c.readLine();if(null==f)break;if(f=c.trim(f),0==f.length)e=null;else if(e){var g=new l.AtlasRegion;g.name=f,g.page=e,g.rotate="true"==c.readValue(),c.readTuple(d);var h=parseInt(d[0]),i=parseInt(d[1]);c.readTuple(d);var j=parseInt(d[0]),k=parseInt(d[1]);g.u=h/e.width,g.v=i/e.height,g.rotate?(g.u2=(h+k)/e.width,g.v2=(i+j)/e.height):(g.u2=(h+j)/e.width,g.v2=(i+k)/e.height),g.x=h,g.y=i,g.width=Math.abs(j),g.height=Math.abs(k),4==c.readTuple(d)&&(g.splits=[parseInt(d[0]),parseInt(d[1]),parseInt(d[2]),parseInt(d[3])],4==c.readTuple(d)&&(g.pads=[parseInt(d[0]),parseInt(d[1]),parseInt(d[2]),parseInt(d[3])],c.readTuple(d))),g.originalWidth=parseInt(d[0]),g.originalHeight=parseInt(d[1]),c.readTuple(d),g.offsetX=parseInt(d[0]),g.offsetY=parseInt(d[1]),g.index=parseInt(c.readValue()),this.regions.push(g)}else{e=new l.AtlasPage,e.name=f,e.format=l.Atlas.Format[c.readValue()],c.readTuple(d),e.minFilter=l.Atlas.TextureFilter[d[0]],e.magFilter=l.Atlas.TextureFilter[d[1]];var m=c.readValue();e.uWrap=l.Atlas.TextureWrap.clampToEdge,e.vWrap=l.Atlas.TextureWrap.clampToEdge,"x"==m?e.uWrap=l.Atlas.TextureWrap.repeat:"y"==m?e.vWrap=l.Atlas.TextureWrap.repeat:"xy"==m&&(e.uWrap=e.vWrap=l.Atlas.TextureWrap.repeat),b.load(e,f),this.pages.push(e)}}},l.Atlas.prototype={findRegion:function(a){for(var b=this.regions,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},dispose:function(){for(var a=this.pages,b=0,c=a.length;c>b;b++)this.textureLoader.unload(a[b].rendererObject)},updateUVs:function(a){for(var b=this.regions,c=0,d=b.length;d>c;c++){var e=b[c];e.page==a&&(e.u=e.x/a.width,e.v=e.y/a.height,e.rotate?(e.u2=(e.x+e.height)/a.width,e.v2=(e.y+e.width)/a.height):(e.u2=(e.x+e.width)/a.width,e.v2=(e.y+e.height)/a.height))}}},l.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},l.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},l.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},l.AtlasPage=function(){},l.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},l.AtlasRegion=function(){},l.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},l.AtlasReader=function(a){this.lines=a.split(/\r\n|\r|\n/)},l.AtlasReader.prototype={index:0,trim:function(a){return a.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var a=this.readLine(),b=a.indexOf(":");if(-1==b)throw"Invalid line: "+a;return this.trim(a.substring(b+1))},readTuple:function(a){var b=this.readLine(),c=b.indexOf(":");if(-1==c)throw"Invalid line: "+b;for(var d=0,e=c+1;3>d;d++){var f=b.indexOf(",",e);if(-1==f){if(0==d)throw"Invalid line: "+b;break}a[d]=this.trim(b.substr(e,f-e)),e=f+1}return a[d]=this.trim(b.substring(e)),d+1}},l.AtlasAttachmentLoader=function(a){this.atlas=a},l.AtlasAttachmentLoader.prototype={newAttachment:function(a,b,c){switch(b){case l.AttachmentType.region:var d=this.atlas.findRegion(c);if(!d)throw"Region not found in atlas: "+c+" ("+b+")";var e=new l.RegionAttachment(c);return e.rendererObject=d,e.setUVs(d.u,d.v,d.u2,d.v2,d.rotate),e.regionOffsetX=d.offsetX,e.regionOffsetY=d.offsetY,e.regionWidth=d.width,e.regionHeight=d.height,e.regionOriginalWidth=d.originalWidth,e.regionOriginalHeight=d.originalHeight,e}throw"Unknown attachment type: "+b}},f.AnimCache={},l.Bone.yDown=!0,f.CustomRenderable=function(){f.DisplayObject.call(this),this.renderable=!0},f.CustomRenderable.prototype=Object.create(f.DisplayObject.prototype),f.CustomRenderable.prototype.constructor=f.CustomRenderable,f.CustomRenderable.prototype.renderCanvas=function(){},f.CustomRenderable.prototype.initWebGL=function(){},f.CustomRenderable.prototype.renderWebGL=function(){},f.BaseTextureCache={},f.texturesToUpdate=[],f.texturesToDestroy=[],f.BaseTexture=function(a){if(f.EventTarget.call(this),this.width=100,this.height=100,this.hasLoaded=!1,this.source=a,a){if(this.source instanceof Image||this.source instanceof HTMLImageElement)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,f.texturesToUpdate.push(this);else{var b=this;this.source.onload=function(){b.hasLoaded=!0,b.width=b.source.width,b.height=b.source.height,f.texturesToUpdate.push(b),b.dispatchEvent({type:"loaded",content:b})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,f.texturesToUpdate.push(this);this._powerOf2=!1}},f.BaseTexture.prototype.constructor=f.BaseTexture,f.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,f.texturesToDestroy.push(this)},f.BaseTexture.fromImage=function(a,b){var c=f.BaseTextureCache[a];if(!c){var d=new Image;b&&(d.crossOrigin=""),d.src=a,c=new f.BaseTexture(d),f.BaseTextureCache[a]=c}return c},f.TextureCache={},f.FrameCache={},f.Texture=function(a,b){if(f.EventTarget.call(this),b||(this.noFrame=!0,b=new f.Rectangle(0,0,1,1)),a instanceof f.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=b,this.trim=new f.Point,this.scope=this,a.hasLoaded)this.noFrame&&(b=new f.Rectangle(0,0,a.width,a.height)),this.setFrame(b);else{var c=this;a.addEventListener("loaded",function(){c.onBaseTextureLoaded()})}},f.Texture.prototype.constructor=f.Texture,f.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new f.Rectangle(0,0,a.width,a.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},f.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy()},f.Texture.prototype.setFrame=function(a){if(this.frame=a,this.width=a.width,this.height=a.height,a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,f.Texture.frameUpdates.push(this)},f.Texture.fromImage=function(a,b){var c=f.TextureCache[a];return c||(c=new f.Texture(f.BaseTexture.fromImage(a,b)),f.TextureCache[a]=c),c},f.Texture.fromFrame=function(a){var b=f.TextureCache[a];if(!b)throw new Error("The frameId '"+a+"' does not exist in the texture cache "+this);return b},f.Texture.fromCanvas=function(a){var b=new f.BaseTexture(a);return new f.Texture(b)},f.Texture.addTextureToCache=function(a,b){f.TextureCache[b]=a},f.Texture.removeTextureFromCache=function(a){var b=f.TextureCache[a];return f.TextureCache[a]=null,b},f.Texture.frameUpdates=[],f.RenderTexture=function(a,b){f.EventTarget.call(this),this.width=a||100,this.height=b||100,this.indetityMatrix=f.mat3.create(),this.frame=new f.Rectangle(0,0,this.width,this.height),f.gl?this.initWebGL():this.initCanvas()},f.RenderTexture.prototype=Object.create(f.Texture.prototype),f.RenderTexture.prototype.constructor=f.RenderTexture,f.RenderTexture.prototype.initWebGL=function(){var a=f.gl;this.glFramebuffer=a.createFramebuffer(),a.bindFramebuffer(a.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new f.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=a.createTexture(),a.bindTexture(a.TEXTURE_2D,this.baseTexture._glTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,this.width,this.height,0,a.RGBA,a.UNSIGNED_BYTE,null),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,a.bindFramebuffer(a.FRAMEBUFFER,this.glFramebuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new f.Point(this.width/2,-this.height/2),this.render=this.renderWebGL},f.RenderTexture.prototype.resize=function(a,b){if(this.width=a,this.height=b,f.gl){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=f.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTexture),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.frame.width=this.width,this.frame.height=this.height,this.renderer.resize(this.width,this.height)},f.RenderTexture.prototype.initCanvas=function(){this.renderer=new f.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new f.BaseTexture(this.renderer.view),this.frame=new f.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},f.RenderTexture.prototype.renderWebGL=function(a,b,c){var d=f.gl;d.colorMask(!0,!0,!0,!0),d.viewport(0,0,this.width,this.height),d.bindFramebuffer(d.FRAMEBUFFER,this.glFramebuffer),c&&(d.clearColor(0,0,0,0),d.clear(d.COLOR_BUFFER_BIT));var e=a.children,g=a.worldTransform;a.worldTransform=f.mat3.create(),a.worldTransform[4]=-1,a.worldTransform[5]=-2*this.projection.y,b&&(a.worldTransform[2]=b.x,a.worldTransform[5]-=b.y),f.visibleCount++,a.vcount=f.visibleCount;for(var h=0,i=e.length;i>h;h++)e[h].updateTransform();var j=a.__renderGroup;j?a==j.root?j.render(this.projection,this.glFramebuffer):j.renderSpecific(a,this.projection,this.glFramebuffer):(this.renderGroup||(this.renderGroup=new f.WebGLRenderGroup(d)),this.renderGroup.setRenderable(a),this.renderGroup.render(this.projection,this.glFramebuffer)),a.worldTransform=g},f.RenderTexture.prototype.renderCanvas=function(a,b,c){var d=a.children;a.worldTransform=f.mat3.create(),b&&(a.worldTransform[2]=b.x,a.worldTransform[5]=b.y);for(var e=0,g=d.length;g>e;e++)d[e].updateTransform();c&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(a),this.renderer.context.setTransform(1,0,0,1,0,0)},f.AssetLoader=function(a,b){f.EventTarget.call(this),this.assetURLs=a,this.crossorigin=b,this.loadersByType={jpg:f.ImageLoader,jpeg:f.ImageLoader,png:f.ImageLoader,gif:f.ImageLoader,json:f.JsonLoader,anim:f.SpineLoader,xml:f.BitmapFontLoader,fnt:f.BitmapFontLoader}},f.AssetLoader.prototype.constructor=f.AssetLoader,f.AssetLoader.prototype.load=function(){var a=this;this.loadCount=this.assetURLs.length;for(var b=0;bh;h++)for(var i=0;d>i;i++,g++){var j=new f.Texture(this.texture,{x:i*a,y:h*b,width:a,height:b});this.frames.push(j),c&&(f.TextureCache[c+"-"+g]=j)}if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var k=this;this.texture.baseTexture.addEventListener("loaded",function(){k.onLoaded()})}},f.BitmapFontLoader=function(a,b){f.EventTarget.call(this),this.url=a,this.crossorigin=b,this.baseUrl=a.replace(/[^\/]*$/,""),this.texture=null},f.BitmapFontLoader.prototype.constructor=f.BitmapFontLoader,f.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var a=this;this.ajaxRequest.onreadystatechange=function(){a.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},f.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,b=new f.ImageLoader(a,this.crossorigin);this.texture=b.texture.baseTexture;var c={},d=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],e=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];c.font=d.attributes.getNamedItem("face").nodeValue,c.size=parseInt(d.attributes.getNamedItem("size").nodeValue,10),c.lineHeight=parseInt(e.attributes.getNamedItem("lineHeight").nodeValue,10),c.chars={};for(var g=this.ajaxRequest.responseXML.getElementsByTagName("char"),h=0;h>16)/255,(255&a>>8)/255,(255&a)/255]}function d(a){return[(255&a>>16)/255,(255&a>>8)/255,(255&a)/255]}var e=this,f=f||{};f.Point=function(a,b){this.x=a||0,this.y=b||0},f.Point.prototype.clone=function(){return new f.Point(this.x,this.y)},f.Point.prototype.constructor=f.Point,f.Rectangle=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},f.Rectangle.prototype.clone=function(){return new f.Rectangle(this.x,this.y,this.width,this.height)},f.Rectangle.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=this.x;if(a>=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},f.Rectangle.prototype.constructor=f.Rectangle,f.Polygon=function(a){if(a instanceof Array||(a=Array.prototype.slice.call(arguments)),"number"==typeof a[0]){for(var b=[],c=0,d=a.length;d>c;c+=2)b.push(new f.Point(a[c],a[c+1]));a=b}this.points=a},f.Polygon.prototype.clone=function(){for(var a=[],b=0;bb!=i>b&&(h-f)*(b-g)/(i-g)+f>a;j&&(c=!c)}return c},f.Polygon.prototype.constructor=f.Polygon,f.Circle=function(a,b,c){this.x=a||0,this.y=b||0,this.radius=c||0},f.Circle.prototype.clone=function(){return new f.Circle(this.x,this.y,this.radius)},f.Circle.prototype.contains=function(a,b){if(this.radius<=0)return!1;var c=this.x-a,d=this.y-b,e=this.radius*this.radius;return c*=c,d*=d,e>=c+d},f.Circle.prototype.constructor=f.Circle,f.Ellipse=function(a,b,c,d){this.x=a||0,this.y=b||0,this.width=c||0,this.height=d||0},f.Ellipse.prototype.clone=function(){return new f.Ellipse(this.x,this.y,this.width,this.height)},f.Ellipse.prototype.contains=function(a,b){if(this.width<=0||this.height<=0)return!1;var c=(a-this.x)/this.width-.5,d=(b-this.y)/this.height-.5;return c*=c,d*=d,.25>c+d},f.Ellipse.getBounds=function(){return new f.Rectangle(this.x,this.y,this.width,this.height)},f.Ellipse.prototype.constructor=f.Ellipse,c(),f.mat3={},f.mat3.create=function(){var a=new f.Matrix(9);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},f.mat3.identity=function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},f.mat4={},f.mat4.create=function(){var a=new f.Matrix(16);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},f.mat3.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],m=b[0],n=b[1],o=b[2],p=b[3],q=b[4],r=b[5],s=b[6],t=b[7],u=b[8];return c[0]=m*d+n*g+o*j,c[1]=m*e+n*h+o*k,c[2]=m*f+n*i+o*l,c[3]=p*d+q*g+r*j,c[4]=p*e+q*h+r*k,c[5]=p*f+q*i+r*l,c[6]=s*d+t*g+u*j,c[7]=s*e+t*h+u*k,c[8]=s*f+t*i+u*l,c},f.mat3.clone=function(a){var b=new f.Matrix(9);return b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b},f.mat3.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[5];return a[1]=a[3],a[2]=a[6],a[3]=c,a[5]=a[7],a[6]=d,a[7]=e,a}return b[0]=a[0],b[1]=a[3],b[2]=a[6],b[3]=a[1],b[4]=a[4],b[5]=a[7],b[6]=a[2],b[7]=a[5],b[8]=a[8],b},f.mat3.toMat4=function(a,b){return b||(b=f.mat4.create()),b[15]=1,b[14]=0,b[13]=0,b[12]=0,b[11]=0,b[10]=a[8],b[9]=a[7],b[8]=a[6],b[7]=0,b[6]=a[5],b[5]=a[4],b[4]=a[3],b[3]=0,b[2]=a[2],b[1]=a[1],b[0]=a[0],b},f.mat4.create=function(){var a=new f.Matrix(16);return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},f.mat4.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],f=a[6],g=a[7],h=a[11];return a[1]=a[4],a[2]=a[8],a[3]=a[12],a[4]=c,a[6]=a[9],a[7]=a[13],a[8]=d,a[9]=f,a[11]=a[14],a[12]=e,a[13]=g,a[14]=h,a}return b[0]=a[0],b[1]=a[4],b[2]=a[8],b[3]=a[12],b[4]=a[1],b[5]=a[5],b[6]=a[9],b[7]=a[13],b[8]=a[2],b[9]=a[6],b[10]=a[10],b[11]=a[14],b[12]=a[3],b[13]=a[7],b[14]=a[11],b[15]=a[15],b},f.mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],m=a[9],n=a[10],o=a[11],p=a[12],q=a[13],r=a[14],s=a[15],t=b[0],u=b[1],v=b[2],w=b[3];return c[0]=t*d+u*h+v*l+w*p,c[1]=t*e+u*i+v*m+w*q,c[2]=t*f+u*j+v*n+w*r,c[3]=t*g+u*k+v*o+w*s,t=b[4],u=b[5],v=b[6],w=b[7],c[4]=t*d+u*h+v*l+w*p,c[5]=t*e+u*i+v*m+w*q,c[6]=t*f+u*j+v*n+w*r,c[7]=t*g+u*k+v*o+w*s,t=b[8],u=b[9],v=b[10],w=b[11],c[8]=t*d+u*h+v*l+w*p,c[9]=t*e+u*i+v*m+w*q,c[10]=t*f+u*j+v*n+w*r,c[11]=t*g+u*k+v*o+w*s,t=b[12],u=b[13],v=b[14],w=b[15],c[12]=t*d+u*h+v*l+w*p,c[13]=t*e+u*i+v*m+w*q,c[14]=t*f+u*j+v*n+w*r,c[15]=t*g+u*k+v*o+w*s,c},f.DisplayObject=function(){this.last=this,this.first=this,this.position=new f.Point,this.scale=new f.Point(1,1),this.pivot=new f.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.buttonMode=!1,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this._interactive=!1,this.worldTransform=f.mat3.create(),this.localTransform=f.mat3.create(),this.color=[],this.dynamic=!0,this._sr=0,this._cr=1,this.filterArea=new f.Rectangle(0,0,1,1)},f.DisplayObject.prototype.constructor=f.DisplayObject,f.DisplayObject.prototype.setInteractive=function(a){this.interactive=a},Object.defineProperty(f.DisplayObject.prototype,"interactive",{get:function(){return this._interactive},set:function(a){this._interactive=a,this.stage&&(this.stage.dirty=!0)}}),Object.defineProperty(f.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){a?this._mask?(a.start=this._mask.start,a.end=this._mask.end):(this.addFilter(a),a.renderable=!1):(this.removeFilter(this._mask),this._mask.renderable=!0),this._mask=a}}),Object.defineProperty(f.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){this._filters&&this.removeFilter(this._filters),this.addFilter(a);for(var b=[],c=0;c=0&&b<=this.children.length))throw new Error(a+" The index "+b+" supplied is out of bounds "+this.children.length);if(void 0!=a.parent&&a.parent.removeChild(a),a.parent=this,this.stage){var c=a;do c.interactive&&(this.stage.dirty=!0),c.stage=this.stage,c=c._iNext;while(c)}var d,e,f=a.first,g=a.last;if(b==this.children.length){e=this.last;for(var h=this,i=this.last;h;)h.last==i&&(h.last=a.last),h=h.parent}else e=0==b?this:this.children[b-1].last;d=e._iNext,d&&(d._iPrev=g,g._iNext=d),f._iPrev=e,e._iNext=f,this.children.splice(b,0,a),this.__renderGroup&&(a.__renderGroup&&a.__renderGroup.removeDisplayObjectAndChildren(a),this.__renderGroup.addDisplayObjectAndChildren(a))},f.DisplayObjectContainer.prototype.swapChildren=function(){},f.DisplayObjectContainer.prototype.getChildAt=function(a){if(a>=0&&aa;a++)this.children[a].updateTransform()}},f.blendModes={},f.blendModes.NORMAL=0,f.blendModes.SCREEN=1,f.Sprite=function(a){f.DisplayObjectContainer.call(this),this.anchor=new f.Point,this.texture=a,this.blendMode=f.blendModes.NORMAL,this._width=0,this._height=0,a.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},f.Sprite.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Sprite.prototype.constructor=f.Sprite,Object.defineProperty(f.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(f.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),f.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!=a.baseTexture?(this.textureChange=!0,this.texture=a,this.__renderGroup&&this.__renderGroup.updateTexture(this)):this.texture=a,this.updateFrame=!0},f.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},f.Sprite.fromFrame=function(a){var b=f.TextureCache[a];if(!b)throw new Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new f.Sprite(b)},f.Sprite.fromImage=function(a){var b=f.Texture.fromImage(a);return new f.Sprite(b)},f.MovieClip=function(a){f.Sprite.call(this,a[0]),this.textures=a,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.currentFrame=0,this.playing=!1},f.MovieClip.prototype=Object.create(f.Sprite.prototype),f.MovieClip.prototype.constructor=f.MovieClip,Object.defineProperty(f.MovieClip.prototype,"totalFrames",{get:function(){return this.textures.length}}),f.MovieClip.prototype.stop=function(){this.playing=!1},f.MovieClip.prototype.play=function(){this.playing=!0},f.MovieClip.prototype.gotoAndStop=function(a){this.playing=!1,this.currentFrame=a;var b=0|this.currentFrame+.5;this.setTexture(this.textures[b%this.textures.length])},f.MovieClip.prototype.gotoAndPlay=function(a){this.currentFrame=a,this.playing=!0},f.MovieClip.prototype.updateTransform=function(){if(f.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var a=0|this.currentFrame+.5;this.loop||a=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},f.FilterBlock=function(){this.visible=!0,this.renderable=!0},f.Text=function(a,b){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),f.Sprite.call(this,f.Texture.fromCanvas(this.canvas)),this.setText(a),this.setStyle(b),this.updateText(),this.dirty=!1},f.Text.prototype=Object.create(f.Sprite.prototype),f.Text.prototype.constructor=f.Text,f.Text.prototype.setStyle=function(a){a=a||{},a.font=a.font||"bold 20pt Arial",a.fill=a.fill||"black",a.align=a.align||"left",a.stroke=a.stroke||"black",a.strokeThickness=a.strokeThickness||0,a.wordWrap=a.wordWrap||!1,a.wordWrapWidth=a.wordWrapWidth||100,this.style=a,this.dirty=!0},f.Text.prototype.setText=function(a){this.text=a.toString()||" ",this.dirty=!0},f.Text.prototype.updateText=function(){this.context.font=this.style.font;var a=this.text;this.style.wordWrap&&(a=this.wordWrap(this.text));for(var b=a.split(/(?:\r\n|\r|\n)/),c=[],d=0,e=0;ee?f:arguments.callee(a,b,f,d,e):arguments.callee(a,b,c,f,e)},c=function(a,c,d){if(a.measureText(c).width<=d||c.length<1)return c;var e=b(a,c,0,c.length,d);return c.substring(0,e)+"\n"+arguments.callee(a,c.substring(e),d)},d="",e=a.split("\n"),f=0;f=2?parseInt(b[b.length-2],10):f.BitmapText.fonts[this.fontName].size,this.dirty=!0},f.BitmapText.prototype.updateText=function(){for(var a=f.BitmapText.fonts[this.fontName],b=new f.Point,c=null,d=[],e=0,g=[],h=0,i=this.fontSize/a.size,j=0;j=j;j++){var n=0;"right"==this.style.align?n=e-g[j]:"center"==this.style.align&&(n=(e-g[j])/2),m.push(n)}for(j=0;j0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}f.DisplayObjectContainer.prototype.updateTransform.call(this)},f.BitmapText.fonts={},f.InteractionManager=function(a){this.stage=a,this.mouse=new f.InteractionData,this.touchs={},this.tempPoint=new f.Point,this.mouseoverEnabled=!0,this.pool=[],this.interactiveItems=[],this.interactionDOMElement=null,this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseOut=this.onMouseOut.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.last=0},f.InteractionManager.prototype.constructor=f.InteractionManager,f.InteractionManager.prototype.collectInteractiveSprite=function(a,b){for(var c=a.children,d=c.length,e=d-1;e>=0;e--){var f=c[e];f.interactive?(b.interactiveChildren=!0,this.interactiveItems.push(f),f.children.length>0&&this.collectInteractiveSprite(f,f)):(f.__iParent=null,f.children.length>0&&this.collectInteractiveSprite(f,b))}},f.InteractionManager.prototype.setTarget=function(a){this.target=a,null===this.interactionDOMElement&&this.setTargetDomElement(a.view),document.body.addEventListener("mouseup",this.onMouseUp,!0)},f.InteractionManager.prototype.setTargetDomElement=function(a){null!==this.interactionDOMElement&&(this.interactionDOMElement.style["-ms-content-zooming"]="",this.interactionDOMElement.style["-ms-touch-action"]="",this.interactionDOMElement.removeEventListener("mousemove",this.onMouseMove,!0),this.interactionDOMElement.removeEventListener("mousedown",this.onMouseDown,!0),this.interactionDOMElement.removeEventListener("mouseout",this.onMouseOut,!0),this.interactionDOMElement.removeEventListener("touchstart",this.onTouchStart,!0),this.interactionDOMElement.removeEventListener("touchend",this.onTouchEnd,!0),this.interactionDOMElement.removeEventListener("touchmove",this.onTouchMove,!0)),window.navigator.msPointerEnabled&&(a.style["-ms-content-zooming"]="none",a.style["-ms-touch-action"]="none"),this.interactionDOMElement=a,a.addEventListener("mousemove",this.onMouseMove,!0),a.addEventListener("mousedown",this.onMouseDown,!0),a.addEventListener("mouseout",this.onMouseOut,!0),a.addEventListener("touchstart",this.onTouchStart,!0),a.addEventListener("touchend",this.onTouchEnd,!0),a.addEventListener("touchmove",this.onTouchMove,!0)},f.InteractionManager.prototype.update=function(){if(this.target){var a=Date.now(),b=a-this.last;if(b=30*b/1e3,!(1>b)){if(this.last=a,this.dirty){this.dirty=!1;for(var c=this.interactiveItems.length,d=0;c>d;d++)this.interactiveItems[d].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var e=this.interactiveItems.length;this.interactionDOMElement.style.cursor="default";for(var d=0;e>d;d++){var f=this.interactiveItems[d];(f.mouseover||f.mouseout||f.buttonMode)&&(f.__hit=this.hitTest(f,this.mouse),this.mouse.target=f,f.__hit?(f.buttonMode&&(this.interactionDOMElement.style.cursor="pointer"),f.__isOver||(f.mouseover&&f.mouseover(this.mouse),f.__isOver=!0)):f.__isOver&&(f.mouseout&&f.mouseout(this.mouse),f.__isOver=!1))}}}},f.InteractionManager.prototype.onMouseMove=function(a){this.mouse.originalEvent=a||window.event;var b=this.interactionDOMElement.getBoundingClientRect();this.mouse.global.x=(a.clientX-b.left)*(this.target.width/b.width),this.mouse.global.y=(a.clientY-b.top)*(this.target.height/b.height);var c=this.interactiveItems.length;this.mouse.global;for(var d=0;c>d;d++){var e=this.interactiveItems[d];e.mousemove&&e.mousemove(this.mouse)}},f.InteractionManager.prototype.onMouseDown=function(a){this.mouse.originalEvent=a||window.event;var b=this.interactiveItems.length;this.mouse.global,this.stage;for(var c=0;b>c;c++){var d=this.interactiveItems[c];if((d.mousedown||d.click)&&(d.__mouseIsDown=!0,d.__hit=this.hitTest(d,this.mouse),d.__hit&&(d.mousedown&&d.mousedown(this.mouse),d.__isDown=!0,!d.interactiveChildren)))break}},f.InteractionManager.prototype.onMouseOut=function(){var a=this.interactiveItems.length;this.interactionDOMElement.style.cursor="default";for(var b=0;a>b;b++){var c=this.interactiveItems[b];c.__isOver&&(this.mouse.target=c,c.mouseout&&c.mouseout(this.mouse),c.__isOver=!1)}},f.InteractionManager.prototype.onMouseUp=function(a){this.mouse.originalEvent=a||window.event,this.mouse.global;for(var b=this.interactiveItems.length,c=!1,d=0;b>d;d++){var e=this.interactiveItems[d];(e.mouseup||e.mouseupoutside||e.click)&&(e.__hit=this.hitTest(e,this.mouse),e.__hit&&!c?(e.mouseup&&e.mouseup(this.mouse),e.__isDown&&e.click&&e.click(this.mouse),e.interactiveChildren||(c=!0)):e.__isDown&&e.mouseupoutside&&e.mouseupoutside(this.mouse),e.__isDown=!1)}},f.InteractionManager.prototype.hitTest=function(a,b){var c=b.global;if(a.vcount!==f.visibleCount)return!1;var d=a instanceof f.Sprite,e=a.worldTransform,g=e[0],h=e[1],i=e[2],j=e[3],k=e[4],l=e[5],m=1/(g*k+h*-j),n=k*m*c.x+-h*m*c.y+(l*h-i*k)*m,o=g*m*c.y+-j*m*c.x+(-l*g+i*j)*m;if(b.target=a,a.hitArea&&a.hitArea.contains)return a.hitArea.contains(n,o)?(b.target=a,!0):!1;if(d){var p,q=a.texture.frame.width,r=a.texture.frame.height,s=-q*a.anchor.x;if(n>s&&s+q>n&&(p=-r*a.anchor.y,o>p&&p+r>o))return b.target=a,!0}for(var t=a.children.length,u=0;t>u;u++){var v=a.children[u],w=this.hitTest(v,b);if(w)return b.target=a,!0}return!1},f.InteractionManager.prototype.onTouchMove=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;dd;d++){var h=this.interactiveItems[d];h.touchmove&&h.touchmove(f)}},f.InteractionManager.prototype.onTouchStart=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;di;i++){var j=this.interactiveItems[i];if((j.touchstart||j.tap)&&(j.__hit=this.hitTest(j,g),j.__hit&&(j.touchstart&&j.touchstart(g),j.__isDown=!0,j.__touchData=g,!j.interactiveChildren)))break}}},f.InteractionManager.prototype.onTouchEnd=function(a){for(var b=this.interactionDOMElement.getBoundingClientRect(),c=a.changedTouches,d=0;di;i++){var j=this.interactiveItems[i],k=j.__touchData;j.__hit=this.hitTest(j,f),k==f&&(f.originalEvent=a||window.event,(j.touchend||j.tap)&&(j.__hit&&!g?(j.touchend&&j.touchend(f),j.__isDown&&j.tap&&j.tap(f),j.interactiveChildren||(g=!0)):j.__isDown&&j.touchendoutside&&j.touchendoutside(f),j.__isDown=!1),j.__touchData=null)}this.pool.push(f),this.touchs[e.identifier]=null}},f.InteractionData=function(){this.global=new f.Point,this.local=new f.Point,this.target,this.originalEvent},f.InteractionData.prototype.getLocalPosition=function(a){var b=a.worldTransform,c=this.global,d=b[0],e=b[1],g=b[2],h=b[3],i=b[4],j=b[5],k=1/(d*i+e*-h);return new f.Point(i*k*c.x+-e*k*c.y+(j*e-g*i)*k,d*k*c.y+-h*k*c.x+(-j*d+g*h)*k)},f.InteractionData.prototype.constructor=f.InteractionData,f.Stage=function(a){f.DisplayObjectContainer.call(this),this.worldTransform=f.mat3.create(),this.interactive=!0,this.interactionManager=new f.InteractionManager(this),this.dirty=!0,this.__childrenAdded=[],this.__childrenRemoved=[],this.stage=this,this.stage.hitArea=new f.Rectangle(0,0,1e5,1e5),this.setBackgroundColor(a),this.worldVisible=!0},f.Stage.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Stage.prototype.constructor=f.Stage,f.Stage.prototype.setInteractionDelegate=function(a){this.interactionManager.setTargetDomElement(a)},f.Stage.prototype.updateTransform=function(){this.worldAlpha=1,this.vcount=f.visibleCount;for(var a=0,b=this.children.length;b>a;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},f.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0,this.backgroundColorSplit=d(this.backgroundColor);var b=this.backgroundColor.toString(16);b="000000".substr(0,6-b.length)+b,this.backgroundColorString="#"+b},f.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global};for(var h=0,i=["ms","moz","webkit","o"],j=0;j>>>>>>>>"),console.log("_");var b=0,c=a.first;for(console.log(c);c._iNext;)if(b++,c=c._iNext,console.log(c),b>100){console.log("BREAK");break}},f.EventTarget=function(){var a={};this.addEventListener=this.on=function(b,c){void 0===a[b]&&(a[b]=[]),-1===a[b].indexOf(c)&&a[b].push(c)},this.dispatchEvent=this.emit=function(b){if(a[b.type]&&a[b.type].length)for(var c=0,d=a[b.type].length;d>c;c++)a[b.type][c](b)},this.removeEventListener=this.off=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}},f.autoDetectRenderer=function(a,b,c,d,e){a||(a=800),b||(b=600);var g=function(){try{var a=document.createElement("canvas");return!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}();if(g){var h=-1!=navigator.userAgent.toLowerCase().indexOf("msie");g=!h}return g?new f.WebGLRenderer(a,b,c,d,e):new f.CanvasRenderer(a,b,c,d)},f.PolyK={},f.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],g=0;c>g;g++)e.push(g);for(var g=0,h=c;h>3;){var i=e[(g+0)%h],j=e[(g+1)%h],k=e[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(f.PolyK._convex(l,m,n,o,p,q,b)){r=!0;for(var s=0;h>s;s++){var t=e[s];if(t!=i&&t!=j&&t!=k&&f.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)d.push(i,j,k),e.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!b)return console.log("PIXI Warning: shape too complex to fill"),[];var d=[];e=[];for(var g=0;c>g;g++)e.push(g);g=0,h=c,b=!1}}return d.push(e[0],e[1],e[2]),d},f.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},f.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0==g},f.initDefaultShaders=function(){f.primitiveShader=new f.PrimitiveShader,f.primitiveShader.init(),f.stripShader=new f.StripShader,f.stripShader.init(),f.defaultShader=new f.PixiShader,f.defaultShader.init();var a=f.gl,b=f.defaultShader.program;a.useProgram(b),a.enableVertexAttribArray(f.defaultShader.aVertexPosition),a.enableVertexAttribArray(f.defaultShader.colorAttribute),a.enableVertexAttribArray(f.defaultShader.aTextureCoord)},f.activatePrimitiveShader=function(){var a=f.gl;a.useProgram(f.primitiveShader.program),a.disableVertexAttribArray(f.defaultShader.aTextureCoord)},f.deactivatePrimitiveShader=function(){var a=f.gl;a.useProgram(f.defaultShader.program),a.enableVertexAttribArray(f.defaultShader.aTextureCoord)},f.activateStripShader=function(){var a=f.gl;a.useProgram(f.stripShader.program)},f.deactivateStripShader=function(){var a=f.gl;a.useProgram(f.defaultShader.program)},f.CompileVertexShader=function(a,b){return f._CompileShader(a,b,a.VERTEX_SHADER)},f.CompileFragmentShader=function(a,b){return f._CompileShader(a,b,a.FRAGMENT_SHADER)},f._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(console.log(a.getShaderInfoLog(e)),null)},f.compileProgram=function(a,b){var c=f.gl,d=f.CompileFragmentShader(c,b),e=f.CompileVertexShader(c,a),g=c.createProgram();return c.attachShader(g,e),c.attachShader(g,d),c.linkProgram(g),c.getProgramParameter(g,c.LINK_STATUS)||console.log("Could not initialise shaders"),g},f.PixiShader=function(){this.program,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor;","}"]},f.PixiShader.prototype.init=function(){var a=f.compileProgram(this.vertexSrc||f.PixiShader.defaultVertexSrc,this.fragmentSrc),b=f.gl;b.useProgram(a),this.uSampler=b.getUniformLocation(a,"uSampler"),this.projectionVector=b.getUniformLocation(a,"projectionVector"),this.offsetVector=b.getUniformLocation(a,"offsetVector"),this.colorAttribute=b.getAttribLocation(a,"aColor"),this.aVertexPosition=b.getAttribLocation(a,"aVertexPosition"),this.aTextureCoord=b.getAttribLocation(a,"aTextureCoord"); +for(var c in this.uniforms)a[c]=b.getUniformLocation(a,c);this.program=a},f.PixiShader.prototype.syncUniforms=function(){var a=f.gl;for(var b in this.uniforms){var c=this.uniforms[b].type;if("f"==c&&a.uniform1f(this.program[b],this.uniforms[b].value),"f2"==c)a.uniform2f(this.program[b],this.uniforms[b].value.x,this.uniforms[b].value.y);else if("f4"==c)a.uniform4fv(this.program[b],this.uniforms[b].value);else if("mat4"==c)a.uniformMatrix4fv(this.program[b],!1,this.uniforms[b].value);else if("sampler2D"==c){var d=this.uniforms[b].value;a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,d.baseTexture._glTexture),a.uniform1i(this.program[b],1)}}},f.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {","gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],f.StripShader=function(){this.program,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","varying vec2 vTextureCoord;","varying vec2 offsetVector;","varying float vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);","v -= offsetVector.xyx;","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / projectionVector.y + 1.0 , 0.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"]},f.StripShader.prototype.init=function(){var a=f.compileProgram(this.vertexSrc,this.fragmentSrc),b=f.gl;b.useProgram(a),this.uSampler=b.getUniformLocation(a,"uSampler"),this.projectionVector=b.getUniformLocation(a,"projectionVector"),this.offsetVector=b.getUniformLocation(a,"offsetVector"),this.colorAttribute=b.getAttribLocation(a,"aColor"),this.aVertexPosition=b.getAttribLocation(a,"aVertexPosition"),this.aTextureCoord=b.getAttribLocation(a,"aTextureCoord"),this.translationMatrix=b.getUniformLocation(a,"translationMatrix"),this.alpha=b.getUniformLocation(a,"alpha"),this.program=a},f.PrimitiveShader=function(){this.program,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {","gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","varying vec4 vColor;","void main(void) {","vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);","v -= offsetVector.xyx;","gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);","vColor = aColor * alpha;","}"]},f.PrimitiveShader.prototype.init=function(){var a=f.compileProgram(this.vertexSrc,this.fragmentSrc),b=f.gl;b.useProgram(a),this.projectionVector=b.getUniformLocation(a,"projectionVector"),this.offsetVector=b.getUniformLocation(a,"offsetVector"),this.colorAttribute=b.getAttribLocation(a,"aColor"),this.aVertexPosition=b.getAttribLocation(a,"aVertexPosition"),this.translationMatrix=b.getUniformLocation(a,"translationMatrix"),this.alpha=b.getUniformLocation(a,"alpha"),this.program=a},f.WebGLGraphics=function(){},f.WebGLGraphics.renderGraphics=function(a,b){var c=f.gl;a._webGL||(a._webGL={points:[],indices:[],lastIndex:0,buffer:c.createBuffer(),indexBuffer:c.createBuffer()}),a.dirty&&(a.dirty=!1,a.clearDirty&&(a.clearDirty=!1,a._webGL.lastIndex=0,a._webGL.points=[],a._webGL.indices=[]),f.WebGLGraphics.updateGraphics(a)),f.activatePrimitiveShader();var d=f.mat3.clone(a.worldTransform);f.mat3.transpose(d),c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA),c.uniformMatrix3fv(f.primitiveShader.translationMatrix,!1,d),c.uniform2f(f.primitiveShader.projectionVector,b.x,-b.y),c.uniform2f(f.primitiveShader.offsetVector,-f.offset.x,-f.offset.y),c.uniform1f(f.primitiveShader.alpha,a.worldAlpha),c.bindBuffer(c.ARRAY_BUFFER,a._webGL.buffer),c.vertexAttribPointer(f.primitiveShader.aVertexPosition,2,c.FLOAT,!1,24,0),c.vertexAttribPointer(f.primitiveShader.colorAttribute,4,c.FLOAT,!1,24,8),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._webGL.indexBuffer),c.drawElements(c.TRIANGLE_STRIP,a._webGL.indices.length,c.UNSIGNED_SHORT,0),f.deactivatePrimitiveShader()},f.WebGLGraphics.updateGraphics=function(a){for(var b=a._webGL.lastIndex;b3&&f.WebGLGraphics.buildPoly(c,a._webGL),c.lineWidth>0&&f.WebGLGraphics.buildLine(c,a._webGL)):c.type==f.Graphics.RECT?f.WebGLGraphics.buildRectangle(c,a._webGL):(c.type==f.Graphics.CIRC||c.type==f.Graphics.ELIP)&&f.WebGLGraphics.buildCircle(c,a._webGL)}a._webGL.lastIndex=a.graphicsData.length;var d=f.gl;a._webGL.glPoints=new Float32Array(a._webGL.points),d.bindBuffer(d.ARRAY_BUFFER,a._webGL.buffer),d.bufferData(d.ARRAY_BUFFER,a._webGL.glPoints,d.STATIC_DRAW),a._webGL.glIndicies=new Uint16Array(a._webGL.indices),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,a._webGL.indexBuffer),d.bufferData(d.ELEMENT_ARRAY_BUFFER,a._webGL.glIndicies,d.STATIC_DRAW)},f.WebGLGraphics.buildRectangle=function(a,b){var c=a.points,e=c[0],g=c[1],h=c[2],i=c[3];if(a.fill){var j=d(a.fillColor),k=a.fillAlpha,l=j[0]*k,m=j[1]*k,n=j[2]*k,o=b.points,p=b.indices,q=o.length/6;o.push(e,g),o.push(l,m,n,k),o.push(e+h,g),o.push(l,m,n,k),o.push(e,g+i),o.push(l,m,n,k),o.push(e+h,g+i),o.push(l,m,n,k),p.push(q,q,q+1,q+2,q+3,q+3)}a.lineWidth&&(a.points=[e,g,e+h,g,e+h,g+i,e,g+i,e,g],f.WebGLGraphics.buildLine(a,b))},f.WebGLGraphics.buildCircle=function(a,b){var c=a.points,e=c[0],g=c[1],h=c[2],i=c[3],j=40,k=2*Math.PI/j;if(a.fill){var l=d(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=b.points,r=b.indices,s=q.length/6;r.push(s);for(var t=0;j+1>t;t++)q.push(e,g,n,o,p,m),q.push(e+Math.sin(k*t)*h,g+Math.cos(k*t)*i,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){a.points=[];for(var t=0;j+1>t;t++)a.points.push(e+Math.sin(k*t)*h,g+Math.cos(k*t)*i);f.WebGLGraphics.buildLine(a,b)}},f.WebGLGraphics.buildLine=function(a,b){var c=a.points;if(0!=c.length){var e=new f.Point(c[0],c[1]),g=new f.Point(c[c.length-2],c[c.length-1]);if(e.x==g.x&&e.y==g.y){c.pop(),c.pop(),g=new f.Point(c[c.length-2],c[c.length-1]);var h=g.x+.5*(e.x-g.x),i=g.y+.5*(e.y-g.y);c.unshift(h,i),c.push(h,i)}var j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=b.points,F=b.indices,G=c.length/2,H=c.length,I=E.length/6,J=a.lineWidth/2,K=d(a.lineColor),L=a.lineAlpha,M=K[0]*L,N=K[1]*L,O=K[2]*L;j=c[0],k=c[1],l=c[2],m=c[3],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,E.push(j-p,k-q,M,N,O,L),E.push(j+p,k+q,M,N,O,L);for(var P=1;G-1>P;P++)j=c[2*(P-1)],k=c[2*(P-1)+1],l=c[2*P],m=c[2*P+1],n=c[2*(P+1)],o=c[2*(P+1)+1],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,r=-(m-o),s=l-n,D=Math.sqrt(r*r+s*s),r/=D,s/=D,r*=J,s*=J,v=-q+k-(-q+m),w=-p+l-(-p+j),x=(-p+j)*(-q+m)-(-p+l)*(-q+k),y=-s+o-(-s+m),z=-r+l-(-r+n),A=(-r+n)*(-s+m)-(-r+l)*(-s+o),B=v*z-y*w,0==B&&(B+=1),px=(w*A-z*x)/B,py=(y*x-v*A)/B,C=(px-l)*(px-l)+(py-m)+(py-m),C>19600?(t=p-r,u=q-s,D=Math.sqrt(t*t+u*u),t/=D,u/=D,t*=J,u*=J,E.push(l-t,m-u),E.push(M,N,O,L),E.push(l+t,m+u),E.push(M,N,O,L),E.push(l-t,m-u),E.push(M,N,O,L),H++):(E.push(px,py),E.push(M,N,O,L),E.push(l-(px-l),m-(py-m)),E.push(M,N,O,L));j=c[2*(G-2)],k=c[2*(G-2)+1],l=c[2*(G-1)],m=c[2*(G-1)+1],p=-(k-m),q=j-l,D=Math.sqrt(p*p+q*q),p/=D,q/=D,p*=J,q*=J,E.push(l-p,m-q),E.push(M,N,O,L),E.push(l+p,m+q),E.push(M,N,O,L),F.push(I);for(var P=0;H>P;P++)F.push(I++);F.push(I-1)}},f.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){for(var e=b.points,g=b.indices,h=c.length/2,i=d(a.fillColor),j=a.fillAlpha,k=i[0]*j,l=i[1]*j,m=i[2]*j,n=f.PolyK.Triangulate(c),o=e.length/6,p=0;pp;p++)e.push(c[2*p],c[2*p+1],k,l,m,j)}},f._defaultFrame=new f.Rectangle(0,0,1,1),f.gl,f.WebGLRenderer=function(a,b,c,d,e){this.transparent=!!d,this.width=a||800,this.height=b||600,this.view=c||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var g=this;this.view.addEventListener("webglcontextlost",function(a){g.handleContextLost(a)},!1),this.view.addEventListener("webglcontextrestored",function(a){g.handleContextRestored(a)},!1),this.batchs=[];var h={alpha:this.transparent,antialias:!!e,premultipliedAlpha:!1,stencil:!0};try{f.gl=this.gl=this.view.getContext("experimental-webgl",h)}catch(i){try{f.gl=this.gl=this.view.getContext("webgl",h)}catch(i){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}}f.initDefaultShaders();var j=this.gl;j.useProgram(f.defaultShader.program),f.WebGLRenderer.gl=j,this.batch=new f.WebGLBatch(j),j.disable(j.DEPTH_TEST),j.disable(j.CULL_FACE),j.enable(j.BLEND),j.colorMask(!0,!0,!0,this.transparent),f.projection=new f.Point(400,300),f.offset=new f.Point(0,0),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new f.WebGLRenderGroup(this.gl)},f.WebGLRenderer.prototype.constructor=f.WebGLRenderer,f.WebGLRenderer.getBatch=function(){return 0==f._batchs.length?new f.WebGLBatch(f.WebGLRenderer.gl):f._batchs.pop()},f.WebGLRenderer.returnBatch=function(a){a.clean(),f._batchs.push(a)},f.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(this.__stage=a,this.stageRenderGroup.setRenderable(a)),f.WebGLRenderer.updateTextures(),f.visibleCount++,a.updateTransform();var b=this.gl;if(b.colorMask(!0,!0,!0,this.transparent),b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],!this.transparent),b.clear(b.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=a.backgroundColorSplit,f.projection.x=this.width/2,f.projection.y=-this.height/2,this.stageRenderGroup.render(f.projection),a.interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))),f.Texture.frameUpdates.length>0){for(var c=0;cc;c++){var d=6*c,e=4*c;this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)},f.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizen;n++)renderable=this.batchs[n],renderable instanceof f.WebGLBatch?this.batchs[n].render():this.renderSpecial(renderable,b);endBatch instanceof f.WebGLBatch?endBatch.render(0,h+1):this.renderSpecial(endBatch,b)},f.WebGLRenderGroup.prototype.renderSpecial=function(a,b){var c=a.vcount===f.visibleCount;a instanceof f.TilingSprite?c&&this.renderTilingSprite(a,b):a instanceof f.Strip?c&&this.renderStrip(a,b):a instanceof f.CustomRenderable?c&&a.renderWebGL(this,b):a instanceof f.Graphics?c&&a.renderable&&f.WebGLGraphics.renderGraphics(a,b):a instanceof f.FilterBlock&&this.handleFilterBlock(a,b)},f.WebGLRenderGroup.prototype.handleFilterBlock=function(a,b){var c=f.gl;a.open?a.data instanceof Array?this.filterManager.pushFilter(a):(c.enable(c.STENCIL_TEST),c.colorMask(!1,!1,!1,!1),c.stencilFunc(c.ALWAYS,1,255),c.stencilOp(c.KEEP,c.KEEP,c.REPLACE),f.WebGLGraphics.renderGraphics(a.data,b),c.colorMask(!0,!0,!0,!0),c.stencilFunc(c.NOTEQUAL,0,255),c.stencilOp(c.KEEP,c.KEEP,c.KEEP)):a.data instanceof Array?this.filterManager.popFilter():c.disable(c.STENCIL_TEST)},f.WebGLRenderGroup.prototype.updateTexture=function(a){this.removeObject(a);for(var b=a.first;b!=this.root&&(b=b._iPrev,!b.renderable||!b.__renderGroup););for(var c=a.last;c._iNext&&(c=c._iNext,!c.renderable||!c.__renderGroup););this.insertObject(a,b,c)},f.WebGLRenderGroup.prototype.addFilterBlocks=function(a,b){a.__renderGroup=this,b.__renderGroup=this;for(var c=a;c!=this.root.first&&(c=c._iPrev,!c.renderable||!c.__renderGroup););this.insertAfter(a,c);for(var d=b;d!=this.root.first&&(d=d._iPrev,!d.renderable||!d.__renderGroup););this.insertAfter(b,d)},f.WebGLRenderGroup.prototype.removeFilterBlocks=function(a,b){this.removeObject(a),this.removeObject(b)},f.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(a){a.__renderGroup&&a.__renderGroup.removeDisplayObjectAndChildren(a);for(var b=a.first;b!=this.root.first&&(b=b._iPrev,!b.renderable||!b.__renderGroup););for(var c=a.last;c._iNext&&(c=c._iNext,!c.renderable||!c.__renderGroup););var d=a.first,e=a.last._iNext;do d.__renderGroup=this,d.renderable&&(this.insertObject(d,b,c),b=d),d=d._iNext;while(d!=e)},f.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(a){if(a.__renderGroup==this){a.last;do a.__renderGroup=null,a.renderable&&this.removeObject(a),a=a._iNext;while(a)}},f.WebGLRenderGroup.prototype.insertObject=function(a,b,c){var d=b,e=c;if(a instanceof f.Sprite){var g,h;if(d instanceof f.Sprite){if(g=d.batch,g&&g.texture==a.texture.baseTexture&&g.blendMode==a.blendMode)return g.insertAfter(a,d),void 0}else g=d;if(e)if(e instanceof f.Sprite){if(h=e.batch){if(h.texture==a.texture.baseTexture&&h.blendMode==a.blendMode)return h.insertBefore(a,e),void 0;if(h==g){var i=g.split(e),j=f.WebGLRenderer.getBatch(),k=this.batchs.indexOf(g);return j.init(a),this.batchs.splice(k+1,0,j,i),void 0}}}else h=e;var j=f.WebGLRenderer.getBatch();if(j.init(a),g){var k=this.batchs.indexOf(g);this.batchs.splice(k+1,0,j)}else this.batchs.push(j)}else a instanceof f.TilingSprite?this.initTilingSprite(a):a instanceof f.Strip&&this.initStrip(a),this.insertAfter(a,d)},f.WebGLRenderGroup.prototype.insertAfter=function(a,b){if(b instanceof f.Sprite){var c=b.batch;if(c)if(c.tail==b){var d=this.batchs.indexOf(c);this.batchs.splice(d+1,0,a)}else{var e=c.split(b.__next),d=this.batchs.indexOf(c);this.batchs.splice(d+1,0,a,e)}else this.batchs.push(a)}else{var d=this.batchs.indexOf(b);this.batchs.splice(d+1,0,a)}},f.WebGLRenderGroup.prototype.removeObject=function(a){var b;if(a instanceof f.Sprite){var c=a.batch;if(!c)return;c.remove(a),0==c.size&&(b=c)}else b=a;if(b){var d=this.batchs.indexOf(b);if(-1==d)return;if(0==d||d==this.batchs.length-1)return this.batchs.splice(d,1),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b),void 0;if(this.batchs[d-1]instanceof f.WebGLBatch&&this.batchs[d+1]instanceof f.WebGLBatch&&this.batchs[d-1].texture==this.batchs[d+1].texture&&this.batchs[d-1].blendMode==this.batchs[d+1].blendMode)return this.batchs[d-1].merge(this.batchs[d+1]),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b),f.WebGLRenderer.returnBatch(this.batchs[d+1]),this.batchs.splice(d,2),void 0;this.batchs.splice(d,1),b instanceof f.WebGLBatch&&f.WebGLRenderer.returnBatch(b)}},f.WebGLRenderGroup.prototype.initTilingSprite=function(a){var b=this.gl;a.verticies=new Float32Array([0,0,a.width,0,a.width,a.height,0,a.height]),a.uvs=new Float32Array([0,0,1,0,1,1,0,1]),a.colors=new Float32Array([1,1,1,1]),a.indices=new Uint16Array([0,1,3,2]),a._vertexBuffer=b.createBuffer(),a._indexBuffer=b.createBuffer(),a._uvBuffer=b.createBuffer(),a._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,a.verticies,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.bufferData(b.ARRAY_BUFFER,a.uvs,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,a.indices,b.STATIC_DRAW),a.texture.baseTexture._glTexture?(b.bindTexture(b.TEXTURE_2D,a.texture.baseTexture._glTexture),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.REPEAT),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.REPEAT),a.texture.baseTexture._powerOf2=!0):a.texture.baseTexture._powerOf2=!0},f.WebGLRenderGroup.prototype.renderStrip=function(a,b){var c=this.gl;f.activateStripShader();var d=f.stripShader;d.program;var e=f.mat3.clone(a.worldTransform);f.mat3.transpose(e),c.uniformMatrix3fv(d.translationMatrix,!1,e),c.uniform2f(d.projectionVector,b.x,b.y),c.uniform2f(d.offsetVector,-f.offset.x,-f.offset.y),c.uniform1f(d.alpha,a.worldAlpha),a.dirty?(a.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,a.verticies,c.STATIC_DRAW),c.vertexAttribPointer(d.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW),c.vertexAttribPointer(d.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,a.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.verticies),c.vertexAttribPointer(d.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(d.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer)),c.drawElements(c.TRIANGLE_STRIP,a.indices.length,c.UNSIGNED_SHORT,0),f.deactivateStripShader()},f.WebGLRenderGroup.prototype.renderTilingSprite=function(a,b){var c=this.gl;f.shaderProgram;var d=a.tilePosition,e=a.tileScale,g=d.x/a.texture.baseTexture.width,h=d.y/a.texture.baseTexture.height,i=a.width/a.texture.baseTexture.width/e.x,j=a.height/a.texture.baseTexture.height/e.y;a.uvs[0]=0-g,a.uvs[1]=0-h,a.uvs[2]=1*i-g,a.uvs[3]=0-h,a.uvs[4]=1*i-g,a.uvs[5]=1*j-h,a.uvs[6]=0-g,a.uvs[7]=1*j-h,c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.uvs),this.renderStrip(a,b)},f.WebGLRenderGroup.prototype.initStrip=function(a){var b=this.gl;this.shaderProgram,a._vertexBuffer=b.createBuffer(),a._indexBuffer=b.createBuffer(),a._uvBuffer=b.createBuffer(),a._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,a.verticies,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.bufferData(b.ARRAY_BUFFER,a.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,a.indices,b.STATIC_DRAW)},f.WebGLFilterManager=function(){this.filterStack=[],this.texturePool=[],this.offsetX=0,this.offsetY=0,this.initShaderBuffers()},f.WebGLFilterManager.prototype.begin=function(a,b){this.width=2*a.x,this.height=2*-a.y,this.buffer=b},f.WebGLFilterManager.prototype.pushFilter=function(a){var b=f.gl;this.filterStack.push(a);var c=a.filterPasses[0];this.offsetX+=a.target.filterArea.x,this.offsetY+=a.target.filterArea.y;var d=this.texturePool.pop();d||(d=new f.FilterTexture(this.width,this.height)),b.bindTexture(b.TEXTURE_2D,d.texture),this.getBounds(a.target);var e=a.target.filterArea,g=c.padding;e.x-=g,e.y-=g,e.width+=2*g,e.height+=2*g,e.x<0&&(e.x=0),e.width>this.width&&(e.width=this.width),e.y<0&&(e.y=0),e.height>this.height&&(e.height=this.height),b.bindFramebuffer(b.FRAMEBUFFER,d.frameBuffer),b.viewport(0,0,e.width,e.height),f.projection.x=e.width/2,f.projection.y=-e.height/2,f.offset.x=-e.x,f.offset.y=-e.y,b.uniform2f(f.defaultShader.projectionVector,e.width/2,-e.height/2),b.uniform2f(f.defaultShader.offsetVector,-e.x,-e.y),b.colorMask(!0,!0,!0,!0),b.clearColor(0,0,0,0),b.clear(b.COLOR_BUFFER_BIT),a._glFilterTexture=d},f.WebGLFilterManager.prototype.popFilter=function(){var a=f.gl,b=this.filterStack.pop(),c=b.target.filterArea,d=b._glFilterTexture;if(b.filterPasses.length>1){a.viewport(0,0,c.width,c.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=c.height,this.vertexArray[2]=c.width,this.vertexArray[3]=c.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=c.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=c.width/this.width,this.uvArray[5]=c.height/this.height,this.uvArray[6]=c.width/this.width,this.uvArray[7]=c.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var e=d,g=this.texturePool.pop();g||(g=new f.FilterTexture(this.width,this.height)),a.bindFramebuffer(a.FRAMEBUFFER,g.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var h=0;hs?s:E,E=E>t?t:E,E=E>u?u:E,E=E>v?v:E,F=F>w?w:F,F=F>x?x:F,F=F>y?y:F,F=F>z?z:F,C=s>C?s:C,C=t>C?t:C,C=u>C?u:C,C=v>C?v:C,D=w>D?w:D,D=x>D?x:D,D=y>D?y:D,D=z>D?z:D),l=!1,A=A._iNext}while(A!=B);a.filterArea.x=E,a.filterArea.y=F,a.filterArea.width=C-E,a.filterArea.height=D-F},f.FilterTexture=function(a,b){var c=f.gl;this.frameBuffer=c.createFramebuffer(),this.texture=c.createTexture(),c.bindTexture(c.TEXTURE_2D,this.texture),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),c.bindFramebuffer(c.FRAMEBUFFER,this.framebuffer),c.bindFramebuffer(c.FRAMEBUFFER,this.frameBuffer),c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,this.texture,0),this.resize(a,b)},f.FilterTexture.prototype.resize=function(a,b){this.width=a,this.height=b;var c=f.gl;c.bindTexture(c.TEXTURE_2D,this.texture),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,a,b,0,c.RGBA,c.UNSIGNED_BYTE,null)},f.CanvasRenderer=function(a,b,c,d){this.transparent=d,this.width=a||800,this.height=b||600,this.view=c||document.createElement("canvas"),this.context=this.view.getContext("2d"),this.refresh=!0,this.view.width=this.width,this.view.height=this.height,this.count=0},f.CanvasRenderer.prototype.constructor=f.CanvasRenderer,f.CanvasRenderer.prototype.render=function(a){f.texturesToUpdate=[],f.texturesToDestroy=[],f.visibleCount++,a.updateTransform(),this.view.style.backgroundColor==a.backgroundColorString||this.transparent||(this.view.style.backgroundColor=a.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(a),a.interactive&&(a._interactiveEventsAdded||(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))),f.Texture.frameUpdates.length>0&&(f.Texture.frameUpdates=[])},f.CanvasRenderer.prototype.resize=function(a,b){this.width=a,this.height=b,this.view.width=a,this.view.height=b},f.CanvasRenderer.prototype.renderDisplayObject=function(a){var b,c=this.context;c.globalCompositeOperation="source-over";var d=a.last._iNext;a=a.first;do if(b=a.worldTransform,a.visible)if(a.renderable){if(a instanceof f.Sprite){var e=a.texture.frame;e&&e.width&&e.height&&(c.globalAlpha=a.worldAlpha,c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),c.drawImage(a.texture.baseTexture.source,e.x,e.y,e.width,e.height,a.anchor.x*-e.width,a.anchor.y*-e.height,e.width,e.height))}else if(a instanceof f.Strip)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),this.renderStrip(a);else if(a instanceof f.TilingSprite)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),this.renderTilingSprite(a);else if(a instanceof f.CustomRenderable)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),a.renderCanvas(this);else if(a instanceof f.Graphics)c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),f.CanvasGraphics.renderGraphics(a,c);else if(a instanceof f.FilterBlock&&a.data instanceof f.Graphics){var g=a.data;if(a.open){c.save();var h=g.alpha,i=g.worldTransform;c.setTransform(i[0],i[3],i[1],i[4],i[2],i[5]),g.worldAlpha=.5,c.worldAlpha=0,f.CanvasGraphics.renderGraphicsMask(g,c),c.clip(),g.worldAlpha=h}else c.restore()}a=a._iNext}else a=a._iNext;else a=a.last._iNext;while(a!=d)},f.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context,c=a.verticies;a.uvs;var d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},f.CanvasRenderer.prototype.renderTilingSprite=function(a){var b=this.context;b.globalAlpha=a.worldAlpha,a.__tilePattern||(a.__tilePattern=b.createPattern(a.texture.baseTexture.source,"repeat")),b.beginPath();var c=a.tilePosition,d=a.tileScale;b.scale(d.x,d.y),b.translate(c.x,c.y),b.fillStyle=a.__tilePattern,b.fillRect(-c.x,-c.y,a.width/d.x,a.height/d.y),b.scale(1/d.x,1/d.y),b.translate(-c.x,-c.y),b.closePath()},f.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;e-2>f;f++){var g=2*f,h=c[g],i=c[g+2],j=c[g+4],k=c[g+1],l=c[g+3],m=c[g+5],n=d[g]*a.texture.width,o=d[g+2]*a.texture.width,p=d[g+4]*a.texture.width,q=d[g+1]*a.texture.height,r=d[g+3]*a.texture.height,s=d[g+5]*a.texture.height;b.save(),b.beginPath(),b.moveTo(h,k),b.lineTo(i,l),b.lineTo(j,m),b.closePath(),b.clip();var t=n*r+q*p+o*s-r*p-q*o-n*s,u=h*r+q*j+i*s-r*j-q*i-h*s,v=n*i+h*p+o*j-i*p-h*o-n*j,w=n*r*j+q*i*p+h*o*s-h*r*p-q*o*j-n*i*s,x=k*r+q*m+l*s-r*m-q*l-k*s,y=n*l+k*p+o*m-l*p-k*o-n*m,z=n*r*m+q*l*p+k*o*s-k*r*p-q*o*m-n*l*s;b.transform(u/t,x/t,v/t,y/t,w/t,z/t),b.drawImage(a.texture.baseTexture.source,0,0),b.restore()}},f.CanvasGraphics=function(){},f.CanvasGraphics.renderGraphics=function(a,b){for(var c=a.worldAlpha,d=0;d1&&(c=1,console.log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object"));for(var d=0;1>d;d++){var e=a.graphicsData[d],g=e.points;if(e.type==f.Graphics.POLY){b.beginPath(),b.moveTo(g[0],g[1]);for(var h=1;hb?b:d,e=b+m>e?b+m:e,g=g>c?b:g,h=c+n>h?c+n:h}else if(k===f.Graphics.CIRC||k===f.Graphics.ELIP){b=a.x,c=a.y;var o=a.radius+l/2;d=d>b-o?b-o:d,e=b+o>e?b+o:e,g=g>c-o?c-o:g,h=c+o>h?c+o:h}else for(var p=0;pb-l?b-l:d,e=b+l>e?b+l:e,g=g>c-l?c-l:g,h=c+l>h?c+l:h}this.bounds=new f.Rectangle(d,g,e-d,h-g)}},f.Graphics.POLY=0,f.Graphics.RECT=1,f.Graphics.CIRC=2,f.Graphics.ELIP=3,f.Strip=function(a,b,c){f.DisplayObjectContainer.call(this),this.texture=a,this.blendMode=f.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(d){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=b,this.height=c,a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},f.Strip.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Strip.prototype.constructor=f.Strip,f.Strip.prototype.setTexture=function(a){this.texture=a,this.width=a.frame.width,this.height=a.frame.height,this.updateFrame=!0},f.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},f.Rope=function(a,b){f.Strip.call(this,a),this.points=b;try{this.verticies=new Float32Array(4*b.length),this.uvs=new Float32Array(4*b.length),this.colors=new Float32Array(2*b.length),this.indices=new Uint16Array(2*b.length)}catch(c){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},f.Rope.prototype=Object.create(f.Strip.prototype),f.Rope.prototype.constructor=f.Rope,f.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=this.indices,d=this.colors,e=a[0],f=a[0];this.count-=.2,b[0]=0,b[1]=1,b[2]=0,b[3]=1,d[0]=1,d[1]=1,c[0]=0,c[1]=1;for(var g=a.length,h=1;g>h;h++){var f=a[h],i=4*h,j=h/(g-1);h%2?(b[i]=j,b[i+1]=0,b[i+2]=j,b[i+3]=1):(b[i]=j,b[i+1]=0,b[i+2]=j,b[i+3]=1),i=2*h,d[i]=1,d[i+1]=1,i=2*h,c[i]=i,c[i+1]=i+1,e=f}}},f.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var b,c=this.verticies,d=a[0],e={x:0,y:0},g=a[0];this.count-=.2,c[0]=g.x+e.x,c[1]=g.y+e.y,c[2]=g.x-e.x,c[3]=g.y-e.y;for(var h=a.length,i=1;h>i;i++){var g=a[i],j=4*i;b=i1&&(k=1);var l=Math.sqrt(e.x*e.x+e.y*e.y),m=this.texture.height/2;e.x/=l,e.y/=l,e.x*=m,e.y*=m,c[j]=g.x+e.x,c[j+1]=g.y+e.y,c[j+2]=g.x-e.x,c[j+3]=g.y-e.y,d=g}f.DisplayObjectContainer.prototype.updateTransform.call(this)}},f.Rope.prototype.setTexture=function(a){this.texture=a,this.updateFrame=!0},f.TilingSprite=function(a,b,c){f.DisplayObjectContainer.call(this),this.texture=a,this.width=b,this.height=c,this.tileScale=new f.Point(1,1),this.tilePosition=new f.Point(0,0),this.renderable=!0,this.blendMode=f.blendModes.NORMAL},f.TilingSprite.prototype=Object.create(f.DisplayObjectContainer.prototype),f.TilingSprite.prototype.constructor=f.TilingSprite,f.TilingSprite.prototype.setTexture=function(a){this.texture=a,this.updateFrame=!0},f.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},f.Spine=function(a){if(f.DisplayObjectContainer.call(this),this.spineData=f.AnimCache[a],!this.spineData)throw new Error("Spine data must be preloaded using PIXI.SpineLoader or PIXI.AssetLoader: "+a);this.skeleton=new l.Skeleton(this.spineData),this.skeleton.updateWorldTransform(),this.stateData=new l.AnimationStateData(this.spineData),this.state=new l.AnimationState(this.stateData),this.slotContainers=[];for(var b=0,c=this.skeleton.drawOrder.length;c>b;b++){var d=this.skeleton.drawOrder[b],e=d.attachment,g=new f.DisplayObjectContainer;if(this.slotContainers.push(g),this.addChild(g),e instanceof l.RegionAttachment){var h=e.rendererObject.name,i=this.createSprite(d,e.rendererObject);d.currentSprite=i,d.currentSpriteName=h,g.addChild(i)}}},f.Spine.prototype=Object.create(f.DisplayObjectContainer.prototype),f.Spine.prototype.constructor=f.Spine,f.Spine.prototype.updateTransform=function(){this.lastTime=this.lastTime||Date.now();var a=.001*(Date.now()-this.lastTime);this.lastTime=Date.now(),this.state.update(a),this.state.apply(this.skeleton),this.skeleton.updateWorldTransform();for(var b=this.skeleton.drawOrder,c=0,d=b.length;d>c;c++){var e=b[c],g=e.attachment,h=this.slotContainers[c];if(g instanceof l.RegionAttachment){if(g.rendererObject&&(!e.currentSpriteName||e.currentSpriteName!=g.name)){var i=g.rendererObject.name;if(void 0!==e.currentSprite&&(e.currentSprite.visible=!1),e.sprites=e.sprites||{},void 0!==e.sprites[i])e.sprites[i].visible=!0;else{var j=this.createSprite(e,g.rendererObject);h.addChild(j)}e.currentSprite=e.sprites[i],e.currentSpriteName=i}h.visible=!0;var k=e.bone;h.position.x=k.worldX+g.x*k.m00+g.y*k.m01,h.position.y=k.worldY+g.x*k.m10+g.y*k.m11,h.scale.x=k.worldScaleX,h.scale.y=k.worldScaleY,h.rotation=-(e.bone.worldRotation*Math.PI/180)}else h.visible=!1}f.DisplayObjectContainer.prototype.updateTransform.call(this)},f.Spine.prototype.createSprite=function(a,b){var c=f.TextureCache[b.name]?b.name:b.name+".png",d=new f.Sprite(f.Texture.fromFrame(c));return d.scale=b.scale,d.rotation=b.rotation,d.anchor.x=d.anchor.y=.5,a.sprites=a.sprites||{},a.sprites[b.name]=d,d};var l={};l.BoneData=function(a,b){this.name=a,this.parent=b},l.BoneData.prototype={length:0,x:0,y:0,rotation:0,scaleX:1,scaleY:1},l.SlotData=function(a,b){this.name=a,this.boneData=b},l.SlotData.prototype={r:1,g:1,b:1,a:1,attachmentName:null},l.Bone=function(a,b){this.data=a,this.parent=b,this.setToSetupPose()},l.Bone.yDown=!1,l.Bone.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,m00:0,m01:0,worldX:0,m10:0,m11:0,worldY:0,worldRotation:0,worldScaleX:1,worldScaleY:1,updateWorldTransform:function(a,b){var c=this.parent;null!=c?(this.worldX=this.x*c.m00+this.y*c.m01+c.worldX,this.worldY=this.x*c.m10+this.y*c.m11+c.worldY,this.worldScaleX=c.worldScaleX*this.scaleX,this.worldScaleY=c.worldScaleY*this.scaleY,this.worldRotation=c.worldRotation+this.rotation):(this.worldX=this.x,this.worldY=this.y,this.worldScaleX=this.scaleX,this.worldScaleY=this.scaleY,this.worldRotation=this.rotation);var d=this.worldRotation*Math.PI/180,e=Math.cos(d),f=Math.sin(d);this.m00=e*this.worldScaleX,this.m10=f*this.worldScaleX,this.m01=-f*this.worldScaleY,this.m11=e*this.worldScaleY,a&&(this.m00=-this.m00,this.m01=-this.m01),b&&(this.m10=-this.m10,this.m11=-this.m11),l.Bone.yDown&&(this.m10=-this.m10,this.m11=-this.m11)},setToSetupPose:function(){var a=this.data;this.x=a.x,this.y=a.y,this.rotation=a.rotation,this.scaleX=a.scaleX,this.scaleY=a.scaleY}},l.Slot=function(a,b,c){this.data=a,this.skeleton=b,this.bone=c,this.setToSetupPose()},l.Slot.prototype={r:1,g:1,b:1,a:1,_attachmentTime:0,attachment:null,setAttachment:function(a){this.attachment=a,this._attachmentTime=this.skeleton.time},setAttachmentTime:function(a){this._attachmentTime=this.skeleton.time-a},getAttachmentTime:function(){return this.skeleton.time-this._attachmentTime},setToSetupPose:function(){var a=this.data;this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a;for(var b=this.skeleton.data.slots,c=0,d=b.length;d>c;c++)if(b[c]==a){this.setAttachment(a.attachmentName?this.skeleton.getAttachmentBySlotIndex(c,a.attachmentName):null);break}}},l.Skin=function(a){this.name=a,this.attachments={}},l.Skin.prototype={addAttachment:function(a,b,c){this.attachments[a+":"+b]=c},getAttachment:function(a,b){return this.attachments[a+":"+b]},_attachAll:function(a,b){for(var c in b.attachments){var d=c.indexOf(":"),e=parseInt(c.substring(0,d)),f=c.substring(d+1),g=a.slots[e];if(g.attachment&&g.attachment.name==f){var h=this.getAttachment(e,f);h&&g.setAttachment(h)}}}},l.Animation=function(a,b,c){this.name=a,this.timelines=b,this.duration=c},l.Animation.prototype={apply:function(a,b,c){c&&0!=this.duration&&(b%=this.duration);for(var d=this.timelines,e=0,f=d.length;f>e;e++)d[e].apply(a,b,1)},mix:function(a,b,c,d){c&&0!=this.duration&&(b%=this.duration);for(var e=this.timelines,f=0,g=e.length;g>f;f++)e[f].apply(a,b,d)}},l.binarySearch=function(a,b,c){var d=0,e=Math.floor(a.length/c)-2;if(0==e)return c;for(var f=e>>>1;;){if(a[(f+1)*c]<=b?d=f+1:e=f,d==e)return(d+1)*c;f=d+e>>>1}},l.linearSearch=function(a,b,c){for(var d=0,e=a.length-c;e>=d;d+=c)if(a[d]>b)return d;return-1},l.Curves=function(a){this.curves=[],this.curves.length=6*(a-1)},l.Curves.prototype={setLinear:function(a){this.curves[6*a]=0},setStepped:function(a){this.curves[6*a]=-1},setCurve:function(a,b,c,d,e){var f=.1,g=f*f,h=g*f,i=3*f,j=3*g,k=6*g,l=6*h,m=2*-b+d,n=2*-c+e,o=3*(b-d)+1,p=3*(c-e)+1,q=6*a,r=this.curves;r[q]=b*i+m*j+o*h,r[q+1]=c*i+n*j+p*h,r[q+2]=m*k+o*l,r[q+3]=n*k+p*l,r[q+4]=o*l,r[q+5]=p*l},getCurvePercent:function(a,b){b=0>b?0:b>1?1:b;var c=6*a,d=this.curves,e=d[c];if(!e)return b;if(-1==e)return 0;for(var f=d[c+1],g=d[c+2],h=d[c+3],i=d[c+4],j=d[c+5],k=e,l=f,m=8;;){if(k>=b){var n=k-e,o=l-f;return o+(l-o)*(b-n)/(k-n)}if(0==m)break;m--,e+=g,f+=h,g+=i,h+=j,k+=e,l+=f}return l+(1-l)*(b-k)/(1-k)}},l.RotateTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=2*a},l.RotateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(a,b,c){a*=2,this.frames[a]=b,this.frames[a+1]=c},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-2]){for(var f=e.data.rotation+d[d.length-1]-e.rotation;f>180;)f-=360;for(;-180>f;)f+=360;return e.rotation+=f*c,void 0}var g=l.binarySearch(d,b,2),h=d[g-1],i=d[g],j=1-(b-i)/(d[g-2]-i);j=this.curves.getCurvePercent(g/2-1,j);for(var f=d[g+1]-h;f>180;)f-=360;for(;-180>f;)f+=360;for(f=e.data.rotation+(h+f*j)-e.rotation;f>180;)f-=360;for(;-180>f;)f+=360;e.rotation+=f*c}}},l.TranslateTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=3*a},l.TranslateTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(a,b,c,d){a*=3,this.frames[a]=b,this.frames[a+1]=c,this.frames[a+2]=d},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-3])return e.x+=(e.data.x+d[d.length-2]-e.x)*c,e.y+=(e.data.y+d[d.length-1]-e.y)*c,void 0;var f=l.binarySearch(d,b,3),g=d[f-2],h=d[f-1],i=d[f],j=1-(b-i)/(d[f+-3]-i);j=this.curves.getCurvePercent(f/3-1,j),e.x+=(e.data.x+g+(d[f+1]-g)*j-e.x)*c,e.y+=(e.data.y+h+(d[f+2]-h)*j-e.y)*c}}},l.ScaleTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=3*a},l.ScaleTimeline.prototype={boneIndex:0,getFrameCount:function(){return this.frames.length/3},setFrame:function(a,b,c,d){a*=3,this.frames[a]=b,this.frames[a+1]=c,this.frames[a+2]=d},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-3])return e.scaleX+=(e.data.scaleX-1+d[d.length-2]-e.scaleX)*c,e.scaleY+=(e.data.scaleY-1+d[d.length-1]-e.scaleY)*c,void 0;var f=l.binarySearch(d,b,3),g=d[f-2],h=d[f-1],i=d[f],j=1-(b-i)/(d[f+-3]-i);j=this.curves.getCurvePercent(f/3-1,j),e.scaleX+=(e.data.scaleX-1+g+(d[f+1]-g)*j-e.scaleX)*c,e.scaleY+=(e.data.scaleY-1+h+(d[f+2]-h)*j-e.scaleY)*c}}},l.ColorTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=5*a},l.ColorTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length/2},setFrame:function(c,d){c*=5,this.frames[c]=d,this.frames[c+1]=r,this.frames[c+2]=g,this.frames[c+3]=b,this.frames[c+4]=a},apply:function(a,b,c){var d=this.frames;if(!(b=d[d.length-5]){var f=d.length-1;return e.r=d[f-3],e.g=d[f-2],e.b=d[f-1],e.a=d[f],void 0}var g=l.binarySearch(d,b,5),h=d[g-4],i=d[g-3],j=d[g-2],k=d[g-1],m=d[g],n=1-(b-m)/(d[g-5]-m);n=this.curves.getCurvePercent(g/5-1,n);var o=h+(d[g+1]-h)*n,p=i+(d[g+2]-i)*n,q=j+(d[g+3]-j)*n,r=k+(d[g+4]-k)*n;1>c?(e.r+=(o-e.r)*c,e.g+=(p-e.g)*c,e.b+=(q-e.b)*c,e.a+=(r-e.a)*c):(e.r=o,e.g=p,e.b=q,e.a=r)}}},l.AttachmentTimeline=function(a){this.curves=new l.Curves(a),this.frames=[],this.frames.length=a,this.attachmentNames=[],this.attachmentNames.length=a},l.AttachmentTimeline.prototype={slotIndex:0,getFrameCount:function(){return this.frames.length},setFrame:function(a,b,c){this.frames[a]=b,this.attachmentNames[a]=c},apply:function(a,b){var c=this.frames;if(!(b=c[c.length-1]?c.length-1:l.binarySearch(c,b,1)-1;var e=this.attachmentNames[d];a.slots[this.slotIndex].setAttachment(e?a.getAttachmentBySlotIndex(this.slotIndex,e):null)}}},l.SkeletonData=function(){this.bones=[],this.slots=[],this.skins=[],this.animations=[]},l.SkeletonData.prototype={defaultSkin:null,findBone:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},findBoneIndex:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].name==a)return c;return-1},findSlot:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].name==a)return slot[c];return null},findSlotIndex:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].name==a)return c;return-1},findSkin:function(a){for(var b=this.skins,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},findAnimation:function(a){for(var b=this.animations,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null}},l.Skeleton=function(a){this.data=a,this.bones=[];for(var b=0,c=a.bones.length;c>b;b++){var d=a.bones[b],e=d.parent?this.bones[a.bones.indexOf(d.parent)]:null;this.bones.push(new l.Bone(d,e))}this.slots=[],this.drawOrder=[];for(var b=0,c=a.slots.length;c>b;b++){var f=a.slots[b],g=this.bones[a.bones.indexOf(f.boneData)],h=new l.Slot(f,this,g);this.slots.push(h),this.drawOrder.push(h)}},l.Skeleton.prototype={x:0,y:0,skin:null,r:1,g:1,b:1,a:1,time:0,flipX:!1,flipY:!1,updateWorldTransform:function(){for(var a=this.flipX,b=this.flipY,c=this.bones,d=0,e=c.length;e>d;d++)c[d].updateWorldTransform(a,b)},setToSetupPose:function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},setBonesToSetupPose:function(){for(var a=this.bones,b=0,c=a.length;c>b;b++)a[b].setToSetupPose()},setSlotsToSetupPose:function(){for(var a=this.slots,b=0,c=a.length;c>b;b++)a[b].setToSetupPose(b)},getRootBone:function(){return 0==this.bones.length?null:this.bones[0]},findBone:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return b[c];return null},findBoneIndex:function(a){for(var b=this.bones,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return c;return-1},findSlot:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return b[c];return null},findSlotIndex:function(a){for(var b=this.slots,c=0,d=b.length;d>c;c++)if(b[c].data.name==a)return c;return-1},setSkinByName:function(a){var b=this.data.findSkin(a);if(!b)throw"Skin not found: "+a;this.setSkin(b)},setSkin:function(a){this.skin&&a&&a._attachAll(this,this.skin),this.skin=a},getAttachmentBySlotName:function(a,b){return this.getAttachmentBySlotIndex(this.data.findSlotIndex(a),b)},getAttachmentBySlotIndex:function(a,b){if(this.skin){var c=this.skin.getAttachment(a,b);if(c)return c}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(a,b):null},setAttachment:function(a,b){for(var c=this.slots,d=0,e=c.size;e>d;d++){var f=c[d];if(f.data.name==a){var g=null;if(b&&(g=this.getAttachment(d,b),null==g))throw"Attachment not found: "+b+", for slot: "+a;return f.setAttachment(g),void 0}}throw"Slot not found: "+a},update:function(a){time+=a}},l.AttachmentType={region:0},l.RegionAttachment=function(){this.offset=[],this.offset.length=8,this.uvs=[],this.uvs.length=8},l.RegionAttachment.prototype={x:0,y:0,rotation:0,scaleX:1,scaleY:1,width:0,height:0,rendererObject:null,regionOffsetX:0,regionOffsetY:0,regionWidth:0,regionHeight:0,regionOriginalWidth:0,regionOriginalHeight:0,setUVs:function(a,b,c,d,e){var f=this.uvs;e?(f[2]=a,f[3]=d,f[4]=a,f[5]=b,f[6]=c,f[7]=b,f[0]=c,f[1]=d):(f[0]=a,f[1]=d,f[2]=a,f[3]=b,f[4]=c,f[5]=b,f[6]=c,f[7]=d)},updateOffset:function(){var a=this.width/this.regionOriginalWidth*this.scaleX,b=this.height/this.regionOriginalHeight*this.scaleY,c=-this.width/2*this.scaleX+this.regionOffsetX*a,d=-this.height/2*this.scaleY+this.regionOffsetY*b,e=c+this.regionWidth*a,f=d+this.regionHeight*b,g=this.rotation*Math.PI/180,h=Math.cos(g),i=Math.sin(g),j=c*h+this.x,k=c*i,l=d*h+this.y,m=d*i,n=e*h+this.x,o=e*i,p=f*h+this.y,q=f*i,r=this.offset;r[0]=j-m,r[1]=l+k,r[2]=j-q,r[3]=p+k,r[4]=n-q,r[5]=p+o,r[6]=n-m,r[7]=l+o},computeVertices:function(a,b,c,d){a+=c.worldX,b+=c.worldY;var e=c.m00,f=c.m01,g=c.m10,h=c.m11,i=this.offset;d[0]=i[0]*e+i[1]*f+a,d[1]=i[0]*g+i[1]*h+b,d[2]=i[2]*e+i[3]*f+a,d[3]=i[2]*g+i[3]*h+b,d[4]=i[4]*e+i[5]*f+a,d[5]=i[4]*g+i[5]*h+b,d[6]=i[6]*e+i[7]*f+a,d[7]=i[6]*g+i[7]*h+b}},l.AnimationStateData=function(a){this.skeletonData=a,this.animationToMixTime={}},l.AnimationStateData.prototype={defaultMix:0,setMixByName:function(a,b,c){var d=this.skeletonData.findAnimation(a);if(!d)throw"Animation not found: "+a;var e=this.skeletonData.findAnimation(b);if(!e)throw"Animation not found: "+b;this.setMix(d,e,c)},setMix:function(a,b,c){this.animationToMixTime[a.name+":"+b.name]=c},getMix:function(a,b){var c=this.animationToMixTime[a.name+":"+b.name];return c?c:this.defaultMix}},l.AnimationState=function(a){this.data=a,this.queue=[]},l.AnimationState.prototype={current:null,previous:null,currentTime:0,previousTime:0,currentLoop:!1,previousLoop:!1,mixTime:0,mixDuration:0,update:function(a){if(this.currentTime+=a,this.previousTime+=a,this.mixTime+=a,this.queue.length>0){var b=this.queue[0];this.currentTime>=b.delay&&(this._setAnimation(b.animation,b.loop),this.queue.shift())}},apply:function(a){if(this.current)if(this.previous){this.previous.apply(a,this.previousTime,this.previousLoop);var b=this.mixTime/this.mixDuration;b>=1&&(b=1,this.previous=null),this.current.mix(a,this.currentTime,this.currentLoop,b)}else this.current.apply(a,this.currentTime,this.currentLoop)},clearAnimation:function(){this.previous=null,this.current=null,this.queue.length=0},_setAnimation:function(a,b){this.previous=null,a&&this.current&&(this.mixDuration=this.data.getMix(this.current,a),this.mixDuration>0&&(this.mixTime=0,this.previous=this.current,this.previousTime=this.currentTime,this.previousLoop=this.currentLoop)),this.current=a,this.currentLoop=b,this.currentTime=0},setAnimationByName:function(a,b){var c=this.data.skeletonData.findAnimation(a);if(!c)throw"Animation not found: "+a;this.setAnimation(c,b)},setAnimation:function(a,b){this.queue.length=0,this._setAnimation(a,b)},addAnimationByName:function(a,b,c){var d=this.data.skeletonData.findAnimation(a);if(!d)throw"Animation not found: "+a;this.addAnimation(d,b,c)},addAnimation:function(a,b,c){var d={};if(d.animation=a,d.loop=b,!c||0>=c){var e=0==this.queue.length?this.current:this.queue[this.queue.length-1].animation;c=null!=e?e.duration-this.data.getMix(e,a)+(c||0):0}d.delay=c,this.queue.push(d)},isComplete:function(){return!this.current||this.currentTime>=this.current.duration}},l.SkeletonJson=function(a){this.attachmentLoader=a},l.SkeletonJson.prototype={scale:1,readSkeletonData:function(a){for(var b=new l.SkeletonData,c=a.bones,d=0,e=c.length;e>d;d++){var f=c[d],g=null;if(f.parent&&(g=b.findBone(f.parent),!g))throw"Parent bone not found: "+f.parent;var h=new l.BoneData(f.name,g);h.length=(f.length||0)*this.scale,h.x=(f.x||0)*this.scale,h.y=(f.y||0)*this.scale,h.rotation=f.rotation||0,h.scaleX=f.scaleX||1,h.scaleY=f.scaleY||1,b.bones.push(h)}for(var i=a.slots,d=0,e=i.length;e>d;d++){var j=i[d],h=b.findBone(j.bone);if(!h)throw"Slot bone not found: "+j.bone;var k=new l.SlotData(j.name,h),m=j.color;m&&(k.r=l.SkeletonJson.toColor(m,0),k.g=l.SkeletonJson.toColor(m,1),k.b=l.SkeletonJson.toColor(m,2),k.a=l.SkeletonJson.toColor(m,3)),k.attachmentName=j.attachment,b.slots.push(k)}var n=a.skins;for(var o in n)if(n.hasOwnProperty(o)){var p=n[o],q=new l.Skin(o);for(var r in p)if(p.hasOwnProperty(r)){var s=b.findSlotIndex(r),t=p[r];for(var u in t)if(t.hasOwnProperty(u)){var v=this.readAttachment(q,u,t[u]);null!=v&&q.addAttachment(s,u,v)}}b.skins.push(q),"default"==q.name&&(b.defaultSkin=q)}var w=a.animations;for(var x in w)w.hasOwnProperty(x)&&this.readAnimation(x,w[x],b);return b},readAttachment:function(a,b,c){b=c.name||b;var d=l.AttachmentType[c.type||"region"];if(d==l.AttachmentType.region){var e=new l.RegionAttachment;return e.x=(c.x||0)*this.scale,e.y=(c.y||0)*this.scale,e.scaleX=c.scaleX||1,e.scaleY=c.scaleY||1,e.rotation=c.rotation||0,e.width=(c.width||32)*this.scale,e.height=(c.height||32)*this.scale,e.updateOffset(),e.rendererObject={},e.rendererObject.name=b,e.rendererObject.scale={},e.rendererObject.scale.x=e.scaleX,e.rendererObject.scale.y=e.scaleY,e.rendererObject.rotation=-e.rotation*Math.PI/180,e +}throw"Unknown attachment type: "+d},readAnimation:function(a,b,c){var d=[],e=0,f=b.bones;for(var g in f)if(f.hasOwnProperty(g)){var h=c.findBoneIndex(g);if(-1==h)throw"Bone not found: "+g;var i=f[g];for(var j in i)if(i.hasOwnProperty(j)){var k=i[j];if("rotate"==j){var m=new l.RotateTimeline(k.length);m.boneIndex=h;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o];m.setFrame(n,q.time,q.angle),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[2*m.getFrameCount()-2])}else{if("translate"!=j&&"scale"!=j)throw"Invalid timeline type for a bone: "+j+" ("+g+")";var m,r=1;"scale"==j?m=new l.ScaleTimeline(k.length):(m=new l.TranslateTimeline(k.length),r=this.scale),m.boneIndex=h;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o],s=(q.x||0)*r,t=(q.y||0)*r;m.setFrame(n,q.time,s,t),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[3*m.getFrameCount()-3])}}}var u=b.slots;for(var v in u)if(u.hasOwnProperty(v)){var w=u[v],x=c.findSlotIndex(v);for(var j in w)if(w.hasOwnProperty(j)){var k=w[j];if("color"==j){var m=new l.ColorTimeline(k.length);m.slotIndex=x;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o],y=q.color,z=l.SkeletonJson.toColor(y,0),A=l.SkeletonJson.toColor(y,1),B=l.SkeletonJson.toColor(y,2),C=l.SkeletonJson.toColor(y,3);m.setFrame(n,q.time,z,A,B,C),l.SkeletonJson.readCurve(m,n,q),n++}d.push(m),e=Math.max(e,m.frames[5*m.getFrameCount()-5])}else{if("attachment"!=j)throw"Invalid timeline type for a slot: "+j+" ("+v+")";var m=new l.AttachmentTimeline(k.length);m.slotIndex=x;for(var n=0,o=0,p=k.length;p>o;o++){var q=k[o];m.setFrame(n++,q.time,q.name)}d.push(m),e=Math.max(e,m.frames[m.getFrameCount()-1])}}}c.animations.push(new l.Animation(a,d,e))}},l.SkeletonJson.readCurve=function(a,b,c){var d=c.curve;d&&("stepped"==d?a.curves.setStepped(b):d instanceof Array&&a.curves.setCurve(b,d[0],d[1],d[2],d[3]))},l.SkeletonJson.toColor=function(a,b){if(8!=a.length)throw"Color hexidecimal length must be 8, recieved: "+a;return parseInt(a.substring(2*b,2),16)/255},l.Atlas=function(a,b){this.textureLoader=b,this.pages=[],this.regions=[];var c=new l.AtlasReader(a),d=[];d.length=4;for(var e=null;;){var f=c.readLine();if(null==f)break;if(f=c.trim(f),0==f.length)e=null;else if(e){var g=new l.AtlasRegion;g.name=f,g.page=e,g.rotate="true"==c.readValue(),c.readTuple(d);var h=parseInt(d[0]),i=parseInt(d[1]);c.readTuple(d);var j=parseInt(d[0]),k=parseInt(d[1]);g.u=h/e.width,g.v=i/e.height,g.rotate?(g.u2=(h+k)/e.width,g.v2=(i+j)/e.height):(g.u2=(h+j)/e.width,g.v2=(i+k)/e.height),g.x=h,g.y=i,g.width=Math.abs(j),g.height=Math.abs(k),4==c.readTuple(d)&&(g.splits=[parseInt(d[0]),parseInt(d[1]),parseInt(d[2]),parseInt(d[3])],4==c.readTuple(d)&&(g.pads=[parseInt(d[0]),parseInt(d[1]),parseInt(d[2]),parseInt(d[3])],c.readTuple(d))),g.originalWidth=parseInt(d[0]),g.originalHeight=parseInt(d[1]),c.readTuple(d),g.offsetX=parseInt(d[0]),g.offsetY=parseInt(d[1]),g.index=parseInt(c.readValue()),this.regions.push(g)}else{e=new l.AtlasPage,e.name=f,e.format=l.Atlas.Format[c.readValue()],c.readTuple(d),e.minFilter=l.Atlas.TextureFilter[d[0]],e.magFilter=l.Atlas.TextureFilter[d[1]];var m=c.readValue();e.uWrap=l.Atlas.TextureWrap.clampToEdge,e.vWrap=l.Atlas.TextureWrap.clampToEdge,"x"==m?e.uWrap=l.Atlas.TextureWrap.repeat:"y"==m?e.vWrap=l.Atlas.TextureWrap.repeat:"xy"==m&&(e.uWrap=e.vWrap=l.Atlas.TextureWrap.repeat),b.load(e,f),this.pages.push(e)}}},l.Atlas.prototype={findRegion:function(a){for(var b=this.regions,c=0,d=b.length;d>c;c++)if(b[c].name==a)return b[c];return null},dispose:function(){for(var a=this.pages,b=0,c=a.length;c>b;b++)this.textureLoader.unload(a[b].rendererObject)},updateUVs:function(a){for(var b=this.regions,c=0,d=b.length;d>c;c++){var e=b[c];e.page==a&&(e.u=e.x/a.width,e.v=e.y/a.height,e.rotate?(e.u2=(e.x+e.height)/a.width,e.v2=(e.y+e.width)/a.height):(e.u2=(e.x+e.width)/a.width,e.v2=(e.y+e.height)/a.height))}}},l.Atlas.Format={alpha:0,intensity:1,luminanceAlpha:2,rgb565:3,rgba4444:4,rgb888:5,rgba8888:6},l.Atlas.TextureFilter={nearest:0,linear:1,mipMap:2,mipMapNearestNearest:3,mipMapLinearNearest:4,mipMapNearestLinear:5,mipMapLinearLinear:6},l.Atlas.TextureWrap={mirroredRepeat:0,clampToEdge:1,repeat:2},l.AtlasPage=function(){},l.AtlasPage.prototype={name:null,format:null,minFilter:null,magFilter:null,uWrap:null,vWrap:null,rendererObject:null,width:0,height:0},l.AtlasRegion=function(){},l.AtlasRegion.prototype={page:null,name:null,x:0,y:0,width:0,height:0,u:0,v:0,u2:0,v2:0,offsetX:0,offsetY:0,originalWidth:0,originalHeight:0,index:0,rotate:!1,splits:null,pads:null},l.AtlasReader=function(a){this.lines=a.split(/\r\n|\r|\n/)},l.AtlasReader.prototype={index:0,trim:function(a){return a.replace(/^\s+|\s+$/g,"")},readLine:function(){return this.index>=this.lines.length?null:this.lines[this.index++]},readValue:function(){var a=this.readLine(),b=a.indexOf(":");if(-1==b)throw"Invalid line: "+a;return this.trim(a.substring(b+1))},readTuple:function(a){var b=this.readLine(),c=b.indexOf(":");if(-1==c)throw"Invalid line: "+b;for(var d=0,e=c+1;3>d;d++){var f=b.indexOf(",",e);if(-1==f){if(0==d)throw"Invalid line: "+b;break}a[d]=this.trim(b.substr(e,f-e)),e=f+1}return a[d]=this.trim(b.substring(e)),d+1}},l.AtlasAttachmentLoader=function(a){this.atlas=a},l.AtlasAttachmentLoader.prototype={newAttachment:function(a,b,c){switch(b){case l.AttachmentType.region:var d=this.atlas.findRegion(c);if(!d)throw"Region not found in atlas: "+c+" ("+b+")";var e=new l.RegionAttachment(c);return e.rendererObject=d,e.setUVs(d.u,d.v,d.u2,d.v2,d.rotate),e.regionOffsetX=d.offsetX,e.regionOffsetY=d.offsetY,e.regionWidth=d.width,e.regionHeight=d.height,e.regionOriginalWidth=d.originalWidth,e.regionOriginalHeight=d.originalHeight,e}throw"Unknown attachment type: "+b}},f.AnimCache={},l.Bone.yDown=!0,f.CustomRenderable=function(){f.DisplayObject.call(this),this.renderable=!0},f.CustomRenderable.prototype=Object.create(f.DisplayObject.prototype),f.CustomRenderable.prototype.constructor=f.CustomRenderable,f.CustomRenderable.prototype.renderCanvas=function(){},f.CustomRenderable.prototype.initWebGL=function(){},f.CustomRenderable.prototype.renderWebGL=function(){},f.BaseTextureCache={},f.texturesToUpdate=[],f.texturesToDestroy=[],f.BaseTexture=function(a){if(f.EventTarget.call(this),this.width=100,this.height=100,this.hasLoaded=!1,this.source=a,a){if(this.source instanceof Image||this.source instanceof HTMLImageElement)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,f.texturesToUpdate.push(this);else{var b=this;this.source.onload=function(){b.hasLoaded=!0,b.width=b.source.width,b.height=b.source.height,f.texturesToUpdate.push(b),b.dispatchEvent({type:"loaded",content:b})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,f.texturesToUpdate.push(this);this._powerOf2=!1}},f.BaseTexture.prototype.constructor=f.BaseTexture,f.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,f.texturesToDestroy.push(this)},f.BaseTexture.fromImage=function(a,b){var c=f.BaseTextureCache[a];if(!c){var d=new Image;b&&(d.crossOrigin=""),d.src=a,c=new f.BaseTexture(d),f.BaseTextureCache[a]=c}return c},f.TextureCache={},f.FrameCache={},f.Texture=function(a,b){if(f.EventTarget.call(this),b||(this.noFrame=!0,b=new f.Rectangle(0,0,1,1)),a instanceof f.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=b,this.trim=new f.Point,this.scope=this,a.hasLoaded)this.noFrame&&(b=new f.Rectangle(0,0,a.width,a.height)),this.setFrame(b);else{var c=this;a.addEventListener("loaded",function(){c.onBaseTextureLoaded()})}},f.Texture.prototype.constructor=f.Texture,f.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new f.Rectangle(0,0,a.width,a.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},f.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy()},f.Texture.prototype.setFrame=function(a){if(this.frame=a,this.width=a.width,this.height=a.height,a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,f.Texture.frameUpdates.push(this)},f.Texture.fromImage=function(a,b){var c=f.TextureCache[a];return c||(c=new f.Texture(f.BaseTexture.fromImage(a,b)),f.TextureCache[a]=c),c},f.Texture.fromFrame=function(a){var b=f.TextureCache[a];if(!b)throw new Error("The frameId '"+a+"' does not exist in the texture cache "+this);return b},f.Texture.fromCanvas=function(a){var b=new f.BaseTexture(a);return new f.Texture(b)},f.Texture.addTextureToCache=function(a,b){f.TextureCache[b]=a},f.Texture.removeTextureFromCache=function(a){var b=f.TextureCache[a];return f.TextureCache[a]=null,b},f.Texture.frameUpdates=[],f.RenderTexture=function(a,b){f.EventTarget.call(this),this.width=a||100,this.height=b||100,this.indetityMatrix=f.mat3.create(),this.frame=new f.Rectangle(0,0,this.width,this.height),f.gl?this.initWebGL():this.initCanvas()},f.RenderTexture.prototype=Object.create(f.Texture.prototype),f.RenderTexture.prototype.constructor=f.RenderTexture,f.RenderTexture.prototype.initWebGL=function(){var a=f.gl;this.glFramebuffer=a.createFramebuffer(),a.bindFramebuffer(a.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new f.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=a.createTexture(),a.bindTexture(a.TEXTURE_2D,this.baseTexture._glTexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,this.width,this.height,0,a.RGBA,a.UNSIGNED_BYTE,null),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,a.bindFramebuffer(a.FRAMEBUFFER,this.glFramebuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,this.baseTexture._glTexture,0),this.projection=new f.Point(this.width/2,-this.height/2),this.render=this.renderWebGL},f.RenderTexture.prototype.resize=function(a,b){if(this.width=a,this.height=b,f.gl){this.projection.x=this.width/2,this.projection.y=-this.height/2;var c=f.gl;c.bindTexture(c.TEXTURE_2D,this.baseTexture._glTexture),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,this.width,this.height,0,c.RGBA,c.UNSIGNED_BYTE,null)}else this.frame.width=this.width,this.frame.height=this.height,this.renderer.resize(this.width,this.height)},f.RenderTexture.prototype.initCanvas=function(){this.renderer=new f.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new f.BaseTexture(this.renderer.view),this.frame=new f.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},f.RenderTexture.prototype.renderWebGL=function(a,b,c){var d=f.gl;d.colorMask(!0,!0,!0,!0),d.viewport(0,0,this.width,this.height),d.bindFramebuffer(d.FRAMEBUFFER,this.glFramebuffer),c&&(d.clearColor(0,0,0,0),d.clear(d.COLOR_BUFFER_BIT));var e=a.children,g=a.worldTransform;a.worldTransform=f.mat3.create(),a.worldTransform[4]=-1,a.worldTransform[5]=-2*this.projection.y,b&&(a.worldTransform[2]=b.x,a.worldTransform[5]-=b.y),f.visibleCount++,a.vcount=f.visibleCount;for(var h=0,i=e.length;i>h;h++)e[h].updateTransform();var j=a.__renderGroup;j?a==j.root?j.render(this.projection,this.glFramebuffer):j.renderSpecific(a,this.projection,this.glFramebuffer):(this.renderGroup||(this.renderGroup=new f.WebGLRenderGroup(d)),this.renderGroup.setRenderable(a),this.renderGroup.render(this.projection,this.glFramebuffer)),a.worldTransform=g},f.RenderTexture.prototype.renderCanvas=function(a,b,c){var d=a.children;a.worldTransform=f.mat3.create(),b&&(a.worldTransform[2]=b.x,a.worldTransform[5]=b.y);for(var e=0,g=d.length;g>e;e++)d[e].updateTransform();c&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(a),this.renderer.context.setTransform(1,0,0,1,0,0)},f.AssetLoader=function(a,b){f.EventTarget.call(this),this.assetURLs=a,this.crossorigin=b,this.loadersByType={jpg:f.ImageLoader,jpeg:f.ImageLoader,png:f.ImageLoader,gif:f.ImageLoader,json:f.JsonLoader,anim:f.SpineLoader,xml:f.BitmapFontLoader,fnt:f.BitmapFontLoader}},f.AssetLoader.prototype.constructor=f.AssetLoader,f.AssetLoader.prototype.load=function(){var a=this;this.loadCount=this.assetURLs.length;for(var b=0;bh;h++)for(var i=0;d>i;i++,g++){var j=new f.Texture(this.texture,{x:i*a,y:h*b,width:a,height:b});this.frames.push(j),c&&(f.TextureCache[c+"-"+g]=j)}if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var k=this;this.texture.baseTexture.addEventListener("loaded",function(){k.onLoaded()})}},f.BitmapFontLoader=function(a,b){f.EventTarget.call(this),this.url=a,this.crossorigin=b,this.baseUrl=a.replace(/[^\/]*$/,""),this.texture=null},f.BitmapFontLoader.prototype.constructor=f.BitmapFontLoader,f.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var a=this;this.ajaxRequest.onreadystatechange=function(){a.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},f.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,b=new f.ImageLoader(a,this.crossorigin);this.texture=b.texture.baseTexture;var c={},d=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],e=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];c.font=d.attributes.getNamedItem("face").nodeValue,c.size=parseInt(d.attributes.getNamedItem("size").nodeValue,10),c.lineHeight=parseInt(e.attributes.getNamedItem("lineHeight").nodeValue,10),c.chars={};for(var g=this.ajaxRequest.responseXML.getElementsByTagName("char"),h=0;haN{WQE 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 BH&p-t literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_BG.jpg b/examples/example 15 - Filters/displacement_BG.jpg index ab5c5cc7ffff213084df53ff90b3f77b6fd7a9fb..100b0cb0f671c7fac13bd95fe08b5d9d3f9385a8 100644 GIT binary patch delta 61304 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⁢mXW!^JW9de2dfb|k8x@gg+bd`+q3=eMV$ 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%0A5S? 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

RAft@f|?mM}OiK3p2YFVabps zbkG})%9Nd)QFX~28&3K%2SCC=MZvhH5u$gRWGf)ZYKTUPGn%pyi_C7eCc>Nu3cQ2* zYv6W*eu`?h(9JHSyxD|#-ax&cU_KQ`Yj}#QPLKxo)SI4n)~6)`#GA_#@*JqA|=mw%5Y`)hff#CZD-EQ67_?WJ}Cs6~)e+a3$<6s?4^OC(0|xkLOW z)Usxi++jMFQvAd?{vq~Sk0vX}Q0vuD{{T`l5AcwFn^EQ?#o`rumNRi;r}&rby&gzc zjfELl>@Fo=@c~9qykBF4vA4+T-UJ$CD@_BKh8ALNO#ngKHWRIeagWi4guI!@5 zkPDJ+%+i!P_M;{^7JU&*p2gJrJ7}9lxtks)Z&J;WV#3aM8?gmdRB5R;ww27OYuiM1 z+buCsa%Zc;=zsX|g*k2d$=K--(ku1_8n=nky$WJWf4Th+6ECW@zaO=C>-`>%PMf+6MGs@-SO@%RnVXqW%!G~zCGU?UBJ=}L!Qh$Mpi)GR-J{2a%MwTZ{gy9~g z)LoJTe?}CrE}+{|e-Y3DTaJ>+TO;MhyPKF$HYO@XAPbQ%=41h-o=r&S@~wq3(Hz&e zCo5s~liWB_l2BjNtOy{=YX%CLD;f^?0Cw*fTGTWVCKr@h|zru{0iAKsn z$omKO)_;(30&`&o&2{kph5PAbXd`_rh6vwUO$Hd_ zTtb7JLA#d&K&1@)?XQjJ*JCLj7qP5$;+1U*;bkBv?Mtq4M(_sG216{eMCMkC4GdqmXYw*>h$d!%?z^dRTAD zz9#2Mc>e%N9^Dy$+qf!#esW!gC0+g`(_l~qzM={P9r$ZX)L z>@?8^nJaTlg&^OT9#upM63gk>xuiUoj&Z_Nwam>kS?d@ zc7N50?=?!*Es5VHuH}bar1{AM_*4_|rzYp1VGm7`+ozT`?UEqt{{SV87^CXNR>-<1 z@%}@{iwPf_Co=~uU4OkXGV^H0zSTcfNv3w=$zJecIU9%?5yTsh zr%_TnP%>@Dk7Z$kA=++E-r>jW6i|$J9t^ype0+D6e-e)`_?p74RNluu?^^EC932~} z5q3n6xugXD0Ll$sxa@J;)Z<0$egyfhlk!Xq zm{LC#jl3k+-ax6^lm7rxwaS-&kw%2Y1hEAQ#X+_1O^7<0os=evR?}p}MRGQGAgXQI zuV}qVvEU*xQ>K)XGz_G-P$H6WhT!*TJh*Lgge*N?y3YnhU{tjo#&09O%)Pk)(w(Kj_eVXiCMQR!k_T%#Cv9wUu$wt7fBQKJuAAeF>l zoQ^Di3iq0rTYD|dZ`Bx#dHKi;)&r*W{{Xod8Y{5w{0J&f+h6>dqVpAC9k;%v ziS7GItl1=p8AKb7R3tn{5@nEGNWU@8oia^9V$?uabz>DRSOga}jDJ+QtYU?$1feyI zDJ;xMUPDS*D5@+?0g99FtYENC;ljHTt)`~>)=XPhL6X#DkryoNO=P`Wjp8bl`t<3Sj0o8~Soz(QS0% z4``*Wptf9m)UD4+4ob;ma8I;~u6b6G2B#>>Hy zpOD8NAbi;5kd6Ge&{gz%XwGlCuU%JhLQU+##Bmf6LJqXT$bTY6?R~V!COdT;hHI^r zc?$#d)VZ_0V5nI7mnoC`%k~;&kXM7V9g89vf2QD`z-)cSk0i-DHMmg3cIm?OjgF9H z$Z@0jhkm~ro3MBwt2k~PdpXiJHxsTY2Sgs~0|@6~V&?fW7i8pqT%(Emd<`Q>mdBFR z+hfiipO!L)6n|>VWqzKNDRQ zqDPmP)mqzVjjfJA8w(Cfpp)P08UsG8^*;)apCWv(a~G?5uR+EeOqhC$$#uezg;R;vqx1aTl>KNyboUlAPvJb>lL=&nZ2iyel_2yn@uc}oT=M%rGpd5Z8rdS3X^?Hs-&SC zyMM!Zug6>X)g4aXY53m#L)q4Ota*+ns3QyWQ=QFLqej$){sk!hkytOBL0 z7^yXkRGP*rO=Ae;5Uxl(ex7u!wRQknmPUfRs7auyY5^LDAU~1KoN(`^OqHtvZ$z0F zpkp9CaY(Rs`|+$87nC8IJh>D%p?!))?te+rIo?YNeA~{ac<1dD z(o-E_Y0v_-w4zamM=C=OBU&OfX@&#>I2}b<9HlZ7*2bDXB%=}H1;uBu)Ny3YoaG9* zbD{D}0%|`Rd02buR_JzObIEpWHWpJal?|JkAC&isdf1*?8#ui|T!`iJo zbIj>WBf2Ad10VE}7Hb^rk2KHOZ@b{NYN$N?x8(c~<-+O5w4QZTa<&yS@*!QYHqqV# zd`)#y&1`bt9c{QNv$7`^nYWJsK8sb=o7{(&TI?uIQ3aG|1D!OPAP#gi8-Fa2gz^Qr zK4dx&b<^yq+Q(fhCO$whNwp81`GWI3m#WsS?sDbKsI=VM zjS@J-Q7A~4g07X+w9xY`+j8|~!&}0PibFktB-uw2Yc?`M6Xuq>Lw}<4Zf2ouosP<4 zjaZ>zqU6+DIuej=kjF*Pd}?mR>p}#N#Ig6(orLecDvrhU3u- zq;Hili2*MmB==wYDqEcrs-!M-!buk%EphRN!EOcl`>AZrj%NL3Vyx#XW?SJP$U>>Hm%yV%d$wX)> zWB>x=bZ18ckFtnT>_qqyG+w?ei#|IW?Y)>cJr1hW&^0qDizt5IF*PI|t~R*h4u-LI zgDX)K(8Ybx0nK!()aAN{Fs)(_zNkr}h!q!3A7`2J$RN%id^69Y|ToP%WtELPp|I@*drT zovTPyMt^!q{YF}r)gipL<#FXv?>DBdtd@VazVp&YI4n)|Iu8N;wRCxQsdF(EWI>>9 zKWP?pv&H(YMazdjUh&I=ex3`+0$CUzE9l0f7MaDI&m$*4S#@nq)>Y`C*Tc1v!y54;L1*h^pa5` z^n)A^K3((zJ&%dG1hZdj3#xFq?KEJOuh9g5N+IXR8$S}+z2NIu3SUrWEKGoX1_=Cs z)83|l+^n|}V93Tf1)X#>3av=J0}xFU5qe|-392C(LTS*9sWjq|dSM2z@jp_*rEgCd z8-H#bSf0Y?$F&vAZ4$IM8-TdSiCj&6_4kkC@qcDB)0dZ0@BMb^y|Z9sQJzl~s@p zAtvm7l_ty9rw8UZcGTM{k#I)>b?l^UbbpHzrnj|CvC=epW(QH~K*Q6_czDw#Mw!sAr_d#w4*1^9{u-ObW#V*W^|y1w_zF9tk|k-Te4-?G;mnPS0@}B;3~=IZ!N+B4`AuHG)){ z!6NmHRGP*sdd4Gl0}xGP6}@8>EkML>tYSA-F&C_2FF*pDwXR}hZlYqyMeN$EXnnd- zMrc?~J}i#|vD)7&9zDkV=$7MKDSt(ORU;cpOAn%qkHK^br$9#vVHn;U+1WV}aqOq5 z468{V7bGfb=Rhi_Gc>UAF>sV6z*iIBE8+DVrnos8w4An4Ktx!j6wMU580Tz$8OderLe z81hW9#P(z%REAT)lf>70%^gplewKGq#uKVe!tweK-VpspkDB}h{{UXAd0!Ies`VQc z+XzF%Y;GOs z2)`7Q6g5?jPCNRzaGd-A=YHCUZtOg;?mp`s>EXLVC|e(4@%qR9NPkPD#Q4pZ9LutG z^v2WKb4gVaTRoMbt+g5T4>L}PG+1Uy9)#~+!}isyW=7c4A+xW+J?5;eOUm&VdEJj^ zg*=;rK=00o&~bZeO=&a$l419ahh;0VTF?>8j9h?79?FxsWr>d9V6I^OZ&7bg41Z1~ z(6Al+hka_+b+*LvWq;xJ(_0>o8#4zP0^;=8_Hr&tlkOKaPHAk8Cyw@ib=fkWou6?o z1S$@~ZrzqOqSvxop_KG`@)eB0G5wmKCOMlX`sitM+L?eC6@;46S zO3s>EK$m6!F}<_|>TTmdXfBZ!8;*mO7!}x)4Y|`myn!+>rbyg@lTL+fsWj+9FH9>B zkBqqoaM0tI;CbGtt0z88j;5FcZqO{CSPHSlJxvU0y+qo^@+Ox&$0Jv*q~ys+ za<&h8c_I#ckAFfU{8;Fq_R`wWic*}M8EowAUCr3>HO|@Il3NvL+NF&N87UEbi=Qs1 zwxsNJ)`u%|e|K#pj|TTl=%QdUdWF_Asz46XM}J_eR~+kOi!Z5DU;bqNeD#Q2qlf z%{a2M_?viLFFzR-zg}W{4apupGN3lpXn>x|Dy?<>2wyF2{xk8n@-ZayL|I(LlvDbW zZ7}WrX9sBdXg0;IQ|`W_7}I3Rfzl|}Gr^i!8vX&0R!xg#RQLKJZmH6GXH)^Rv5Mr4 zBg%yBlz$#uU3I@;Y8I+{l*O9#{9c`p8I}8YKlPI1^vsB|VvPR)s+v?V`fbN+y7?K0 zJ-YVSJENTsR=%d3Q?hHfU+f}&-E|-8GL)WvlIibiJOzHGbU_bCz)zW;L*FHbxj?PO z3+LIDJvRo{^uOkRwzm`?Hr>Uh=e$5BDldgpyijF@G`ZL_Y>csSKh zwvnhht7UD4+3ak6lm~*Ir3o|<>QIwG8|z7+jrENLZmeiKbz>2_fFO<3Oh)PkflbxS zOpVk-1gRvb9BwG12b&#ck7In}Pob%YKWCCGi4=+Zws4jw#* zwu(*c8{Jh+oEq5O02@AJ-~Bj`(#PtqihttndD%U0O0S>rXfI6ZsJnkoy76Y*&F?0w z!o7}H>N38j0mz@H%Pt#!WD&Um8<$~I%Hp|Ob;qy7?hni5Xf z+T9GXl#4sD9fXrg+ZL&GD{#Dhl`^Rr`97<^sP-r{U59W2m7R2ipe_&rS-$Z$_J2`8 z$Y^57kV)&X+{!$I_>VtjGG{&0Y7HdFizCh?-5~p~YmZ^7Oq{N+y#Qq9D2NmrXC#j< zgcajT*-B&Az{q^>Qcbg1I@~0y*m$pnB%MnfEejc2nb)?R6KJWDsDx;#l+{p;74=O# zi^LP;s_{2Hf`hR|jz!-hN9SSPNPq0hENKG0_|i5}BJn4wBB9U|<~`i$cMEW&+Br95 zAPtd^%T7Rz2A#sF>~Ys0)MYx0f0(!LQ*VK!cMp@;C+gvn#4(M>1|#gGc9E4D8IL%v zmmpiRMAc0WUB!6kV$)({W*=DyS-RYAgMkDL9mGM-3jQa-T1>{WS7H)&%o&kO<&{OG`Lr z^{?{8x-*ZVX&Wm_b$@*f=@~YxF|VftV$r9^OY=NSQkPx&g1x8=24}MIpfVLLN>HJ0 z+9m;%u)Ger7W8eYJg711+Inty$A3-QEA9x)s@-ySElWY}RHZI+bMO&o5G2=h$dyM6??jCi*b zR<1O0Wc7CGr+?~d#|lKD6+ltKH5Nha9DTLWlpcMq+mPFvneZGwigIvK^|xTun#^jR zQ>r+VF{E7;)HVBoEAh2(UCWc-^y(=DVD#*q^Jq{ALGwue04V<73R>0MVe)3KJ@-8h zH$a9J0rDkw973I|?$)d2BhJ68cG)48==e-5-lvZ9L4V^yuTg&i432{eDs46AV;T^Tn5PE1Y3Pq;V#TyN;WpG>Yx0L*8IG0&P-Zzc5$fZwVsl5wU$?R5@vBq&m ztjEAmLfmmp2E>B*q-r5GYg>A>B2so_8kNOUy{{WQH6{qhVOvz&d^$WQ_ z>L=DI=eY+&_6sC<*-9LRkxvF1A9&V|j8yGYFMltkNh1FMrkJwv^rW{D*u(3jb?kLh zGFzi8MDR?ab!f;shZYy*sJNtqr;=+!V+_UvES4=Hum@3PAKO-`!;*Rymku`7JcqN0 zs&OUewYZ#^v!?~#J6BpfSl(?|w2I5~g17CafU764td*GPq%0PA*|-Dr=~-?YsjD>i zSbxu;IYs62IP9MxTR!^awdiDV>K!|Ps05h}eq;`VU$3EdFc5}In z%_N;EM#XR2LPtZL7FCa|;7EQ`G-}u3wVP@98hlPJz2v=3XAPHwJ-g%dd?&Y3!I=mo zBc0N~ZTJf4FWA-FWlH`?@TqLKUuBo*{(mNh9#=zaewZw6$jPs`+<{5XodIllm*i^( zBn@s40u99m$)p)bU;!EpZOW$D!vXd0@1Y=pEa?h^0x59d$uUbts;k28bX%S+$Fh>l zwl&nx8FKX{Ok8ubrKk0#OR7t^ilz1R*NaGgYFV8+9UN6Pf0ya+@$9-7@^#0TsDDkB zi@CAYL`cYi)I_Gj>Ue|3!l%z!M^eEQN$xw3)v;$65wQGChQZeT@XKZ%%4KB8+ZC7h z{Gox911{*K^%u8p(hp%AsidD5)eFlt{LDhA?KYt!q$ej(#7;7XJ&ShwDS0BR9iKs2 zIPk2$`4`#SQ?-t~c#)Dx=59`;_nMj3M&m%m zgVqEV4SFJ-dcY#}j7I9lBh9stfNlWBvno@c?_u#4XH03mzlGJS&v08=lTKaQKmY=t+gdLd1FDqw|@cb@2zbL zV6(G*g`<$80y%P^inS(^upn*WU`K^n9BgL}7#tbo0!fsWvkQc`U_VVgS5g^oWuno3 zrh-p0YK#TAXb;m?O`L9(dxZT*sr_goE&l*fRL0)*HmY*&iSUh^{Yl&gyce{eu806h zpNStCK_iloX?dhpxNiCx`F}k~<)72zf{^|9Iu;#+x}|)RqB`;VejjzW5{DUjmr)R@ zwmeD%j6VwYc#~?9T$$Nx`B>+xJya-&f;f~UDWZYhT_=v)ZeHVUEuyetr}C00 zEm)Uuq`pooV>Z@s*VSwYHu@=Spg8ZySdV2PbSsmO7DDZmd56m&;(t63)k@TrrQLQs z-gXSwZRQ)HC(9t={gn$=4_6jde|ViKaxX;0UWyc$D2C}9Kq=~^ovf;*?0O7N zmyL`8kO`+cmO6ppE59Bzw>(_lrq|m8o2kq~vNoS~KY7z(t8k8_v^a5J-jCJc6x=SQ~BN5%p z-B=AKS#qR}x5s32^8xao5n4d#p5c#Fn2jPp+}h;)DY*&cu7Bdv+7{qb6v>xY&o~+&sj1eYMj`XPcJQtArJxC;Y}!{2+aI ztE6*0o&q^I6E)sB1dZ6hD}RVqc-cy4s@*}4I7Iw6@sP^3_tjE-%^ox2OPJc0J@!L(r3lp^H!1q^Oa`Ij$ zi<{ECPIs?HHMbAc11l0Wk%;yYH!6ermjC1 zRr-nMWPeYc1kavEFHM2kDRCe=v5v!QwwsB*in>y_JM3DORBMj5eORQ^Vm2}fh=UXj z-i&0A{u^kcOW%zvY6{g`mYTEAzGQh>0xp?~7B%BEgzvEDxSuGgOuY{EM^!gtKdP4D zl44rG85ZMrzmK+>N$_1!4>LZqNLc>>5xr?Ltbc5Z`ig!~Tfk}WI#x6Z&o)f=ND<0? z?@dd5R+YBPR<&BO76lI1QjOTagYGniw<58Qy<;7E#w-oLwy>9uV5zJUIo#ieln&ni0A*tVEKd_iP7dL(D#0#~w_U2^u+{@oFxm23 zNPoaRq?1p`lES-z6UpkVgYz;;0x)Wz?ou9R^P+rU-fn;80eE41)d;tzooA`2^4`qa3U)F?w{TkSo^i14P7T~pj=114|P zlN#<;1J)cA0nC%ao~_9Y*z3bzfvfu1S$~RSgFB8pK2hSwO1igW&+@F4+e8Xn$q*aO z95&)3Q!{(`R(5085`7!@=x5J7a~r&~NPmjJd#Y`wb<&QzB!%uT<>B8-SrGCvp(8}? z;d9tKXf`scY}Wm{BS>W+-dADeRV+d%=WE+jRmRRgTP?20^bwI@qln~q`>L{e(0?%t z1a*)zBdNIBfxEepLO|503zL#33L92mlX}e!2QChmItl?C#KOqS8=_E<{{Yr|g+3hH*-VpUuadOib7mfa5M9#xl7DuyFoHjK z8ls`aZ&dn!B)?6-8U$AFSCIT`aYk9M?E=#DoMJyFM~S-$^%vaQ(z>Fx&u*$r%&csj zKw4A}5dQ!+JJ@)RB9W$!s$RC+b3ROlwc~5AKg2wK+F35E+z$Q6d!5QTcAm<^!L!o3 zcd2abv2c9RMtB~^KTxiWbbsp4JJe^7wx-&v%G*}MnIzZ`8tbZ)$+eO!*oTzymi#_p z@wHu3#OHZ@AJARV<2G?_{v+Q;AZ29s7s$tlDLpxsEO7EjKDyv41Rhooh(RK_OU` zRTpN_M~;<&ChjjyXpk=DQhs*g#MfPMG^)W|`ZE9hbf%`!Odn<*|H|wj;t6 z(QG&m0rb?Kr)6Th63D2Zr;S2K#lYr!&pIZVa?ZWHD;T^;(zr+=X{A3Zs4Q>bD#t7F${s*$~l352H$AQQTg5 zU=2lgY znc~;%+soTZl${pI14)OBnh;&Ti2Xv0A}=MFWmHd*LVx%HOii};H8H^vDcyE$NhiuX zwCt>MUFt9+jfKu)DeMtQ-yJETcOvZn0OR#V9d_`YB=8Q0+(iQ?Jq4tL9&hTxkK&-8 zeF!M8WwQ~RqhYxGqR_W19n0=CuBGehY`4_SZkLvmqz$yBgoT(~sIb1Hh~Y^L>RIa4 znSAPH3x6vWHvk^hJPl(tBQay+Wd8t8Lkzs*docDLE-8{sjjw8Mr4*YBCM%tyMeR?p z)`mTD*4_m=e90DKNht&73QqvUSYC}@qh_mggn9`k%9_I>Lg>FD{n6e6*?p$3EuK=X zYxu8k)LLU0LbH|h+fAnC{s3xEg<`dt({UJjbbt9WvO=vMGHUY6p;6dC=h!J#TRJbE zv{Lnbki_`0h*=Ut4kTAD0K2&y*pf9og;A|M2-73wElr=(+%CBRA@t$$1LYv`*PptA zwuN0K%LOEcM*aoSSCAAN9<_p^fJxJd;42u@>Afj(Et{MPgZ!9y795G}U#6={PORn6 z>VF-6%5T;Cbv-;$!3<0Kwjl@fupsgvAIGqH+5X2iL$KP4u*J$a z#l7c=q-=FX*H%-1Z6Qb}bpXKx)-VaDSP1ohq{hMd1K4R>g0-hDw-;>a0Y5c{m)l|S zp(vun#qy+sDh7i5eo}NQe(Cq=LF!hC(tpx<@EMpOQe-CEM;necBzi742_#Oa=)P%G z7L#uT0CPRG@JU%W;CfV18X_;sssQ#1@2TL~%WSwcR7kKi(gC=qL|w8VmL3FrtUJNI zGO^EUHuP}LkVj(p&$=VVH~E+C6qakC)t#)h0Bm)rHgu#x;6+Wc)kZ&CLAD%~;(rN^ zyc<#OBDwN+Jugc4sgNaKnD9D*^`7dCo%~I{pVI>YlbkLMjCkkZTerfgTK70|=l=j2 z{LQfBcUwRPntfG6goCu3kT2VBwyd92T32d3 z7BLao75TQNx+=6d?&Xio2$L0CgouEvbI@?EsLXy}qPZ_f+hf+jonJ@!8TAveZ-1tM`LXWc zftU{PKenll@;SXmnAzym@$s(Y&mE%SsK}658dk!QaMd=)NS)WIHdP|C#FIqAL$_$S zlZM-KsasO?Zm&ZK^t_zePD}tr6L6A4w7)IEbv8B4#k15|t3?l1Qf`+nIkb;pe(;QK zKG11hV0z|O*bVY<*cjZZo_`M;6&}&ThQ&VHZWL!^Ikcop{OGQJi_wvMw6@SX* z#(P#32jhBaChPC{gbebw`!l~LYq9on9?Brm4dY_A;VjxJ>J;-Mg%pU|{SZ-vjK!Ia zi6jATdeMP=z{vy={HV9>BIn~x0y{Q24Dz5VkFX!Y+Xus1X(MW;5r0CdEya%(KW$-K zk{WUMc>W`)w{YMEU~vS~01I*-5_F(612S=Yg(K!CKzwKh4?oqC2Y=S%f#y3WUR${^ z@u^$6=wNLwFW@Gbl140wfOsFamP-T-o~$VZ79aAo>N_q;E!_S4D9 zYEQgvasH_5G*Tyf#*0=ypP~!3VemY_l*KgFoF^CV`G4x z;i*0*nb=xkP0CXHvm+-d@@$sb2;hL;{wAjFCw@F?n)L!HM<$7m?>s1&(7@@>022Vz3E0e z^a6G31nbZUITa*Eib1+31Q2L3s^QAq^UW#6nej4B!XG53@bbU1qcNfBrOk4wc9B&* zL3SLr`M!!WBujxTW@+*S5P4c=v&cSc9Zioa71fr>6@RS0hog=hc;R>vLdCJeTb*i+kC$-t+r{$D4LE1o1JU_S;&eUWgeh7Jl{^HBmA!Ts0XM3j;y0L2zjs86&S# zY@$US)kVp$6*kLOrha)@u(A{Ijl;zVKS8NmRCeO~ZiG5MDzhBv#p6TyN_Z9={gjkl zPM=YBzJJtjq_;bt<~#>y_SH{0)F-MdNU%|-15ReNjH*$kH=r^_OPa#~n_6}*NoQRPbYw`Q$z>XuN{{7DN7GG>6ZKYYuW_gdDlNjgQRdh> zFwsf!jy@H1a@f|!oMc2v`GG3KupS=@>Z_D_xqm6enQjU*MtG^Wx}~w&oT({VM=0X{ zG#JQTg|01iJXVmZF*EvZ%g=}}9~O_8?;X|4dUZ#sgVaykZNxFA^kkVu99kvlf)V}0#zR;0O@ZlDdDFAD4hD$>#zf61z259g-sz;W@ca% zR(J;JPt6w+JSiGFsg`%#%ZeanRW4R0ZKa1B9vb{95;~o<0nIEj)A2Rqf*6I8FbL*# zKJ!&b&I|%V2?2v{Is>%dg(I;) zn!}Ai^xGY>dNEx$Xm+V$6?N7r>vcuud!xZ?)U*uQF(wCqcX}n>>@O zVNy({Lp+NqkRm0(Kz%X|+fz?k>T~7KRat-4DUBmu`;FVEHb?t>azeWZc~=!3!U3rz zraM&Cb(kSI)p@l40P<;1{{T+rT$o);B4-Hh@m&6Exe<=-#@mSg5lO|ib}ZPdRVgR# z*ZTO3#n2E7&pEl`BTxsuu1z||Lf*CXUon;FcwE{;{o(Zre=QMyvnPSg&~VSn@-KgV z!TLovl!5;3`yvNJL8q;8{{XhP`fGVX{{V6J`h|<8A~)qh>c}`e%%BfpHWXDOpqBLw ztz0hx@}z3pvvSat{{Zdrft9=&&6E!c55R{V8Q#N*9I1aBEnIJ@m((LUSpNX2h<;=qR~*b|QSPbPN!N

MvxtyK?vqW=xPy6zK+39-u#khmnEqt2Yef$5(3j)&Bryb~JzLrLh|S z0GFgpbUQ~Q-Z>f-eGZ(IpS!-}E0PmVHBLkxIS9FNaAvXXww1Xde5M&>3@(fa?ldG` zF}V^-@h7Od?X|~fq->>Xn}VP25pB5KTkzV|H)6{R6_X|8Yqo%JUQ~^p6{0{VpJpt? z>Rc5bFQ?EcThO&DHbXeBKTUs(gNDGweLos2Vpm^tV~7LwuUXokkrwVd>Fi$ZrVrX9lYset#PHexjz2d1p&K-6he_)e7P~nDXNl7 zDd&1Ma15B$w=|&6Ne$yRf4v)Ndg-l?KPD!(AC6^lbkL3}c#67b1*(76<5>A89zh`0 z4vxLwXsXuGbKf5&1Gz8^kTS7O@<*5scKYg;Q>r + + + + + + + diff --git a/examples/example 15 - Filters/indexDisplacement_2.html b/examples/example 15 - Filters/indexDisplacement_2.html new file mode 100644 index 0000000..a20409b --- /dev/null +++ b/examples/example 15 - Filters/indexDisplacement_2.html @@ -0,0 +1,162 @@ + + + + pixi.js example 15 - Filters + + + + + + + + + + diff --git a/examples/example 15 - Filters/zeldaWaves.png b/examples/example 15 - Filters/zeldaWaves.png new file mode 100644 index 0000000000000000000000000000000000000000..01552c061c49d3fbb709cccbc7a328ad7e520aed GIT binary patch literal 38032 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 +