From 429851493c3c126801f827db2e6a8dabc4497e08 Mon Sep 17 00:00:00 2001 From: Mat Groves Date: Wed, 30 Oct 2013 23:40:40 +0000 Subject: [PATCH] Tweaks to Filters runing in render Texture Added Blur Example --- bin/pixi.dev.js | 1323 ++++++++++++++--- bin/pixi.dev.js.map | 63 + bin/pixi.js | 10 +- .../example 15 - Filters/depth_blur_BG.jpg | Bin 0 -> 7845 bytes .../example 15 - Filters/depth_blur_dudes.jpg | Bin 0 -> 96718 bytes .../example 15 - Filters/depth_blur_moby.jpg | Bin 0 -> 175582 bytes .../example 15 - Filters/displacement_BG.jpg | Bin 0 -> 14477 bytes .../displacement_fish1.jpg | Bin 0 -> 11806 bytes .../displacement_fish2.jpg | Bin 0 -> 7506 bytes .../displacement_fish3.jpg | Bin 0 -> 67276 bytes .../displacement_fish4.jpg | Bin 0 -> 3856 bytes .../displacement_overlay.png | Bin 0 -> 29747 bytes examples/example 15 - Filters/indexBlur.html | 111 ++ examples/example 16 - Displacement/index.html | 28 +- pixi.sublime-project | 8 + pixi.sublime-workspace | 535 +++++++ src/pixi/filters/DisplacementFilter.js | 7 +- .../renderers/webgl/WebGLFilterManager.js | 4 +- src/pixi/renderers/webgl/WebGLRenderGroup.js | 24 +- 19 files changed, 1895 insertions(+), 218 deletions(-) create mode 100644 bin/pixi.dev.js.map create mode 100644 examples/example 15 - Filters/depth_blur_BG.jpg create mode 100644 examples/example 15 - Filters/depth_blur_dudes.jpg create mode 100644 examples/example 15 - Filters/depth_blur_moby.jpg create mode 100644 examples/example 15 - Filters/displacement_BG.jpg create mode 100644 examples/example 15 - Filters/displacement_fish1.jpg create mode 100644 examples/example 15 - Filters/displacement_fish2.jpg create mode 100644 examples/example 15 - Filters/displacement_fish3.jpg create mode 100644 examples/example 15 - Filters/displacement_fish4.jpg create mode 100644 examples/example 15 - Filters/displacement_overlay.png create mode 100644 examples/example 15 - Filters/indexBlur.html create mode 100644 pixi.sublime-project create mode 100644 pixi.sublime-workspace diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index 6d567a2..4473b7c 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -1,14 +1,3 @@ -/** - * @license - * Pixi.JS - v1.3.0 - * Copyright (c) 2012, Mat Groves - * http://goodboydigital.com/ - * - * Compiled: 2013-09-30 - * - * Pixi.JS is licensed under the MIT License. - * http://www.opensource.org/licenses/mit-license.php - */ /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -858,6 +847,9 @@ PIXI.DisplayObject = function() this._sr = 0; this._cr = 1; + + this.filterArea = new PIXI.Rectangle(0,0,1,1); + /* * MOUSE Callbacks */ @@ -1021,11 +1013,23 @@ Object.defineProperty(PIXI.DisplayObject.prototype, 'filters', { }, set: function(value) { - //if(value == ) if(value) { if(this._filters)this.removeFilter(this._filters); - this.addFilter(value) + this.addFilter(value); + + // now put all the passes in one place.. + var passes = []; + for (var i = 0; i < value.length; i++) + { + var filterPasses = value[i].passes; + for (var j = 0; j < filterPasses.length; j++) + { + passes.push(filterPasses[j]); + }; + }; + + value.start.filterPasses = passes; } else { @@ -1033,6 +1037,10 @@ Object.defineProperty(PIXI.DisplayObject.prototype, 'filters', { } this._filters = value; + + + + } }); @@ -1047,7 +1055,9 @@ PIXI.DisplayObject.prototype.addFilter = function(data) { //if(this.filter)return; //this.filter = true; +// data[0].target = this; + // insert a filter block.. // TODO Onject pool thease bad boys.. var start = new PIXI.FilterBlock(); @@ -1064,6 +1074,8 @@ PIXI.DisplayObject.prototype.addFilter = function(data) start.open = true; + start.target = this; + /* * insert start */ @@ -1318,7 +1330,7 @@ PIXI.DisplayObjectContainer.prototype.addChild = function(child) var previousObject; // this could be wrong if there is a filter?? - if(this._filters) + if(this._filters || this._mask) { previousObject = this.last._iPrev; } @@ -1978,44 +1990,6 @@ PIXI.FilterBlock = function() * @author Mat Groves http://matgroves.com/ @Doormat23 */ -PIXI.ColorMatrixFilter = function() -{ - // set the uniforms - this.uniforms = { - matrix: {type: 'mat4', value: [1,0,0,0, - 0,1,0,0, - 0,0,1,0, - 0,0,0,1]}, - }; - - this.fragmentSrc = [ - "precision mediump float;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "uniform float invert;", - "uniform mat4 matrix;", - "uniform sampler2D uSampler;", - "void main(void) {", - "gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;", - "gl_FragColor = gl_FragColor * vColor;", - "}" - ]; - -} - - -Object.defineProperty(PIXI.ColorMatrixFilter.prototype, 'matrix', { - get: function() { - return this.uniforms.matrix.value; - }, - set: function(value) { - this.uniforms.matrix.value = value; - } -}); -/** - * @author Mat Groves http://matgroves.com/ @Doormat23 - */ - /** * A Text Object will create a line(s) of text to split a line you can use "\n" * @@ -3538,8 +3512,14 @@ PIXI.autoDetectRenderer = function(width, height, view, transparent, antialias) if(!height)height = 600; // BORROWED from Mr Doob (mrdoob.com) - var webgl = ( function () { try { return !! window.WebGLRenderingContext && !! document.createElement( 'canvas' ).getContext( 'experimental-webgl' ); } catch( e ) { return false; } } )(); + var webgl = ( function () { try { var canvas = document.createElement( 'canvas' ); return !! window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ); } catch( e ) { return false; } } )(); + if(webgl) + { + var ie = (navigator.userAgent.toLowerCase().indexOf('msie') != -1); + webgl = !ie; + } + //console.log(webgl); if( webgl ) { @@ -3727,10 +3707,14 @@ PIXI.shaderVertexSrc = [ "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.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 0.0, 1.0);", + "gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);", "vTextureCoord = aTextureCoord;", "vColor = aColor;", "}" @@ -3786,10 +3770,12 @@ PIXI.primitiveShaderVertexSrc = [ "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);", + "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;", "}" @@ -3809,6 +3795,8 @@ PIXI.initPrimitiveShader = function() shaderProgram.colorAttribute = gl.getAttribLocation(shaderProgram, "aColor"); shaderProgram.projectionVector = gl.getUniformLocation(shaderProgram, "projectionVector"); + shaderProgram.offsetVector = gl.getUniformLocation(shaderProgram, "offsetVector"); + shaderProgram.translationMatrix = gl.getUniformLocation(shaderProgram, "translationMatrix"); @@ -3825,14 +3813,28 @@ PIXI.initPrimitiveShader = function() PIXI.initDefaultShader = function() { + PIXI.frameBufferStack = []; + PIXI.frameBufferPool = []; + PIXI.defaultShader = new PIXI.PixiShader(); PIXI.defaultShader.init(); - PIXI.activateShader(PIXI.defaultShader); + 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*/ } + PIXI.initDefaultStripShader = function() { var gl = this.gl; @@ -3898,15 +3900,22 @@ PIXI.compileProgram = function(vertexSrc, fragmentSrc) return shaderProgram; } -PIXI.activateShader = function(shader) +PIXI.pushShader = function(shader) { - PIXI.shaderStack.push(shader); - - //console.log(">>>") 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); @@ -3923,7 +3932,6 @@ PIXI.activateShader = function(shader) PIXI.popShader = function() { var gl = PIXI.gl; - // activate last program.. var lastProgram = PIXI.shaderStack.pop(); var shaderProgram = PIXI.shaderStack[ PIXI.shaderStack.length-1 ].program; @@ -3938,13 +3946,7 @@ PIXI.activatePrimitiveShader = function() var gl = PIXI.gl; gl.useProgram(PIXI.primitiveProgram); - - //gl.disableVertexAttribArray(PIXI.currentShader.vertexPositionAttribute); - //gl.disableVertexAttribArray(PIXI.currentShader.colorAttribute); gl.disableVertexAttribArray(PIXI.currentShader.textureCoordAttribute); - - //gl.enableVertexAttribArray(PIXI.primitiveProgram.vertexPositionAttribute); - //gl.enableVertexAttribArray(PIXI.primitiveProgram.colorAttribute); } PIXI.deactivatePrimitiveShader = function() @@ -3952,10 +3954,7 @@ PIXI.deactivatePrimitiveShader = function() var gl = PIXI.gl; gl.useProgram(PIXI.currentShader); - gl.enableVertexAttribArray(PIXI.currentShader.textureCoordAttribute); - //gl.enableVertexAttribArray(PIXI.currentShader.vertexPositionAttribute); - //gl.enableVertexAttribArray(PIXI.currentShader.colorAttribute); } /** * @author Mat Groves http://matgroves.com/ @Doormat23 @@ -3987,6 +3986,16 @@ PIXI.PixiShader.prototype.init = function() 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.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"); @@ -3994,6 +4003,7 @@ PIXI.PixiShader.prototype.init = function() 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) @@ -4019,10 +4029,28 @@ PIXI.PixiShader.prototype.syncUniforms = function() { gl.uniform1f(this.program[key], this.uniforms[key].value); } + if(type == "f2") + { + gl.uniform2f(this.program[key], this.uniforms[key].value.x, this.uniforms[key].value.y); + } else if(type == "mat4") { gl.uniformMatrix4fv(this.program[key], false, this.uniforms[key].value); } + else if(type == "sampler2D") + { + // first texture... + var texture = this.uniforms[key].value; + + gl.activeTexture(gl.TEXTURE1); + gl.bindTexture(gl.TEXTURE_2D, texture.baseTexture._glTexture); + + gl.uniform1i(this.program[key], 1); + + // activate texture.. + // gl.uniformMatrix4fv(this.program[key], false, this.uniforms[key].value); + // gl.uniformMatrix4fv(this.program[key], false, this.uniforms[key].value); + } } } @@ -4076,7 +4104,6 @@ PIXI.WebGLGraphics.renderGraphics = function(graphics, projection) PIXI.WebGLGraphics.updateGraphics(graphics); } - PIXI.activatePrimitiveShader(); // This could be speeded up fo sure! @@ -4089,7 +4116,8 @@ PIXI.WebGLGraphics.renderGraphics = function(graphics, projection) gl.uniformMatrix3fv(PIXI.primitiveProgram.translationMatrix, false, m); - gl.uniform2f(PIXI.primitiveProgram.projectionVector, projection.x, projection.y); + gl.uniform2f(PIXI.primitiveProgram.projectionVector, projection.x, -projection.y); + gl.uniform2f(PIXI.primitiveProgram.offsetVector, -PIXI.offset.x, -PIXI.offset.y); gl.uniform1f(PIXI.primitiveProgram.alpha, graphics.worldAlpha); @@ -4590,25 +4618,33 @@ PIXI.WebGLRenderer = function(width, height, view, transparent, antialias) this.batchs = []; - try - { - PIXI.gl = this.gl = this.view.getContext("experimental-webgl", { - alpha: this.transparent, - antialias:!!antialias, // SPEED UP?? - premultipliedAlpha:false, - stencil:true - }); - } - catch (e) - { - throw new Error(" This browser does not support webGL. Try using the canvas renderer" + this); - } + var options = { + alpha: this.transparent, + antialias:!!antialias, // SPEED UP?? + premultipliedAlpha:false, + stencil:true + } + + //try 'experimental-webgl' + try { + PIXI.gl = this.gl = this.view.getContext("experimental-webgl", options); + } catch (e) { + //try 'webgl' + try { + PIXI.gl = this.gl = this.view.getContext("webgl", options); + } catch (e) { + // fail, not able to get a context + throw new Error(" This browser does not support webGL. Try using the canvas renderer" + this); + } + } PIXI.initDefaultShader(); PIXI.initPrimitiveShader(); PIXI.initDefaultStripShader(); + + // PIXI.activateDefaultShader(); var gl = this.gl; @@ -4622,11 +4658,14 @@ PIXI.WebGLRenderer = function(width, height, view, transparent, antialias) gl.colorMask(true, true, true, this.transparent); PIXI.projection = new PIXI.Point(400, 300); + PIXI.offset = new PIXI.Point(0, 0); + + // TODO remove thease globals.. this.resize(this.width, this.height); this.contextLost = false; - PIXI.activateShader(PIXI.defaultShader); + PIXI.pushShader(PIXI.defaultShader); this.stageRenderGroup = new PIXI.WebGLRenderGroup(this.gl); @@ -4719,6 +4758,10 @@ PIXI.WebGLRenderer.prototype.render = function(stage) // HACK TO TEST this.stageRenderGroup.backgroundColor = stage.backgroundColorSplit; + + PIXI.projection.x = this.width/2; + PIXI.projection.y = -this.height/2; + this.stageRenderGroup.render(PIXI.projection); // interaction @@ -4844,7 +4887,10 @@ PIXI.WebGLRenderer.prototype.resize = function(width, height) //var projectionMatrix = this.projectionMatrix; PIXI.projection.x = this.width/2; - PIXI.projection.y = this.height/2; + PIXI.projection.y = -this.height/2; + + //PIXI.size.x = this.width/2; + //PIXI.size.y = -this.height/2; // projectionMatrix[0] = 2/this.width; // projectionMatrix[5] = -2/this.height; @@ -5315,7 +5361,10 @@ PIXI.WebGLBatch.prototype.update = function() var indexRun = 0; var displayObject = this.head; - + var verticies = this.verticies; + var uvs = this.uvs; + var colors = this.colors; + while(displayObject) { if(displayObject.vcount === PIXI.visibleCount) @@ -5343,17 +5392,17 @@ PIXI.WebGLBatch.prototype.update = function() tx = worldTransform[2]; ty = worldTransform[5]; - this.verticies[index + 0 ] = a * w1 + c * h1 + tx; - this.verticies[index + 1 ] = d * h1 + b * w1 + ty; + verticies[index + 0 ] = a * w1 + c * h1 + tx; + verticies[index + 1 ] = d * h1 + b * w1 + ty; - this.verticies[index + 2 ] = a * w0 + c * h1 + tx; - this.verticies[index + 3 ] = d * h1 + b * w0 + ty; + verticies[index + 2 ] = a * w0 + c * h1 + tx; + verticies[index + 3 ] = d * h1 + b * w0 + ty; - this.verticies[index + 4 ] = a * w0 + c * h0 + tx; - this.verticies[index + 5 ] = d * h0 + b * w0 + ty; + verticies[index + 4 ] = a * w0 + c * h0 + tx; + verticies[index + 5 ] = d * h0 + b * w0 + ty; - this.verticies[index + 6] = a * w1 + c * h0 + tx; - this.verticies[index + 7] = d * h0 + b * w1 + ty; + verticies[index + 6] = a * w1 + c * h0 + tx; + verticies[index + 7] = d * h0 + b * w1 + ty; if(displayObject.updateFrame || displayObject.texture.updateFrame) { @@ -5365,17 +5414,17 @@ PIXI.WebGLBatch.prototype.update = function() var tw = texture.baseTexture.width; var th = texture.baseTexture.height; - this.uvs[index + 0] = frame.x / tw; - this.uvs[index +1] = frame.y / th; + uvs[index + 0] = frame.x / tw; + uvs[index +1] = frame.y / th; - this.uvs[index +2] = (frame.x + frame.width) / tw; - this.uvs[index +3] = frame.y / th; + uvs[index +2] = (frame.x + frame.width) / tw; + uvs[index +3] = frame.y / th; - this.uvs[index +4] = (frame.x + frame.width) / tw; - this.uvs[index +5] = (frame.y + frame.height) / th; + uvs[index +4] = (frame.x + frame.width) / tw; + uvs[index +5] = (frame.y + frame.height) / th; - this.uvs[index +6] = frame.x / tw; - this.uvs[index +7] = (frame.y + frame.height) / th; + uvs[index +6] = frame.x / tw; + uvs[index +7] = (frame.y + frame.height) / th; displayObject.updateFrame = false; } @@ -5386,7 +5435,7 @@ PIXI.WebGLBatch.prototype.update = function() displayObject.cacheAlpha = displayObject.worldAlpha; var colorIndex = indexRun * 4; - this.colors[colorIndex] = this.colors[colorIndex + 1] = this.colors[colorIndex + 2] = this.colors[colorIndex + 3] = displayObject.worldAlpha; + colors[colorIndex] = colors[colorIndex + 1] = colors[colorIndex + 2] = colors[colorIndex + 3] = displayObject.worldAlpha; this.dirtyColors = true; } } @@ -5394,17 +5443,7 @@ PIXI.WebGLBatch.prototype.update = function() { index = indexRun * 8; - this.verticies[index + 0 ] = 0; - this.verticies[index + 1 ] = 0; - - this.verticies[index + 2 ] = 0; - this.verticies[index + 3 ] = 0; - - this.verticies[index + 4 ] = 0; - this.verticies[index + 5 ] = 0; - - this.verticies[index + 6] = 0; - this.verticies[index + 7] = 0; + verticies[index + 0 ] = verticies[index + 1 ] = verticies[index + 2 ] = verticies[index + 3 ] = verticies[index + 4 ] = verticies[index + 5 ] = verticies[index + 6] = verticies[index + 7] = 0; } indexRun++; @@ -5446,7 +5485,7 @@ PIXI.WebGLBatch.prototype.render = function(start, end) gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.verticies) gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, 2, gl.FLOAT, false, 0, 0); // update the uvs - var isDefault = (shaderProgram == PIXI.shaderProgram) + //var isDefault = (shaderProgram == PIXI.shaderProgram) gl.bindBuffer(gl.ARRAY_BUFFER, this.uvBuffer); @@ -5505,6 +5544,8 @@ PIXI.WebGLRenderGroup = function(gl) this.backgroundColor; this.batchs = []; this.toRemove = []; + + this.filterManager = new PIXI.WebGLFilterManager(); } // constructor @@ -5538,17 +5579,20 @@ PIXI.WebGLRenderGroup.prototype.setRenderable = function(displayObject) * @method render * @param projection {Object} */ -PIXI.WebGLRenderGroup.prototype.render = function(projection) +PIXI.WebGLRenderGroup.prototype.render = function(projection, buffer) { PIXI.WebGLRenderer.updateTextures(); var gl = this.gl; - gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); + + this.filterManager.begin(projection, buffer); + gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); // will render all the elements in the group var renderable; + for (var i=0; i < this.batchs.length; i++) { @@ -5559,25 +5603,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projection) continue; } - // non sprite batch.. - var worldVisible = renderable.vcount === PIXI.visibleCount; - - if(renderable instanceof PIXI.TilingSprite) - { - if(worldVisible)this.renderTilingSprite(renderable, projection); - } - else if(renderable instanceof PIXI.Strip) - { - if(worldVisible)this.renderStrip(renderable, projection); - } - else if(renderable instanceof PIXI.Graphics) - { - if(worldVisible && renderable.renderable) PIXI.WebGLGraphics.renderGraphics(renderable, projection);//, projectionMatrix); - } - else if(renderable instanceof PIXI.FilterBlock) - { - this.handleFilterBlock(renderable, projection); - } + // render special + this.renderSpecial(renderable, projection); } } @@ -5590,12 +5617,18 @@ PIXI.WebGLRenderGroup.prototype.render = function(projection) * @param projection {Object} * @private */ -PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projection) +PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projection, buffer) { PIXI.WebGLRenderer.updateTextures(); - var gl = this.gl; + gl.uniform2f(PIXI.currentShader.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... @@ -5615,11 +5648,13 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project var nextRenderable = displayObject.first; while(nextRenderable._iNext) { - nextRenderable = nextRenderable._iNext; if(nextRenderable.renderable && nextRenderable.__renderGroup)break; + nextRenderable = nextRenderable._iNext; } var startBatch = nextRenderable.batch; + //console.log(nextRenderable); + //console.log(renderable) if(nextRenderable instanceof PIXI.Sprite) { startBatch = nextRenderable.batch; @@ -5649,13 +5684,11 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project } // Get the LAST renderable object - var lastRenderable = displayObject; - var endBatch; - var lastItem = displayObject; - while(lastItem.children.length > 0) + var lastRenderable = displayObject.last; + while(lastRenderable._iPrev) { - lastItem = lastItem.children[lastItem.children.length-1]; - if(lastItem.renderable)lastRenderable = lastItem.last; + if(lastRenderable.renderable && lastRenderable.__renderGroup)break; + lastRenderable = lastRenderable._iNext; } if(lastRenderable instanceof PIXI.Sprite) @@ -5684,6 +5717,7 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project endBatch = lastRenderable; } + console.log(endBatch); // TODO - need to fold this up a bit! if(startBatch == endBatch) @@ -5753,6 +5787,7 @@ PIXI.WebGLRenderGroup.prototype.renderSpecial = function(renderable, projection) var worldVisible = renderable.vcount === PIXI.visibleCount + if(renderable instanceof PIXI.TilingSprite) { if(worldVisible)this.renderTilingSprite(renderable, projection); @@ -5775,41 +5810,32 @@ PIXI.WebGLRenderGroup.prototype.renderSpecial = function(renderable, projection) } } -PIXI.WebGLRenderGroup.prototype.handleFilterBlock = function(renderable, projection) +PIXI.WebGLRenderGroup.prototype.handleFilterBlock = function(filterBlock, projection) { /* * for now only masks are supported.. */ var gl = PIXI.gl; - - if(renderable.open) + + if(filterBlock.open) { - if(renderable.data instanceof Array) + if(filterBlock.data instanceof Array) { - var filter = renderable.data[0]; + //var filter = filterBlock.data[0]; + //console.log(filter) + this.filterManager.pushFilter(filterBlock);//filter); + // ok so.. - if(!filter.shader) - { - var shader = new PIXI.PixiShader(); - - shader.fragmentSrc = filter.fragmentSrc; - shader.uniforms = filter.uniforms; - shader.init(); - - filter.shader = shader - } - - PIXI.activateShader(filter.shader); - gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); } else { + gl.enable(gl.STENCIL_TEST); gl.colorMask(false, false, false, false); gl.stencilFunc(gl.ALWAYS,1,0xff); gl.stencilOp(gl.KEEP,gl.KEEP,gl.REPLACE); - PIXI.WebGLGraphics.renderGraphics(renderable.data, projection); + PIXI.WebGLGraphics.renderGraphics(filterBlock.data, projection); gl.colorMask(true, true, true, true); gl.stencilFunc(gl.NOTEQUAL,0,0xff); @@ -5818,10 +5844,11 @@ PIXI.WebGLRenderGroup.prototype.handleFilterBlock = function(renderable, project } else { - if(renderable.data instanceof Array) + if(filterBlock.data instanceof Array) { - PIXI.popShader(); - gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); + this.filterManager.popFilter(); + // PIXI.popShader(); + // gl.uniform2f(PIXI.currentShader.projectionVector, projection.x, projection.y); } else { @@ -6501,6 +6528,488 @@ PIXI.WebGLRenderGroup.prototype.initStrip = function(strip) */ +PIXI.WebGLFilterManager = function() +{ + this.filterStack = []; + this.texturePool = []; + + this.offsetX = 0; + this.offsetY = 0; + + this.initShaderBuffers(); +} + +// API + +PIXI.WebGLFilterManager.prototype.begin = function(projection, buffer) +{ + this.width = projection.x * 2; + this.height = -projection.y * 2; + this.buffer = buffer; +} + +PIXI.WebGLFilterManager.prototype.pushFilter = function(filterBlock) +{ + var gl = PIXI.gl; + + // filter program + // OPTIMISATION - the first filter is free if its a simple color change? + this.filterStack.push(filterBlock); + + var filter = filterBlock.filterPasses[0]; + + + + this.offsetX += filterBlock.target.filterArea.x; + this.offsetY += filterBlock.target.filterArea.y; + + + + + + var texture = this.texturePool.pop(); + if(!texture)texture = new PIXI.FilterTexture(this.width, this.height); + + gl.bindTexture(gl.TEXTURE_2D, texture.texture); + + this.getBounds(filterBlock.target); + + var filterArea = filterBlock.target.filterArea; + //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); + + // set view port + gl.viewport(0, 0, filterArea.width, filterArea.height); + + PIXI.projection.x = filterArea.width/2; + PIXI.projection.y = -filterArea.height/2; + + PIXI.offset.x = -filterArea.x; + PIXI.offset.y = -filterArea.y; + + // update projection + gl.uniform2f(PIXI.currentShader.projectionVector, filterArea.width/2, -filterArea.height/2); + gl.uniform2f(PIXI.currentShader.offsetVector, -filterArea.x, -filterArea.y); + //PIXI.primitiveProgram + + gl.colorMask(true, true, true, true); + gl.clearColor(0,0,0, 0); + gl.clear(gl.COLOR_BUFFER_BIT); + + //filter.texture = texture; + filterBlock._glFilterTexture = texture; + + //console.log("PUSH") +} + + +PIXI.WebGLFilterManager.prototype.popFilter = function() +{ + + var gl = PIXI.gl; + + var filterBlock = this.filterStack.pop(); + + + + var filterArea = filterBlock.target.filterArea; + + var texture = filterBlock._glFilterTexture; + + if(filterBlock.filterPasses.length > 1) + { + gl.viewport(0, 0, filterArea.width, filterArea.height); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); + + this.vertexArray[0] = 0; + this.vertexArray[1] = filterArea.height; + + this.vertexArray[2] = filterArea.width; + this.vertexArray[3] = filterArea.height; + + this.vertexArray[4] = 0; + this.vertexArray[5] = 0; + + this.vertexArray[6] = filterArea.width; + this.vertexArray[7] = 0; + + + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertexArray); + + + gl.bindBuffer(gl.ARRAY_BUFFER, this.uvBuffer); + // nnow set the uvs.. + this.uvArray[2] = filterArea.width/this.width; + this.uvArray[5] = filterArea.height/this.height; + this.uvArray[6] = filterArea.width/this.width; + this.uvArray[7] = filterArea.height/this.height; + + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.uvArray); + + var inputTexture = texture; + var outputTexture = this.texturePool.pop(); + if(!outputTexture)outputTexture = new PIXI.FilterTexture(this.width, this.height); + + // need to clear this FBO as it may have some left over elements from a prvious filter. + gl.bindFramebuffer(gl.FRAMEBUFFER, outputTexture.frameBuffer ); + gl.clear(gl.COLOR_BUFFER_BIT); + + gl.disable(gl.BLEND); + + for (var i = 0; i < filterBlock.filterPasses.length-1; i++) + { + var filterPass = filterBlock.filterPasses[i]; + + gl.bindFramebuffer(gl.FRAMEBUFFER, outputTexture.frameBuffer ); + + // set texture + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_2D, inputTexture.texture); + + // draw texture.. + this.applyFilterPass(filterPass, filterArea.width, filterArea.height); + // swap the textures.. + var temp = inputTexture; + inputTexture = outputTexture; + outputTexture = temp; + + }; + + gl.enable(gl.BLEND); + + texture = inputTexture; + this.texturePool.push(outputTexture); + } + + var filter = filterBlock.filterPasses[filterBlock.filterPasses.length-1]; + + this.offsetX -= filterArea.x; + this.offsetY -= filterArea.y; + + + var sizeX = this.width; + var sizeY = this.height; + + var offsetX = 0; + var offsetY = 0; + + var buffer = this.buffer; + + // time to render the filters texture to the previous scene + if(this.filterStack.length === 0) + { + gl.colorMask(true, true, true, this.buffer); + } + else + { + var currentFilter = this.filterStack[this.filterStack.length-1]; + var filterArea = currentFilter.target.filterArea; + + sizeX = filterArea.width; + sizeY = filterArea.height; + + offsetX = filterArea.x; + offsetY = filterArea.y; + + buffer = currentFilter._glFilterTexture.frameBuffer; + } + + + + // TODO need toremove thease global elements.. + PIXI.projection.x = sizeX/2; + PIXI.projection.y = -sizeY/2; + + PIXI.offset.x = offsetX; + PIXI.offset.y = offsetY; + + + var filterArea = filterBlock.target.filterArea; + var x = filterArea.x-offsetX; + var y = filterArea.y-offsetY; + + // update the buffers.. + // make sure to flip the y! + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); + + this.vertexArray[0] = x; + this.vertexArray[1] = y + filterArea.height; + + this.vertexArray[2] = x + filterArea.width; + this.vertexArray[3] = y + filterArea.height; + + this.vertexArray[4] = x; + this.vertexArray[5] = y; + + this.vertexArray[6] = x + filterArea.width; + this.vertexArray[7] = y; + + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertexArray); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.uvBuffer); + + this.uvArray[2] = filterArea.width/this.width; + this.uvArray[5] = filterArea.height/this.height; + this.uvArray[6] = filterArea.width/this.width; + this.uvArray[7] = filterArea.height/this.height; + + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.uvArray); + + gl.viewport(0, 0, sizeX, sizeY); + // bind the buffer + gl.bindFramebuffer(gl.FRAMEBUFFER, buffer ); + + // set texture + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_2D, texture.texture); + + // apply! + this.applyFilterPass(filter, 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); + + // return the texture to the pool + this.texturePool.push(texture); + filterBlock._glFilterTexture = null; +} + +PIXI.WebGLFilterManager.prototype.applyFilterPass = function(filter, width, height) +{ + // use program + var gl = PIXI.gl; + + if(!filter.shader) + { + var shader = new PIXI.PixiShader(); + + shader.fragmentSrc = filter.fragmentSrc; + shader.uniforms = filter.uniforms; + shader.init(); + + filter.shader = shader; + } + + var shader = filter.shader; + + // set the shader + gl.useProgram(shader.program); + + gl.uniform2f(shader.projectionVector, width/2, -height/2); + gl.uniform2f(shader.offsetVector, 0,0) + + shader.syncUniforms(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + + // draw the filter... + gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); +} + +PIXI.WebGLFilterManager.prototype.initShaderBuffers = function() +{ + var gl = PIXI.gl; + + // create some buffers + this.vertexBuffer = gl.createBuffer(); + this.uvBuffer = gl.createBuffer(); + this.indexBuffer = gl.createBuffer(); + + // bind and upload the vertexs.. + // keep a refferance to the vertexFloatData.. + this.vertexArray = new Float32Array([0.0, 0.0, + 1.0, 0.0, + 0.0, 1.0, + 1.0, 1.0]); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer); + gl.bufferData( + gl.ARRAY_BUFFER, + this.vertexArray, + gl.STATIC_DRAW); + + + // bind and upload the uv buffer + this.uvArray = new Float32Array([0.0, 0.0, + 1.0, 0.0, + 0.0, 1.0, + 1.0, 1.0]); + + gl.bindBuffer(gl.ARRAY_BUFFER, this.uvBuffer); + gl.bufferData( + gl.ARRAY_BUFFER, + this.uvArray, + gl.STATIC_DRAW); + + // bind and upload the index + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + gl.bufferData( + gl.ELEMENT_ARRAY_BUFFER, + new Uint16Array([0, 1, 2, 1, 3, 2]), + gl.STATIC_DRAW); +} + +PIXI.WebGLFilterManager.prototype.getBounds = function(displayObject) +{ + // time to get the width and height of the object! + var worldTransform, width, height, aX, aY, w0, w1, h0, h1, index, doTest; + var a, b, c, d, tx, ty, x1, x2, x3, x4, y1, y2, y3, y4; + + var tempObject = displayObject.first; + var testObject = displayObject.last._iNext; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + do + { + // TODO can be optimized! - what if there is no scale / rotation? + + 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; + + h0 = height * (1-aY); + h1 = height * -aY; + + doTest = true; + } + else if(tempObject instanceof PIXI.Graphics) + { + tempObject.updateFilterBounds(); + + var bounds = tempObject.bounds; + + width = bounds.width; + height = bounds.height; + + w0 = bounds.x + w1 = bounds.x + bounds.width; + + h0 = bounds.y + h1 = bounds.y + bounds.height; + + doTest = true; + } + + if(doTest) + { + worldTransform = tempObject.worldTransform; + + a = worldTransform[0]; + b = worldTransform[3]; + c = worldTransform[1]; + d = worldTransform[4]; + tx = worldTransform[2]; + ty = worldTransform[5]; + + x1 = a * w1 + c * h1 + tx; + y1 = d * h1 + b * w1 + ty; + + x2 = a * w0 + c * h1 + tx; + y2 = d * h1 + b * w0 + ty; + + x3 = a * w0 + c * h0 + tx; + y3 = d * h0 + b * w0 + ty; + + x4 = a * w1 + c * h0 + tx; + y4 = d * h0 + b * w1 + ty; + + minX = x1 < minX ? x1 : minX; + minX = x2 < minX ? x2 : minX; + minX = x3 < minX ? x3 : minX; + minX = x4 < minX ? x4 : minX; + + minY = y1 < minY ? y1 : minY; + minY = y2 < minY ? y2 : minY; + minY = y3 < minY ? y3 : minY; + minY = y4 < minY ? y4 : minY; + + maxX = x1 > maxX ? x1 : maxX; + maxX = x2 > maxX ? x2 : maxX; + maxX = x3 > maxX ? x3 : maxX; + maxX = x4 > maxX ? x4 : maxX; + + maxY = y1 > maxY ? y1 : maxY; + maxY = y2 > maxY ? y2 : maxY; + maxY = y3 > maxY ? y3 : maxY; + maxY = y4 > maxY ? y4 : maxY; + } + + 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; + + displayObject.filterArea.x = minX; + displayObject.filterArea.y = minY; + displayObject.filterArea.width = maxX - minX; + displayObject.filterArea.height = maxY - minY; +} + +PIXI.FilterTexture = function(width, height) +{ + var gl = PIXI.gl; + + // next time to create a frame buffer and texture + this.frameBuffer = gl.createFramebuffer(); + this.texture = gl.createTexture(); + + gl.bindTexture(gl.TEXTURE_2D, this.texture); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer ); + + gl.bindFramebuffer(gl.FRAMEBUFFER, this.frameBuffer ); + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.texture, 0); + + this.resize(width, height); +} + +PIXI.FilterTexture.prototype.resize = function(width, height) +{ + this.width = width; + this.height = height; + + var gl = PIXI.gl; + + gl.bindTexture(gl.TEXTURE_2D, this.texture); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); + +} +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + /** * the CanvasRenderer draws the stage and all its content onto a 2d canvas. This renderer should be used for browsers that do not support webGL. * Dont forget to add the view to your DOM or you will not see anything :) @@ -6693,6 +7202,7 @@ PIXI.CanvasRenderer.prototype.renderDisplayObject = function(displayObject) } else if(displayObject instanceof PIXI.CustomRenderable) { + context.setTransform(transform[0], transform[3], transform[1], transform[4], transform[2], transform[5]); displayObject.renderCanvas(this); } else if(displayObject instanceof PIXI.Graphics) @@ -6702,25 +7212,27 @@ PIXI.CanvasRenderer.prototype.renderDisplayObject = function(displayObject) } else if(displayObject instanceof PIXI.FilterBlock) { - if(PIXI.FilterBlock.data instanceof PIXI.Graphics) - { + if(displayObject.data instanceof PIXI.Graphics) + { + var mask = displayObject.data; + if(displayObject.open) { context.save(); - var cacheAlpha = displayObject.mask.alpha; - var maskTransform = displayObject.mask.worldTransform; + var cacheAlpha = mask.alpha; + var maskTransform = mask.worldTransform; context.setTransform(maskTransform[0], maskTransform[3], maskTransform[1], maskTransform[4], maskTransform[2], maskTransform[5]) - displayObject.mask.worldAlpha = 0.5; + mask.worldAlpha = 0.5; context.worldAlpha = 0; - PIXI.CanvasGraphics.renderGraphicsMask(displayObject.mask, context); + PIXI.CanvasGraphics.renderGraphicsMask(mask, context); context.clip(); - displayObject.mask.worldAlpha = cacheAlpha; + mask.worldAlpha = cacheAlpha; } else { @@ -7336,6 +7848,81 @@ PIXI.Graphics.prototype.clear = function() this.dirty = true; this.clearDirty = true; this.graphicsData = []; + + this.bounds = null//new PIXI.Rectangle(); +} + + +PIXI.Graphics.prototype.updateFilterBounds = function() +{ + if(!this.bounds) + { + var minX = Infinity; + var maxX = -Infinity; + + var minY = Infinity; + var maxY = -Infinity; + + var points, x, y; + + for (var i = 0; i < this.graphicsData.length; i++) { + + + var data = this.graphicsData[i]; + var type = data.type; + var lineWidth = data.lineWidth; + + points = data.points; + + if(type === PIXI.Graphics.RECT) + { + x = points.x - lineWidth/2; + y = points.y - lineWidth/2; + var width = points.width + lineWidth; + var height = points.height + lineWidth; + + minX = x < minX ? x : minX; + maxX = x + width > maxX ? x + width : maxX; + + minY = y < minY ? x : minY; + maxY = y + height > maxY ? y + height : maxY; + } + else if(type === PIXI.Graphics.CIRC || type === PIXI.Graphics.ELIP) + { + x = points.x; + y = points.y; + var radius = points.radius + lineWidth/2; + + minX = x - radius < minX ? x - radius : minX; + maxX = x + radius > maxX ? x + radius : maxX; + + minY = y - radius < minY ? y - radius : minY; + maxY = y + radius > maxY ? y + radius : maxY; + } + else + { + // POLY + for (var j = 0; j < points.length; j+=2) + { + + x = points[j]; + y = points[j+1]; + + minX = x-lineWidth < minX ? x-lineWidth : minX; + maxX = x+lineWidth > maxX ? x+lineWidth : maxX; + + minY = y-lineWidth < minY ? y-lineWidth : minY; + maxY = y+lineWidth > maxY ? y+lineWidth : maxY; + }; + } + + }; + + this.bounds = new PIXI.Rectangle(minX, minY, maxX - minX, maxY - minY); + + } + +// console.log(this.bounds); } // SOME TYPES: @@ -9182,7 +9769,8 @@ spine.Bone.yDown = true; PIXI.CustomRenderable = function() { PIXI.DisplayObject.call( this ); - + + this.renderable = true; } // constructor @@ -9672,12 +10260,10 @@ PIXI.RenderTexture.prototype.initWebGL = function() gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.baseTexture._glTexture, 0); // create a projection matrix.. - this.projection = new PIXI.Point(this.width/2 , this.height/2); + this.projection = new PIXI.Point(this.width/2 , -this.height/2); // set the correct render function.. this.render = this.renderWebGL; - - } @@ -9690,7 +10276,7 @@ PIXI.RenderTexture.prototype.resize = function(width, height) if(PIXI.gl) { this.projection.x = this.width/2 - this.projection.y = this.height/2; + this.projection.y = -this.height/2; var gl = PIXI.gl; gl.bindTexture(gl.TEXTURE_2D, this.baseTexture._glTexture); @@ -9754,9 +10340,8 @@ PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, position, cle displayObject.worldTransform = PIXI.mat3.create();//sthis.indetityMatrix; // modify to flip... displayObject.worldTransform[4] = -1; - displayObject.worldTransform[5] = this.projection.y * 2; + displayObject.worldTransform[5] = this.projection.y * -2; - if(position) { displayObject.worldTransform[2] = position.x; @@ -9777,18 +10362,18 @@ PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, position, cle { if(displayObject == renderGroup.root) { - renderGroup.render(this.projection); + renderGroup.render(this.projection, this.glFramebuffer); } else { - renderGroup.renderSpecific(displayObject, this.projection); + renderGroup.renderSpecific(displayObject, this.projection, this.glFramebuffer); } } else { if(!this.renderGroup)this.renderGroup = new PIXI.WebGLRenderGroup(gl); this.renderGroup.setRenderable(displayObject); - this.renderGroup.render(this.projection); + this.renderGroup.render(this.projection, this.glFramebuffer); } displayObject.worldTransform = originalWorldTransform; @@ -10632,6 +11217,369 @@ PIXI.SpineLoader.prototype.onLoaded = function () { }; +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + +PIXI.ColorMatrixFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + matrix: {type: 'mat4', value: [1,0,0,0, + 0,1,0,0, + 0,0,1,0, + 0,0,0,1]}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float invert;", + "uniform mat4 matrix;", + "uniform sampler2D uSampler;", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;", + "gl_FragColor = gl_FragColor * vColor;", + "}" + ]; + +} + + +Object.defineProperty(PIXI.ColorMatrixFilter.prototype, 'matrix', { + get: function() { + return this.uniforms.matrix.value; + }, + set: function(value) { + this.uniforms.matrix.value = value; + } +}); +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.GreyFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + grey: {type: 'f', value: 1}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform sampler2D uSampler;", + "uniform float grey;", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vTextureCoord);", + "gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(0.2126*gl_FragColor.r + 0.7152*gl_FragColor.g + 0.0722*gl_FragColor.b), grey);", + "gl_FragColor = gl_FragColor * vColor;", + "}" + ]; +} + +Object.defineProperty(PIXI.GreyFilter.prototype, 'grey', { + get: function() { + return this.uniforms.grey.value; + }, + set: function(value) { + this.uniforms.grey.value = value; + } +}); + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.DisplacementFilter = function(texture) +{ + this.passes = [this]; + + // set the uniforms + + 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}} + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform sampler2D displacementMap;", + "uniform sampler2D uSampler;", + "uniform vec2 scale;", + "uniform vec2 mapDimensions;",// = vec2(256.0, 256.0);", + "const vec2 textureDimensions = vec2(800.0, 600.0);", + + "void main(void) {", + "vec2 mapCords = vTextureCoord.xy;", +// "mapCords -= ;", + // "mapCords.y *= -1.0;", + // "mapCords.y += 1.0;", + "vec2 matSample = texture2D(displacementMap, mapCords).xy;", + "matSample -= 0.5;", + "matSample *= scale;", + "matSample /= textureDimensions;", + "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);", + "gl_FragColor = gl_FragColor * vColor;", + + "}" + ]; + +} + +Object.defineProperty(PIXI.DisplacementFilter.prototype, 'map', { + get: function() { + return this.uniforms.displacementMap.value; + }, + set: function(value) { + this.uniforms.displacementMap.value = value; + } +}); + +Object.defineProperty(PIXI.DisplacementFilter.prototype, 'scale', { + get: function() { + return this.uniforms.scale.value; + }, + set: function(value) { + this.uniforms.scale.value = value; + } +}); +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.BlurXFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + blur: {type: 'f', value: 1/512}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float blur;", + "uniform sampler2D uSampler;", + "void main(void) {", + "vec4 sum = vec4(0.0);", + + "sum += texture2D(uSampler, vec2(vTextureCoord.x - 4.0*blur, vTextureCoord.y)) * 0.05;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x - 3.0*blur, vTextureCoord.y)) * 0.09;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x - 2.0*blur, vTextureCoord.y)) * 0.12;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x - blur, vTextureCoord.y)) * 0.15;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * 0.16;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x + blur, vTextureCoord.y)) * 0.15;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x + 2.0*blur, vTextureCoord.y)) * 0.12;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x + 3.0*blur, vTextureCoord.y)) * 0.09;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x + 4.0*blur, vTextureCoord.y)) * 0.05;", + + "gl_FragColor = sum;", + + "}" + ]; +} + +Object.defineProperty(PIXI.BlurXFilter.prototype, 'blur', { + get: function() { + return this.uniforms.blur.value; + }, + set: function(value) { + this.uniforms.blur.value = value; + } +}); + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.BlurYFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + blur: {type: 'f', value: 1/512}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float blur;", + "uniform sampler2D uSampler;", + "void main(void) {", + "vec4 sum = vec4(0.0);", + + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 4.0*blur)) * 0.05;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 3.0*blur)) * 0.09;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - 2.0*blur)) * 0.12;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - blur)) * 0.15;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * 0.16;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + blur)) * 0.15;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 2.0*blur)) * 0.12;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 3.0*blur)) * 0.09;", + "sum += texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + 4.0*blur)) * 0.05;", + + "gl_FragColor = sum;", + + "}" + ]; +} + +Object.defineProperty(PIXI.BlurYFilter.prototype, 'blur', { + get: function() { + return this.uniforms.blur.value; + }, + set: function(value) { + this.uniforms.blur.value = value; + } +}); + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.BlurFilter = function() +{ + + this.blurXFilter = new PIXI.BlurXFilter(); + this.blurYFilter = new PIXI.BlurYFilter(); + + this.passes =[this.blurXFilter, this.blurYFilter]; + +} + +Object.defineProperty(PIXI.BlurFilter.prototype, 'blur', { + get: function() { + return this.blurX.blur; + }, + set: function(value) { + this.blurXFilter.blur = this.blurYFilter.blur = value; + } +}); + + +Object.defineProperty(PIXI.BlurFilter.prototype, 'blurX', { + get: function() { + return this.blurXFilter.blur; + }, + set: function(value) { + this.blurXFilter.blur = value; + } +}); + +Object.defineProperty(PIXI.BlurFilter.prototype, 'blurY', { + get: function() { + return this.blurYFilter.blur; + }, + set: function(value) { + this.blurYFilter.blur = value; + } +}); + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + +PIXI.InvertFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + invert: {type: 'f', value: 0}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float invert;", + "uniform sampler2D uSampler;", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vTextureCoord);", + "gl_FragColor.rgb = mix( (vec3(1)-gl_FragColor.rgb) * gl_FragColor.a, gl_FragColor.rgb, invert);", + //"gl_FragColor.rgb = gl_FragColor.rgb * gl_FragColor.a;", + "gl_FragColor = gl_FragColor * vColor;", + "}" + ]; + +} + + +Object.defineProperty(PIXI.InvertFilter.prototype, 'invert', { + get: function() { + return this.uniforms.invert.value; + }, + set: function(value) { + this.uniforms.invert.value = value; + } +}); +/** +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + */ + + + +PIXI.SepiaFilter = function() +{ + this.passes = [this]; + + // set the uniforms + this.uniforms = { + sepia: {type: 'f', value: 1}, + }; + + this.fragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform float sepia;", + "uniform sampler2D uSampler;", + + "const mat3 sepiaMatrix = mat3(0.3588, 0.7044, 0.1368, 0.2990, 0.5870, 0.1140, 0.2392, 0.4696, 0.0912);", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vTextureCoord);", + "gl_FragColor.rgb = mix( gl_FragColor.rgb, gl_FragColor.rgb * sepiaMatrix, sepia);", + "gl_FragColor = gl_FragColor * vColor;", + "}" + ]; + +} + +Object.defineProperty(PIXI.SepiaFilter.prototype, 'sepia', { + get: function() { + return this.uniforms.sepia.value; + }, + set: function(value) { + this.uniforms.sepia.value = value; + } +}); + /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -10646,4 +11594,5 @@ PIXI.SpineLoader.prototype.onLoaded = function () { } else { root.PIXI = PIXI; } -}).call(this); \ No newline at end of file +}).call(this); +//@ sourceMappingURL=pixi.dev.js.map \ No newline at end of file diff --git a/bin/pixi.dev.js.map b/bin/pixi.dev.js.map new file mode 100644 index 0000000..4df448c --- /dev/null +++ b/bin/pixi.dev.js.map @@ -0,0 +1,63 @@ +{ + "version": 3, + "file": "pixi.dev.js", + "sources": [ + "src/pixi/Intro.js", + "src/pixi/Pixi.js", + "src/pixi/core/Point.js", + "src/pixi/core/Rectangle.js", + "src/pixi/core/Polygon.js", + "src/pixi/core/Circle.js", + "src/pixi/core/Ellipse.js", + "src/pixi/core/Matrix.js", + "src/pixi/display/DisplayObject.js", + "src/pixi/display/DisplayObjectContainer.js", + "src/pixi/display/Sprite.js", + "src/pixi/display/MovieClip.js", + "src/pixi/filters/FilterBlock.js", + "src/pixi/text/Text.js", + "src/pixi/text/BitmapText.js", + "src/pixi/InteractionManager.js", + "src/pixi/display/Stage.js", + "src/pixi/utils/Utils.js", + "src/pixi/utils/EventTarget.js", + "src/pixi/utils/Detector.js", + "src/pixi/utils/Polyk.js", + "src/pixi/renderers/webgl/WebGLShaders.js", + "src/pixi/renderers/webgl/PixiShader.js", + "src/pixi/renderers/webgl/WebGLGraphics.js", + "src/pixi/renderers/webgl/WebGLRenderer.js", + "src/pixi/renderers/webgl/WebGLBatch.js", + "src/pixi/renderers/webgl/WebGLRenderGroup.js", + "src/pixi/renderers/webgl/WebGLFilterManager.js", + "src/pixi/renderers/canvas/CanvasRenderer.js", + "src/pixi/renderers/canvas/CanvasGraphics.js", + "src/pixi/primitives/Graphics.js", + "src/pixi/extras/Strip.js", + "src/pixi/extras/Rope.js", + "src/pixi/extras/TilingSprite.js", + "src/pixi/extras/Spine.js", + "src/pixi/extras/CustomRenderable.js", + "src/pixi/textures/BaseTexture.js", + "src/pixi/textures/Texture.js", + "src/pixi/textures/RenderTexture.js", + "src/pixi/loaders/AssetLoader.js", + "src/pixi/loaders/JsonLoader.js", + "src/pixi/loaders/SpriteSheetLoader.js", + "src/pixi/loaders/ImageLoader.js", + "src/pixi/loaders/BitmapFontLoader.js", + "src/pixi/loaders/SpineLoader.js", + "src/pixi/filters/ColorMatrixFilter.js", + "src/pixi/filters/GreyFilter.js", + "src/pixi/filters/DisplacementFilter.js", + "src/pixi/filters/BlurXFilter.js", + "src/pixi/filters/BlurYFilter.js", + "src/pixi/filters/BlurFilter.js", + "src/pixi/filters/InvertFilter.js", + "src/pixi/filters/SepiaFilter.js", + "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", + "sourceRoot": "../" +} \ No newline at end of file diff --git a/bin/pixi.js b/bin/pixi.js index 8bd8c45..f89ea8c 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,12 +4,12 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-09-30 + * Compiled: 2013-10-30 * * 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},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){a?(this._filters&&this.removeFilter(this._filters),this.addFilter(a)):this._filters&&this.removeFilter(this._filters),this._filters=a}}),f.DisplayObject.prototype.addFilter=function(a){var b=new f.FilterBlock,c=new f.FilterBlock;a.start=b,a.end=c,b.data=a,c.data=a,b.first=b.last=this,c.first=c.last=this,b.open=!0;var d,e,g=b,h=b;e=this.first._iPrev,e?(d=e._iNext,g._iPrev=e,e._iNext=g):d=this,d&&(d._iPrev=h,h._iNext=d);var g=c,h=c,d=null,e=null;e=this.last,d=e._iNext,d&&(d._iPrev=h,h._iNext=d),g._iPrev=e,e._iNext=g;for(var i=this,j=this.last;i;)i.last==j&&(i.last=c),i=i.parent;this.first=b,this.__renderGroup&&this.__renderGroup.addFilterBlocks(b,c)},f.DisplayObject.prototype.removeFilter=function(a){console.log("YUOIO");var b=a.start,c=b._iNext,d=b._iPrev;c&&(c._iPrev=d),d&&(d._iNext=c),this.first=b._iNext;var e=a.end,c=e._iNext,d=e._iPrev;c&&(c._iPrev=d),d._iNext=c;for(var f=e._iPrev,g=this;g.last==e&&(g.last=f,g=g.parent););this.__renderGroup&&this.__renderGroup.removeFilterBlocks(b,e)},f.DisplayObject.prototype.updateTransform=function(){this.rotation!==this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var a=this.localTransform,b=this.parent.worldTransform,c=this.worldTransform;a[0]=this._cr*this.scale.x,a[1]=-this._sr*this.scale.y,a[3]=this._sr*this.scale.x,a[4]=this._cr*this.scale.y;var d=this.pivot.x,e=this.pivot.y,g=a[0],h=a[1],i=this.position.x-a[0]*d-e*a[1],j=a[3],k=a[4],l=this.position.y-a[4]*e-d*a[3],m=b[0],n=b[1],o=b[2],p=b[3],q=b[4],r=b[5];a[2]=i,a[5]=l,c[0]=m*g+n*j,c[1]=m*h+n*k,c[2]=m*i+n*l+o,c[3]=p*g+q*j,c[4]=p*h+q*k,c[5]=p*i+q*l+r,this.worldAlpha=this.alpha*this.parent.worldAlpha,this.vcount=f.visibleCount},f.visibleCount=0,f.DisplayObjectContainer=function(){f.DisplayObject.call(this),this.children=[]},f.DisplayObjectContainer.prototype=Object.create(f.DisplayObject.prototype),f.DisplayObjectContainer.prototype.constructor=f.DisplayObjectContainer,f.DisplayObjectContainer.prototype.addChild=function(a){if(void 0!=a.parent&&a.parent.removeChild(a),a.parent=this,this.children.push(a),this.stage){var b=a;do b.interactive&&(this.stage.dirty=!0),b.stage=this.stage,b=b._iNext;while(b)}var c,d,e=a.first,f=a.last;d=this._filters?this.last._iPrev:this.last,c=d._iNext;for(var g=this,h=d;g;)g.last==h&&(g.last=a.last),g=g.parent;c&&(c._iPrev=f,f._iNext=c),e._iPrev=d,d._iNext=e,this.__renderGroup&&(a.__renderGroup&&a.__renderGroup.removeDisplayObjectAndChildren(a),this.__renderGroup.addDisplayObjectAndChildren(a))},f.DisplayObjectContainer.prototype.addChildAt=function(a,b){if(!(b>=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.ColorMatrixFilter=function(){this.uniforms={matrix:{type:"mat4",value:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}},this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform float invert;","uniform mat4 matrix;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vTextureCoord) * matrix;","gl_FragColor = gl_FragColor * vColor;","}"]},Object.defineProperty(f.ColorMatrixFilter.prototype,"matrix",{get:function(){return this.uniforms.matrix.value},set:function(a){this.uniforms.matrix.value=a}}),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{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(a){return!1}}();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;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = vec4( aVertexPosition.x / projectionVector.x -1.0, aVertexPosition.y / -projectionVector.y + 1.0 , 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 float alpha;","varying vec4 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);","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.translationMatrix=a.getUniformLocation(b,"translationMatrix"),b.alpha=a.getUniformLocation(b,"alpha"),f.primitiveProgram=b},f.initDefaultShader=function(){f.defaultShader=new f.PixiShader,f.defaultShader.init(),f.activateShader(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.activateShader=function(a){f.shaderStack.push(a);var b=f.gl,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),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");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;"f"==c?a.uniform1f(this.program[b],this.uniforms[b].value):"mat4"==c&&a.uniformMatrix4fv(this.program[b],!1,this.uniforms[b].value)}},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.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=[];try{f.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!!e,premultipliedAlpha:!1,stencil:!0})}catch(h){throw new Error(" This browser does not support webGL. Try using the canvas renderer"+this)}f.initDefaultShader(),f.initPrimitiveShader(),f.initDefaultStripShader();var i=this.gl;f.WebGLRenderer.gl=i,this.batch=new f.WebGLBatch(i),i.disable(i.DEPTH_TEST),i.disable(i.CULL_FACE),i.enable(i.BLEND),i.colorMask(!0,!0,!0,this.transparent),f.projection=new f.Point(400,300),this.resize(this.width,this.height),this.contextLost=!1,f.activateShader(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,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.dynamicSize0;)n=n.children[n.children.length-1],n.renderable&&(m=n.last);if(m instanceof f.Sprite){l=m.batch;var k=l.head;if(k==m)g=0;else for(g=1;k.__next!=m;)g++,k=k.__next}else l=m;if(j==l)return j instanceof f.WebGLBatch?j.render(d,g+1):this.renderSpecial(j,b),void 0;e=this.batchs.indexOf(j),h=this.batchs.indexOf(l),j instanceof f.WebGLBatch?j.render(d):this.renderSpecial(j,b);for(var o=e+1;h>o;o++)renderable=this.batchs[o],renderable instanceof f.WebGLBatch?this.batchs[o].render():this.renderSpecial(renderable,b);l instanceof f.WebGLBatch?l.render(0,g+1):this.renderSpecial(l,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;if(a.open)if(a.data instanceof Array){var d=a.data[0];if(!d.shader){var e=new f.PixiShader;e.fragmentSrc=d.fragmentSrc,e.uniforms=d.uniforms,e.init(),d.shader=e}f.activateShader(d.shader),c.uniform2f(f.currentShader.projectionVector,b.x,b.y)}else 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);else a.data instanceof Array?(f.popShader(),c.uniform2f(f.currentShader.projectionVector,b.x,b.y)):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.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)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&&f.FilterBlock.data instanceof f.Graphics)if(a.open){c.save();var g=a.mask.alpha,h=a.mask.worldTransform;c.setTransform(h[0],h[3],h[1],h[4],h[2],h[5]),a.mask.worldAlpha=.5,c.worldAlpha=0,f.CanvasGraphics.renderGraphicsMask(a.mask,c),c.clip(),a.mask.worldAlpha=g}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;hh;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)},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):j.renderSpecific(a,this.projection):(this.renderGroup||(this.renderGroup=new f.WebGLRenderGroup(d)),this.renderGroup.setRenderable(a),this.renderGroup.render(this.projection)),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.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"),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 G>3;!5+>$2% literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/depth_blur_dudes.jpg b/examples/example 15 - Filters/depth_blur_dudes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65b5fefc4d78331ed0e66d95488e64a3b2898de4 GIT binary patch literal 96718 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%0DxHi! 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 LNkvXXu0mjf+I*T@ literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/depth_blur_moby.jpg b/examples/example 15 - Filters/depth_blur_moby.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db88573f00daa8c9e11cceb3d8929b1454d817c8 GIT binary patch literal 175582 zcmaI6WmH^E(=LoV1b2tvHhA#h?(Pik?(PmD1P>5`yALq92X}XO3mWv0`+lDH`+l7F z%vyWR?!CIItE+17zDlB%6{S#-2$3KlAW&tb#Z@67Ano6;Gz7T!Cte7U2Je3aZW7vV zYK|6eo+d8l5TDH)f#&2g_9m9*s^%tU-p)hj0uT_;RMzU+ZrTd+e5Q`}EGB>Fuz1-! zy;DO#2nc&QnV8y|yO9IUEv+2{DKA<(DaozP1Sz$+6xbA;#LTU%rF~q?)qE7yO?_-l zKbcVq3y}+W@x3#!H+M53_p-NhaOLw7r2L03-~0XF$E=j(|4ebS6{P%EC~XC0axq62 zb8;>gE@o3U04F)mCl&w~fRh)%M9$6z;9zCrUhDrcd}1!W+?f z|J9r{XYZ>3VbpSu5Km{rsgu@f|TzpSgfth_{1eS zBsnEGB{@C;L;(N^4$;rt?2>HUoRVyxxB(m-9RH;icQkdkH+OLRFRj`C&~mZ;ue5)C z!QSb8WpQ&CYY%fXNf$?Z@_+WsXZ^p+BL2Vf`wy+z|0)Zo#Q#dm`YsIXU(5dgEdAd{ z@9y*W_J92Leege?Z|?B!?k?|sy^cn{4FOfAA|w7;-D~;OA3lg$%l)kM__=8& z#F6VpUDSY1vOO1qZe#Rd2*E1#Lw6zSWEr0gYidjx@xxoJ0Mo?2;bj%?^b4(ZDNNGOjB#SFjel{AhlL)WQ-{DcyvdF3aFN~QtSn26pi;)BYS zn&?R3l?&pOH|aU~rd%dxq4%&e-&{9c%NCB^1OR-DUDDNoihf1O$ymJXPWaK-2A#S% zrlwQ~gSu>K*^+t(+lN#6Vh1qK$H?kx8$~6@U&VhlrH|`6zvhsAUYF0xAL_G z@OUfmksgH^MwDr(RAXDQRfy(ym+7WlAu+5OaB6$b7|)%}#8(E3?6M+rnT9yDI?f2a zCW8#t_ilQi?OEHrEPA9?gvZ9@JL=2x4L)vv#T7Zf8pwLsYJ4v`OnXOU-9*IPQvs(-MoKRPt z_76+cPfAYUsybg$oBt#{0eCe&2XIH;rKZ{^o~?Sbb~btbX}{dXV9nvmGxN+t*S)I{ z8jvD;{6qV7NWH0y0sn}s-`mko*hgtC82*Ap>RXWR0)^&~lk(>-OTh#o{k`2oT-*jB00T6gHjkk19l(OBn!H%WS`r8i4!?f&a&{m6;d zzFYm(7=lX~8BNrf&bu`5Q;k4^)STP2#m0K1T;R{D4Dz2SYO6OftKujoc;u7Nhg3|BOjtZsP9AoiFt$eR4qGlE>(PR6s z7L$(akDF-*B&(2Mp-UFZm7$ST87IUO2JliQHOo(+hLKKY2x+JBC$$;!D)nh`6(LB; zcjrgpT(T4}hkDr33vCG_q=IcX9#vMKl8KVC%@Aoqx`V~uCR<%z%G(`d@NxvU!|^(K z9~t(xWmD9yPH?D~`GU;IEQ+{bUSMWnmJ64VZZgqQf?7p?7?k4EX~^#)!Tr`q75ZlS z3-pK6F3S}Bg9`h%iCayOmFEW!{Trk>B|Hoy7&d-E59W62BY$c`FZq>NOO1-7$tmGI zUl8#)Sej1!G^49oAoAfSR$f@EGV2(o@`4JpEzC6EOGgMD@(O}6O*IvP1_m-Ce&*Dd zyg`c25Sz7Bxt#NX{0%%SVJZ$jH-pbDx`SOo(K%SG5)T7!m_)`w9voZ^fmrR&iWhp@ z;qc3b0_8xRqJ&)G*NQKW{FGC?kPalel}JW@h@3`9KJLWszy+>lzir$pKpHdE=RoE7 zQo3(`bZHu+qlCQZB_;}%QHynyn~t1QcB$HaLa_ar!E3#Q$L>D*+-ymerhXoTHY2(X ztUBSt^1_t0+;OO<)>j=QhF(9;`s>+2j`|EZC>I-_9tQ>D5VSs-A?JEk9KFdK&~|Z0 zy%2)niBe&H;=`QwwT%RPiwaIF6B1`Yf}=%&dSOTf{Yj#}J9AWRAm}Pa;zNtKhMAAi zh94|ur2BSKqQQ0eiY8|Lv`bQOUggb|C&!6a@B@e{y zbW;X;TWMb>9r=k6BJ+;;NOoZ6GjT=Z zMFfph5x@Cc$vj}({6W9eDB9>RI-Rd2zA4JoFi&7 zwQx`|K;hmegg2QHE>nFd^`~_aPK%LF(h}U&F$!N=p)ziCU$rP|ER9*e9haaV;xX#W z4}XD`lT9}KZ+r+g+d zg}U`3S+SB=dUH!p22~U|Xut#!J;r%-D+Ob2Bd@x`#HC$L4VkK|PtOhYt*!cVCDS7d>R!9HswKjX}B=IE(SX$|>9 zL%Y|wR4iY(LGLmLC@}Z2VxFht+zQ!@NSHy&3$gm?Om>aSi5Hot85%!Y?ALQV!6?8 zXlxu7YK@@M+GKI8H24DvSxEZ1-=?-OtE+oC?x&e5$!NE)V56WmRf>HQ#HjDv^+t}5 zy*G~a6MCT| z-`XoHadg{I)t)Xw-o`%wr|ts9?>0@LMj?eEIUs8_xhgt=AHSFXNiUM7)n6JceH@h6 z2NXmx`eib(Bc80n)t*@m%8s5rJDT0EhniXP$D|;MW{fMPj+kGF{kz#*3@%y>l*puV zngFBL=R_wqCxu#VJ}Pv@E;3e=o1DaMJO?qk4Wch3UNK$G4&IH3Q3{WN789vlUzVCE zevCaf{-PGr_)V#xXlq%F@M1S@3w4xI62F$XmD@qqjSo0iCe$_e`8}(U)$!c+#|epF zf_r-^cBRUko!|obI8l&b*6!htVdV9#|t!w+~4 z<@sUAlxMmZot{oCW~sE1yQ6il`j9W-{cI8!mq3AildoR(vz|i?{v|z<)=IS zei1z2xxQ0O%N&=4Xg&D355ua^8io=w%rC3~iB%M{U(>(jB&NUZ6W;XX4+e^dd>NQ+ z`>-=OB;Stc=+^Z_Rqoh?IX!?N*FZc@huDR0Z~YegINEyXQAPy{UqGO;1UX&rqbf^A0{~-GVR4FLS>`aM=vG=tyX;i~iWQJAij0)srODA{^CQq> zmX3~WDjyJimLlKK7mT;ND%p`Y`|@lWkC~DFvGK&KvfU+jAphm7mE8UE%3!4D2Bu~b zS~zB3S<5ZH90i=bSfhO)Ok50oJN2jXfeVhPaQHm9pFylqNzt{ep6<-AG6EToD(*2Q z_Z-+Q!TfB3*%EB{qU0q=+W(0gWPZy78CGxK6Znh=UMzUgSYysy-Awy<264zRYlz&*6_yje?g3Nf08YNKq&g zhVLG>xrB3uUIG}Z6E50yZn9iTL##Nr{Y&1F=2rhTzv9MpWcAw3X7$tW@l>{-AUBzuZSf8HNrfD?pBQ{J}g;_S{71>TN(8k3s|L#d{} zxOJfCdJK-Z%9Y)HphvIbW5j~e|xXc@qS1ZIuT4pF*3fDq( z@8`>94>Df!Lc>;Mlknq+VO>dRRNXdmH=g`E`rNX@9<6Etgv^p*Wb`$V+G+r|01rI` z;--k|^)K0-Lx9Fch|foQxHm%N|1gRTcfLaA*`ob`@+w+nz_42=h^qI9&4S&3D^A?r z)6l(AdS|J-_ojUiu^m~KNtY_y=^>YS%c!S9=Z*9B7s?>B23UW0Rb|aNWffqyI4~tInt%(9@h}Be*@Fy+5jDx zdjS`(tr?OjtMnk=7-KrvN==91fQI2(u(3TM_X+o=*2^U<<>W2lbcUBLm+&LL;8&O@eySs<8WlZsM?Sw3o`#@Z91 z1rZ^IY;l*oqGPxB=&-H=1IAl>{z8;+yb1jR%quUccD{HoK3F3*$acdN#ghsvId@^- ztEmP&N@f^Kf4xvlX{1S_h@8wJ9Nk>B2BkIdGVsLkKSFo_IGkZZdnqm5Xp)()RCT22 zmKBXjLP}FUB7Y?S1vQwHIJ-N@(E#j?8t29YjhGl}$8QIB(;ZK5chUco36Oga;iK1{ z?&ius6YDe<>2iaXy;VY+24eUMO(`!wE!ayu=$MSqLI!r0saNoZDECE)^6?4#OF(5?t zs@BMK)mvM3(p8)~S);?LH8T11i$andp)c#sq|+Z7PwpcHbW6kC>MCU3#$1}z5-E83|3-tuC$dtJXyd-^Y`4P838YOpV`XNGP#zOF2rvk{C| zmmS-8IXpfVZ8Q`s)TKbbp_-efWDj#VWTBIy#DG+Q8#RKP>^x3G0Z%ET*G7f>P!bEM zBJYx?3T^yRVw(yRQWQowLr(}hBKT9!c-+rG1C`+0hm~<{E+1#u?pfuvFx0P*Ote7zF z_c0@=Sy?RQiIpt+uaTv-g-TL+>fij~e*zvvt(_BoQRcT_N0^3H1{M)lTaPT?0HGe~ zC_G`1+7-*^SP|gnko{t!c3&C z9q(Y!;GU!e7Kj7!#JybPYeX^qw*tCB^2(zqVhgJ7Z~`9MGB#+B%Z!b|i-QIiqnQru zqocz%+0Dgi0faD|WhsrXrXgD_d=`oorP>}soSgOsxE~exhl&8Y_&zw@(nxvQcrOlk z!zm0oAfFYN&kHNJ{r&%qxcC<5L7|{)EB@9h z>yzeQIi?)+t_G1gC;@|+Kzc0PY#l>6yDURJD)g$Du(mdu+9Bi z=t4f#+94YphpAk1oT%o&@kU*R95#eF_ez#0kl%DnJKlOzj0mp;{%D|46Q&tmGai6oM-f`E&AwLFlno zDLapZKipRQqAg8b%q7D=9wpeQ(!JA%Zh*3fA8O1WQ2;5{7OouiJ?dr<`q0t zj}r+z>t!y|Z(jNgxEu6gf?5#ScT<0zCJ+nrLN10DoiErYMxoxQpN-O7jnNY&^QU9$s^%t2HEj>jy#iw_V1@J3-agoG6xk0yG5iaQna1y#aHupf z3ly&7P?IjAoF_N6UHE#t2(u{3VO;MQ5&;^2^ke%D#mIhU&)obVfwy@jMb>>dX=3ui zM9{wj0OP6*)iqqMSS>eE#MV8h^H*GlFunL$v>OW786e##!be?q=;U`%j4o74s z)Q3}spgi&qh7xhaLLoVOv9ZJjO6qE2sz9$qqOxRR7oDS<6E#FUotJ<>y9+2#fex9jZFrL2KbK-6Do1=w8 z^_;uED-$jj9t=Ng8RwuDj=50tQuAO&*qjXs2Ta$g()saGH{wA~^bU7+)Ep7_k3vs^ z0(VV!+}mfShGp!`_-Q1_IwrzQaC;yjId(2;m=6{ND}*jy5JB#9KQv`kz zS6ngV2`p{z)6E}%kWhplAW>e9Fore6r_qjfo(|;CW-Nmr!}9x!;)1l_vd0u%@w8Ep zHdq+_=ZRWj@DG@J)&AL=xVDIDOKQU2{YpKj={x%p9Atb#!hu)l$je!^)>_wv0Ad2d zlsdH|H{^O-{+;O>yU2zQhT?mg+6(&Kfm+-<6)a0-GVyyh(IV?#lniIVoH^Bp(-vi)kS^2Eykl}W#6BJ?C_+d ze3(_=t6!!{7*Q8Ji-!n3ea{441eYfuao7*%=%~QRy5;+`yI`>%eTD0bL5CcAW`UPs7CTNr+hy{4qXm+mUOyAn%S|IAiGX zpY+NMI^lVKcT7S2BQ>t!OU$;931S1Xb%0Y>4a7cz2lo~aAwD#&$A@ctugUwcGSP{irO1yOZ1%y#8nUsJUZ=v8=7>d+ zdu92Cfl`pj*?7U!>xFSWNbo7~mu*$^Z_($KVqsb14wS+qDpk0~JUM>82FPOVTw!dQ zuJdl%*DdIWo4^2-3TIk7-N?kZk;thQKS732{yZ4URQ(Vd_#x4Vvqji7vNMl%nBQ2* z-nJ3luqD(AYvd63(Nz<1nYTVwjFheAJdn+2)egR){7Rhmq_@@ zuQs3M_{>+B+zB8!mpuzrQ?7xRXpv%CqvPWSpM?VwKp(ox1GoQvb_i+$J_O&UpvhMg=l(G^w)dGwz$fhnxH5ms8{kjIt?%~{{SXd`sw9rAE?BqrH5>lkL!-?n zTg01d0Pe%)HlBXid@A+2-`F2Ibh+2%x7Daue_yAOH6E&IFv4C2fPS)|%VJSsnS13J zD!bfy=FJcB!so4X``A@!V7rQY)%jkG*YxSr!_=8@mn`skueUWX0(k9D1r>J;bqUH_ zZm4i)^8CRTIh7xJ2`|UEB$i!^~kE zkm{Cqx)n1AzL`yShNm1D*x6iRo^3}YzX~wD&QcD#&7fWR5^?CYK z+~miu#B5Nr9rn6bC7J;vGQ!Dkcrcepvr8gi_;n|+fQ^{Ey{_xku0l%W&5Z=LCY2rMx@?&7WRq$>Fxn?IiC`ZF{PzZP-5vX#I8(E~fdsrRnQsJ#5< zE>_}ueMM9trO%Be(RE@mMztd>(C-31uaAFI%r(vJ1>g1u@?z2c@#-ljQySN(nH&P# zQkDVj_ex}hg)(!n2doaK+1(g~&GJ`-YS>v@jirZ1%A|*Uga=u>5b8}7Z83aHQI;?9 zgt2Wm8I$C_3n@$BpO2>*a$>Qb^N0_wnPYowZVw1A=v{kSM)8UM&thH+8*QkJsjLG@ zz0mApzhV7;KSHG8kaz8?LY^Yt&s@u;c~oWo4MKK=?`VoXR5dhQ7fu`kJ_girsAk&l7cm&!VeBoyJWSELrr4IZKX_&dy zW>lK}8LPhZ!J0qLY(1xLXt{6CZ$SGE_7WJEX!WrDJvdPc2La>D29hIne5u5QnGG1; zw^o^Ht91kX)_c+rVDZScYqv7QkT`Z^LfrN!iQZK{*(<)|>$Pu<+nmj}LE2MT1>f4q z17grj*us@C5oLZ>#D`#Y!tlD_Rei+hk`Np3?~5mVv$F1`kHxXBAMFm#N<27Vpb4uH zCnw5G__d>)iQKESRP*jtl}BefIh_~+kh}i0%gZcI*?GgoV}GO zKNgDbkJ9EOAWcqEG_hY-Ue&jB(1zZ${@c{=WQAv2?!F0LXeSQ5)d~zIVda&GVMIL-z|1TK9$B+Su#N@^-rWSPp;U|sy9l0+ z0tIenR%#E1))w1L8l@qJ+*TRD)ZstfTt$x~T4 z_R0#EQW>MdLZO~3R^|^6F5WhaMW{_*Do5rOni|UD8#F~xorS7@ z`16jIK-XPe6l&wx&zJmcjv(qln-3}JZ<9FDdUoM|f4%(#y#U@{(mh*L2UA$vao_Gr z6L-K`?O|{Um}r<@^(Fd;zg|TJg}mZo#K)2R2Gu7QW1Q78+BUQ6e9!9OtcX6blZW8E}oeY0JC`ZZBo=s=mXBwrsP;YRxr z0b*(Spa~97&*lo_;Ss^>g`xKR7(*Uy{qus;2Q<`CO4%pDm+vHO1vE{rED?eyh}y6P z-@)tC^4+qt&g|mWHYT4mQEY3q)|2sw6%O1}Une%l>dU&tprsoNu8KU{NDgv6xjSz5 zs&|U?0wU1;dBCm9%+^xcZAJyzEuT=Qv|(zk9xAqyhO&c24zo#5?*7)jX_}|H;H`B7 zbZqrn3wYCp_aaVfA>_SPV(RgvXcB%_GKZE|1z?N|T&p)UG?_TKAho==5NIRZZleIY zAi&%l#-R|tb{!EfCosV>yeZ<&Kw(m!O@Q5UO~hg`<=iv=sVL0qANEj?B$FEwtAMlM ztU7#Ies8M4CUJW^n@tL;nL>wrJ%j=w@};TZX|hCzG#zAi62n4JDzqOPX{nu;ofiq@o7>>cA#@e^hM}jp7IoTHQ)#kd{ls$O zIXpY)bE(*J`nS#fAG#vf6FDZD zadMw}7HV84KHo5%n*^oGYb7W9AHKwfe>Kx&IXY9Pp{*YUPZXWGH^lokWxPZ9=kxCC z(>Jw+hI=OiYq+4gHEQFIv+-2vCB)AkBoh)SqM_ieH%w7(!k zZiHJS6yA2;|aTebMN`-7SgGG)XlH613W}xGPmfsUm)3%&ZJEZ5j zFY9mk`%uP!zI-9;26QAB$)7Tz(unKdQ*7(&$)1))VswH%H0aD;~&}x|zr|09UODDceS32~d8(W%|f#PC)=YYVsx_4Pd{`XHY>dMA61c)y2_ zj$~RBd)H(NAJrHap$0R}49XXIO2H7aN5VjdnHe3ZTTGCHAO@bH8;fR@QLGJ1-c;B)QD?MW%-g4g&Ir%k84pS)%Vx<;= z9X*AS%Vg-v3%gwN7BSg_pq*K-Ipy(T72*5AFc&{> z640L-7~F2}!>toBX|Gwv385l_q3MqaPrk&$>wbwah7i(xY<{p=HsZ0F<4ZPpb}tz1 z?~7*Y;-c!e!_|kbej?o$dU$>;x>1JHSG8dB1lrkhbo}h>1k*o-@gSzMT)Aw#IJTgs zQhB|@u?L4#M&JICSzj~z+$xnSVmz3Hxy^90VrInMwE&Z-jhTK_)`L%U5Tp3yZQip3 zwK&Izz4mQlGfyg~C&pY3gJRwQD9mF-wYQ-+yLot_ zUA^~9f__#3Hw=)`bWRxErv8) z-ToRMUqVhV8p&A$25zr`g7qO3n>etuVU=t}zQPLejSmUJqocsp?lkPw?yM#UFCo<} z=^RZO!s|VeXF5@5L-auMB|^C*&y>U^Myq!(ER?u1WBTMd&{EQ);g_d!k4N);4?f~^ z!Y(Hq4)GB7Bk`J={?@N+y8e?vxOh=UJSN-b0>!7>SX=cK9_`L_X20^``50^;pqG-96T~|%n27pbgP71aG z3^GFMug2UV#Tio%nqj${J?(Hkac?FJT|Ok=5x}$U&G+008=6A2(`!ZP2qJqm7NPzw zLKpW5_=tj;JoAa^L@(jJ{FHaFpXp|}2FrRsh8k-UDGF&_&_&`1m4}cG%|nbJS7{CB z`ugP30<1rvfgEhGG2|aZ3Y*JJ-O!DZZ=v6_VsjSa2TSVn``MU{%39w$7Yb__Vyau1 zi_qc4(2b61E0W9+$}cLNp+IRK>8$6{K<6|L{Hngvb2JZaYQ^084k{(f7axMKurvgl z+h++J&TB8PrgztH2)($-!+#+CRwd#XxMAshq_MDFy&fPqAQhQpBNH=gI>uQ6rQM=W zYV9MGG|Bqj)4dtpk>Z~=v+n8BRPZ;s;_r0)rx>bxGC`b@!g!3Z0HO!LC5kWY2NS}P zPLe`|htd?FTLhf=SW%*|4AJ~oD1ryD@1+ZcDQ#u7?M36V>R8L$3T@l=A9 zCwrBI7=YGY=V=kbXi1B2f(Z}x*025_(+IHU;Q1c%eQ;iD#@H3MZQ z70PoP(LUL2M>mL_soIy+b99zEe$K1hr_-y3edJv_a*LrBsSc%X);;0x+K*Gc$rLc$ zY{_sAaY(aK(&3GUA*EUiXP6belAH8%lrd#*p4<5~Avy42xq97&5(O-j`*t7Lml$~W z1^c^fQy+jsPb5x=wqwAqxFNFuA-O0qi?pc0uqh zb8MrcVYJR?zsA7Wv^fnE_@W$^YgN}l4qKecCQF`o6vJ*)08ips4nf|Egq+%ivVS~J zUsyDcJ$`TX48SL_>NVMVm8%}caBW*$aOiErco~!qbo&sMpmL(JSbe3eSl&$KF~o7? z9>LYOU2QNYmV$I<=QiI59T9@>v*g zlRDYgck|)!h-c<5cisN@Ju%ZIxh#Z*6b|a&b{_I#T!|G&hFp2n>E66lG4Xr{!z?U; zSN&0qjTHPY*p0G7E)y*%6RF||;x>N>)UT7F7Q4lfht(qOx~vYTi^|njT*6zs%ypOP z@3|YYKGeL70z>;M@>RYKN&)!TW2zD~Gi>0s38yMw*t=Yqt=HWJFrV2l9r)5%kWp`@>GCK~HK*&W}=hEG!k{Bq#% z)wpi^9cyJ}rN^h)kkugMZe4KkWGCVtWVlkYc(CrokOR+UU%tAlDQmacRMhEJhJB#JXSKV+IL;6t~mjZWfIO|B5o z&R1ijuVmb+4Jb~hEtOhYCa5=__4};&_#;#2Q8X*5C&v$nVr|A8aPITw64@C@^bd(o z?+l?lz+3YwNz2ox(ujXfZybMpYUOG-0k@Mfm*?&;?|$zdb0eg`JkjW#yI3pgQDpE_ z^97g;ZbJp9Fi~w*uGmBwz)s#7WGPCKJgu3%h`>Qua+@`W+U`6OI#kOus?D)}Rlnk87jL!dvlj553J+r@T z&%oGTKFz18>Rrz^-S+xI zWC$=U`|ClcUp6^y=0LW2G62ofW7nsrNQ7pbw%<5fTXiEW-@;3Wx=kP%=Gwb8vcbPO4xeC=RfhIueJdhwpqAYH5J>&AlP5UMI zGhNoQNoVUcq^5k zthZ~jS>Qq+Z_e_QfeYuRg|4nLQ(DWFYbFS}ePt2)OgN<(NR#!V5B`{JVxKuP0xLQv zd1k2M`IxGL`m!8Gw)t&0AiZ zCGpJ_(7f?JT^iC2qYCF7a~s`MwGNamb-X%=q@?2QB?5dJc<9TsU@DKWdL#j z&r4WGTi9N0D#m<`^*fO@an09S3k4?wga!xQW}Z(H?i5WH!bMexab>Yi+`)eJ=SzWJ z2n=g})xKj~&8Nd7yEHk}k|XGwJ8v`YQo`2FZSx_W=c(cH;XF9DQPAjXCC- zRh*FdYQ10;4~LEoM+#$p{6bDK9h`hA+D+sLGtbX0OU!o@jqmuC9p6%eut2kF7dHh5 zSvzYN!`0A5A=H_Xr9OP|(rp<-X{k`@XH_d)><=a9kBH?Vx%MrtW|;L`rXCv+Iu&fY zJ~MVbEeWrGMmq^=&N702^8SVmMAOX1?XO~|b2o}FZuL_f!{|MGG_^j@G+-MZ+HQbD zSF7gf%Br%|lOh^Z2eW|#S%vN|atBd))@3E>sk>Ct*8dD*Z_aWnzs74iB{gt#;M-=4-N3aGoJgnv6wL&FLEp2!s?CzkNFUDi$f zqD#xLA0*S3Vweuy-f&49FN+J-I!MPLZQAxKqU>PNH7Hdatkp@ z)`XP14}wpl@dqRyX!(6e(C?d|mss}2vxELms^9zj7MsmBqwV9=3fxC7>~HfbD5Va* zOBdES+{*gAe79BO$l`L<3bm^0HHneRrijzYO&Kd`?iw1$uy`cMd=;BnT@tNVnBpXQ z1kIh7=MnM4W>vu8=bmt4fX;j>51_&P$j-QE=5;3AICu@ag%%&~X2#UTUxTVuL}bTH zlUB`S$Tj7f&OhGZ#L(6rB+*`me|RHuXub8AmGidSa3M}GYKPTrXNm2}7)OEhjTt~m zEo5+cS*q<7@OJ=3B~1|kMvBu$?)ow^!2&!4vjoFYH{i3<_rGnndSTA#VzUhIC{?j=Dp<!%VT`Bv+hQ72kZNwN)z$bnh-e$8wjXp4A z$%Mk9p&ikxJy9ldTNQJa%9mgIi*d#jdzyClFz^Z~A1-{6X4Gc-ex~Uyxq}wc@tTqP zt^df8#wiN!aFTx$Z5NtT=jqqK4De7hdOA}r#r3V7f|HmE^e@4RS~v#JE-BLF_rY0r z?v=ql$E3(0HgUA}+o8^+8|_UvNJ2D?WUSAA8UwcDJ~==w77Z$@mH-K_3#o{H6kgRb zdpDmz42OuSB#iXcWHF+fDmGc5pXkWvzVUXvbPD%1IkdrkSbswYb2xu@9p+=wnPrgC z;#v+o_=?uxQP3~gV?0LNlj#mH>bpF|9t)~d%?fXS6Epp^db_FEr)sV5KBnO{CubCf z1*(wpb|Hk%T{M-^+xpV%dUwVjrKTi^`1V-aImrLIAKKS!8RmTLsg2*{)gl)q-eYAe zXU|vjHfgY;IP^WnRD$BYO*3G;PwOxu&|6C@?H2`#fZdATVr4AtFLUscBwS?edw-Ih-%&(=SUAU0%i z0a^Hs)70^tR0_TKwqT#%fN~o&RUM{J-@Ed9slH02#YKGVO|TCTKmc^PR5}U=+qLL6 z#fp!m;jhAu&{+2|2+Jl~%jP)9==EY3mth%ScD@D~I7Oq;XJz$%&0&H1#)$+&S!9~* zihJW$ITXM3>(D|CD&BhJxaefOrmATtYknWvGdXNFoi0ORZM~9k>8m*s=doG&aa$4g z7(|t=dxnHN^Ld^ML-1?y-4@Z?3-j|Xt#I$x`FbM+ev+^Ez zi=dYLysG!Zpy=8Q`0?@-$>wIJU&UPf_yNOd6eV~Y~ z<|N1u`47hoSL;=MPdru#Ib6J&;!>Q_d!Y!SSvc-$h@fS>r&$4%_gIK$&V(yrY3Z|) zpD6UF{#5=v4mb0b4SC`KSsUyZjm@gpY7rlaKx!py8+tCV`o((e`>2j}y{mT%;&Yi# zg@AkzA3!KvlqJ@->b){^x2%Pzlp*A%T{mr}GG%Dz1|bFDto6}hB65gUY&Yy*T{OA* z?nCf1TTYpH&61yi5QPN9jOv7`^3D4ke#XvBg<;t5N*9o2hCMjQG@e8)IY?th^MwK( zapv2)6pw&sP_^qAcJ`7JDhAZGyRGKsFQDm)AAMh?Co{n}P>w=Su54HmYpO(R4x_#LO;6~4{V_m!9a+EaRNC%&`cikgjtR!~uhH=1TtqKFus80%q3JdvN~kDkxL*N}cs1A0drz5srX z`1ljeP1v-YU}}R~Aa<2R!oJh90B28L>cM~q+Rv5PF+4K*-9_Eq zZLGcKxgfu4XTLS`S?PS@!vVS>xX9DH-uEtSJ@;IckB*@{H%B*8P=MKGbPlM=0-fFj zvbw9i=0^6S{rEGGUV9qKBRj2kY+B5NlO-s?qD$FRSC?(dzH6{R*o$efeaJRQIr@RB zNM~`bD7|9Y66A?-F~H4n^WE7wbab>MU$)k!#-^sx(b-N+dpV5k>^!@j<@7M@^T0gG z#4MMwmOzHt`u&gX#rdai!Qey|HF`bEB5@iBSTpbK?UDo^?pmX&wg=q?ZY|uPTdH{2sHT`;l0*8l77&LUpp=VtVuHgEY$<_TnE5``3z%NXk6X#`#l6 z4sg4{ND8)38qqRvYm);w_wpB^?~|Xy_inihFT3JA0+DIdxeO}-csLXi5BJHZp9)`V zFN%lvx;3^P>znJ%Ml*IO#5S|&=+(FGBLn30bPl;}UVz)L`Y}40$2|}2LaAn8>&aX2p*Oz?FTV6#gwt)v zj|^dC*He-x6QtRnQPO;(z^=3hu{KE)6-LOvxI^n`m&Bo zMLF)6qHC5xr*Ef)E2SO+}qyz}w$zkIKNiZ<}L)XHXU z({VE>uI;Tk*}~R)`DW6pk`Pmx8I|9yIREux>#O8O+(Z)#gml}Njm83>%e)sXhyhL3 zzXe|?_X*VoHG6T7Sa7Uw4fgKbi!)9+A3a@Nxb(c!5eirfaHCUMeC8WBBBPkWlS2ingz(EdcFT6;%Zd%M`6IO#)G z8?~A30&#NV@d6IB5pE6;@9ae=k;2-(UTiygBbN6q2ckh>b{3Uv4keoI>g--{=k5+@ zD{^D;Vp+XFugmem<0}zNq){3_U{{dS8censNwC1uXXs5Rqqy}veo^Oj$^WyFH65S$kFVid-@6S*MkcV~xITRK3m-u`7M7$VPI-5M*KyjIhU>C% z5@RecdlSGr1*goWtL9YTa|g4=LZWFGnNn(?wtl36vqHkFPO(9uSK&2k9O#8^h>vH;W5vzVh91%Dq{ zCSqxYlVR?AWH-j9=CEe%8k~2|8Mx~5^U!y~TIe)88R3FrrXjO7>H6M0*RmH}-9#?K z*0VWriT>4z3^;?FE)FH#{;JgNK9(j{^)1HNzi}hp`;q^~(k0zAn+nMH-kIg_d-JT~ z(BWaMTC?_C0`1#8(Dp$4*#g>MQ&jb(>}Tav?dB=C3p=LORfZQNxt{d#8;+Cgy}f%6 z-~fH8i!}|AR2n@?dx>?e6d+nl0M*sg33@{i1xICePO=KwCE`#*gILkr=mB(}bP*EE zPegfix2;vzn}7&SDd%Wt+%C&*Y9wp>hs~!$ZMz84{MK3XH35SLq}a;Ua`S)Z>)*wF zKYtk6>>SQGV;f%mhF79S*RYbyLLne=*=UXMiXAX_BCQ_@k9*qWxe8h z7@o*s<+?t(J|l+?!ygVe>Ci?~{S;LOI74q_J(^nGWshRZbCX~cyBmzn%x&wU^E>PO zm8PN4Ze-vONhkZZOba3e*7|G#4?MaXKfUJ>-1ora;=%~~75Z#fh|`4^4!Nm9Dj7pN z>(%inv0P2|%&eHJJZ7_b%uMG{DO<7+H#gpMa1e)%97Q;l!G;qy;IfO(!X@YKK%_l` z!tkirE@iF3$%-`%dnOQQG_v6Hu&=-9*>Y`k*B8$Y60wgm181Oi>$B+A0yrmy`TbbF zbTK~p?_b3K{jYCfWnYhw633(O6r19qJPp>gc%AI4NJFKw>c>Be74 zY-R&ZMR_{fw_*vFGKj|_M8C?Y%}irz_z6l;wI5SyEK>5Zb4Q!@whR)BdVs2d$95hfpnjNu`U&jWdypng zc`RMriS?_OBAtp!$~adoY@x@zMd=(kE4D=6A5MJ97fP7RTaUTv0@r6bG&qKRhiDc- z*KW;mYjM_@r{R+G&cLb@jsu-M#s>%K?+aqT<6>31t~F(US{gk|Hw@hFNbX7*ntV45 zS2D5WG?q%__dL+Kvk}!|+XCK(kd`IA-FVOYK8|mE_h(qMdKomkU>Dy9oQcWh3>dr* z9v(e%$;B70gw+Sx3lFsa;Gpd%kiIPzi@kuSs&C$&_3*>XMPpb)RQ%97ityyi@;B8Aewp*m3TPq7RZ?g%mm3cokpS)w) zlOBkQDIn|C*nsK+gD}CSW&{@NZ2}y3s?apHz?_%4*pMvj0#Uj?Z&A@skm6sZ8jsnbcj&qG=j#dcJB`6?E&=7>zb;P8nWn zy`)Y9M%A)K+NB6Y0#bd#v~|w9Rjn-56rEEGZGZ8O58$2$pTg>u%S6I)f`OZ75tV8k zgCjGyrcx~zq-e0}?(Xt{#RKg>7-&cL?%Q`)s-GA(L;y}qZV3VSs^#5SM8KZzN&}&U4W>1KSeQv$wOY49u}Q+V3sbo@OpeLy zTd<0%G<9z|M)y|cEhL&ITtILwboOQ~u}R8K;#P~K187XUJtZA(EdY#c64N9^uBm9v5}dkSo)r(E4pgezdk%T zf?RGEt5>f?S6i!;QDw^*r>ye=9VfF#X^NR3K;Xm^X6=&VE{PX>bJPX6=L$u-sY~>J zHB{)iGBGiJeunlvJw1aw-S~X-a+B6fTN{=wS%mJMMOeP98=YO9Sk~Kt_Re-hTDWs~ zq#;{yBV5|2PW!9tmao|D@{M0mgT$>-y?|k3VTv~vwDK|=dbM3Q+VN&LbWph3sVuZQ zVD1hwj(*XcY1q_KtO;}(c+95s^`>cnfSj|q=D157wlDfN{TpRwOpK5_2^FiBMDf(# zK|J`x0o?!i0qovCNPt^GPge%(S1-Y;rQPD9h(&_ZwkyI-hy8w8QDv6N-t~N;OkiD< z&yJ6SKhq<_W0;^pAQFpX`HH1de)lwD)2DCSge1#hG)Rw6%%D!6ug|WB(tO^E4akmu z&DTxj5yySMK#wKY~|r|`n_&OtcSjeG988~q0lSu9zK)+eOfb&@^1#KJ-WAKm0Z zB;z!7=AT1BFpKAQU7Ui#mgR|ok!i8gJ-TZE4?oq9JqL#{K9!ZdFr!|*Y!Mc9v>;B` zt-B*5`ZOoIShFYg=+kFHgW@c)>D*jVfV)70>lA%9+z5haXvvlqtX$QHEnAMqj#IW^ z>j`U->TDC8dV&}?&$u|NRCQ)TX!zMpr*WAy71rEEZ?;D|3$Cs$(Xsal=r>B;y4O@y z+^Lt;ouSW4*tEza_4!qJxnEJeD!*_3ELbX8yJjVB{NBxY$9w(_%ZM=Wbv2smyzuNM z8VPYp*wVIbTe)r7l!q=JXg^b+9e(`r$L~v})0_Cq#|3kq9D{|Eu~VeIQ4#prleSY#Wq#+6IEe_f z(=uSNhuxZSsqS@hlaY+ZIVq0Z(KNU*pjtj_$fBuYH>!ZGNjLf>t4(eg%1Wc+=Jw_T3z$Wk|YnM?0^02JTGb;}hkOcif0WYaHtyoegF9=ziCc2`gH`p?lGtCn7pPI=L zgUm@Wr#u}OPx(bJrSoI&ttH*W(2|TvGD|8&fKKPp*22ExBpqW0nFM={6>)R4(5xgX z3vH&w;27uwA*&6T;m8$+Rrk75p{aJo?kdwrr)Q6{MmIJeD|cJb9S^tBaKtE1r9-z( znDs2DT=RgZDyIC)%$ZZkA(p|a*e==QJTN?ggGa^$sP`Wpk$-apw*1~)R$$rU4r0<7 zn*Br&q3gg5kr$Cev`^lz6at{vRy18?D+b${TwXNkg9F1Ng@htpZ@NtukB|TV?7at= zWmkD6y3V=z-paA7I%l=i$^i*wB!pxM1ST7aD3eAu_M0&t-k8A#&&)SwY!Akm&x0Ay z^B6F}fUwCy0ihg_)au;Tm27R{E~?c!`zbUV&HDr>UK|3QK0kEJA(sgR4{hp7!DphC;&Z0|Hm|dc3jfkIR*&RvKT&d1Tw{>ISYWmXeG0@kAO&fYy=|PKA zG$N-2N%g;Kl?1~+d0Go zG`n|fLaeh5;^Z<&v!35aK;Q79AC;ip!omB-ybJ30bkvBs){Co9W*&->R=uqJ;K7;% z57(IIb6r(!tC%D67dJ-KdpRLEco3fXx<~q=CV~esP_w z;_dJKsQ8te80hZ~_-(Z?P-FMR=&U$byRQ|X{lFOnIs@AOPl5J#5{cw%IOifYU zj2u0P!v~+o_{n29cI-H&#zq8CEU@Z;25pE+;ij3WaQk`$Xo%`JlTLCqNQ+LKszd?g zRFS)`s=gp&vS_kSH$63=Gq{UNzu`$`2hlG2do`7)PV@_bIvF(;#qUm4dWD;#WwuEr zCqCK=(U8rU-H4P`G zW-&$sEX!pO7IugQY3Gg|*t2&p&N=5CQBCj1ITu`pq2V52^%%se$O|4ROXMcQv4oRB z70rOHqRQ69N%GIQMssaairm1Xo3-vuH6Wurz~J^{N2y3`|8iM$xItrBHWA=N zTZxYb)t6YE05KC&$`lqnNJIz;j&Q4|LAX+Oq>c{K< zFDr7n7*h1v$oRtY_19fZu9%fGD0Bw2|93(A?^CJtJBWuQ9+&~o>V;{SPtw*-OikgA zx4sr{x#P{q&Mz^y9En5%vwby?AQQl4loj1*wbBaWnO?-ZHXxGhKs4DdFMg_)Dxw;z z7ZGdbkUpETQ`_Wo)yo(eo51LEzYwoGgUN|m%!tZyZuAIOHx+TLwOW;}QE5w0a>I_c zHU>WF>gF(@r;;(|(rK`RXqT9%ZmDS*Rq7Qv(XL1cKk(8}It{MUdE4vDCRB|ERhqIg zWJ-gm81ZMF!Mka~VPO^tkNMwnxyF@OU4gt0sW~PZia@w1fLD+7aF(Xp*4xJfem^AG z)1pNZJHjXW{nKKxq8$lMAF^)Tbu9h4AAqyi6%oxrzA?l>&(6(bX(fkz$%EJ!pk3^4 zHgDOAUAuORE&pEZ6P5IC@#pq!ThTo*6uOpX4*nFy>=a_jPQ!H2fRgVzE#pZJbJYac zR-l>Ujb((I%c_lVW~Q#Lby$UV=+o4R@u{H&!Ldg0%@C&}6(Lr#yrUYGG=Sst`&Ctw zsF2)k#+J>sXgrPT>KsaoC*_tm5=S)A#@kU+0XR`n;V(^KL%a{& zyRMYS5KCd_t|9E)dKnPwRRu~XN`;tMaE@bo^dy7%!t@v~M9T~F7@MADi`aZFi@N7B zzfKh;*=SN=0XI6+NlCB7V+?Hceez@GKVuPAMlfmMN)Ht%7d=wTB*piVh{;OI4-_Dh zBb8hyt4>_W!_wny@S^Wa?%IdWZ0rV2A?>S~&8LM@j)wQHfpf_ZNTDlAx5b6g2> z5U|JKKtMse1(r}2N}^)UVsUAOhoiC;8OxhaM$tDgh|Syf;>zo{GeB?Oz76}%It!aO zZ$|HiVGBS#0nRxr%}nzmm2B%4@8x0S7DkY6?>A%g1lFMyUjw!YW@rXgw&IetuZibN zDWaoB>UGu3f>B5Mz(~hMKd=H&kD=iqpTIpTQ`~v5RV@@|6kqGO)%gsv99$keB05Vq zM78RMhOy-6f0O-IoP>);ts)1tO!e-I>u??)`S82&%V!VcsRJjmbNfcaZ&Oi2%~|5N zS8|0ni7&lbe182*rG2K-{$HuI?{*`R&r;e9g_lZ7L2pyRU_zf%B~H!G;oWZ&751G3 z*o&x&?Qq02eq3pePdAQ9P*KMEG$mNCNq$=oxJUspZ%-ovn5j}OEKVSrYR8sqf79IT zmBpi|Egh6qIlTrCqSTPuB0xMou;%yjY9&lhi!HqX@0podOo)nnVR{^M3ya9EWSIjd zDI(oKMCp`8g-ZZUbPBC4Q32Rw(oZx3^Ua9_%j38eMh5s1mmg0RdPJLK8GW|HW=K@o zM^sX}-ht>(re0K)M%bpCtwhThb00eN!O^sT5HG&O8S%R0LUqk-W$@#6EG7< zlq*Ez$n<)m;wjOmyQ>TI9{2Y3W7EcsqKe*vt(!K9>TnNh+c$6BMh~=l4s{g7PKMs& zaFwriC9VK3r-_vjqGtt|MU$2~!_>2e+tK>z)>yY-ASN2-v=M-*9CnEXv<5GZ4ddY= z3+pHs41B(#aYbKvD*7yXb~of98?gf< z&f7Bq$x^?)dGoNirzY`^_kI+qwszLC>*`%kxMsx8Xk=o(dgWEG>=R!uoB{1KAO8~2 zzI|?P{@cBMeFCsoP1j!EoHgch8$4=G74|#ccoXit>m68`S>S0$PD$rVCawyx8iIuF zz@UjGRjMIrDn_lvC9YY3MLD~`xhmUVbr&M>3>w7+R98--SzZv^?hbiVdO=)Py|{$* zmMal!A7*(LZ=YRdmTW%gHD}2>4j>!Yd_e%+D(i@smzS}WUFGH)HP%*GA}FPTq_`m3 zpj@dlKTG_sZzkfJJbq6%A_X@PkFEij=nncih0`)mD*jEJGBr{Oyfw$En~78jlWeZh zloc{d*OXf!Q!T1lS}m7k7O)PMPy;jRH1Xgmj>)2iXh%l}db_(YI5;4x=MAjn*dnUs z!NCpa>+QkDpgrR@%KIjI@H|C~Me{1?8APyXjG z;p~0Gy!e{DPuih~9WBvQOWDe|cI?>x>%%YOX~{F7{VxOU3l^7_p5Cxwh_}lGD6Z?6 z>zM$X23SbrJT^9k+g^1sKJsrqjO_%q|}fLza{~=xM}L*rfJ*#8d0UEjrPD%(}%^e zhtbGQGPuz3QMDT7NH77Y)CiVGOEs!-0J15}3L#}>M)~2qqmJ*=v*GtHb|AHIT(wNC2)J(Ha(g&u}bzQ?v zYjubDyB~f%!(A)?YyEhw!Aby6$`Uz^+7R!1O&y!hi}vu)0Pgx%AIHOwAHvQZ8~Ga0r-neB<`5>Q zm#}TeuG<7?fAO{(mYXgj*YXpgAXQ3Ap~`oBViuR3zYBl( z@9q|$1+3<>mZ~K1xA2rFG2N7&ubYoeYbsDrIq2aAxvg!KR#7SCvEx;DBA!a4G;^3Z z1D0VinD{DnhW%cZ{#M;M_2QyHwm!6Pzs90n>sUSdQ~2c-QHA%1`hlG3HhR;LWggm1B=l(JcA_If~tfkWw=_2eNf zd<4Gr@@h+Zx*IHriUx>^#U(%UB+APt#4f1YfO9l~yZp6o|3 zeIj0mB!%=i+7Yt7D^Hd-)P!k`7hpExQs)XW0*@7{z@{rlfx?s;ipf%VYgt)}v7ZZ<5w&<&-9XvaOX^;JMZl}&zW65FnM z8`?K)Lvi9+$$hGcHq#KI=ZPrZ+_E8Md#L;zl3T7sqH7Ctn)zctf>+5S-qvq!`kAn(E|LQszHv zm9lgTWJQat*dtDq7j61_oeZRW=^vvT%T(GhjiMsmh}+hBaY?TPG|4&pcH_VO?LXjC zfAS^l+pB02-P{+)OR690LsXm5FYem8{biXic}6|*;y(U1ok?Fx7by8b@bHY9C~VNk zdX0EZ7jp|s*gDvSPyE{tGp#T;JI4l3=8iH`z)jN(3Y_bj#!6IA_8A^hnIh5aug;HQ z@cdVyebZi)#-B0CBF02Xk7(Lk#@MSjA>dd6h!;%jX&X`BQ6cf9ddMK% znL@R=f{ACpk5t!2^lZKu$*xTTR9D4mR6PUTs0;awh-x|B#*50ru^*$jcpTE(T<%z$ zNJ0*!aLiT_9YYtQYs(d4`(H#n*@1ZR-&-zi?UB5{Fo#;L#EWE;t7O`lIQ(x%EfBQZj7H-O+Q}q&e|IA$b|Ccl zx?klYLsL4w%Fm3lZoJ5eH(arku@qgG;(Ijxd&gUE#{&;OfybUcg6&&38W|uhBs6=_ z-PwkT=_SgS{A=;~_?b%k%tvdbeYd#aK1+sB`9eWbA_@!Zs)Nw&TT=y!1WvvQ7H~rqw%Z6ihsx55cByzncd zEHy344Pb79s}Xdn+z51I2?5YW6bp+e6<5XID~cS7AnJ<8J5gC-Qy;c2XI!Lgm8ilR z(;)=DWM0Y zQi{w_%Luz}d@q`X1=Pi-qaw;Bh%R(P;LU;h`3 zIcpcabwH95t`lYc^v%DWEf^i!frmvLw-OEbu?F7RP@b`42i5>fRN?WKzo$=AEe?lxG6 z$p(OI5Y9huAH=+OMLZ_FIO==J%^8c;H|j&rfV@hI?mfTqac8zpgE|f4Wp~{#jt&) zH9cXZV=fQTtS(Go`*n99+0lja>@ns%)fioiia-Oer$D$hHQlP3otBV-khIJ<>J6Pj zj?grnMc*KB+6$$SS-+P_Kk2C2?10x(j%y?0bvI)Q0rbrRXB#}Q9=Ni_$9T9m77M-8?FpHcRR?%#ef`=HDn zxmQ%?9efVywP@tOx;lXf1NQ(^6ZG{)Ig7%=^N1(g)`??N@;mX`)Ub1)_4|If!MJXM zGD3k2fgg#|1M$wKsdj4iIRqCJDRJzjVivPghq1IU#gfcuyaS13FE=k)SE6Vi0y@=C}qh3=~O>k}6*FEdVRdbsXdoH@* zZ2aP(M=(3T!agK=VRo7SZlI^D9mh{j+^})u@SnNC2(INxWe6Sl?GveGDG!wQl)jNZT;>f)q zg{GCyR;ev!;Dak^-|Q}=6fEo#7X%!5LE}rVAR%U4Qb;h$2dz}m)urbL3x<}e8Hzxu zR${4cR10%VV+`#1H33R(0yv6X84?{+Tp5)i$ceUKkzi`d4JkT&y_kw)F0am^Hg}9G zPf0=fYLQ4mAT(Ad9ulYSYVnlA%n?_X#bZU4?}#ciPzAv(&lhm{qp6od<(}!n&g<_$ZQ%qw;<2^IiILN}A<88no_z&AF4jTnb$q8a zF4#b=-QK)V^&BwQRvx2S5d1)Q?%7pyP+fXsLhu-`2YYna*A;jy|dwj)*aKlF@UnlElUM=UAx{QFO*SyAxZ+87yvoC>Cxlf33`- zAkCMO={C&GoW$`%1lTJAtoud9-OaqT4xnHk>}E4CmVzG)3+c>Fz)(l}y>%SNq_A_N zT^ujz;}a>FPP4K!$$WQPdmr~8jJ{9}<@m~#P|qpQJx95imt3?ThYugYGY3wfueZxc z0ClxZd75(zOBZ)^c78>CdFhOLKwal{3VXu5g>)Q_1^eKlOJwK2Hqp)Jgd{}>Enk^mT8(q8B#J4U>-mCIHo2? z(B3(Sj;=QT!CJMXdNtB3gezWZ!deuV=T((NkxsU!z}it1QpCKD_Cn`WcZ$qon}HHb z2kCLMvm<R5mOUW(mK>K`qAmux{~C^mMLz7Kv>6myw+pWg-th6Zsr(z_gs#F{nw&2^&D66 zAtiwZ>@~5r76qaeB1Sy{OUZ(uax+1?HYf&FlV?R(vCU^grf~Zv!b^U7D#|P1uVHc( zJp-sV!1~4yLx#!fsyV38J(ZL$f4-qCMjIwS(${>ez39-QM|xng1yu`IVc{6-x;r+U z!+djY?s?RTi(HM%<7>zeVXv-26=c;H9Ghnv$6EPgcz;C=X?-^>2<7}dVu=h8N{v@3 zGm6I16d23&%mNpTr2D#;pwE$R((=zb!NTSTdTyBjB#)V{Uve-!^vpxzIvqt|TEGN{z ziylTN{j;i}t)gIijD|^AWCyO#{+LXl%w0rWpgO!w;pQ_^^P%9_CR^Qnn;$R&N&KpED~x(l z<1Lw0m-%Wd4Iz(et$~E+KWw0Pa0ao(N1;%- zJ)6t@N77@Hhlb{{$%Lrkd8*=eaOn6bZo2kTy!ZWgVqt3949V!^5MK{{IDv}8_gyP8 z(F$EF7YHZs1j{5jL z^)(}X)A3`Dq_w!ho;ko?ARErQ9_8Eu57orT5z%!`4}jkrrAX1o<|ug~O9NFTmzYfxf!=2Q?sLhI`y#&_`D4e&EYu7P5%+ z-En2b9Tn$(d0|{s$n8j_Iyg*3=3Pb<9pf1vaC#CNXxqJOo7mkJ@UsVgiN4;B0JIgI zMY`=$xjK+cWe$ihA36itr~gOl@R1`A4-O8-sqrX>9puy<$@^S&!;VbMVtAk%fAj~x zB`Wa-`)E7x!(BW*l5HA#fxV^Q(*KhbWJKMJO#?pV+#F(Ueb{>W?Wiw|ut$l+fap36 z#}*>nw=@Mtjt4VPB6re`rL%@5J@i|s4NLjqTiOomH9{U3YEmztdmM}B_7p%M^gJ37 zh+1F@$L?90@ZErm4@nITg`>gCQ`4pm>5$0OO~Y8<`pQRyPWEjW?|GwG4*@Qi?jvsrtxYuI1HnuwAem^rk?S}HZ+H8)G`5O z-V85Nj-6KTh5H9oVaF4wR7*H<>^US;-Ew!}Nok<###9yEU|NKe+%>@J-Hf7~T-_X1 z04Yzq_GZz(in=+~*X5`9 z8a2jf*k=5xukncV=8N9SWBldZG=n`&>3NXVtfxk(wacPi;p_GQH{#T=6_29F5^B32 zlhIs6m5^tNw$^Q3khB9Hd7SvFVs1)DJ!;m;e+SK7`ETh28R)R>M3^Q|IL=OwQH%x> ziL^Wy3QT20SY7?B0(y5X6wqU+C(uy4KtmC!BqB~8Qgn!~8}CjewDWQ}xu(eq5-GZp zNj9u15kE9Bc91!Csr~lUq9#L;`5Z=Nv>6TD3=9n5O|QENtGQBma7;zYNkcJ*5-8q( zrqVu*KZ?b|>$17rC%e0Q*fNwW3t!SAo&vwR`1|pZalGg4x8c>d-H55tN%l!FmXuI~ zDu#20J;=9a#xQVfix_TJdK$YZWfu_Z=odh86Kad2lpQ83Y&R0Fc3X?=R>1aKG}2ZR zQ7;mjYG|cKLR_`qQe9h$1>5k+R-E`2fA8B;MwK3J;4Yw#ZCy)vx8SVZJ^0oFVRcqR zx^G`8XITHO4XdnX9?>L)h2wl~yEb3QBkI}d187!ra+}_01Um%9yUQnTDti@cSl@?9 zCD)DEP{Y`l`HZ@G>1he0I&|7ec}gv!6*?_bPr>`-$!ksz;)HiP@^7(tTwKd}OpcEr zk?at=!ZLe-xH{-p^;xt&oCk#5h-F#e7*O<$#jKjvR6B$6RvN?YpF?rg_+>yLSjRahzIeNsE@FIBTX$e3>P>XV+Fd`Si1xm{~x3CS|4QIP4Ti z8K1d)>56nF^J$u{JRLt@?w}n%boj_a0|SFentC+3Av8E+#ni+K2gS0mlki`vSBntY6e zWMylrZ3`R?CmaH7OZRN~d-yHfu&(qy&tC(=Axgye*EBPY2Z^mrL3muEA2xJBjSnlM>u~xlQ+U zC97l0{6JQyWrm)mQ}@*rBHNI1z->)U6gC3gyw>OYQbx(JFY z*x*h-mrAu^c4m~TQ}X}tSoa*~-^*{2FzVd{RN75wu~1o^Qs$~7$JTRzbVAe&96Nz0 zXxy4&!O$o&AR)Ihi_Y!=uDF}p;7Xk%UD(k3K$)P!LxZT->iEfhPok%%-5j5}F1hM% zrsIheX|^9bE!89Q3-d2q#9m%r`D}Z8Tc_UUX)~y%Cv89pPge3pB*g0W;k(`f@d!5a zrvO-+7LnXuFn(@stfsWEOr+90`9*#W6t_fM@F(4H!O3t)xhoCxR@C5e+3sjVq7Sfd)z z6kW(P%5R3;4=v&i)mjyWLY_y}>6#`bh~dK<4Fsd6Rw1k$|6DU&8sxD{`DBe>FXF}n z)r;e)>)w8coWN<)vF;P1ML40|W6e1GcT@O*C|;`NJfu}YLS7UNwn)41#RTGMW^3B$c!)3+A zm~8K4uCTPajNIZBamx9OGNGgjFG0kfRj~ zp4B)s-_@MH6L?W*fbrHWJYFCZY~kSzpQ@y3W-z4Lw5WwX6X(8~TM)Z~4BFah)Ll*eI#5)QV=QuMM@$Jf)NAqs@v zqiTCreCf&4uF@VJ9)8)O^`V0YDK6|EIs{--pn>B!p-Zi<__veeGq~)6y?E2F-;9Ns zMINjPU81^~XsRc1A(I(Td$%ais#u&lf!zEgs-*%yb5sCvJku$i=m#wQ~YfytLB{#aJIcPie zg=rG2G3c)a^58ha)QI7IffkAeA(|ziE%dG>tUEVSK+73W_XnhJhZ>32k~y8^t~_1B zi3wUu+Q_c7ESFLKN1IP-qesSZjgUq(G0$vo;ASDi%<+@x=xy&RAn?}b?d3XW8O7b z{I}hIF^i@pW7TRSO*c`s98ad@^lwu}-vx69VWTVKTCN(znkM1KWxcKji{w3&NOfX< zb`N&0u(jC3x=I`L@Tc(mo!y@e- z$J=BwlaD9GV|$Qn>qNa$#>)HzmS-oCUs>XdK9y+`Ti!Nx6V{FV&sP&Wz7D~)wauYv z$*@E$818`OuxA6jAF8DN5H;e5D(TRl76%@Z3;KRIOu-Lxkpa~Mi~n>CpcsIp?XwB5 zbuF(ETWO3|kqG64z~MPCI6o5$K!!P-AhuDm&yuX1!i4kr3DSG&k+yVu7LRSce!GKa!RT zJ4ELgzI^TL8_;DcF=D6_7=MzM=T^fBjhYNVmOD{Z;OOg(LA=h|?LvN;*WT{lVbqkd zlpAr4_YC!b=>4mTYI{gj+f=y|x7}K8>zA+98*SoVJ0|}5+-X&5zYJ-SwtTVp=QKo9 zE|-Hu4Gx&~d0d_R4JM{%@tg0s4ZF`d3u7n75RF6vK9ybF+@RSdu8_8#4O~%AJ^!ev z&{mKV;M>t5(_nZ!T2ZB zcCW3Np7coV<*s*py5dm6a(%Gc#`ddSQ>o@9UIO? zykisM?HjS-oZB(=^p}vLB=$(0-@_)S`_#m)E1}*)PravWg`H+3-FMVbiW6GgWKTgU zK}^*hSmTEHV#lt%osdSKkD)1PhiawBHmjtCZYr=2aqITvsU1+Xrs{54B=mcr^wSg~ zoe)J&B9SoEj&7{$2EE6KG6p&medPV*2mCYma+P&s@Kbs!j>8;{vcpC+D$m*Jixw4L4y?TpSTMtgY3CJUkF0 zDh{GU3fU#hjU3<#xUGLk1;qNw(Jf}0F`>Z|eG9s7z%lxs*-lIO7&ykska;Hc3IbHls{3t+C~v2fykY`XYP zu>dclW7EYbE{`HR`T)}1n+&bwP!%uUX97kZo7a6p-w!EZBxWm|m?%JT@IQ>?0T0STu!# zcn>IyVQAwn?)Av~CMtouQB~QMNt8u_G(5NkH{Wmtp8m|2FxW4OF3V(#_haI@i^ako z0otz?|NQZpO8cexu`gdJymx5B5Rb-636!Em8giRQ-Xi&Y9>4!vzacKvB#QGZCYaZ^ zBAv+Ff+~w-TNjpQ#;`bff~gJSM~T{yz@fFP-uk>JdnrfJY6kE4u9{v9T=OJfnGgkE zg2DUnvrl4vdP3|3Eow= zWax40Hb0;+{1)&IfLop`R}Nz}HJ=|1wBU{tYSPKe%nwvg4%W~l-1rvPXIoplC>l~& z$>wn6=rPO+pk7#*BXx!V#5_|ku4B_A@+Bfl*G>F%I^729ANBV2W5d88Hf`Q4zLw_u zjD9{wi=X52P*XD1$>}*gy(I?drq@({qpO?!=u~_;7(IQkSn0rb|{D{j=#$$N$z;WF2 zs!MVCm6u{-e8vK7$ZD7>A_6(_Uozdn&Bm44ab&vs*n*Q~Q36;=pBs2VE0;Z2-E4{v zm*dQ?Nv{sMyu%Iqd^kGY#penpCXRJ^X#tNt@MD~P!DSfSxEXl{?trgVEH+FM3>to zg6d6Vr(>(?LUO&0x#gHNAAOU7hi$lE!&Y>SqeA) zEaz4a_ISA;G%neKv?--rp;7YI2BRP1zWo183dJDiR9p?b~w`7LR-vNvf=UY4}g? zxf}*@joj0L9ZH}nZ6|2zI_psrj^VUD*AIU$kd>$c-3eu9>czpc0hyhEgWZ(lggsnz zpn>m%=Nbv{Iy*X$&a~s`v154VnWu0L=1y~S)A*-<9>d7V5!`V7tI*xmgV8fdSbldhZx^b?B~(_% z5KXqpF>5Cxdigj84wk4Znc0P{pg4I=}&)%`MDWn+A`?q=#=)uS_xzRv^IiR%M1ln zh3$apAel%aDJpdW?c<_~Cr^>#jT^b@CORZ0&VQwxmppn~x5<_?{UpC>yikfoQEhMA zgsG`nJo4m0^z>K`fa>~4Bw{F)D|`F;`oAc?^pd9*BG+EH>*Y{ozeQBpAENjp+TOXA z?22qxqXPJjjm}`#)*<{KAASdxSMmY>som>1p`(dZdlw2T^O!pREIRu)NlHYgnd^8b z?d<^9IJjv`Rg>^-UFrT>ZB+<0u>RNrwOpal2NB~VTDQq0GYds_Yi<4OQ0b0QDNW!{WOGs-^|QT4WFs+tv8Fi8J%f zKopOed!8Mfrkav*G-`PcGUymOpTiW0CP{Z~MPcEn*rFGBLQ+@r+HTdy3!tnYgf)lG zj8%DS9Xc=adMCJ!k|R(Py2i#WdI<^(A+=RoI*w#KDk^IFj36G z$v7T(=n3BaxUJ?_ymmWS%I5u8H2Ncf1$ZfcMy@%3XE0%RntraVWPczkhK_2bYHk{? zvYWEXE>{~Eo1DY%{N@|6d(TcREUrk!i1NF3ltW!SmEjwG?D>um~)dp*`!&71}*s*W9-&@rgK?6z}&l6Wz%&(#(Dvym@wzD?Y_ghYdLOM?y-g~xg z8-bl>OLgtF*tPnwW3g<&!&)ACoof1D2Gm&FoLjf54w2^JYTNV{ELo(QY9v`)Yy29$ z3nVQotxO`8?nAnJD^E$r)4hl!GAPVGC+$TM*r={IooKZWZS+|4cCQ`DL7;Z1mHTim93G7lV9k_25A`GJ9x}hEqUBln`&ONyAzMl#Jj541s1A0BPvyvMs zaSw>=jOfJa=@~vp8;6H@p*c3Xgu^G7FgcgU#7rI|6Io2mu3~DwfPAsWuh*VQAeD%+ zszvW`sma-FczFKcb6gbd-n&<+rd$C~Wl<%kL}i{<-YrTQq@&SP!V~%5@7%r#M~{!; zxkDr9>TI*9AZcZg5};lzRrhyvbo?1!;>qnV2TuE4;&W4@(Nq}hn1)))rYPOs7d7qjlnRyIHBrq zZRuz=piHQO6&!5cz$6=^r0u!s2~}|qBcIP%@p(tDs>Y`8{0Q^qa%|B-4}k|NQ5ofU4l8n{E=X*F-kEib8$`?d?76 zNfK;W9PS%68x1Y);~dQEuDqDjZM=1^4_ct25vOBmCHpq<&%b+VgSK;eBX%~M`;U?? zsF~_Q1|0ZYX|I;5Z2S1O*WV~W+~uuVB%&%Nx&a+22P1B6cI0{X2I7;K2bSZZA5kgkmM4i8iG<{#P+`$3S1}rw+&1Z;SrH?S zjl&G0ioX^Mc3oE3i;GM6(pUZgx$H9Y*)WcN2t~^!6A9KuKm5=EyykUpz|FV49zXu+ z1NhoEf5MZ(3?vbUl^W}`SovJm#cNK^<@octqx0Ccxd&(M>_bO8sX%H>w-9&!_~TCq zfUe@!TW=NL>lTGa7Cp+cRlcXPFyaIu3J-2p*fn!;ImgNEXYbjDlaur4=?)+g{S39l7>`)0)%1vs|vclPl+@+>#NmM!pQR!qbItWMmRIUv~+90r~RspHR}t!D@ku`Q&VLyjZ|VXSgE!sQ#7!c@s8m>kU{$Cu!* zlN3v*SqFRAa5K^mZG|msRjl>mFrl-G?x4nGZe=rjbEhyAfRFz#phZ~)q z0X2LLXI&?nZlm2GX{f7}G9Q~`Ot|FuIRRo z@2!^Z#l`hIH8qCusbzff)1SwUH@_Bt^v9pZH^235RLW&#pr!(_)p_td&yaGS3dbfu zkFuHsD3t4%nqL**n&p1dhQ2m&tdy+YL^_?q`1k~Jxh&2-_dJx#c?RhAj$WRqbS!xx zXHc>ikHfvHjYIvIUs%F}k31J@Na_!2rsfNkp>#TPkND^8OSaO^=L@GTVv7psQ|vEN zl~ZD*U!{wOCLgO}6n*)qUPl?KBnB+-+TuT8^6>tP|DxTE2Yb)J_bfR+3l z`)m*Fc@3HZw23Am|Lu-VufXc~&ynodAcw8|s0taj)7M+}PYQq?LwAJi#?5;!tM(vR zAdm)PUD=@C0cqcBq7I@YJ+*=e2uwRV+Qqfjz}LS1bpebk4A}Hq6sy;0_(sl0&BIvK z$H>@GbPw*pSN`_zu$*1R6<1!%&y!5V1jyF;`X#Gkx~G^>{}selT>MI8bxdDbEmm;f zV<#~x!27cEHln*DiEO@#&aQ6!@|ow5Or~+e4Off%sj%ifr=r4*$Z%qs#3XtpmoMYW z%P+z|{?pG;C{;vd9kV9)wfs*!ZgutUzP`S@&T!iQ|ND4-z0uejWp^`hr~zHN)byYj zF{-*xjL+aLH@_0+p1l)eGfO7B&sEW0+*ubZ{M`64l=3U+*|^JO1j^vlH0xJsvg_oD z5lVv=7j|B(=0zSTpjTr4UraWkL|eBXe$-I&uqPa0T1ihzT)D{P#~ z9I9mrXo*N{ZK|G9HF8S84yUWV5SMM_l78#RwvtrRdsmmvjzK`JZ+TOzbaBg!E0*lU z>hv?{*l?a$xI4Jou2)vkyZsteR!%Za5=(W-bQtB29wgISEe?sCa>t`nU^qQqpVMI4 zQ72*3V~Z(@FS27?<0xhY8Z zL%r@9KY7}j<_iTZEzIB*SN|IR!=L>RJovy*@rGZ2vjpCFgaMmghkjO069X4qcs{Pa z>MERd_8#@Ndc+{&*wJx3@%WQ?@WBUBQ!*4f!$|?&1p1@XE0|r(}e;?!|ux(3)9(pNW0p8(r}c#cOOc?`!+oaD^Nim2AzXq2gu zh#Iz`>RvYbJ=Da-MSNo;U&74XB7-SSmvwY>u)XBwjYHVBWwWS$x=}2Z$v##ArnBA< zoz<9xkq|P-#N(pUUqvpvg6{r)G{rX7_gjZ!JOi+S&$XmQ98SlMtt0Jgsj|`P+!qdq zKa~RHl-2dA0Q(fBwZG05#DPv*an@GmK1_l-`B*qS5*@RWTU-OE_De=$DU`X|ei{R3 z-2&8#0{Baar2Ejb>(!Wh_RDNy#0$MIWofOynd8Ig;8|Z!&VlBPw&+BR#}t8^r=)ub znLDlPtg4#Qt}CrgZB+^tAOqrBczh7+ z4}Rq1c|tDZ_7HQ>?H!%C?}1;4djz=greV1tQc)pxHS&Gd zK@u^}_N><{;(d+a%1ig-$M-)W!x2u$IVZ@T>k0iesWqi>p4GM6ry>BRi_5mX8} z9-?8(PElRc7W4V%59234yB~*+p5QTfqG4!YfIjJUqY*i9!P8;9WtD(Jl~9t6bdoHe zB9O1tYM7dt$C2Zs7#ST$p-@6cdm8beZZrfK5cfLy4@mu_}%L4GbdV0~_ zH^B6e-JGMXyk@IC-!qNOARp30I7uBXz`ahxaJ^>ZI#fn@GV+DN*Y z6e=AAE`WfQ=jbTP$gu`sTAo^5AJxJFGCey)wcXBAJFi~m0UWB_OH0St;?=m_X--@B zM=X7`ZxYunBQj^LMXEerk5w!om6CaGtl_l@bW7zTvdc^Cd#&je^7>d=$>N@W`mP$L ziSl*BvOewJCw_05uq}wsx4rv!am(x8iP_2Hxbt0iimz38w@5!5jXDh6S6zK2zW==+ z;63kt4>oSxNc&jvUq#CE$j_%)MWH&5)!K1*P6?X_F2L1SUW*TZ_->qg-Z^;w@H3d5 zTjE`CO56uDGcmJ}N1;^5=AkZepNMlVUS~w?Vt4J@f#Ho?P%f8L$c1mXbXth()e>rz zA}e1u4G-Yy=Z=Z{dP&@`33IP-qtpj$$+NlQP%4%A8@W2Zv_7MYOG~F6VhaHJI8~eV zdRm+$2t{pe?S zMu0W}cyC{i;?F%6f4ZjhaX6kzckERjteHHFI1zS3Yc}LiL`QpuE3T{n?4LdO7@m6W z5YE}V6BnJg4+Em|UR=qE>Z4{fw?Vd*eWO!_*EGORX81b6MT3(bclNck41pmOtmY!S zu&M2Jt6`JBZbR{f8j|;5%(84T6W@ePY)BnrO`L7<8o&NZy!O|Bjz9U&{}q4uiT}j264YO!3j65j zqS$HHaN{d?qPMFJCq`EAm^k+H&cDP&yJ@8k56F>!NjcBb&1$KM?c0X%ii`H**+VDM z)6*#)@0o%}S{smxtah3BQHt$4_L8f#uQ+GR>4w?c3Weflsq$?$q}Oz<(NIGuqG}ai z8=08JO;=rjx4-e#n3-SZCWgH9U6uaqb08{>s+0PHf(?jwCa(HB|NKK77u7IHrV@#` zx)5Ln5bVa0qbgNeFq#S&rL&(K+?CV;C&MZ==o1qaP)bzcv|T(pGLEC7`X-3mv1ORM z-=%WJ@{+JaUuA_!Dj5P}I&KP0=-)8RjY;|VrilrYJhx@~WK$gq=n!0bEg{)}Tqe)&$=`@}KI4=+6K-a2TlsS<10g&h}l%KJKi$Q7Lc>2&Wd z9(9+V(RD;bz*Kt4$s{(SE42slNV~ZHtH@Q4 zVy^fEmdhu^V~XfWoQrF&x&d$hjkn_Qrys`X$tgtL2=7L-g^DOt%GkZNmv_n3AG+YY z^Vld#&lhlnS*0Yvy2!~w?3TzwI87wPZuj9Q53AgXh&&f6WLOW2r81e4VvARci|SrngoSbyDaB>d zF*&Z>k`v!X7ZM$-<`!u(t+%I3Y)i}d_78rJ!^g*P^YvF?puY$6i_6kLhbj)}ZMFhr z9fL(7rvj`!WsWb$>D3^P=Y_%4&V$qqNumzirpaAwrAO8uRev#n?Vqx8Uf)B+is`lE zs(?^#q<(RtCaA&aA})ZU7V;-Ix2t7ud@43;GsHT?%I3GgK zwky%BSNL4l%gX}DccOFC`q);f85NV1cpe=mf8_l3ppGT#!$Q5?PiJ>F81F7hs>>+st z2J39)2y5gs@y!@&y8?+wul&BB!}c8>e*VDM@jD;+6h8MC|AT*(xVZkO=5o0Av6Hy= zlC8+C<}f=qi)~wXunL4uC{@=LfN1VgeJ> z3%K=$D{$^vJ46+dm6K~EpK3TpU1CpCa@Fm7R`in`Wj2yR)8uURHPNwU;?IbkUbBwO z?-U$$tJ=eV0kB?=E(t%Mt7s-^^5iL3LSJP+%8EJ4!z{dQb|c0zm2|v;ZE6b;L%Pb< zD|yt)tNb-7lT&uNoc0sw;q|%6O+AH<4d)0DPsj!&L0C19&MlXtR+ttbE*ASt&pO&f zr-d_-v1p#s_WLhL069iYVtba@A-ei~BEFh-nz?+Qt7=NJ86Tfy^^)(mY^Atjxlx87T=EE)cJ_J9sK=5V+=F-N06^gh|?U!g+p(~Uw-Cqaqf8+;e&Vm zHt&w9={Yj7jLxeBOfRSXRa93ET2d$KQIaI2(&ZlCbrdVYf`!u2^nazeSeK2 zWDQ{Zr;y!+e#Q$W>tGF_zYt~OC|3*HyQ#wVyO;JXb)TrRdBAT+Nlv)E3IJa#4i!;dKBBwzXhe$MSd<)qa@Nj z=-hlcmXCdxr%N3*UAh*y!+IAPdK)pJ9BUtIhZ8gd9^3|WL+eQJrYT^02+a@7aB#sQ zQpwbs^G@YKHn)PCUi(h;4Q#~N$WZ~#+wq-yzNsv9TuC#EkFR~>tNiC``J`BAs-nOs z36Sm(*Y*Hn3XIE*87xctCuATvX#j*w}U* z1~Zqb<0;?+@4E|5d>J2j=N~ffPP>4o4^4|jNEAkG5%weD-V6;;(IhH!_p%?slgHdE zaIuojd)Mx*FD=j}x!LLRF+DSLH$@_`&j?RG zHl@s`DRtTNOF8V{yA_vTb}nWYmgO{?hA>}J479afn4LgJdmB~@WqgML+vi51r%Vkf z?YXx*EuPcC(?{lUXmk+^%Oxe5a=7Ueiv-40lqy1%_kE8Y!7q=^;^td!#$E6IUA*>9 z@5JB#&1Z4!$nzN9w3&U3E23&)CpE3yP{&7FSTen#s^@$6KEgE3E!SU$#ieDrUDUR! zDjX&Fy=+@lhqupCG2*B{eJe`R4>cV*(Z+KPU;3f|+y9r+A9e+bP?&&Dl(7Lj$X9g3 zJEW$f5A6Iy76V0@{_r@p+{#E4e-^T0yM5lx7~1Wc+fUo8F1 z{W50D4`QbHQQa=8L-c*_mU6`vTL=BheG z9g3B@B&uwuUKHTw;JZJ#PwGY6(rWY@48~m@Da-}vHZ@vVRO0=u*I4h*4MlfWH-m()-< zd7{(hgpQv+^b}JsH(z^^xXBhJPiaSc!3iNHd0cp~ByOG`iXRISd9CN*)c2+gG4@^< zuunNC1Drx*{sNElwL6=qQpDwPtf^F6Eo_PUiN@AAD6(e0Db1R6qgZ-0M=(F}JlY4( zV*n&>+Eu1X>?>nEN1eSqz}0itz%E_{8kJ&@pspLeqT=q@cqx`k^DGH;BB^yN?6uXj zFB5ShF$2apMb*u()AWO>PbWOu-cX=T3M$%l(vGZY&Yu-dP1H!ah|8~kCF0490QXV! z_VwZU1J7Z0Zb9u&EP$H%8`5&yjBB?H>Cb91K)Xn&Bljk3y?KG~j{^dkVIs(H(BFRm0-_QLY2Oqx;J zTs;97jm3~(nnAgc$IqWS&JJijUG1#o;BIpwDn8?Q{Ln0(I5@-4OQW~a6iPa$kxgWw zP(WGS3{=Rb+uB8y-i}l{rMy9+xNy%-QRy$?%2(fl&-{mv1bwn=#_b;9l)przEUwjs)$Lnxj&$FV!*osvtM7)603xavW zi8Dc{ud41iNj?&!=7d1kGOv0eAaLcZhdS*lnlgR-R|CCXWZgB*OIqyGi6mFqg?wJ+p*q$e zl>Gm4DKCnI&DgQ~JS>UontqOW8ed z8u&8;9I0aa>Eok#?!+RxL}i^y$CyW5$!0M-GcT%XVAGZ@*njq3u9%s!86U;56DM%+ z=rq!z+TOBdGi$zkyF1aA$>1aZ?o(J@S;ilH`Y-VZpZYAm@K=9=AO7$j=DBIBss~*N zc$qd)AW79nw^&gA`Dc%!ue%*vhq^Jlm^G7PY+lbQ3(5a#hcso-5o-SVzK1n4j7A11 zO{NIId>`wC?fSpEa(*$@wZSgQ>ry3bocA2dp4Q-?GS6*dYzRT9FIIJocV{HPY?fObJpU zLj}k4hYp6QuDgHhL+ba7qfi^eV(FLMXw1Zi1>oL_R75I8R_iBGY>p#e8O5r2Otrp% z-uB&CSe-&w&nr<&W%2Cdr!iH$A1QYTdphsLp00P8-(sTpBRse8MP$n(=ycD)ak8n4;rz0%@Hzl@c%RI@r zd;2gx@S(f#np+fz4ElPouRgg1hJzV`{d?@iZ> z>LbF9Nj86KG^BkcN&i%eHLSQWxtRG@xI$Pv;)fbsP3bGXUOM`z8j&xe;kXut)rKsw*0I|or-IgZ7X52AO+HE0%>lsM3VzQ&;ebTVZeQ{U6@3(OLa>#~~ zXQ;1J6@PafH>6IX9ZW2d#?a=S98X72LBnEWW8)Z~m@?;dU_(D{di85i^=2@$`h+Nm zN=V0su(ADG#3Nlw2{M6M0mPnL5moCU%*;NHRH}~t{tY-e`&B&oXcn)(trv@{_lngx zgY&ySifx@iT;qxSH}L%O7ew_whW^+UxN5_nVoUcmvMR>}zVv_n5gvd1Asjz6&%fNC zfBxGn+1)C3&Lbx#k%%Xa!I>^1Josj^`NDnM@uT~H$wdq~4fU+p%q^aIGmf8^qsiq<4ma^EtdkfA#XE)}TWPToFmg1l398kFE=*S2j zdg_Q+eUt31Kv!})8DrJS_a7R;_)HePooVs?1P&ZLjGoREKJoF7;(h<>ZuAar4&O%# z99>ZXY}>h;Kks{5?MQv5(>TVFAx#qa&WA7kIXeYo@$SK-ZX zze{ZGmT>R=KgQ$(v~k8}Q40Q*HXA*~8q1GWi7j)Vea<+#19{JEBjMr{(D7b&ac zU7N+|dnWFUcOZT+rk}|4A~*RM;%$S-^zA{dxG0;uPQVt^---50rQ4B6wSn`~iEk$g zNBNJt$_R=iguR1X;q1N^69>MJ_U;X*phj97j%vhS`M+ql$<}k`ynrHw?+LM^pg1ow z4=V{!ZpHsfrG)O@4d@Y{7tOwDbzDN!si4STz z&Xj(FVr>-Nsf)0Zdm6>^!`QWB7vhNwe)-%{eEQE0;WgL23d23a=qY^&!)>pTwTz#~ z(cItT;PQV*wV4wY`;EAA@K4d3+|S=%sy&OND__Tf>964WeecIVegA7Xd&hO`FHUFS z_doSF`1aradn6Ll(NOk|V?l1Gx&}ybwRh(bwr?81#5~CdQ=uY-2kFE;E_N7i-Y_`u z5&`X({zu#L%F6BC-92h-U22_mB}9NzER^tyi_bxa0Jw$aEQ1-D&PXX*RQg0yCET#IN(9>+Mn;AHUBO)0!vws--DRlfBXvXR zuGs~JCW*O=!S|4mlm@*yUC`E6=-A(K1T-Wp`cbgw(y%?P zXdVW78qnWeM}Xdd5#XcBD<0WgmZAgu4*4!J|Pnre^yjhRy99sK#v&l!DJQ?{>PosC>Fu9b@k?61x zr_VHDj&(3Gjunj#QYs-TDKDq-aG>rF4RJ&H?fZ%+PH=K zh12arqS=VT+!U18HZx71q5GXiser}ixaoRHk;v$mcb(r>kdRo#Kn(&D^@z-r?xOZV zClX_$Fl9m>n+TIqfba>Uu9SYzi%g@{p}DyQbq!4funh?K?rJp(>^t3rOZ8nyO^88P zcQ5KXEqL}@PvDn-5XO7yxHuOa3ziJ+rwER?GygtvjI_^NXNoI!K{PB^_CFeoyRYkCmTs&ORZ zC`Uv83uvg*V#~GbXxrDgSA+=U?Ch%HxiT6F@M2wY~1)E5)zXcYZuhm zII*56=D2-48y=`?Xh%t58jBE|EDJr`ywH{xp&26l|A^{*2sz9L(2cQS(UnNB> z_BErY{s7F`^M#4ZfC?Ug0%|vxH+dD?DEm67P`_5(SUm8P_2BW4*YOU3ca!gc9lnpS zZY^_^8LE63(7_%p&B2LQcf3C^zCOA{Ef@X|@h4TpOH7DIQc@yXT3g8`t_jKj$jAnx zQfmoVQ^5AH^=q}-$n#o)ubW?#gPhDF40x+hY55Eu-U^d4n}GE_gc&D`&+5dVK3Rz) z$1XwQk3wPISp3(MV=*Qz79GA8{OQ#LNQ#moI?aL}$61Vz{yvJLpAyy~`E1qpbtt#~ z16EfhViYBq5%*i<8&|XCG3aX}k8i|xYlJ!W1+4pU9TMVl;2iYBZgt}AkG{Zj zPuz-%OD(K$A7)_`tU*}&`caUbgw*6X5^39DGDKn?OOYt4@}K=yjYf0rgZ6dKvbAKv zE!FGQ476$5z$@wq3s}app4BmVX)MfSBhI`m#Ec=fa1jR8)ZET;q_ho)j-)qr_G8cS zdPEtu=;`fafW3X^7R*|(j9i#>d{)lJ-DwCrDoe%iY7=GKbi|mtrfalXY~H>dxtUpL zYHLSgTr3IU>Y0_(!w)`$hWdI;nK~P%P8@=*-!5Ks!snC9BY9?^MNYRW zh1$f_{1h59Gd^$<_U-2c!6CX{90NAQ=gfhtzYRXO9a6&3IpI}UL?u^hgF;k-f&dpG zUKKKGzPg*A5fbTTb0eYd{7_-m$Huvp7(ZqV4jn!ctYa|HCIF{UY8dgLjGT5;IUEkw zJrcN;l#C_+y@>M8O$4m7kZyW3SbXeq9)()z#y{8p8J}*wgq6z{V$r-JFY*3p8M{ay|``3beN-bsYP8#t4h8>+Hmq z^=~l1c9V-#MnXEu_Jo2NcSUwN6ufCFhca!-grZ{;@b|yJj#c+OhU#J!EET1LBh9ag$i3TZC) zAQZY7#H3F{d&TFXQGpPc(;jP%8`A9(@o(-j=ZPP3++2t?ifN-Oudpyn1acg`HY+Ai zDnUwe3Spc!R-9zcacLx;VDzW$Kwdf=9wn?XKVG{(h!jg70*Td(^9YHe%b;|R&= zN+H)uE&lk+Z=fJC8qJOxe6Z&zHhflwmL>=Cvs3Z?ALx*s84ndo;Di-bz5irjO}kK% zH4BhucnAsF$-+k9I*kef=GC^3nc!EtW--P@Jr1*G3_;O8G&;AUy!`{*{?uf={aQ9E zF4hpj<;CCL+ksb}e~5h67FM5%9C+ecBu0OZEl6i65|$wufn=x@(rAN0Gnf4Hi)$LR zd7i&+5!>l>-b@E#*yNr+OrZ`!v97zvjwxf(k(CyYE^EJ_=*Gftzc?06E_@Z;VXf#J zaImz3l7vYIPdB5hmn^C{6HZpv;4d#fkEN@gfX7RXNOdBZd&AV@xL`r+YHlo_MlKv0 z&e03#w$%?{(QB__*MVasjLSrMO&#_eIDp$%u0m^TJBo@Y;^?shj0Ms3il8IRu}XSi zvW)@}O_5mbgBWnQ*``3HW9dX&P(M9PqnRIy4`NNuj}dIb_%LmYh%lWS*3ZCS39vT;V+NXfdYJBK#6J#B_$_f?wpx;^Plg*pf|ASOHI8_DY@}_!~&j# znIBLP58QGHGnF8o05;I=DnpHR9eSM?5UtEdvH4kaNseOa@+4@K4!pB%BQ|fXKu4Pk z(Q-PgC1KO(zQ#GYrG#(D#3uI&2bbJeea;IZwnNh z5qY{hQ55|MqLg{)=bKT{|1QeAK0u4*3!zp(DqzeAzNM z-A({YK(xQa#U-Gya2yWo-@zP6I8kGQ7dHyFVNo+yxfBC~E|!}&$Hg%=<#u_(G^a)N zKR(>ziXRqYkL>Q~7Ym>gVAx;{cZE;QMHB|v(MhBPfk_#9mLBA zci;%iZBtzxVcqyyX&^8_X0!Fd?eqlSH6<~ZtnOx59~HM#uR4Z$%nEraY8&HK~{Wu?h-a{uEF60U6?xc5Q_3{!bHQ8V5dma z;7(k$zK7<4z0k{2FwXc43XJzbr%Zy?TaB{5zuWP|T5RHa5PI?@;`taPL?$6Fnnc|x*tYj1D_#y=v|2*o ztXAvd_=KcuJEv`min?AwdwOrLHI6BE(b08(P^F*sHM7<|gBnG-DXS*@ZZH z;vnmapMT!98Ul+~5Kresmg^5Y4t|(?YS?KU)}_E$eK@R# zxz>(O0K?M*ypR?VO%{AUH#>LXrnC8MZZm{LLn+5`hwvwKhogJFk}=YP=&OX zAel>98A~0Bm`Yh0je-K7SE;4u2IWxdVqr|44EJD9(15{11)_|p(3*1?+m>q0LcK&X zT5*y4YGV-*(U3UoBa>WZS|#xH@MI%*5<+6egZJNy=YITi){m_s8xk*$=hJkZOzMTh z;fy#}PBfvFuYioxV@mu_VN&I=N8D&do9#4SeCaLp_WCe$S_zge&P9G+G}i!Q=Zh04-jxw0lg_vso5%LW8KrYpw+j9Zs zJ#XVe*ZZ(LJCLDYh{AyJqK~VZ4IEQMR@Y&zq4c7xaBAwx_v%U zW1^T$1tmhXg)y`?$ahc9ML|{)w(b@-WeFGQS4!18z5RpvG{_+L>T4FX+uPc&+k7_7 zzcDxHh~X2S6(FhBKz>>*Q~ILJ6M-+!?`1NYEPqEU`s627%F}3+xLDVXHp>8_4O(>e z_uvRpJeGiXE(7pDuGj0e!R4l|9du@iYy{9ish}aC zTwpZ;N0nd)w6K_bJ|{UmHST}pA#5g~O(isIn_F>P>j92Se`i$!82y(-UFi|Pt+(~&o61cmW zUn9L)J(pODgjY78`kW0J$+`IN?@T~pmI+N=t=P8bG`4+y24~N@keO`4>bpuYZALU~ zgLOD?WEXNWZp6v%pP;RWfVFBe=EVOAxly;VW9{;sLbY`R$~xa+wt89G1(=ud2)P!M zpyU*2bsa`k*G8Oe{uo+GEQ%#7@W_e>@n-2!96x-H1wQY8x)(41;2}0lM+u8BpruYX zC-QyS`v;MinTXhEBe{;fOt&YZ-p&ghO5NR-`PVdPYqZyA%U@4-&jQ*V;qi*y5n|Zr z6;mU0pr$w{nGMwRb=rcHYD|Zh=J5#QqJgW zds`#fK(s;7_KW#xUQ`04eYfOtgI=d2$Ki@F=HdB~E_h)gGNeYrM-(DMzeTuYR0Jjt z1M#8S*&@UD`TQXvD6eOTeb!J=8!D(IrbTG?FX1GhQs9Y#zIvJLuN z3a5xicJd@bH%x3g@nYwP=o~zZXu`Jh)eplwrV7PlJx%}|)puiT?l`>g zt(&2UJ4GVC2K3rJII!1-Pu6ZlLQ*j%O`A&o{%NEeg-(%H=YCwWtwm+eCrm6WO*^WEsBSzHc&kUt`z`xFCsm#bN1yGrs}F$AzRVyeUijV=ba-FXLo_s7=} zLl$0bLnE47o0;whT~slIZHM}p`A|B85A{-0n>8woM0?k1e`+v&A$m!Mx-_^@@AeR_ z?BQ0vLw`RC-tZ#HXiu}X8g~$?!(>l{w0vA zzDoS`)myNA$8mBtj3}BA1)Hr21-jn|#Ygvkoa=lGRlS>`lA4fbSdB5!48N^ltH^2n|GhW zGj}h8&EC(P={-Jg@SM=iNvDw`Cp{5IzpNO6hHy+ks@K*x!)%Vdc5~W&eSOy>XwUKc z{1R`N#xvbay>35qj2WQnUU5-KO^#t==mD)_UKG-2|4%MZsXt3#nVNO$3|YS4uVIdfgHb)+?80l z>UO+BK%0)dQ(wxKmNw+)+y(?KV!hrIwHNoVU)gMF?a9th%PWb5}~*eDe{jiw!tyL7CV20 zW03~+FD_HF9AWc_bbH|fhPl-ImQ%6!qKq`4mq!_zB&gjY4BiZMSHjwofT+~zg8nu+ zF0X3aIwk3 z3h*ql5Xns7rjV=A-ggFSLPlq&{}Rb2p)Jqmy-3cN1+Tug5nFazv2<|(7CoAc*d!Z@ z6Yhtb5ScGKe+7*ac;fyaVxaeRl+1Ks%Jg`wTel4-FK$9g!2q^Y{s0;-6_cXBi!rhH zL#IeVum3zw+g`@G*0t#Bt3$471?EkeiK8cehORmlvJ130((`kaHEo2Gocm1uTuh99 z7>_({$4~y}FYNd>Z9k3&Zk-1uEy9cGuzSGLcKkYF*E0yC9t*vG7Q6ci3+H$Xs_K4&w>JG4RIjKc zyA$JbTalZQhtf$i$o)q2^tRyqrBh@hsKllEqZkI#l~RyvmC0h+o!&g2cJeuT z$-SE_pd?J4J`n}kggG>}v*@6$y&Yr6jDfYw!p7~jS_7=MZUXA6U?R>hf(%`RRLm+h zHIYrZ2?a5sTSG+mFmJ-Z#GyaZujVoU&V-|A9$G3HP9wRIQW~6?I~HDy4sr-Shmx-j z*b-4Zilr|CM!5b+EWQ#5avVm}h^64ntgG0RrbldVlrZ4-`$bnxI%TRN=fCMNl)40{ zOzH4Bt?b39u87W@hn~7N5hP_1rV!j!CPBEXLv0cO_=J)Epg7VqCa4a~2sN6Tu?~p>pPsjM=`|-P9JmuLn2XJpn)YzVK12D%)_nycSan@|XfA8{sEJK`N87bwg93$t04ddh|4} ztx?N|lma+5kmq!|rd_k3{cjgW{(ro=J)Y9wIJ$T-x!hFPUKsPHV4j^C%X+YVz5SvB zwJ?A~$CBxdN}Fnx5>z*|VZ-hVFlcmWw|3!`zx#`59@LJ#`Yf&qPh#K6LivV@knwFc^$v^Dx0; zX=iTR{$MFn_zvxajVC9?Au~Od<@5sX9RZOjI@QRB=eGm-YaSSq$R0UM%muW!F`Arp zMBX@%6J`TN46wZ;bXIVeZ55PoLYrG)iZuk-0gVlb*q8iO3wvSgTQEap`EjYAy15IC zjOn1T$x}|0#O0YVl;7(_ckM1Dj=dXFg$91lAo+X)glVTip*6FA%T@Zwx&X&rVf2W* zdh`|}CIm&Y_z_-;7o#I#nw2RK(!Ol5=&Fzjk(QGHmqaBD*-$1Hm^6tfh(=w4e)`_w+jaW3{hv@d5#2L#gIN!1!4wn#sOEJjz zlFx7&e|!IL*!WxWGRm`CnT{x7Hf zpSi^hIvnHmdP7i)gI-V$%Cg16oQ`}E87c8(A$kPq%mCw|t$u!CvdrToJ8p~-Yqp+4 zU5k}G$BA1OOv2=8LV+YH`B}2K9R#>{!QnVe80HzAyHtaJZG8Z%7f(S^vI?om<1uIQ zbaZyL;n=w{RMcHUS=C8uO|^On*}+ee*DE9U6YTWMkztxovd!7L_+V7p_FwGVSjCnGi{3XRRJ zOk;z!i4EajL7kL<^y&yOJz|<9-0+v$<&&Nr)Q8hV6KC&VCZ7w{j5H|;25TN3{JX3#UsR*Ai;KGEZ2-~Ll?e5y$EWb?| ztJm#>N@s>9Djl|#lT7(f5)jy8H9?M5CCmC5=eg zAgGKnbb6znm$Vj388&?mopbQf!6Wf|QA!MGwCyHTb3eLz-58(r6pG{TX0PFc6=i$s zu=e94Xls%qD>Dv{Ka-BajA@8g%pqXiic38oprY%2j7eUEX%m*h5VZ@Bd~FP)OMid+ zXQ-|kz=~DbsO|b3Y1$`LDOIOlp#Lt%)jn}4su1tUZ8T(G_?zKw&VIzGsk4<+-dXc-GF2oZsPELp+ zA)qq|*g|gAE7(^N;8sZdWHAol^Fvio5q8l}F1qhL`v~0b-=VXk8Bx(UL93kwqj5RA z11?lGP9sY?i2!#U0sAtfC7Uq5Fcrm_nOJe-IIO?~Cb)C(bPdjwx8Q@%D)HP?Pm^nC zA7L~K!mg(g;GWLzv@0y+|Y9zpH!!u%}OPRFdPynaz|D6nyf%$5%sIkxsZ@H!zLBe<+>EJ@fhldraXDO$2o z-EE01n7a+`S z`*7w=D-IuO#i0XUY~JuIa;_f7ql+of8sI<+>Ydwgws|euda6*IIu|ES9>&+6%}42? zM3h%_;ID6d3@ahv^7M1?_nI&-<0qJybT2t$9!#D$0CT(!mX3aOciD05%q1+JH5ra} z7wi7lA^5{L7Ot<`6dJ+>7$0rZ zq2{|1rZX)pwt~zA#KxJKp=szsr&Ew_63V*S7Zo38#1|*(P*LAaSh@qt=FPBZs%zycS_7I1D#~{*D5;3MI2fe+v zU<;&x!9toM%#mmK$tRu+7j+qN{qYr3__=4RNfl+Oa33RCl zI8)Ir+J;FZ2->SHWik#5W=}>(Xn40CiJEzEq8=yP{)V&d9}Hw--$LwrQe^8^Av0waVa0juDED4mkC%T@j`|uIx$dH{bn$qU&NZX1 z=>Y!x@pD)(brlpbEvUBagqn}X?Bx5=*j|bBLOBd(71q96i`^eLqoHg7Gj3?ax99!} zF@=RBPL-k6cNk||K0rpA0ZVV0fq(sNJA2O~XD?voqN(is)5&1JI8aB`4e1bFLY#>( zafOh}mkdcb(4i`Y!XT5%=#a&i*Bofme&*}!R-#ZUgOhy$6}!L$@gQN>sY!7J47KR6 zbc;Dr0v;qxqIp$_=>f7nakPvM%kV5Tyzik|Y;kL~w<9O-cJljr@>&O>Q#*0!)N^?D zPcLKYy z-?S8J%^(K)x1)bxA38c-WI|7B0^mB`d}uVYq1P{Dcfa3`l$3KwNRptU(gP&{XS?0b zLPL*lKyZ*JAm;LTSl=>ZoCIvTEWMaFVhlWpYjfMzNwVCuM39)^+1yz|OjIXtxew(wwIUmfAf?9(T7;$Rw|!GNxm&yISb- z23M;;isUGYfv1!3KQZVMx3q)wGDURz{$;MI%~qY<5sfH)ySXdg1uXf z8*`r}K;McBeXk)|Z^GI&CsDp%fycgEg5@`7!x$~W#hMP-`(=3fPk)8a`d2*g^$D1_ zs1SMP@u=?IhU3kf&|W9U&h;1J==P#;Tr5^ToPoGh8H~y#bm0gA>#exZwhe0NF(LU! zxc!d8AZQ;yS;b^n=@g`sY)H%zi9~#IrHT-<0VX6zwex8-u8>PbJ)clL#!a4Uwe=NU zlb~%j$6Qy4ZME7;0?qQm^kb;7#!Ldpf2k;pV38$+fh;ZJb_(w15KMY&+In!fteHH| zgK@cIaO1*s)LdEurFuMK<8LC2V>Y>Gu-EP#n1|cvkHh)u9{lpJR3+>r=1ex>xyPPI zjA;znB*x(OWofv0>3!@w>ckgEYq6)dAM+;J;Bq_Pjr*m#szwlU8~Y8;%Jn8>WIX!^(Fp`Vm?hxj3<)qa*6 zmtp!1<5|~8P^TlTe_Ox}K`4uv$BK%F;3F)4hr< zhg@xf(^?N(%Q3`c&Vj>jfl{9cxyB5y%La+sD4dt@bO=9cZsal*f}tugBLP1bLBe_Q z7zN#KNic68P!Q9qq^!l!^M~5mJ*6x9TEZU3(*ni{o&< zq62F-G-1cqdf0osm^UpCQ)eV2E=>oEy$KaCW%-iArW6 zEezT{q9+VHIl)X8%b)=4Y=?CaM(z?-+;~J8HQ2HHB5Ip$@R22W%gSkpOMH^-$YfLK zI{;h%bA)lnkdW(_*mdG_^m(iC%?FmV3-!!}4!rWteoQQQ5*l?m+B<#%bM$SfY4oAP z)_|`)FbntGs>P=L2E>}D6Slq?Hv3EH^#2?x)nvk^mqDkU52Nu;cK7?Nu=Q<2pM5`J z$Uh{zel)VO{|9jiRLl4bvp4JMwXy!@-rinzA#r%%lvM^s$(+*o4Qv zmj!cz8kH9ZuziOeyEj_#!HZwV^M9O$`)_>;RjubSWv(29WCQ>8?+)X@-Uh&}z~l+3 zSh6Au6Q?Jli$s#=FSg^zo>rXL*94>1gh`V#FmHJp(u;IxY462}V=Xwiu@%QY7(kZc zEM8drHA0-S5wFfehwmKDTHb-t+=J;0GqCLgp;NECt_5>SiqS;~6!r9E19m=PRzOdH zI?A9Wq=-h}+DLP2T6`v7Sy#99+63)>mcP1gZsQ;pQo=Q%IZ^3ufEFQRO^7p_2&fIR zJTC3g^oikmAfxIbRO!UIcDTvKNc$0%-IC7=jcMsmlAlkKzdZ++>k!&H58$QOe}-60LBxJWTUKx;2Sl-A8JX-j2#pT(R5i*?~`!hfGs+$i?xiA(jiyd3q2~e4a@zoRxzJj z&|;Pdde$n4=d2w0NrH%Gv-e)w_@~VKvLYtE18&X*ngd|0(rBmv&a@9M(N@ zr7n`o=eLK)Ny0Q_VER?ilMe675j0iwS`~9A7xZ9+l!`*B2&G5r``C3+X8R|$SNY3hwsgSf0LG6`#6wTULl^JBC&zvbJGmyyPx3c`&CbP}kIf9pteC z8|zVf!G@%G6Yh8+59!4!B$4aKE$ziV%gZ>{xQ<*OHmov!3#(Sf5YT>^9e;IgC!`t` zR0Oakw3U%Wsy^x}M03{U8j3R;7%8H8eW@hUWP%bvb4*nBrRt_@546=P_4NeW#RG$m zAT#udpyU?|l1_&c3Hj-4FXiL4Ur3HgGS;`-aJH(AX2daj=1hzoFT?qB zGhm8dNWMq{q}oz)AB%%u{tmY;)RPE#91eV0i|-#e3A@XSpFVXTvKQBq*H*xwe}ufw zBhaLs!NYfM#hUdOuyIQdUjK!i9M>P<7)XOwH=ls=W9;tsG+pri8_XzTbH zVK>tV>t4q4+X)E|vJV;``$g~)rklW6<~~Q5q#1dDoeP@q!tW28pbMGF3LpVdFWW!N=y(*hXh`KM z#-y261O)ZH0OMvYe^Obv8O>$UnY(O0hQBg!^AKDAm?suH7TR9Nu{4QXD11u$h2H7kx<^E&S5&Wndzz{c!uxvWV2|{bs zp-HV2{!I({RP9fr(TdZyJesTfu%qTT__Ff@#L4Dj<@m25$2^<8&RNG6Z1~3@dK;<< zVUc3WlxWOe8i#@sJuF>boH=15%()X6&h!%S)8dw!^RfK)T;vv-(a>tedmGMR+uABL zkoPFcOTzsR%)p{M3t);@prWb?dp~Nzo(;7mf^j1=CmyT6or?*JV&Reu;N9OGLxFZ3 zl4dpHP}N>!=_g}G&V9&|Pl0pl7D8+!@Ou2XSW^#+y$33Vip0}CmTC*k8PHW98?9qt zP4$YX@*!>Q3`8Ruts0h|UOE{`M`fMY6liyJc3w}QU1TsAf+s#;{^|`BCCTDTAS_#@ zkg=&Ip&iZ}1R0)uK_;UXJ5JQ0xx>yD^TK7co8w->h8*ay9D${GI}#Ie;Bh~I{bxSH z%H_L zc|kxRi31|S{jV~Qa&_$^2yPU@1|?(dWXw3205{FiQ%gFTkE}1hHwbQlLZDI;4NKi& z7-F-Lm^&N2rgZeRmkW9;bmEe3N@A{=!)W>Uky9iijt_-b+gM_3|?R6Jfe;VlYdf07!gith~r%r(u^Tx}ghu3G1#rXGMOV33uI{gC(mnk(6%4*~&J2_S!}4-_nGx zdI!cArQwIMWtaG}RE z(6=igY*x>DphJpvqJB0Fc?mFh$d_~Ud^0lurUB8+nem`QE%|xRlAnY**p5J@vf$X6 zgLr4nN$fhLMd_4wOq~>q{OlO~^_2{0aU%isLbB-hqpyD_Vacy!|3L#@d~+9`d@=zO zZ-~d#lDi1r#3Lo?EP2iz!mJO&YX2USV5I z0Wslw@r#DQJYk!IPB%0ptfOgz+Qv=-;8OhQXHQ{DNj@%CH!}MzpHFB7q@Oh~5$O*A zcF<)9p&TcVt1{#r6)`vgxR|u5-ya&0zls7RFDll_MAKVNbgk!tEm#}_I&Mh8k>~i4 z(;-(`@x0=*#MT&kY(CNKfL`cQ2HZZu&7G;o3B~ZBYB>EYWW#Jaw-qr-MM%iLfq>Id zvdQ;>QyJMNC*g*-mxa5iUtO!;C~ZCA#Z6J(AQJ9_BSauX6dD3pCcOgntu_MMN}=^&adYt_@R$hrO_cdeJ zx{FZoI!u~bh~5drP}Y#^$5~O?br4X) zln~;iLVs^-;xz}_*AdHBx?HYI=9B0X3W`)#)gSQnBPUrQlfrD$F<@qZM?-WmpG|Y6 z28{|e%{^qt?_eSA_;Hh_suCdb;^cA`z-i) zV>4mn5@csP@X~)xM{e?MgryWB#<-Haw->FpZ^1jL!L!e`U0HF!w5zhMZc4wD<9mJrh>|Z2qg~ zi`mQ#7bX}bT*$1;K*lqbKYH;?r9x3sTyRiojj&moQFH1Ol&*LJ_2w+bzGKuTX6g(! zFC-5^F!xpB1AfSlA?%tD(@75yZ9g}xQ$?&#GnN?}rG?Ag8l1AF$D`Hig3mp2R(EfwDc@ z%dqdmOSp8T3rT5a%)YxAlW$9eowMNVu3FSg+JV!9YjM107tG3R+?D+zrfcuOw0U-{ ze}BJ_*RE?J8?Q$!E=mOx4AwE@g;q_wwlwIq+sWgy$eA&b+f-a?yyk3dWMjvUyFM#G11BRq5@9XtJLqIv&sHS2s!UULT<_fU`!D!In^W!yWv)JK<8#8AW z5U_p-^$q>lbL22;JN978xJ9VEl#73UvK~)8T8LYgXQ0pS#<61-96iyEHR~GiW5-6k z`HCBMM+@RjKZMigL`qH#HheGxJHO~fOPd^(4adlWSWk|{hZy~I#6>M606m@Dr;!WB zjlO{+=xyzM`5B_WneTmQoSC^>Fa@Qv&w;YJWox)NCPqXM@?)MO5AYZ7*BRQA&?rbr~b zNFHcf$m@Y2Isq+}`_MgU3GyZ^M(d@6v;q_K1`Q|{Ud=cSf7xG*W~dx4@f!Iq!LDtw zh#f~jTSC?a?Wmx~MGJ5yQ%Gm}_>q(787#&f1%JoXw8z-*+WeczUeJK5^A;R_-;2rf z^_cg~M3j_9lWW3*Lj+`x?d-zIy&Z(G$T53v3YOkifTF4KXzR4$qYWppdtD7K9_dDU zax|8$nutXYk4H{X5~}L!vF_cIII_M59hdr%l9_~?pP7b9wa~X1 zuStX3A=U56%+9^`K-<#YeZ7EoCe5|cYuL-I!NPqCc{b&xRH~rT=vY3Rg@xkI%KRW{ z2RFH>DjPb<A$}+~=@dbg%swEWNwY-hG@z0^2ZQ>~eDSF%jSq04A!y zCX-1pFgSqb_CCf&rD9hF8{S}aK}-t~HsKF2>u~wLu#Sz08YCZ?Q@y+llSG`f478Q` zS$m#P@bq7XK=N#QPfi#%D?ExUmJ_=}cqW%A6Z{+bp{;pbL|Y$!6)^X|EBFc2i#fjg zykcY`geWvZ@G+G}Kc*n6p7II(kk!Wkwn2 z4`e!cZuFE0e}!%mHkMCc-p3CqScax(T^=vuVzh*D%9-GribRq$uT7;bw0aE&?1Lyj zUyEe_LS&>(felBnxBkyKQNIbrDKju3Z#GswU5lmnrlYspjr|AOadf){XAW2pAE&{B zTN*NBSUZ8){Q8J=zq>GM^{8Tmn z#j$YplZDje#nH-b$jVfr$D+coeqDjMBp)Ug_n`3UYH}=7$o*w<7%p^L_mKDBj*h+) zXt!;KTp9zDb}FI?a7P)Yllu(v3H|8mIYAEnJi2?%iiC(03ne~Q{Gy-A+Bbkfhf5@- zK9Pt@#NO+W3@6*HIBv*f1|Rg76jBr;0p8_1ECL!Ng5+xm5d0A=d*mV;6V4;7hk14e z(+*sa;RM`ih68r^KqEK2?e8+}fB&oEBq!#!{eq@87bql><7bZT&H=%BofFzn1H)X# zm_#(!m7%G+47n2);n2pH2m?P>~xCHS&$pkrOQ; zpeBM9BtZ)$twx2$&R)V!ZRFB(Val|rxMA{l@WsA&aQNhBh)Q@JbEnUPhPwwxzC4Xt z3k+DbIsuM;KTefVoPOzB zXx#eEF&KAKA_mE|dg@Re%6GKk-1Zi-#^orQoq-!4Ey1{X8RQym#qr(eaBfQj&TVUf zG0KFAOA9gf&P2rIE73yO^TFrakv``jTp4F@w*C^9q&$LoIm;2RNF&Eqj;Q$1IKH)K z01A~10p&xMBB5tMCKXy}dBOaE53dUg-p%B12d}x2aanhF&-DV@$r`N|9%>&Z4%1M8 zpdA!4s@F`|4U_H+7}>G{lAHAlQ|P0*xee{T=(Y+imkB9yn4>4+?v>Ng*Vl%#)!Q)W zt--mA$MDZr%du;R7Go#bm@(JP%3H3t={ulKWD^wpw9#pG0H( zb~JXMMpg6Y&?pixb^O<%)<}ZUgj^{NI%kKjQGZxPO6XH(!zh8~0l#Q^APuY9A<`$3 z8)+0ABNe&A;gAa!H>GlEPy=%{F;{ztH7|g|MbS8ARRH3({2B`(5s6M@ke3u&b zI5T;slBk?l6s5Y_Xkciim>VU>%@4`#hq_AmfDwi$AeEYE6l7ePCXbY@ov5g&;LGgU zc^ZkHS1_@p6h74ANcT^1q-HH*3}#H3G!c#WHelIf>EKixYA^QT{5w53^?3(4zXV0o zV=-ZQB68=)!q)4=v7H2nH?`s77aasx^_Z|E50mfBLQZKsEKN3STXO&>KdwRDQ45K9 z<1zcb$(V3=3N(Z$x72mw=-LLHA=reSe9?<7>pGB<(TGV?V=$#O8l^YJW96zWw6!=0fOq5g2@Cdr z(TUGKZ9qzj2Ggb{kk_`tKv;j0=@~?;??7wMQ8agN#`)%5C~J5ZCQTZW&9ji1_yGL< z28>C29uip`nmf0nzGWwDu48Cwu?Q_QN;y;Z^Rl)@2*$-e!S9mhMiF4UG=0g5V*3OL zS?eEl=#fZ*laD-)NCXdp^OZPu7~Q3>B@WJD$mlOWimo;5#SQ>A#1xKraYzG&ALdRY ziO><@t}>%T;N z<|O8B!&8TFCWs{!l_vw@RMN;o!&QHJe#A}^UL1rPx(7vm^Hfa9gXB0P^g1Oo{G}6w zRDau`C%-e$er-DjN#we9%TC;SM+^ROx>{1lE}Kkl3MB=WP)V~g0S*J9~n)6WvIvr6b9k+E}QGO9(u=0Yhcv4ez0fO@T5 zf6almT%ovLKs%oHXbbjF;t+;Z!pJ23e+p(XQ5s03A*R8mA;k;8>-V6uyPp;2G*UmN zO$>?87#-ma?C;_nNX%CXU4f?Y+Ut zLt#{1utOJLK4h6B*z+1S>FkTT+TpDtx+Q}F@b?Ly?wHND{>YQGQy9=9h1I+teCmvYi=U% zbrMQX3^x3*n=oe;rr(r=`447;SGjRwe;qdbvm4GPIr}_f6?_0{7QT|pF&V1Mi?*NGiCd6U-V{wR|ro^#* z7tnNg02jx6jNcx3k)<&w$Irse6IUZAY7P!7|10=8n+XAO^Bz|F^7;ks6;3J))zFSJ zdX4cTbiB%hf~EGF18wE?1KLrcYe^{lfDP9O89^EOLX0LO18+eP$14^X1cv1BxMAs| z`r2OTjYfwt0zk=%glynQ%pZ#&6!2>VcO|Q@5pu{pg5&U^P6`CI zO@zWJ*+9hJW?}4`=CI`vbC8^9au5JT!DXErVjDJk1n|{5LN1d&8OB2SAy${e-5u## z@{8W2Twr)bA{aLKye^@an~O|isR?kqY^_kJbZl^lsZJ8cP0tOB8+jpmlCtx_kCN`V zn))e^NT=nnWYy5=NnWUj&~+7UR3bAa3T2l%;31!lwln&?JQ5NTajBw;{nf6mr|}2= zdCZwXeHq(uVeqdwT)P&%o)*NX-H6hg(=h1{JyHq{*z;aJ49-Nv#ua10*MZ~KGGr~$ z>fIszva_yYxSX6_rDA`R6BcwzoSdCh?~6_dYCZbrWtg8M`a@&?-e{DLKviWRs- zvL^~6(TjwN;y9c@x7EYGinwGoD%#&cKer9p@yoDq2G#p`3iVB!ka@$0Ft^|R`&^%WUfZpxwCk0>o1U4V8y+wzK^_^6_C2uqPBfE zj#jRLO5a5onULRAD5&F&l7!zvE?)refToJbwkcyqm||a$g@>8CMi}byU;XR{S@zJO z8E(k%i!gP@F_~34V>AIx=g>AGw9&EO(IO-_5tfQO}0*!M%nq@_Y?gcmnME->m2|K-oc73Fe6 z0#K3t?Ze00={li9YT2pL(5R&1`XUjn(}CF7co`{I zF7)*Y&OzhH=a6qL8~^y|pHLb8hN8T2xOwWgQQOi1Q>FlXK!d*vtDeq*&nm~I<2;V< zYr(E{t=RNV6H>Bum^6z3_&fs4cc7N;bGTFN{>f`RYl_-N$X@Q>mT z$@AgGN8$ZwN`!S?1OYqrHvx_8D_Ms9$C>r0zl{5>Pz)0&2S@_NWO37DR$=713bokPKzrUjBue4L&6WR3pA}&;#o+)=^S3NA;3E6) zS*H#mY`n`0`+yS}$x%p*)uW}u&ib~U1hk`~Oh`^nBA_iuoxc6rCgd;c#X!FwtBZb* z>FKwSPpTyB_AoOZ*?Ct#ZdjCqH{W=ceCsMCql6g)>lJRi@WeCNzvcptpKr#bWobxX zWrIQ>pFTDM!#bg&o3ECa^eo{N(E(qYcmpy6U0j=WumiZz|+x-fwFu|`aM zCJnxVK0>}?Xnz>?_WlhUFRnwItsPmaVmvYaIW)Dl5q#J!t~ZVWcxW98bst*)p~{$2 zapN3ion3pN-GBY`Y0LC_Jv=_2n4=ck%cwdR>tzNjs<7}ikU|i9l+_vyE_L;w+a`S0 z^sE@n8UJI9PrDh1&TYq~_AhXx;T?Q&K!UgbAA8>c-Nt!keFvQ&K(O~-#3EAN>dkVK zTO8Z5<;3eaE=lZ7Pd3HLCf+2QtdreMHf1+XcN`~;w#7yj6Vs->yea7`gLZ7IWz_txMRaUnXIC$N8a4~`rez*CR4;LneWsB1_@W9zq3 zU0Dp9DGQbiCw}mg71+CD5*_V6^o}>8ZT!!$8S_wGa5W0kZimUU90LRVSd**-pb0|= z_?0O=G z7|Sm$!|flr4*9r+0QpHY`L<(6&$Bo>b^u!!Y{TBy-oU4R{*Q1~_5x-R?>*d!o|h&u zer5(4OH#1>D^;kuH6JOtCX6*Zaq=f^XnST9)7^e#)}&(HxAIYPr2~Fn0B`^206G>8 z<9AE{9WU>F2a7V6;6qF9#j3p3Fd~3`&F`q^AxyT8Fu7JHYQ(HKN3x}BfHF`eKC04u zU3lpc>HUPtf2S{+#}?$Oy%NGIPHWT`H!NFf(tM#dOGyWHPD}(a?Fw)fXc~b_`ZiM2 zmf+frx8quTnrs4tc&K?Rwys%@yY5^HH(|7APWI!ow{6F^`xavBy+znce&1ME5RH2$ z(R^eIFZ`|pPe0O#>O~n?wV?#dmgnP!k5%K=yKB+eGKoDqdvNUN2u|-4ab))(O3SCP zbSVir?K-TyLcrR!Yp}8A$LJp4fu8XfvE$V5QBw3YraCvnIU=`u>&-H=^AVO!_=`!0 zB(omeUPXw*6JD5d({>GSRlKTHXSZg&G=lI(+rYEccC@iYc4iqmHYTX+2tH3Ns@q9S8xttXt zRg*0GOhi`wn9c*R zVNXdVz@3GWLGJJV){~96bz>7A@B9Id^}GY4kco9!_h6mlR{Z);s}a#nqbc|cywds@ z8pn?z-B67W7JdP1Q?Ek0xei~w@l)9R={t~0HiUu0E@UmWVaeA^PGCm7~R2`ZN7KG6})$rqTv?v&R>fStoFFezW$Nw0D#qPl;Z(j-P zDkJKOt|X6JNk}?^(V2rdJ^Um>;tWXO2D63hNF#Fhp^+>!+CU_VQak~i<%_Kih!v|= zX344yfYnY^*Sbe3Wj1Aem+Yt*FN0Itr3IZl223~0BP9BU$_*m&mUXSK$p2|71Tmjk z+Y*0HqjlAfC$nuj15?nczT`BIuh&PIvxvw*E=lK9 ze~iml#hrTkzM%vuF>W$N^XT4ygzAa{RF!6-v3&#?jwC+Zm@K=ZqGA=apM2~M-2CNS z619$CZO*+|UvWJ$&7~NZP61iH*xB+t&NMcn$lic$We;Fe$@NG=Cb^@|;I*;OAgv}B zD^r%?-D5|w@|#5{`an9uf{4LABof}^M$a1)tZq=SArrN?9KCza$J-8S+dQY#@^`{vAy?A9PenviriJGNnb$LYzI5$8Bc)R`yz~X zliXn(ks}`i%toD@I*DCN7jn}0qGH-CuPX9ZXnIo31f&%&ZEj-Dy)R#wN9$3DN3+-4RuogBu2-R(GaybsS30DtrsM^RRhhP9gr zfUnHOO?TAdR>H#DnntmAXFvA6IRQ5T=_7-8W6U**^32Ook$EGEEgwL5Y9B8`5=L!J zvM{qKwrP>iYB8JONJ(bavMShWH0hGsvKM7s+VTpQ>q#2>)5Pc|#pJRhb7U2G{#vmL zkP_-q_~cGKYn%~Pd(8Nk34be~J{PdYIkv>lOK&-gg{YG?3ej^;2OdOKHbQhiO!QVt z;h1)|M&#-5^qkT*Yo#ske9lZ9vzKHmS+{>G1KDU&80_{|9uJHKJgP4ZQ@22e!K~x|=ZLEFyokP69ve=Dj8iz$54}*he5oEA07U0bUM3GlvIq{ z>+ZqL3$Djwue^>>kl!O_E4f3hMm}g-REqbEZop=?TZSqm4OF} zw}vE}`BRpy6I3%EQOg&}q7M_$bIP5NW`Z3P;r9rGt-=kLewaM-Vf2kO;q=G>H1{6C zar_tA41S7y#|qTvUWG#2$FS{&8)2y*Lb_0f(>tALKQe`9f6{_yA3lkOb$Qr$Z8a7x zDaNh$EybtXo_@3mfBMaFR8(hR^`-(WUXg)Y@2SMnwaHkXb0@5Z zB#ecg$H9)r@lMkZaLc-Hp|!P>9jn!9X5qHq>u33F>ZhHTWD zX@OkMh%jbH^RjFVvXl_?826A_wlqg;I?uo;%_!051VNjAkTuwX5|SFVboK8C*73@i zM2$A{xc~A0(lbdWHzd;}9jJ_q0C$+CNi-^y#LbJ`e;f*!GUq@p{fjW`SJNEFAtWNz zv(sAgEA_J1y6X5CCnuzbIqmjgNliZ9+God%Hvp4?M+#;k38kfE?Vmi&Ui+6{?8gIN zZ^U5e6ka;=IHvp)sLEJ_tLv`7lH8Sq`TEi8JAgx@+p%YGJJ}GDu+Y99H#k65rnP8jM6)@P`WJ>>5Gyv@tzxdzu$_USDcvX4kBxb9SvVCM8RdL zFs15n;)On>Hl?Bc?qm3$-P@5R72@M{_u-PfWk@1Kt``UJ`ms0F(~z0zfX!^c^!PZ5 zW@p&Bpr%oDU7C`TW&2+-aXIJzgZ5vU9uc8VOkr*8lB|uO0Ho)|GOaDBAcsP+5JG_>`#Qm5v+K2bv?#JmveR%l6y)Y&3M$OV(EL&fS+C}-e>E3#L=$;0& z6J~vQcQ;NS9m3O(wBYeyM^IXALFIxxeCUf+NKRUe^6cvgAorko^f`C}Asji}EHiBr z6Zi+obJR`F>kX37&`!Iw;14Pjd7$c>B~_5Cb#~JT2Sg3KV@2HA0)(i}SBY#Qi4`Mi zo_ZDvsV^5~`JYnZq3m8Ky91t^m-IO{(+GbB&})JFyb3Jx$EOlNA+|_M&pQPMF%nXx ze88NU5}tmNZ9#boDf-z~)RyPq#kY?l zJHsa5Lv#R10XjQ7;q`biJ~D;x{ovQw`WXk3#Zug|^Z~+p7sH1MGrx3g2T^`o28uqI1}g#X$tEw_zcPY>SEmqi zN07Zd1(mnwAa@HDj!76k<-)`v5BmN%iJE)zP?C{{+i@>86)YwH>qW;*6L$6P!?=Bj zM6XeMRwH5jy0D%N_Xe9AD{`mBv@|Bc)Se~XMSz2bizzw6Kw8oigJcPoEWKnNB&^L? zP(~|p>(CHcPQHLw&Iy}v!|Hp{G0=;{P4D1%_ivDz^J~->)?rz})hJ5223hv6V0~Ex zgOevPDKsLddJ;V+-1y;52hnhO7gkFgD(}`X@cJMF+ z5{j1BW@E|PLevo;zu~T0eDJOsw4NTq{_QnCmw}FpSBj0S=_Kl%JvU915@4xt-UY_@mm@z%K#VE;$a>L;i$^EyaCE2Ku_F0T=6JrHwdJg!1`w%w;Ejo<~Yt?IW?ZB*d%@?N>My!Lpic zy!3X2jklv0l16z+mK>Com7(!eBm4PZe(x>(36l{hZ ztk3-rHWgooVrwzR#SXmfd<3tzzfOorFYa7(H#TorhMk@xsQ5qzMvl#({m5)}al>RcLZ}3;y7>}pPP!HT!akgG9mMXTeK<}c zX0zXp4=mY$ZapPF!*UIbM3yF6bk#u!@^ehjZ-~h=1x5nHk+>-HLI&-NDWy&Ce`XOZ zNGu(~yVK;ZKxXPA$mCD<;-IERXQ1R~wqfj-hM( z7|x9S2Quvsqb&6j)Mj0dg0!v3#}>G3+wqYfl%wlt5JShjc+`T+aVl>4R4uAk>#;ujPFPWa zNzd=``tUEvt?>g~wQ?H{A4ww2nr=Wk*picDXcOJEax#*bMq5pdsKqQXI;BRN2i34- zm2AsE$Qy19bM_sw$?6HMK4ol?3zZxUG~>mT7I{svk+-aCqW~n>Ftq0VS_zhh>HodK zI^oaoq9J9-(bFz+uXEAJ)J#HLZh97Y%h8Y0bfiuMqPM6{gldQ}$Dt-_!;WnVQcj_i zU>Gpe`(}L7jYU;ixTKycNqUf1m~m^xw!@C>h6Nq?IYj{{N{(-@%`_n;Fm}K z6K%uoNK4AY)}p(xuH_;@AGPjRPXis%N89rKl2;W?>0~YajC)eHFxIOzhI`C}1$=Nr$Z(4G0HxnDOw>X-hWZch5bB1qz)yG9v{c=zPS^RT6dssRS}kNDM#J%65RRC4XpdE>AgN2-Pwt@9^r>j-$~ zASpeFfB1L_iX2y>Xz`U8C%^M}-_wXlI_%zklpSZ1)r4eQGPk0o8xVE-BOi@6Ku{kN zNmFl>WZPCrP<*aKa#})`elZrPj~l5g|C}xn5XhbwDl4Ad&aF^)?jfRQ8>IRM@`lRN zAQDd%@U^dPp-&8wf;P1HwMgqdzhii@+NX%M9b!S`B?SBa+KN@Uu5vewsB;^4`C1PI}w9Kq+E zVP5uSrR9WepJw;j&wuzlmfvJWaySjwlzsx6YqlU+Z$@wUGa?Y} zwf=srEm%!fVHlm*fo|U^jJ^`tQ1AfDVc^^UZ4H*8q;Z-H)0@mGD^)V|(B4QR-NWij=LmeBpP=?`^{F9goRH zNDHho?rjsD$u`OMpBp6S4n;40)+r$E0>Kx(xW zerE*z&p9!^(*s{mkmb1ZZ^=OBT;I`{@cIQWGQSO-kl^t&AF?rFrWmAB!lils2= zBIxp;!K>XTaBQLv*}8Phj6|_EE!7TvM2J-j>3BD8h(+qOon0q;_sqJo;R_D5sdL^% z!?c;iN)u9xT)WL}F+{ScT(bRQv|XF2M@V=X1ZS*c<8FLt>qcz5`cCXQ@-B`K9>(G3 zcI@ojkBpSxVMYE%EYIJHvdq=wLCtYYcs2haR9&x!r$@pI-#LRMM++*}WTAFbJ{ne6 z;Py*5un8HB`+IS0dpkOg4&jgA*$0C~K;4>rEV--*waas`^6Ekqt_tFk;@VXo!Ekd9P95pvn@e&s%p|Pygm~+{*B3;2o()-PNtl`OaW`k3cF3+` z3?!+suqa!%MmwOnQ;|$0i4CKqqIn-JA$AIT0(SoQ0_)g+N--M_YlMmfH7r)-^De1+gG%lc@RSn$JeODMrKm@Y z#PZ!?)lf>E#i{kjo(rh8=@EHIF{J<@vVkyLUpeZbxpz9RQ<09chA9%(UA>_i`;PYz zHcZG6mDdvB_7Ub>Qc{A(lc$*x*ul5D@Uv(CfHj11KlJo3kR&;5B`I~zU$%;*qWz7xs$DHwW}K>qF-`1?YzmYb1xYZ@{xwZmLs z#MG%7Ods^Zeaw$QUl2ce^<%g??+UC*Uk^Juf@&MP>F2hu71Y-k@ zDnRGwX24>$Xd((;`w`?dCQ0*+0+IX|9B5Cw+!qaKXQZdmIWDRyHX`xV2uqugopRa} zV3XLHeQP9o4Rkui_R;{)R1iOY;$hsrZ4=fnUq~LS5DIv3aQA)-F*r2k~ZL$g_mH|bqFWuY)Y~Lz4XGn z?DLoj_@z2h1Z{Rgh(;@N zp^A4gMr}P~n`z=CVzROj4KqHWYcF5Lbkh;{3XW*_nel`_%vQ z5O0oKTAC%-U@haalb`l%L}!(XaoWH5LV==?(nTE^CGMpo>Gbn%Ix(eZDZXCHBcO07 zNEmWJ&Yg1;uyDY~)_}>JBxh1YOu9v^TvU$BS6AZs?Wa**oW+jE?RFt8Jrx<*>6jRG zvUT{CJO6;6lwFU1sQox&5ij5qJq0TMJDn{AfBHE37R2=W6z0`p@G8tjV$2$hjDf;GT!J;ImhM0uzBI zIDIg1(ugBC6BAg#r5OV@Ch6rK7vC-N65uZ!P7rJj0u|yrdtP4wkj8O*Div8N<#Pk z2?F3F=sz`v%TjLtFBlF8isYW={qTOn&Em`0X?kleLJIc&i z`+V>ZfV@m*t=hbfhw_@4Sxj@*%m*3}Fd5m%$Le@V)Esqr1O~ z4)1onHTV|Jcv@f*Y*=Amf+fZI$Vw(;CNzv4ffLyMM!%Y#qF8_EsB-2l5&N1s<@n^Q~jeAGf z@=aMNTak;!*R8;eGmO^VgJ|D7gu&BJoZ8;c0K9Z%CTch5V8QYneE7P02)SN-X8nC6 z{I#KLVmJ1*{xj?*E3R7hVR(l#apE9PjW|+MV6)M@p`V!w(WyKcsY$3POoPWK7pCOF zNTT9qC<7$VjA(qb!JCrw^Hr~)C>L~5`Po@FPYnPIv3dw*QY14OAz>GyZr1T(z2{?#ABn&KrSz73$&*NAtz_hU!P5sWt* z@zt+yMd$D+_O*6k@QfRwU4&B5JoFfsN1zt)R)w&lq8#7&;0LgE-9r5PnXjVRbqe{m zVysQyfEB6rNYeSx6KumPL#J`dHw4F23c8L*vj_Pl86--`g^TI7CAKLEI(>AgH0GAH zGLtO`7o4M>L6XFa1+?jvut4C8P}JlBbh28(Gc&`qms%DXi3qT!07-TZGU0%Lx_1UN-%sPKrI;yT(1m9#3-3Q0fxn~r^O;c#wbDF%a4Tb_Qwp_9v zTQ=N4j>CwLE!vEZu^l+l{{md0F+BhDargrv7zuD@W~7miNt*#egb9Q(?ed|aG81J* znQ*y%yvi?sewsgJp5cO#H*zqmQ$>#}`$AE*iB44c_$=d3Wr%@}=d|Z-vy)#En}6O96Zs7 zvcgQZskmKkq@`wJJaruIDHl`8{Pe4DBDr7-etze738!`-S+L-Y?+9Kyy#sqXkHf4> z!6jL%u8qU5;7L0VNppTHkVgo5g|y8?k?Q+ z!tYU#nTcB~Ka6^NHMxUA==C>Yr@I+@$GR{);>R^Bs?fT}hmb#_8p$ndC`ERv9i8Jt z+#HKy0yC83iYs~^=;utN&8AoqhQ)IMg7!rt`E!vIo+Zf4k>z@2W=TPtj=LWjn_?0k zli7@5Fu*6alh;}eR%F}tYsKOI zL+~XF_|-Fy;1>_Rf(2VM5L!HflJyy=zA+b}X$b>|TdLY#C;htja?1 znhX>yN=4;mwQ!Gk(RYx%=I9vSd)|%pcdx*%$$x^^6+lDwrKrf-KpvY}YUG~3+{!+r z&7Oo*!nA#US}cmN&*_=*VR3aHQd6vOPJ5U%iBDmVsJd)X)>JDldXUeL!c|4tCnRbQ z8e7t1qCm}!9-GfTpJK6IPQQqWLHHcr?(dzqK4-ATS&EYkq)j}(Ey|9Ibkvv>VMXE? z?Y4wynoEcl%mkTbD?Tq;1F-nKbri&LEx>FGmdk32E zqy4YLPQd)W6}Mn@-eLp-KJPngM z8U<{F$%Jsw7ZWT}22Rtg+WSID8BrW@IoY_Y3k$TpzQDx-+EXTzf$fhGxtWHpNxdv7 zqs)^I?WO)4X(?v4Do4Y9qrnV&N-}4t@WCdOqbyQ@=UzO37xo`Oc|`_RSJz^5#b&Il zSW6zCL;uun-1Ef8kiX7`k)vL;zv{&CtU(m4Nk!3ybd;{mLhUX22u+CS-aUq{U1R7a zY~l1PgRrI6fEsgV?ijY<8eog|$J>Gy|_W;bJLT|PWsKR0Yw??g^}1*Soj(wt0 zf{qyr)3wQpm9u{;I?0Eos|@P&`q%-@i2+;E%(zs5TM{_Tvv6PFY8D~PogxKIXRM&- zgBn79ADc3-GZ@(aPq-p1HTMYu+~51<8?afE7*Pra0R9s$$o{laU%ti#fA#7d$ z13d833K&WBx3%hOT(xus(v3+N2@T@e-dFH;>ro85Tqw4d;M$6%*pOBYJ-Kfub)$H1 ztOwiMn=m=;L%F>ecQ5`BR^%;!%Rhmpi9iKRQNQx_a)(+L$9$=9US zn#T0Xn!zmWL3e%T{wFCeUP5#RB5Ur@lZ9rH0ZPPlZxDA}vkF<jEry?KnQ#h8K?< z$LpsKqds>5QYKg7zn^*)wt6$_*A*c!C1LE07bAz=7&_=e+e>4x=XZ1P-kgcz<(VkI zIt#A;8T9R+AS`?ey@w{z`qmismc? z{`N3CHabl{D=QsTWI$*2Q3fzE<-u|S*wtm(aFQ@Ix~Ql|ox8U2qGU+^I}%leXgUm; zB4Jh$GJc_InVv8w+{XHbXj!H4-0)L4pO^f#O~ulAg7x{OP^4Mgp6004ZcaW(R-zYH z9mqq0=J;i{xL6lsvS34;3tfln@Gv)L>~Pn zirmv%FBw?0M(>~gk!f7Fu?i>KhVb$`Cs9?B%YJTV#)~vZ2K)s+j0_CZp|cq44C3EE zcnSwvzlJOl+a7VYVy|leubnxJ36Bpo>E*a_>E&2iR7FTg7%fvR1gtx7Xt)R7Km-dN z#rXKb^;no$0;hKr`-k7faaSw)17oo1?WnR;V1YFYX@ta0geP&(L+-^42cCMUPfklw zxvPZ5i;A(Zq6lLnQ);b7k~P`_6EcXbc}OQDuCDNNAvrHN(6-wz8b9q(9=?g1U`}D( z60>IY`UCKhhso%O-uCpw6GoGh#-|1uND$WAJ&b2MU&6AI3f#PLA#TPh3{6er)Zj1< zclF~7U;Yi9U5bK+R2)9ukK#?~$Y1Y3=?Ajm9}i*VkP9RGUFhBEMANf_NGVK0;o5W* zta2d#l2lY)mkC$*3;t3 zTAuf*JfP#7UsRbRYDzRw*RPnibxA_}lhLtrykITK%{0nUvEjnBW)cdr9JV^>LgZ#j zl2TA+HV1U$F=E=~#iwsujpmMF^bSv;I4^_!{EWwo+?)dVeSSgsXVk~-Aq6v7{w!Rg7<*gx2YW23#Wkm#e%QG!i1m8fv!VI~y9 z?%|zyZ?YM^z6qp~dwQ9z4vX!DFcF|136A2Z+ll=HLny9yVBa$nIJ1|7vnV&*UA1W$ zQml3ig{Qd59QnM=Qh*R0qmd7pU>(N^_z6ALKJs}|Q&T4{JoSh*`Ck?HAa6?g>M zbe>h(*#HC`Ty7F#O}bH2S*S{;Xc!+NyJ=2#Is-goL_ol$$AO)b_`~4KsHw`px@Bcp zR#1T}>z0zoy{NQR;-2sQ5*C{tDjql!z`)>U{PB{OF3}XQMdUoQClTRYsQj9w{-H+e= z>Qxd_N~{2xk&#AjYy;W-XV?uE3`JPm`kJMsaFQ^NkGN89WI246@kfmsX+90M(B;v(g0ooc=%=a;vEyZ-o@;ZemPkhob zP!0yX@+h(pTQe*gki%E{^FgnN$pcMEHa7c`O8Z=X5&4;BeCr>#;#1%LGe*Xzkdx^^ zFc^a08$eNU2?BmUvl2EXS75#xL)`9J-(h{;(GZ#t4Y_w4l{F3cJCE z4cWEWSXhNz^1B8Jo8B>c2xq4IG30k6-I$6EY4xbL=Mk2z$7paEC#Q$dF*A)(w;xrR zsaS5x!F>-LW1pAar(NItt(!aCiGKbYO}AI9W{ZxzY6W2ujwZ;QsGjiy+>`;`GhraWi2U ztvJ@b7pMESWBZwR@aQkzWxm#Q7G!2d1_?I7|RjU~z$bgGXwPm9E6J>r9UQEh~gH^w=sv8=h&OAK^kr_e}qloh4fY&(WQ zo*i`0&eYF7Q}LYSd-DMHxv=Y53|@-;X__iw6EtaYP@Xf%ruitUdoi|<$R_>>dd&c3 zZG@!NbW57QqYu?*M4n|yhYu^}RFu`z4oSsLk+*jn*eq5G?99K%k_(?m}G{tC4isZd4GBC``}9)}p0YT~G|WQIA2t6E6%l;?P(>f?|jerz~8VS%w;WCe?9ZAUJ?-|0GVj zoaERf#Jx%jY$ zu*eLeu3TTkQYB2rCrGkNBnr3DxsN(|0*Vacbnb~7V$0#LE)m1lFg0-13G*xw=AM$y z^R=|%ZsD^M;|q^5zEI}?zS6mmv60SIX(F8smd^*Q=YebK9MUcEIa4V*qD_>$R{16> z&8`~=`q=60Qk)7~nw=ie5*kH=uajLDBLrNP(RDPHMvsB&$C(U{>X$`M2I!Cgk!s2r zEBC=DPuQWk_^$p5T)wUz|MIz;@h?Amg1t|QJsDnd@1>=tqo%F_O^v4z@&#b9n9$oh ziQ8Abh?~A&j4gNNVMA3JGDSO5jTQ_9hVk;y0FI6g!xs_>Sf^uMZa!)q*$9b#bojb( z%Hu>AVg6L^SY)=LfNTaCsRoqg*zm<~AI58sji?=@l5EWN(GPCK@Zb>ZB#lrD3sGW{ zM=EKg=fG&vk$cUDF{g)}Nt)k=JY|S=PRfIs3vyB~JkYLMPQFFahof`>&P;5_%cq~j5Xtdn5eCF z3JQ(_-;8H$UV>H zqOv5*6qzz96jdS7|Lg4T!-ub1!JhlhPoHKR3uWBCfFF*O6x1xNL-UzNgb6{?nP^vI z1kZlG7ZZm>eDOaTV5peEOI^*_)i?;V!HDX#3@k3nKy^wgVcKCdd;8Joo*-cDMlxaW zHI_7#CMA*MB*&61BF%2ZLl3s&+3$=*(?;@wx?|gBEG*B)$Mwv75L;O zR}j{&$A5n9E;z@6c;rVrV5l@8X%7L|WU@FHS&`acB>-+m?iCJ%#v^EZeHbHunMT8! z68zhbK7jq6M`3eWup;LgY)HNV8wx*&ac>LWJ@YcMQw;d}eNVvS3c{9Tg5BX@1;`n< zU-lZ2n4D_s#)U8vx*d`2RryWCHQJC{`60Ko^A>(lt&X#TmY|QeJ%gJDiE%I_#j{;O zY4Df}T)Ec^XV{V^WKTS2QkW-y{kJPj{*{1zu0TCsxcSaEO$uv(*GXfNs88el+BE2Ydr|13;a>I$lB~Af< zgyn|m>yoTGw6{$ob-EHi`P2qH_iisbCdcs1%t^eObON<$M^W!6Lqm2Ye*d5Uh^6bw z@W8MC0{5s7riclFz0(-lF$r_78M+d}bY&Slq?hjrwQ8e&mqd2A}P~`NFF(m3_fJn z*XKu}ISrea7vkQJUV^(X-+&M%kcvWVD!vs9GnTUV8}kffPt!YS^Xx-frig7@egXF+ z9aIoOT6!8PN=q?4?E$sPrN=ck?!*K4Ux&)lER0S}b6`{^$;e~Hc!7#rezMR`aVw)C zH(^cOtVxq!*6E^ltkP^$Qe%@pEohPs-1Z!zNfr&Kd6q&if8VRgcXIrmINRTd3ST?UH%ZwXpokN)(PxI5^u$%^o zIq7_3XGUN001QFa^oy*}t>d*KIijQ5ZMqhyfB4w=I94qx#)|q1>^#(rz9Ac5f&APc0c>+@ZGhb(VRe=#?K(cy zJcvC7Q>(CMY-ON z)p=#eHWZN%(T0AX2aQu*I6c{c3AYpVITcu1QVX-!4k2QL&O!)(M30j6T-XS1J=y&- z_O$GSHCaMcMi~}mE+LG4HPQ?BbiLlJrb=Q!_k6}W&M^m4c;6sB2MC@AsGk>5 zOVPf@a|P=7)RZ)fi6>^(@t`hgbJ_`%BMNXUXVX99CgAB(*|S#e#r+SS?SLc>#e z^NFxren?f#6y#;$FE8%J&;R%qaHQdEFi_mN%3mKQ9|@*EGLyEKe&SJ2M621St0$?u5fe z!XpCASq>|fUY&xcclF@7djO;27*(kv$DE2KX%$$TTaW7W8jMc+u&?7J8pm1*6YnLU z?LuLO3055e(6EiXb~&oj>&SYtU|?nlCkaR&8hiuYQ%5o8Z^O#GS{&FriU&XS5=)Cr zx;!W^FFiMwgL?Am)`eW`?%IspJ>JK8trb}WApwW?H+J|y!=)FLdBZ}fjvFwfd zlnb);vB1tc2Nduv8mQw~2n*>a62Lf)z$}GN(|in4^IG-LKq+dv4y0 z=GH!be~5hA4?RAf4hoY^#mAH|^t02=#+Gcx9ugItXz69g$M*w4wSBOd&6t{W?udi} zFLA}mh4V0^r)OVGOuJ)zY?y>L4i45rv~Z>@W*=eO6O$e`|Bb6AXqT6cU68TSX{=dR z4m-I>(_Sx(f*Ei8X$<#2P=I?cEytNYF9v63(Ca&j6ys^+S~5_Ul#d0r3fxh@9)4*9 znnwrl-ard>wKd_jj{R_0O{jDfqsCE%s+0xTR&ynSk*m<{>O(tW=|?&bV@ljb4Fj<4 z`e$L#Q4MSmRuU0ZFQ|ZvrbWntrr~CLXCEH;^vzhevJU$XzQ?ACM8W~4=cRrkw1}jr zMWUuZT%M<6Ey#M+&|T7iFHihQ3DP2RGmI$4i5?{W-a3Jg%wi@`df5v%7ED(#^ z1;`VL6!{*qY*-Zk%Je9Hr59WiT2Mk<$nC=hZZW;;Al+o6Qz8dWXgdDe>Uz z_in-^3ybi>-@b|N?tbJD5*3N?O(Huh2M&h=)6-L!Cd5PvD_V70=!_d89jD4+#}MY9 ztuQ|u|MI0{8zHuBG_7w7*3qSo{H@^Abg-Di6$Ty{8&>zH5$cur%1X^bXvBP;1MM+txv=*S; zUV@J;BLE&=hmNUXoSJMykGB`C?$=?~zl~yRA*$^as7Y(Us-y;NtXKjPU}Dws@4!7B zLV8*{~9nNt&Ft`r4RLl-xVrWVSMo zZRS4$KG;IJr=o`>s{ZY)rDQroNmF|hFtvN`ya-` zPwvOFZ=GP))CJk8Y|T*pI5FIDK&Nl?14Zai0K)z|AGYV6)ToqOrYJ` z+tW)Hj;Lx^nWumll}6D8HsSQ}0wrBw@*<|D@^mNnx&63yOFaW^A7Qv=g9T6hVgy^Z zIbd26!kI27R%Pa(gaEWCm7(A7M7wVcBY|mjdWWE!ID!Im24UaDD66$9A6k zKe7ppr%ys>PC;P+K0v|0VJ5~$hE;Io>OP}pRG1($Y@H0)a!bEFMoN-dF(=t#A|lDZ zBFX??otolc=PW|Ctl&i>O(Y{|nX-%o%&S6_Si7^Jkr*myk+|P6f%&}j{tJ}S*{h5R z>9KT{P2hY0I^nODr1=#kl9W(UBFzEXT0^LK<%lRrF^Zx20}7tgHd&GgkeOKH32U|y z;>yNM)6Cr)nL(L+kI|gAPSmSu2&hb4PMMK))70LN%v3AB^~uX{+3ITi<+Y>Ocf1p! zPy|`&c390On9WJZ%}r*?sbJ7gz|v3tj;Ir=Xw7QI#SuP22t^6;b}hu)oQcGA#U+NWwg|DWNO+AlZh*#^a|+9pD)F3MQ3Nv zg~_ysN5(HE&~Eqo{7#42l+GH}1xZtQ;TM@+5a-l1{DA<=v#};imT7(uy=vo^ZcH+KmYf)9?z?*M3A)~Jk<&}kepo2UaU68d+l3Z+LayzE-(98M7 zsKMMrrMXgiOf(P5oCkIK#3=;< z8olg%04*i_*Bs@+dB9)7JZL<}dkb?EFr~RSKlMlB(ol1-=~=)$&;KQEtdU}d9z^F! zN(mJwO6@|OwW*6c8DgjE6{sgvf7JY}No5sgPLNwUTXJ2x3%w^?B!Af9A3liwAAKNx1~FVkVc z>ZO@jxwr&t8j4U^ln!cV(cIR<&NUsEs7O+^%}A1x`zDN@yIDloKoO%sKrOkqn%hRu z-9Ju#x1O2J37VP@{rrKTh%J|{xG4t}} zS1S4!z{4xOP)Dnp@hCpPz-n{vJ$D)R7IyNM0+; z7G(wM9X)ucvveo|D;x8!l)a`&`>7dctTsOfx^ z+j}L=pejiP1qop>sJ3V`J-3jkpeLP2;$yDt_k4Qlvo*&^^Lr6$3x8+Jc}sDJG#^Nx z6`1EzjLc^IF*)pb2A<$F2+?erYHy$b6$fd773gTR6bbp+CLH~LK0Sy2UpVAb(-4a7 zEX|4QpeaTR(G6dc{S*3zCRpUQx-J_VmKLFF(1n(+F?97i(NDm8Y|=}BGQ>9Y48pu= z8l^DDfpS7*s){p_m6i+_0qf4*5k?H?Cc_mjnv9^RI4bH{?TBthR6-jHcnNb(LU~pO zVb?zV<)tHd^trw81cJ!Pu<@oENf{Hz$)GO~47B%*4_%O;J>eX`$Z#8HQtY->v=Aw2 zrhVw;CJ$PGoSb&UIq5=vUOGIo>A%9nsm8m#y%$%msllUF@1e1604b&%jCei)M5hQMHuwYpxr$RXV8U; zS{n|xcH=YK9!2MI7m}0Ag!Knm;dI%uYPPtYt|?{>+1Wdcn(};>78x4pBZp~(EyaM* z)?V~=Q?{K)Lc=Mt_{?hOBWp#bH^BN{QWb$g!~6 zajR#kGBbHDs2MgaGG&$^H(m+aW9F4l_N~FdRZRl~py|4!^Cq{hDJAb&MOd|n>6tJg zG68n~Itakp%zBp6^!k06a{16b=p~HUNFMrGb4(@K(m{|n5W4xWx)&ic8EH0Tre>4q zc>=$AavxrO_XJM0^}}v8p*Sy%AD<8#(^0ZvG3o|7I=Y<~Bxq-4WnXNdeR6z!oK4JN z+Dk+mRB3UNE;?HIotSi^qP&oUo4}3WIez(>=s!Xj_80HI6!$#v7-QQ>7FwjR;1B;g zhVij5?*Cyf0$Bn0`bA_Lk}*wyb0`=cqp0jz3g(@H0ba;IsF4uZK^9{~hsx7?_(3TRKX(dj1 zi|TLzNjZJG*?DY1+ipG!w56DRboOwA1k5|3@5os`ms|(YDa|8FGnAlJj40L!Tz#aY zn=P9jA5>E&VEJGZQ{vI*nGu=Rr$CYi7OVCOJY}KN44Y3bFCWwOtD;!GEQ`RAQ@edlrJ z0Zumynh&S_8$N%C{qC4`OQ+C#y|CF+hB4&6AZIZe0)fEA2HK|td2z9364}vD@m!#K zZpv(_<)Xo;k4|ORaVyMlFv!5MgM?XY7Z+pOb<6O?%SU017+^3_2N?@q`Q;>94h3+} z4>M7;+5piIMv4bW4VV$~n=ldzV}e|8w;_O(LLEGk3(vme#uNWNfIZLhu2+l20G~I= zmO^c9F|sqVFiaK=&AE5<3^N1y?|tz`7z7{sMyFUo#P9Qv;|n7-Ed@gZeHiR7LnaC7 zTvJog{I#k><>9L!7-hC2X+Vd!AVWKmU5rGFm@y{#(UgE712!+@2pX5TFy8>?NHqw8 zFqxF zF(%8V?u3J?vP3P8tJ!6F$TMxq5%g+0jsdPF_fFStnA}gy)|ze>)Id$`$c_IbB9EFC zqNdaH3HRWDp6Vb3DklSzt^i)%ejKm7dlUzbwGu+)BLpc8%NCZvLhiHSu}L_m+$hLS zlU+mOecL5Cr@e!DIcXOp0Fv{cbg_Z<@zCUSn1GT&FGL{9Ia5(7MuPi7Qz;+I_sMQD z3_KzMMu}*ljxzF&t|5H&-pkS0K91APy)2bMTg#IT7PKGp;ejjqu3c*KKWJ=2Gy?2x~Bsjl<9FFRK?6BP%@%V`Eb)V3!wV zIZrTQB<-F)02~IAgm&>Qu5F|jUmMWwiGQ| z#-t?pL=u5@HR_mGiCR>WTbOC?I@(1UZIy`^&q&po=G zfb}t)YVBbK&Z^Q}q&sY^?&F#9<3wj4lLfC@T#2daDMV<&Qy!9_{0dq?op28KU#I|h zu@xfe*M!+(Zi&l0!li#JboliOyCy} z-inWYUnT-erL>zt1%^p^V37Lfkq%Wi*PQcYKu~~TT$*^VzYaTOv zqUl9)9chkPVne0*Fb8Gw4f|WKQ&}t3Mss~MZwBK)9tCVUHk83#il&V;otlEIngZ+Q z1e*w-mz|Djw-4_gY{8qmPGHyJGb}BdPZ;$271d0X5RvDswss9O`QWm;5`6xyYjL8f z2fu&nP2^;zs;L{rf`8gQgQ}|X3m3G#9?wOG+D3!%s6XIqpsl8A8@8s4nsytGPE3-W z)I(ltAQ&sFN7Te4-MJ$S-1~=|C@vK6+wXq_cYpm)=&_I5tD#_T!6VIErQ z46+TYkT@eMX_|DDVGD^w92)gWqGl2y?kU!g6O71Xtc)7q6cS*Nq)FABLz+8&mYRUM zn~UaBb;K0|W9qjtRFas8Cfi#i)%aY0|4_QJKu6us@^;GFbeWOM?h#aZyuZmWnNv6iC(D`Z-dEa)AaLQ$TC-+u2S`0V$dM_E%9pqfV1kl{8=?x3fu!)C;lg{>)^GX{rqx zC%AcFQFeQaVb4luqiPl8Y4<`?2Fd3tr!O3_A~;Vg5Z?=_y#dYyoUm3%h42o9-GILwnCCiIuUxBp488u9>|96Y%-Cm4pyy4M0hqE!m2WuD+oQ7PPI&Nf#q%9}0*3>Iv6)x^r0{ zStyfk7sj2_sH-XEyST*j&CJ475Td5=1T?9dqjzA6gjFJb_VpX^@4wxF*LIy`3m_4( zjKA+`t~x!<0Y|Ex{f^!NCp5lsjp93^0VPqAb91_AxUOZ7Vyu{e`3Ean zTc+hXG(!+XDC0V{IsREqGSa+SmU$q0ez2bXZ{96S(_n1;mex*pF2ELI8N49Z zhXlESMJJn0F>f4ssuGO`bx8(B3fROOxyB;NO;wWI#jL7LAj*wlf~*jc*u9W!C9FC( zgAgGzn!CpE`)3Z|oqea!)X~q5X+e2DmM$!1d25#Vxb%`L z)K%ug9|#d*Ho?}a{r|D|9#EED*Ol10@8_!e|5whT6FLCs28ciaOkh?ZB+-=CC@s&d z(URq{Y|SiilhiqBmn|MMg!=aySj1?KZkdH z_qpM{_v=@8gQ9JAH$GXYuBsp3yYJj{_St7|%uJMvw52NGbSl1M*#N?W)76JQ_{g>I z*`S@vWVrE{dU|{H%v^AS)Ig6txk)}>x?aPp!0-tyou&e9>WEg#+qB+ zq@G-ze(mQTr$_FeqAz^oB)xHNPAihNxrl_yHt;x1b3rTz&BqRv9Ur}Gh$e@->Db|M zdhp076$)GQ%JC~IyUui&Ce~-*u=0FixQ%}h`y)G z$>>PEC=^>UZ2THY|9 z7H=X@N3&=>AsExD1-oX}v?HL4K$%T%M=bW!bd!+QZC*IRC3U^QH3s5M=*0+qpjqRD z$pM}jf-z)WsCG60mwAjacjvRTxKg0M{^n`=@>3`1+pnBg*K>_}ySwPI2M)19r#14% zAl(rYI!zSW5QF5l{E_kONYtvvxhNFJ;qO?zufO*aC`{>rrlRRX11U!htl7@ZQE znVRU$9OouOCBVNoRS8zEF4KD+9HX}%9aE*&I$fAvQ>9pi*3`*f-KcP;JlNMsS(Q;h zMFw=*=!?tzf zE?CQ97{v{|#kGi7wOVAnTQ?{Tq{2gDy3*`bneos-kGk%fbo}%zef{}w(bF%Tr7JT_ zoaF4E98y(qFQt-kzJ@{RMdo~Yc7@&G?>jg_?|bAhJ$%nN&8#f#v}p{l z)n|cY&6>K#A#;)KOzk+=tjV9vo~hPl{d+cOudc4$l2N-Wn|pS1bM*;$(OH?+y77tx zce}qgOHaLcjz0h7OY~zOc{^RbDrshB-udGNtR%hoe3Ln0;tDW7Y`$>P_l{)g;6xAe zs7q>5Ev;u6X)7XjVp)pe7}@;JEfpon1lPzOycTnzhwFAsfS zG$ggAgLV-?w_d8}oSB}d``&h#O6uRig>G7xW=d?wG@ok(3f>UvpcNVyk^nbs@R+X~ zIhXRfxc06}|Dp|u6!|7-SFFkWiKR80P2R|ycDHPwOW$-*zCnt<^CN|VZ72}$V18Iv z7_svZMX`4fnnP_k(SnFe8G;^e1cQjsx7H@(&S)>%R7_SQyV0m-G5Q ztK4)P?CYin@7+h4bjnrI%WGSVS8r?1@1HWpB6W?HjABD_VWEp@X%x z9m0RpsRZ@pyXaT`)t}K*FPx%}efR;o_rN4=Y^ z<`rhUm_CFzUJSl*9yeJwH!Cbwi3I^pHIM3|In&g;dfXTi=*zVkWFs*Xuzk%fN9hK* z0!>K#1;Y#ou&keu)a6??+er)RJx@%HQCDY%O2v{H+tqZSAa;v1I;rrqc*fdK-O5F}67ED9<~nO$0^<&_PtCht8kLO=0+57J}z?W5uT zEHkrEQ6u?51q=wX0ZJlzC6G~2KW93-_}U!k%hKiPMSA_rRaFglv@9#ZjyPZ?4s_?f z`Mn(Y;^k81Rt?%OsU^3jRzq(z^Rl|y4I1j}q;jo6pZ?0L^u@2gP9J#35&Gfx-%H01 zjPsBHc+%=_oH+w4ZpK2moxvf6luj6(vGQso)Na!kF9I!V_9BR?K-;ukKVLc=PwQ4& z7Df={noZ3d!Nq_K$Ty2088(Ip_-`>i@ijNQME4%u&ukdjhk3Tc?z)Vj0TLNxiR|Ff z^n-zkmMJ_A>h+q|IFZ+Bfypp*vKu|GHAD(}bN0Q#Fpk!{NKrHrljDzv4CHs|OUkx; zMYx1-{ky-*^Rz84SlgxPf`2<;!#8A8*}}LHks~A`r_QmJ#Lhr@-JuvsF7V3;-zgmU zO+(Vtf?zx)iL?U2n%$9XR_&P~C>d&&`o>@(^lvFcls;3%nwLZc4ESPrsGIWnoXV8T z^sVDFDx*F_&%AV&W)@cXb@q-A(2@OPluYQJ4zk_Zr8TDG;ysS2K>x(!N9mEHd+5mC zLC$-Sb)UVo#gL|8`Bg2$T*r95kzh#hG-sUQKrqTuDhc@OzkP|eRm>Y2$h#!Z9z0;= z!b?<=iTIP>(?OeV-CI4KPJg3ZseO#)KpiDZI2Q_Zjq&~7{r&2M#p%hXPtZ4>KT8kY zJ4GLS$3c461CwxER*PpXO>zgMn&siMYtgzSbc?+^4gA>hw*38p8X+OAeHdv z=b()QpkYjz8 zo_*y4oxeQGkDVADphxaM$OAB(Fsa9FY!zu*1?o-py{9{?uFw7S(2;Sv|L_F$_hdO6 zUs~B_LIDdy#r4bqaBh|)u4!Fw1ZrH%fJl7986Q$v_UFF#5d`}Orhoer;v(j4@a z>ZSSRO}aR}N>x>YA3Zcq?|bARz5Br_8t%*R==<7c#c@id)0B=*tU1F}GLx2Oh(I^d zVvMCBXb0{hr13)%rhg@ML)6ml7-k{f>EYhN83HVx8k&O+xrVq}-0SN7P41nfW5*8A z+Ukl4ur0u@#j6eX8gCyPL!BixMRbJP#a~^GXbG}bO_4>EDBvMmrxZIysQ<0k zilsz4nbQcWB3d>rxhrht#>AZ*tG3~*Rko>8+~5k)56KxsXqSON z$tNkF%dq~49Z$jg#&dLZrfG3`i}oG3>oN7~=f0at9qH*!0{Q&8eLm3+X)%?We~d-beS` zHOz}*RxKoSl92&hjLvUkoNCqbgpo8wU?)jcB1C>(Enc`1HWT_fRJ3ar4pzZTp^_P>*MVHaOoE9(rgEhT(rRhMvke#kAJ$ znltv5a@VHbb)#TQqpcmeQ0^LG1=A9v&DJ;5dz9^qkzM1kym2M4%Z<;OF_R8w%+m0f zUEsDs+XiK$if8{8ZtS`HIJ0Iym^Qp#H&$3-B~SCG(PUTapjIgn<{Z#~4m8t)*D`NJ zucIBnxNxeG36-7psSLQMJ4c0blg?gQp_fivr59emL?_NptIW7S+0G7{RMlZV+rfbq z&>?0RV1Tf)zRi@`{gZ=q-=PV5o64&9kN2snIHp-#bz|CXhR@jItf`N$Z`|UY2{C#| z6u8K1Dru9(hkDfeTBd*VM_=T53Sil+1}gNBnlMl#o^QJ%pPihXeCPLi(7V-xHq1d! z`;GEpNJe_BSgJ*YaNcUFTmnS$e}CeitFmg1e(5*=gic?WrJC(&^8~#3cbPv7f;R9;7AESZZE?V0tsKvF#SuYku(<~Tf1eoCp4%#ASu;IGKukA2} z{ql7)Q(vqx-VC%3hi(0t@)G5qy1=jyH6@C;bi;GvG27cE8lM`ad+ymw>#J*;IT8wF z`eJUnzzq=|WZ5oghwyIuvu_mskl|YcgUG}ZGgK0Kc;`An`+D;(yQj$4C3l#9s?V>_ zy#s#-J)>pMxS@6Lji*0v>i)aMNv#LtH~j!JGMjbSIff`KmLwuswQ~&;ChN8`1ICxJ zH51;6l7y&uQah7#kDzIw5MP`50_%n0ffshE5do0ng)kkwb!6m_co^u*scgA})>H<3 z_R12ya%zTNK5>Okotsg?cAGj>COtmf$CJQu(Su|3;63~3 z;M5>>WfHWZvhJsm$^gzx|eMR{jUL!}x~s z=NrF7HaxhzNI&_*kJ4}b`aj@+{h6=4roLWM|DIR7Zki779a0&1Mg?!5RyT?&c(17P zuFl-hcRX-_9=(4r9o{#nvI;@Vs~fbjRnUurwH6wjeWNMJ@*F7Hcr;y$F!4f%j4Ef$ z7W?yD6B8Q&J5-xVHQX1%P;u5WHcd#g8Q|e44}GHp{K%t63DPSSPykKm-)8^9;*yM& zC;9aowX)8jnqf+y{@&zCHn3InbgV8zW0B?(pdS)%MgaR}0;jwwO>KMEL^8e8f#*#J zS$Wfc`c6Kn4Zyl#=Nn%_X?Xc!N3QRvbXE~hgn9f{WwGg=#|^QxV~>RJYi0yN3maqQ z++b`N=13~o7|G8!)Uk&!Dd7`l`SKqMg_RAQlK}^&(bR=uhAQ4XX)JKc`B7l z%xVIcI;*||asXVpt%C5<+7@jUs+3N~X>z2O?%6*=#}16pT`Eumx85$5X??TA*KIr& zTE~XDVu4Bv;c1hDBoE>US9wH_B_=BSySr3X+N59qcb}r=HON%-nGGOlD1co8_T0?e zGG+6<|LdWHcm3+E5b(tNAG`Zj5898-&&@vDozE~%#hJEmf|oiu*x8RAo}yp;+3%;S zTA+I-Mp+r`D^H)KuYBt?9Y1xIaW7=vIML{KS8EM!h|DZ)QBIXpcdLxx;d`g(fx9PY za*f!K_gZ_8yzP+@vyyS$RxVvdG_h7Qn;*Je>nOjb}WdQibyfvQeaIeY3I-#r( zxH5TOls7GIJ`KJ3NyS|xN2JcS;ZpA#sm_}Zs`9%YoWs#lw88F0hzQJ0GQVk{3K5aN zwYt#E1Tw*zApxU@&Kfbc78Bmi24e`<*8ZS%4#dr7O`Bv;X#Cs^ooWBa@Pus1yeGZZ zz~aF4VRx=eRjNK+o!_8S7Z>QYGuP<&>1n!nb&;zHKp!K6-8{g?nX!7VtwLD^_DvPY zt18%MXlksF4o?lyk$pq7Z@f=cw+RmB#hQ@=_5xLOL1EfsaNc>diEDTVHefJDpBbp;%Huz4+?D;J^baXwzFk`~Rcc{KCRa zt}8Kyk?lXpI&@pn!fVP8G7OPC7M&^ z8{DJ!j}K69u7hLLn#uw$&92h63eaezpn3Vgy?g0i705>ibDY5}E-usB>YDCI153l0 zIHt&Kpf>onqx%ts)ZPMBKHt3enBjQy1#Xo4tS*Da)VH=u^vFBzQ;Rc3+nYs`ZEI(B zU&@fniOvK8CzegW}oHGN;l6 zY5SN(eNR*824>Q}eH?f9IZk)D3}0-d|Gz_11ML&gU4+-)K zMKcTQOu!!=>Y>B?M(F5WBXn@GhX#AnEc3p#tv&5(wYn?atO}qFh&H>nm^PW9-elZ5 z#=%pov6-f-7mISe)rGdbS)ks5K6?0(L$tB7;_yoirAUMQN{0#SX-IM-z0PdK9KfW? zvawlMavC>aLsG1o&#Se`BkI{aJP~t-3~im#+oaAigs<-iq^*#NjAr%BCNVDHeovBZR@nHhA&*$5$3tw77w${8b0UHg%@bijL@D2Ov@^F=cKfqQ4DgSRjtq6@yQr(Plfaa_Hn&12&R(Sx=jZ73g*iHN39v_**CR0O-h7sl zaXrWddp`7eHVYLFegi#O+N&~Z81UXTF+k($nnA^i!53(P_{MvZc+*W#GM#Fv(zIl( z{gK^n*p&u>H6FO$?3Mr^QBoIWzq*!jfPU|jU!iZke1@h*`x$bHgn0wIAh4f2bCvFY z+tGIo4GuhWD+N38?zbPj9fI};mlhVDgxwIdKpIUy(hZ05*GE6}ApOH1e=p6>uQ>Pt z3j=|&QYuikLuKECy;LaG>E#pC^vo-l=#|qm{Mcl|Qvtk(`qcB|gk#YzuNP=xd5dkA zMh1K6z|??Rw0$ao_p8OCvkR1g>naNd3q?4=cXHV+Q~G>^95>AnPaF9!ZruB_&did@4(%?V`ZLDoL16{{#F<~3#4`@bmNf|Sku$%w!S!fD)v4)sU=ErbI z%o(%lF=TINFf&a}9xOuO_5#CO*-jEsgxP8Gx{yfw#93!z%yfz1+c#@kCT^5W-xv-N z*ZFHZdY;f0Zb%YDYX)pK=UTPMx-&d;;E6!aREV~l2~Uqg3Ke*D!#uC&QPBM+C#MVO z0tro5XG#UDjC!1)we1>RzP3WIpP8nUDo9_vx!?o1*%o5tRsRF5D?1j;ugJnW}aR+ag9!2Twp~p{9TJfbvUv06=s-dOuI{E zF#A>DK6-GJ4yr&tIh3PZXOgLaz|yx%HDeZI-PD`LTF}#8e1I_;8khIXg&5Ebg)>XV zf-V-yYT;$+QB^@~ZLB)_pLDiWl3$l8Q{cDOYOd6lZoo%fOvvnG374t!Kua>of!o5` zQMhF1rDJuL*T?c-IfqQ3yr2=|X8( z8^TcgcnHhrcho9H9>ij59*ZoIlQM1PMSBK^#(8a;tX=zo>MRNd?TZPIxaoX=if1T4TB92=WkI-BmzF%FzeXssO3@*uoaELEAw)T0s>Brf|W z`c+~wL{lR@)TLen6(z2(O0D5^OTwqoGfjCw5r8>FD8pu0PH1&YKA&-e?NiunV#lJ0 zv{cY^92@SXrPTuct51A}sk)GKjmH8v8hdBJCs_pSxg~X+68}1v&;POt+Vob?{{QJV zJG1z|d$RW5VBt5L(E$hS^5tTM{^`&DARXR6OlzA(Q+}z1q=GgYBIvT03hSC)=`}`P=uQTL`Jfl6Da>gFimIi!>NF$NyRUr=h3Dn6B6~%{>*geHmqy0Pb)NQL~}6)c=ukRXXf6 zW&*r)13uBIyeQo;VuHK7#9m7f)qx942$b93xm{TsYb|>7LAqVAjxs|uG=jiwdjQNM zQh^E$>{@x-F-GFX1>I@H1SO;PS!~oe$pD)K0WP6}EGTrK*jgG?v#JWj9Kz+9 zC5HRZScd_?rV7$n487eQl*@Li%_dcyQnJuOowvs-DVUz$8f%4|sX61`23IB)++H^|>?I%9?Al)XncU-=F`I$^Q z&iWt`)im|*MHOU!>W3boAN|2cxHQt(F|-NNyn?ilI~4cIR4r|@F#&>64a3+ojXyqD;-3g95_UsV?bFvSja0raT*00YN0hpc}?Wg!@mSE(#xZhJ<$=>Q;< z5#Zn|WA8{X_q8EC9^WmMYkXhr0T~|VF_4OHxY&lj3Z@H$r5=C$K6UYLapog!IgZhE zW00VAjHMn-Xw;3Kaf~HdMMRj-Oy?QrZhfC5S0%FLLa>cAil`S#7pxqo*flL<5w=4s zE+VfFHdCv>5;is9|1A!c)Q({Bo$*3$+<6pj{;_k^+*sma12rbMfW5G;Dup%28exVE zj<*WjnC`P#IVf(aINV+&uQA(9tkhJJP%P5YT8XaBF4DDy4N?Us&8qLfsF&BbImiQY z0iyzRJisJ^8;A|{*fOt8EG4+O4EN`0LIphxyBttoBj96a5*+Z*t3kkHIL{2Z_|6!k zWrEVvy3}}GZNeKJ=4xe!q#*Q^Oh(52ueW=16{?mUM&ZE^|J^_S0+s4@8XN4@$9YG< zuCpX7VAIoQ7q0!(PyNt7BdFdT zno}3c!a4_E+#uEt98oKlX?KlvWHPW4OQm>tXM8ZHE)ZSvh5@H?5F#VP0+&J0%ygj9GWIL2inv+yVF5jD+zMxZbXly z%M5j9Z8_24Z-ejMPS}G3H{-DSGqUTt$|$+aH-X3wm2eO;EPx#{vTcBEd4pidR>jPzocAKL0#hb+FNojx?fEM-)7YTaQ*V4x?j)>J3M2+35Z3dnYFtEo2s z8ZEAD($ew@Ev#(Q;%b4GmzQZ#B@fH1Yb+PM4)zA56Vwee3&^4o;9-G>fQii z<3k%YjJQp6Qij&oZf612EYt##QGfB9uhAzy`J}2c5;WMG=j%$g^pPedlgzEcpH-<8&L{{-;K*_|L3vwavCY=4JZa5d5b<^I^^;);G5~fTYr0 zZY&sQyur@WIy%DZu2L>Cg-=5hM*N*kNMqV;RMlCz4&7kct~6+7XkHX?r&@P|y;+(Z>E|XQ#=FM`yQw>yVTb|~i+Fx$ z!rQ>>iR<)j!-7>|i#8ec(G+dqji}A2WTn1jI=uttir7OKhy&GbK9{9We(qcJmtX!i z_4Z_W^0Lur?l?F2U1wK@8~3vdYsI%caO{2R*uMx5*IPPh|KJB6yq$vf7yTd8_mowbHGbya&F;ied|Da72SN+$~K}nz`I$MkDV3* ze>r5u4etEMxU-HX5LW!kMwzZHZLz+|wZ%;p&4eVUo9y^U%jz|f9Ub((#}CoQ>IzkB^{Do- zHAFB$TeDYcoXH70sTm5|fJ2zc5Ywy>9sn`!IITW{Jk-&&$IWwiwq~KEHJ#1qsG$4F z&&OKhejD|^-Lyq^387L?jYhOd#CIt;-{4MdZ3~1QV<98kYBUrAVK1qS7z%i6n+1k2pz#4N z^H&|nOLG=*3yQK-k;@j-)uD&iU7VcS_xQ+2 z|5vWLw1sEo@e3ZfTRQ z%&oHK$?|%UHkY^f{Q+-8AWs^(%BtE3X4OV>@!E>%+Qb-c>F!E%x4%D|R{!o`HVcM< zR@XP_{KW-&DVHa%zb^Ia9{UGIoUO9^k&50qi? zS;rmU330UqZs!;kR7PHG_b_A)B=$}Ws>El5{{0_)kuFZp(}Af$Gui036kqz92CE8| zVufP;+}=GCA5hod%AFx-qH8(F4b9VI+jnnDY$7BIe3{p2S2jw-i~kA#B%F5Jz(m@~WPsJp)~I z&s3iZsQYMr8>Mi81M}?irpm}wR<8cNwrPfQ)I|VaJe08b&X5h``IcJaeX44>bntzigCXrkw|cl zgZm&V*dVytfDfg-RTZEi8(gW>Sx*O4zTy5Jy6^BF+B-f-qbf)b_2sD-EGBjQYt_1L zGOD1yzP`X1cSX{c`uMGpemE+TqvNdu}74fXPVS=xs&Pf?q@NZ)|jcouSM1^vN_NdRy&mda@wyz}|a`_z3NEFKTXO7-``1|MQ<_fn{jEnd8_ugj7HvMI_ zT3L-JWM8e`2o%%QYJm~Lyvk}{KQ}`kdDmUEu~}uv1A(ZkyPsmo6kkNF=4T{REwH-|^@1naV`gEfbLpvKKp4wbg z8Ti85mdeCSw5rNpJO&pd0y#2x;NwYfUt@ak1~}&YYL!_5=dRA1Ljf!^2|rDhi6?2G z2Y6sN4dmn0lS@-d1@OVV%I>pCrv2f0JCeEy*+kA5gHD7huqqE+W3c!_egEJgl zY)MreWHM>)jO~{(8(?W`Tdx z_tgwz}rq8USv@p;CbE88nkC+*b@vZBD*+lSghD=o1x>2aQzvt2k z>fbv=_a9I}UfmbdWvg3drf;ommY4&+vRUR5dAnR^qhFo%dz_6!q$g=6%JBZsuq>6f z)k1F2>GMq@vJNXK%@fp__P7FpEGr(DO?m3y2@D^w{;*IPEV7+^zLT>-o~~1sMhg5} zwPBR2H7?_a2Ycwy!7=LY?xD`EEE@*nvupDLts*DL@|BxLQdUrSN;06w$?q(@^2J+c z9A0?d?pdGw?kE+un8p|=&3BWd5uBLJPz^ABY%0Ds9{>&S%*A=SG`-A?ML<~>)ux+K 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

    yXM(0scuciAGHHhb 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

    9ywQCUjnBH3QZq=zf|o;NcJl?6zd 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 gwT+?w= + + + pixi.js example 15 - Filters + + + + + + + + + + diff --git a/examples/example 16 - Displacement/index.html b/examples/example 16 - Displacement/index.html index c4c12d2..9827748 100644 --- a/examples/example 16 - Displacement/index.html +++ b/examples/example 16 - Displacement/index.html @@ -38,7 +38,6 @@ var blur = new PIXI.BlurFilter(); - // create an new instance of a pixi stage var stage = new PIXI.Stage(0xFFFFFF, true); @@ -69,7 +68,7 @@ var bgFront = PIXI.Sprite.fromImage("SceneRotate.jpg"); bgFront.anchor.x = 0.5; bgFront.anchor.y = 0.5; - bgFront.filters = [blur]//, blurY]; + //bgFront.filters = [blur]//, blurY]; stage.addChild(bgFront); bgFront.position.x = 800/2; bgFront.position.y = 600/2; @@ -107,7 +106,7 @@ //container.filters = [smart]//f, f2]; //panda.filters = [f2]; - +// container.filters = [filter] var count = 0; var switchy = false; @@ -117,13 +116,13 @@ if(!switchy) { - // panda.filters = [filter];// - container.filters = [f,blurX, blurY]; + container.filters = [f];// + // container.filters = [filter]//,blurX, blurY]; } else { - //panda.filters = null//.. [filter]; - container.filters = null; + container.filters = null//.. [filter]; + // container.filters = null; } PIXI.runList(stage); @@ -154,20 +153,19 @@ stage.addChild(help); //stage.filters = [filter]; - //stage.addChild(new PIXI.Sprite(mapTexture)) + stage.addChild(new PIXI.Sprite(mapTexture)) PIXI.runList(stage); requestAnimFrame(animate); - var position = new PIXI.Point(800/2 + 200, 600/2 ); + var position = new PIXI.Point(800/2 , 600/2 ); function animate() { - /// mapTexture.render(container, position); - - // console.log(PIXI.frameBufferPool.length); + mapTexture.render(container, position, true); + filter.scale.x = Math.sin(count) * 100; filter.scale.y = Math.cos(count) * 100; bg.rotation += 0.01; @@ -181,11 +179,11 @@ count += 0.1; - blurX.blur = 1/256; - blurY.blur = 1/256; +// blurX.blur = Math.sin(count) * 1/128; + // blurY.blur = Math.cos(count) * 1/128; // filter.matrix = colorMatrix; - + f.grey = Math.sin(count) renderer.render(stage); // f.renderTex(); diff --git a/pixi.sublime-project b/pixi.sublime-project new file mode 100644 index 0000000..d834dea --- /dev/null +++ b/pixi.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js" + } + ] +} diff --git a/pixi.sublime-workspace b/pixi.sublime-workspace new file mode 100644 index 0000000..e998692 --- /dev/null +++ b/pixi.sublime-workspace @@ -0,0 +1,535 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "pro", + "prototype" + ], + [ + "for", + "for for (…) {…}" + ], + [ + "fil", + "filters" + ], + [ + "blu", + "blurX" + ], + [ + "Blu", + "BlurXFilter" + ], + [ + "appl", + "applyFilterPass" + ], + [ + "ou", + "outputTexture" + ], + [ + "filte", + "filterBlock" + ], + [ + "We", + "WebGLGraphics" + ], + [ + "max", + "maxY" + ], + [ + "min", + "minY" + ], + [ + "re", + "rectangle" + ], + [ + "rend", + "renderable" + ] + ] + }, + "buffers": + [ + { + "file": "examples/example 16 - Displacement/index.html", + "settings": + { + "buffer_size": 4901, + "line_ending": "Unix" + } + }, + { + "file": "src/pixi/filters/GreyFilter.js", + "settings": + { + "buffer_size": 852, + "line_ending": "Unix" + } + }, + { + "file": "src/pixi/filters/DisplacementFilter.js", + "settings": + { + "buffer_size": 1698, + "line_ending": "Unix" + } + }, + { + "file": "src/pixi/renderers/webgl/WebGLRenderGroup.js", + "settings": + { + "buffer_size": 25104, + "line_ending": "Unix" + } + }, + { + "file": "src/pixi/renderers/webgl/WebGLFilterManager.js", + "settings": + { + "buffer_size": 11987, + "line_ending": "Unix" + } + } + ], + "build_system": "", + "command_palette": + { + "height": 0.0, + "selected_items": + [ + ], + "width": 0.0 + }, + "console": + { + "height": 139.0 + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/WebGLFilterManager.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/BlurXFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/examples/example 16 - Displacement/index.html", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/BlurYFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/BlurFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/WebGLRenderGroup.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/SmartBlurFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/Gruntfile.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/display/DisplayObject.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/ColorMatrixFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/DisplacementFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/GreyFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/InvertFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/SepiaFilter.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/test/unit/DisplayObject.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/filters/SmartBlur.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/filters/FilterManager.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/textures/RenderTexture.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/PixiShader.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/examples/example 13 - Graphics/index.html", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/primitives/Graphics.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/WebGLGraphics.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/examples/example 11 - RenderTexture/index.html", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/examples/example 14 - Masking/index.html", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/WebGLShaders.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/renderers/webgl/WebGLRenderer.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/test/unit/renderers/WebGLShaders.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/core/Matrix.js", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/docs/classes/RenderTexture.html", + "/Users/matgroves/Dropbox/Development/html/workspace/pixi.js/src/pixi/core/Ellipse.js" + ], + "find": + { + "height": 35.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + "" + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "console", + "pand", + "colorMatrix", + "FilterTexture", + "minY", + "minX", + "uvBuffer", + " \n", + "console", + "data", + "console", + "applyFilterPass", + " \n", + "filterA", + " \n", + "filters", + "render", + "filter", + "Filter", + "filter", + "Filter", + "filter", + " //", + " \n", + "\n ", + " \n", + "pass", + "RTScene", + "vTexCoord", + "blurSize", + "FilterManager", + "i", + "dirty", + "console", + " ", + "PIXI.projection", + "\n ", + "h1", + "h0", + "w1", + "w0", + "TODO", + "radius", + "Things", + "radius", + " ", + "t", + "cle", + "this", + "PIXI", + ");\n", + "\n", + " \n", + " \n", + "console", + " \n", + "this", + "this.renderSpecial(renderable, projection);\nthis.renderSpecial(renderable, projection);\nrenderSpecial", + "this.renderSpecial(renderable, projection);", + "off", + "atlas", + "spineboy.atlas", + "spineboy.atla", + "spineboy.png", + "floor", + "groun" + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "selected": 0, + "sheets": + [ + { + "buffer": 0, + "file": "examples/example 16 - Displacement/index.html", + "settings": + { + "buffer_size": 4901, + "regions": + { + }, + "selection": + [ + [ + 2608, + 2608 + ] + ], + "settings": + { + "syntax": "Packages/HTML/HTML.tmLanguage", + "translate_tabs_to_spaces": false + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "type": "text" + }, + { + "buffer": 1, + "file": "src/pixi/filters/GreyFilter.js", + "settings": + { + "buffer_size": 852, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JavaScript.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "type": "text" + }, + { + "buffer": 2, + "file": "src/pixi/filters/DisplacementFilter.js", + "settings": + { + "buffer_size": 1698, + "regions": + { + }, + "selection": + [ + [ + 818, + 818 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JavaScript.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "type": "text" + }, + { + "buffer": 3, + "file": "src/pixi/renderers/webgl/WebGLRenderGroup.js", + "settings": + { + "buffer_size": 25104, + "regions": + { + }, + "selection": + [ + [ + 3418, + 3418 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JavaScript.tmLanguage", + "translate_tabs_to_spaces": false + }, + "translation.x": 4.0, + "translation.y": 1680.0, + "zoom_level": 1.0 + }, + "type": "text" + }, + { + "buffer": 4, + "file": "src/pixi/renderers/webgl/WebGLFilterManager.js", + "settings": + { + "buffer_size": 11987, + "regions": + { + }, + "selection": + [ + [ + 664, + 664 + ] + ], + "settings": + { + "syntax": "Packages/JavaScript/JavaScript.tmLanguage", + "translate_tabs_to_spaces": false + }, + "translation.x": 0.0, + "translation.y": 371.0, + "zoom_level": 1.0 + }, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 0.0 + }, + "input": + { + "height": 33.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "replace": + { + "height": 0.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "selected_items": + [ + [ + "webglrend", + "src/pixi/renderers/webgl/WebGLRenderGroup.js" + ], + [ + "greyfil", + "src/pixi/filters/GreyFilter.js" + ], + [ + "displ", + "src/pixi/display/DisplayObject.js" + ], + [ + "grun", + "Gruntfile.js" + ], + [ + "webgle", + "src/pixi/renderers/webgl/WebGLRenderGroup.js" + ], + [ + "displa", + "src/pixi/display/DisplayObject.js" + ], + [ + "index", + "examples/example 16 - Displacement/index.html" + ], + [ + "ind", + "examples/example 13 - Graphics/index.html" + ], + [ + "grunt", + "Gruntfile.js" + ], + [ + "webglgr", + "src/pixi/renderers/webgl/WebGLGraphics.js" + ], + [ + "webglsh", + "src/pixi/renderers/webgl/WebGLShaders.js" + ], + [ + "webglsha", + "test/unit/renderers/WebGLShaders.js" + ], + [ + "webglren", + "src/pixi/renderers/webgl/WebGLRenderer.js" + ], + [ + "webgl", + "src/pixi/renderers/webgl/WebGLShaders.js" + ], + [ + "grap", + "src/pixi/primitives/Graphics.js" + ], + [ + "index.", + "examples/example 13 - Graphics/index.html" + ], + [ + "inde", + "examples/example 14 - Masking/index.html" + ], + [ + "rendertexture", + "src/pixi/textures/RenderTexture.js" + ], + [ + "rendert", + "docs/classes/RenderTexture.html" + ], + [ + "matrix", + "src/pixi/core/Matrix.js" + ] + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "selected_items": + [ + ], + "width": 0.0 + }, + "show_minimap": true, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 229.0, + "status_bar_visible": true +} diff --git a/src/pixi/filters/DisplacementFilter.js b/src/pixi/filters/DisplacementFilter.js index d486563..df19f6f 100644 --- a/src/pixi/filters/DisplacementFilter.js +++ b/src/pixi/filters/DisplacementFilter.js @@ -27,8 +27,11 @@ PIXI.DisplacementFilter = function(texture) "const vec2 textureDimensions = vec2(800.0, 600.0);", "void main(void) {", - - "vec2 matSample = texture2D(displacementMap, vTextureCoord * (textureDimensions/mapDimensions)).xy;", + "vec2 mapCords = vTextureCoord.xy;", +// "mapCords -= ;", + // "mapCords.y *= -1.0;", + // "mapCords.y += 1.0;", + "vec2 matSample = texture2D(displacementMap, mapCords).xy;", "matSample -= 0.5;", "matSample *= scale;", "matSample /= textureDimensions;", diff --git a/src/pixi/renderers/webgl/WebGLFilterManager.js b/src/pixi/renderers/webgl/WebGLFilterManager.js index 94b7eb1..0f9b78a 100644 --- a/src/pixi/renderers/webgl/WebGLFilterManager.js +++ b/src/pixi/renderers/webgl/WebGLFilterManager.js @@ -73,6 +73,8 @@ PIXI.WebGLFilterManager.prototype.pushFilter = function(filterBlock) //filter.texture = texture; filterBlock._glFilterTexture = texture; + + //console.log("PUSH") } @@ -172,7 +174,7 @@ PIXI.WebGLFilterManager.prototype.popFilter = function() // time to render the filters texture to the previous scene if(this.filterStack.length === 0) { - gl.colorMask(true, true, true, false); + gl.colorMask(true, true, true, this.buffer); } else { diff --git a/src/pixi/renderers/webgl/WebGLRenderGroup.js b/src/pixi/renderers/webgl/WebGLRenderGroup.js index e5c3a8f..48d3327 100644 --- a/src/pixi/renderers/webgl/WebGLRenderGroup.js +++ b/src/pixi/renderers/webgl/WebGLRenderGroup.js @@ -99,9 +99,15 @@ PIXI.WebGLRenderGroup.prototype.render = function(projection, buffer) PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projection, buffer) { PIXI.WebGLRenderer.updateTextures(); - var gl = this.gl; + gl.uniform2f(PIXI.currentShader.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... @@ -121,11 +127,13 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project var nextRenderable = displayObject.first; while(nextRenderable._iNext) { - nextRenderable = nextRenderable._iNext; if(nextRenderable.renderable && nextRenderable.__renderGroup)break; + nextRenderable = nextRenderable._iNext; } var startBatch = nextRenderable.batch; + //console.log(nextRenderable); + //console.log(renderable) if(nextRenderable instanceof PIXI.Sprite) { startBatch = nextRenderable.batch; @@ -155,13 +163,11 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project } // Get the LAST renderable object - var lastRenderable = displayObject; - var endBatch; - var lastItem = displayObject; - while(lastItem.children.length > 0) + var lastRenderable = displayObject.last; + while(lastRenderable._iPrev) { - lastItem = lastItem.children[lastItem.children.length-1]; - if(lastItem.renderable)lastRenderable = lastItem.last; + if(lastRenderable.renderable && lastRenderable.__renderGroup)break; + lastRenderable = lastRenderable._iNext; } if(lastRenderable instanceof PIXI.Sprite) @@ -190,6 +196,7 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, project endBatch = lastRenderable; } + console.log(endBatch); // TODO - need to fold this up a bit! if(startBatch == endBatch) @@ -259,6 +266,7 @@ PIXI.WebGLRenderGroup.prototype.renderSpecial = function(renderable, projection) var worldVisible = renderable.vcount === PIXI.visibleCount + if(renderable instanceof PIXI.TilingSprite) { if(worldVisible)this.renderTilingSprite(renderable, projection);

    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 literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_fish1.jpg b/examples/example 15 - Filters/displacement_fish1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dbb391eddea4f8f971923535b1462dfb08851116 GIT binary patch literal 11806 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 literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_fish2.jpg b/examples/example 15 - Filters/displacement_fish2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e214da10d76eee3a52fc85f291457b5449675c1 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_fish3.jpg b/examples/example 15 - Filters/displacement_fish3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6a9049e9a544d8be49d4e829b8f1482a8bbd788 GIT binary patch literal 67276 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 literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_fish4.jpg b/examples/example 15 - Filters/displacement_fish4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7f312eaee76ac7981f1a554bf4cf170811e691a GIT binary patch literal 3856 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 literal 0 HcmV?d00001 diff --git a/examples/example 15 - Filters/displacement_overlay.png b/examples/example 15 - Filters/displacement_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..0526b39719231d883d35708145cb3b11a039f3a4 GIT binary patch literal 29747 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