view.lib.pixi.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of runner Show documentation
Show all versions of runner Show documentation
Runner / Testbed to locally run Games created using the CodinGame engine toolkit.
{"version":3,"sources":["node_modules/pixify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/bit-twiddle/twiddle.js","node_modules/earcut/src/earcut.js","node_modules/eventemitter3/index.js","node_modules/ismobilejs/isMobile.js","node_modules/object-assign/index.js","node_modules/pixi-gl-core/src/GLBuffer.js","node_modules/pixi-gl-core/src/GLFramebuffer.js","node_modules/pixi-gl-core/src/GLShader.js","node_modules/pixi-gl-core/src/GLTexture.js","node_modules/pixi-gl-core/src/VertexArrayObject.js","node_modules/pixi-gl-core/src/createContext.js","node_modules/pixi-gl-core/src/index.js","node_modules/pixi-gl-core/src/setVertexAttribArrays.js","node_modules/pixi-gl-core/src/shader/compileProgram.js","node_modules/pixi-gl-core/src/shader/defaultValue.js","node_modules/pixi-gl-core/src/shader/extractAttributes.js","node_modules/pixi-gl-core/src/shader/extractUniforms.js","node_modules/pixi-gl-core/src/shader/generateUniformAccessObject.js","node_modules/pixi-gl-core/src/shader/index.js","node_modules/pixi-gl-core/src/shader/mapSize.js","node_modules/pixi-gl-core/src/shader/mapType.js","node_modules/pixify/node_modules/browserify/node_modules/path-browserify/index.js","node_modules/pixify/node_modules/browserify/node_modules/process/browser.js","node_modules/pixify/node_modules/browserify/node_modules/punycode/punycode.js","node_modules/pixify/node_modules/browserify/node_modules/querystring-es3/decode.js","node_modules/pixify/node_modules/browserify/node_modules/querystring-es3/encode.js","node_modules/pixify/node_modules/browserify/node_modules/querystring-es3/index.js","node_modules/pixify/node_modules/browserify/node_modules/url/url.js","node_modules/pixify/node_modules/browserify/node_modules/url/util.js","node_modules/resource-loader/node_modules/parse-uri/index.js","node_modules/resource-loader/src/Loader.js","node_modules/resource-loader/src/Resource.js","node_modules/resource-loader/src/async.js","node_modules/resource-loader/src/b64.js","node_modules/resource-loader/src/index.js","node_modules/resource-loader/src/middlewares/caching/memory.js","node_modules/resource-loader/src/middlewares/parsing/blob.js","src/accessibility/AccessibilityManager.js","src/accessibility/accessibleTarget.js","src/accessibility/index.js","src/core/Shader.js","src/core/const.js","src/core/display/Bounds.js","src/core/display/Container.js","src/core/display/DisplayObject.js","src/core/display/Transform.js","src/core/display/TransformBase.js","src/core/display/TransformStatic.js","src/core/graphics/Graphics.js","src/core/graphics/GraphicsData.js","src/core/graphics/canvas/CanvasGraphicsRenderer.js","src/core/graphics/utils/bezierCurveTo.js","src/core/graphics/webgl/GraphicsRenderer.js","src/core/graphics/webgl/WebGLGraphicsData.js","src/core/graphics/webgl/shaders/PrimitiveShader.js","src/core/graphics/webgl/utils/buildCircle.js","src/core/graphics/webgl/utils/buildLine.js","src/core/graphics/webgl/utils/buildPoly.js","src/core/graphics/webgl/utils/buildRectangle.js","src/core/graphics/webgl/utils/buildRoundedRectangle.js","src/core/index.js","src/core/math/GroupD8.js","src/core/math/Matrix.js","src/core/math/ObservablePoint.js","src/core/math/Point.js","src/core/math/index.js","src/core/math/shapes/Circle.js","src/core/math/shapes/Ellipse.js","src/core/math/shapes/Polygon.js","src/core/math/shapes/Rectangle.js","src/core/math/shapes/RoundedRectangle.js","src/core/renderers/SystemRenderer.js","src/core/renderers/canvas/CanvasRenderer.js","src/core/renderers/canvas/utils/CanvasMaskManager.js","src/core/renderers/canvas/utils/CanvasRenderTarget.js","src/core/renderers/canvas/utils/canUseNewCanvasBlendModes.js","src/core/renderers/canvas/utils/mapCanvasBlendModesToPixi.js","src/core/renderers/webgl/TextureGarbageCollector.js","src/core/renderers/webgl/TextureManager.js","src/core/renderers/webgl/WebGLRenderer.js","src/core/renderers/webgl/WebGLState.js","src/core/renderers/webgl/filters/Filter.js","src/core/renderers/webgl/filters/extractUniformsFromSrc.js","src/core/renderers/webgl/filters/filterTransforms.js","src/core/renderers/webgl/filters/spriteMask/SpriteMaskFilter.js","src/core/renderers/webgl/managers/FilterManager.js","src/core/renderers/webgl/managers/MaskManager.js","src/core/renderers/webgl/managers/StencilManager.js","src/core/renderers/webgl/managers/WebGLManager.js","src/core/renderers/webgl/utils/ObjectRenderer.js","src/core/renderers/webgl/utils/Quad.js","src/core/renderers/webgl/utils/RenderTarget.js","src/core/renderers/webgl/utils/checkMaxIfStatmentsInShader.js","src/core/renderers/webgl/utils/mapWebGLBlendModesToPixi.js","src/core/renderers/webgl/utils/mapWebGLDrawModesToPixi.js","src/core/renderers/webgl/utils/validateContext.js","src/core/settings.js","src/core/sprites/Sprite.js","src/core/sprites/canvas/CanvasSpriteRenderer.js","src/core/sprites/canvas/CanvasTinter.js","src/core/sprites/webgl/BatchBuffer.js","src/core/sprites/webgl/SpriteRenderer.js","src/core/sprites/webgl/generateMultiTextureShader.js","src/core/text/Text.js","src/core/text/TextStyle.js","src/core/textures/BaseRenderTexture.js","src/core/textures/BaseTexture.js","src/core/textures/RenderTexture.js","src/core/textures/Texture.js","src/core/textures/TextureUvs.js","src/core/textures/VideoBaseTexture.js","src/core/ticker/Ticker.js","src/core/ticker/index.js","src/core/utils/canUploadSameBuffer.js","src/core/utils/createIndicesForQuads.js","src/core/utils/determineCrossOrigin.js","src/core/utils/index.js","src/core/utils/maxRecommendedTextures.js","src/core/utils/pluginTarget.js","src/deprecation.js","src/extract/canvas/CanvasExtract.js","src/extract/index.js","src/extract/webgl/WebGLExtract.js","src/extras/AnimatedSprite.js","src/extras/BitmapText.js","src/extras/TextureTransform.js","src/extras/TilingSprite.js","src/extras/cacheAsBitmap.js","src/extras/getChildByName.js","src/extras/getGlobalPosition.js","src/extras/index.js","src/extras/webgl/TilingSpriteRenderer.js","src/filters/blur/BlurFilter.js","src/filters/blur/BlurXFilter.js","src/filters/blur/BlurYFilter.js","src/filters/blur/generateBlurFragSource.js","src/filters/blur/generateBlurVertSource.js","src/filters/blur/getMaxBlurKernelSize.js","src/filters/colormatrix/ColorMatrixFilter.js","src/filters/displacement/DisplacementFilter.js","src/filters/fxaa/FXAAFilter.js","src/filters/index.js","src/filters/noise/NoiseFilter.js","src/filters/void/VoidFilter.js","src/interaction/InteractionData.js","src/interaction/InteractionEvent.js","src/interaction/InteractionManager.js","src/interaction/index.js","src/interaction/interactiveTarget.js","src/loaders/bitmapFontParser.js","src/loaders/index.js","src/loaders/loader.js","src/loaders/spritesheetParser.js","src/loaders/textureParser.js","src/mesh/Mesh.js","src/mesh/NineSlicePlane.js","src/mesh/Plane.js","src/mesh/Rope.js","src/mesh/canvas/CanvasMeshRenderer.js","src/mesh/index.js","src/mesh/webgl/MeshRenderer.js","src/particles/ParticleContainer.js","src/particles/index.js","src/particles/webgl/ParticleBuffer.js","src/particles/webgl/ParticleRenderer.js","src/particles/webgl/ParticleShader.js","src/polyfill/Math.sign.js","src/polyfill/Object.assign.js","src/polyfill/index.js","src/polyfill/requestAnimationFrame.js","src/prepare/BasePrepare.js","src/prepare/canvas/CanvasPrepare.js","src/prepare/index.js","src/prepare/limiters/CountLimiter.js","src/prepare/limiters/TimeLimiter.js","src/prepare/webgl/WebGLPrepare.js","src/index.js"],"names":[],"mappings":";;;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACrhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACh5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACnEA;;IAAY;;AACZ;;;;AACA;;;;;;;;;;AAEA;AACA,OAAO,MAAP,CACI,KAAK,aAAL,CAAmB,SADvB;;AAKA,IAAM,eAAe,CAArB;;AAEA,IAAM,iBAAiB,GAAvB;AACA,IAAM,kBAAkB,CAAxB;AACA,IAAM,kBAAkB,CAAxB;AACA,IAAM,mBAAmB,CAAzB;;AAEA,IAAM,gBAAgB,CAAtB;AACA,IAAM,iBAAiB,CAAC,IAAxB;AACA,IAAM,iBAAiB,CAAC,IAAxB;AACA,IAAM,kBAAkB,CAAxB;;AAEA;;;;;;;;;;;;IAWqB;AAEjB;;;AAGA,kCAAY,QAAZ,EACA;AA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","file":"pixi.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0) - (v < 0);\n}\n\n//Computes absolute value of integer\nexports.abs = function(v) {\n var mask = v >> (INT_BITS-1);\n return (v ^ mask) - mask;\n}\n\n//Computes minimum of integers x and y\nexports.min = function(x, y) {\n return y ^ ((x ^ y) & -(x < y));\n}\n\n//Computes maximum of integers x and y\nexports.max = function(x, y) {\n return x ^ ((x ^ y) & -(x < y));\n}\n\n//Checks if a number is a power of two\nexports.isPow2 = function(v) {\n return !(v & (v-1)) && (!!v);\n}\n\n//Computes log base 2 of v\nexports.log2 = function(v) {\n var r, shift;\n r = (v > 0xFFFF) << 4; v >>>= r;\n shift = (v > 0xFF ) << 3; v >>>= shift; r |= shift;\n shift = (v > 0xF ) << 2; v >>>= shift; r |= shift;\n shift = (v > 0x3 ) << 1; v >>>= shift; r |= shift;\n return r | (v >> 1);\n}\n\n//Computes log base 10 of v\nexports.log10 = function(v) {\n return (v >= 1000000000) ? 9 : (v >= 100000000) ? 8 : (v >= 10000000) ? 7 :\n (v >= 1000000) ? 6 : (v >= 100000) ? 5 : (v >= 10000) ? 4 :\n (v >= 1000) ? 3 : (v >= 100) ? 2 : (v >= 10) ? 1 : 0;\n}\n\n//Counts number of bits\nexports.popCount = function(v) {\n v = v - ((v >>> 1) & 0x55555555);\n v = (v & 0x33333333) + ((v >>> 2) & 0x33333333);\n return ((v + (v >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24;\n}\n\n//Counts number of trailing zeros\nfunction countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 0x0000FFFF) c -= 16;\n if (v & 0x00FF00FF) c -= 8;\n if (v & 0x0F0F0F0F) c -= 4;\n if (v & 0x33333333) c -= 2;\n if (v & 0x55555555) c -= 1;\n return c;\n}\nexports.countTrailingZeros = countTrailingZeros;\n\n//Rounds to next power of 2\nexports.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n}\n\n//Rounds down to previous power of 2\nexports.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v>>>1);\n}\n\n//Computes parity of word\nexports.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 0xf;\n return (0x6996 >>> v) & 1;\n}\n\nvar REVERSE_TABLE = new Array(256);\n\n(function(tab) {\n for(var i=0; i<256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = (r << s) & 0xff;\n }\n})(REVERSE_TABLE);\n\n//Reverse bits in a 32 bit word\nexports.reverse = function(v) {\n return (REVERSE_TABLE[ v & 0xff] << 24) |\n (REVERSE_TABLE[(v >>> 8) & 0xff] << 16) |\n (REVERSE_TABLE[(v >>> 16) & 0xff] << 8) |\n REVERSE_TABLE[(v >>> 24) & 0xff];\n}\n\n//Interleave bits of 2 coordinates with 16 bits. Useful for fast quadtree codes\nexports.interleave2 = function(x, y) {\n x &= 0xFFFF;\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y &= 0xFFFF;\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n//Extracts the nth interleaved component\nexports.deinterleave2 = function(v, n) {\n v = (v >>> n) & 0x55555555;\n v = (v | (v >>> 1)) & 0x33333333;\n v = (v | (v >>> 2)) & 0x0F0F0F0F;\n v = (v | (v >>> 4)) & 0x00FF00FF;\n v = (v | (v >>> 16)) & 0x000FFFF;\n return (v << 16) >> 16;\n}\n\n\n//Interleave bits of 3 coordinates, each with 10 bits. Useful for fast octree codes\nexports.interleave3 = function(x, y, z) {\n x &= 0x3FF;\n x = (x | (x<<16)) & 4278190335;\n x = (x | (x<<8)) & 251719695;\n x = (x | (x<<4)) & 3272356035;\n x = (x | (x<<2)) & 1227133513;\n\n y &= 0x3FF;\n y = (y | (y<<16)) & 4278190335;\n y = (y | (y<<8)) & 251719695;\n y = (y | (y<<4)) & 3272356035;\n y = (y | (y<<2)) & 1227133513;\n x |= (y << 1);\n \n z &= 0x3FF;\n z = (z | (z<<16)) & 4278190335;\n z = (z | (z<<8)) & 251719695;\n z = (z | (z<<4)) & 3272356035;\n z = (z | (z<<2)) & 1227133513;\n \n return x | (z << 2);\n}\n\n//Extracts nth interleaved component of a 3-tuple\nexports.deinterleave3 = function(v, n) {\n v = (v >>> n) & 1227133513;\n v = (v | (v>>>2)) & 3272356035;\n v = (v | (v>>>4)) & 251719695;\n v = (v | (v>>>8)) & 4278190335;\n v = (v | (v>>>16)) & 0x3FF;\n return (v<<22)>>22;\n}\n\n//Computes next combination in colexicographic order (this is mistakenly called nextPermutation on the bit twiddling hacks page)\nexports.nextCombination = function(v) {\n var t = v | (v - 1);\n return (t + 1) | (((~t & -~t) - 1) >>> (countTrailingZeros(v) + 1));\n}\n\n","'use strict';\n\nmodule.exports = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode) return triangles;\n\n var minX, minY, maxX, maxY, x, y, size;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and size are later used to transform coords into integers for z-order calculation\n size = Math.max(maxX - minX, maxY - minY);\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, size);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) return null;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, size, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && size) indexCurve(ear, minX, minY, size);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (size ? isEarHashed(ear, minX, minY, size) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertice leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, size, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(ear, triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, size, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, size);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, size) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, size),\n maxZ = zOrder(maxTX, maxTY, minX, minY, size);\n\n // first look for points inside the triangle in increasing z-order\n var p = ear.nextZ;\n\n while (p && p.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.nextZ;\n }\n\n // then look for points in decreasing z-order\n p = ear.prevZ;\n\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return p;\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, size) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, size);\n earcutLinked(c, triangles, dim, minX, minY, size);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m.prev; // hole touches outer segment; pick lower endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m.next;\n\n while (p !== stop) {\n if (hx >= p.x && p.x >= mx &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if ((tan < tanMin || (tan === tanMin && p.x > m.x)) && locallyInside(p, hole)) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n }\n\n return m;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, size) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, size);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize === 0) {\n e = q;\n q = q.nextZ;\n qSize--;\n } else if (qSize === 0 || !q) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else if (p.z <= q.z) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and size of the data bounding box\nfunction zOrder(x, y, minX, minY, size) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) / size;\n y = 32767 * (y - minY) / size;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) &&\n locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n if ((equals(p1, q1) && equals(p2, q2)) ||\n (equals(p1, q2) && equals(p2, q1))) return true;\n return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 &&\n area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertice index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertice nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * isMobile.js v0.4.0\n *\n * A simple library to detect Apple phones and tablets,\n * Android phones and tablets, other mobile devices (like blackberry, mini-opera and windows phone),\n * and any kind of seven inch device, via user agent sniffing.\n *\n * @author: Kai Mallea ([email protected])\n *\n * @license: http://creativecommons.org/publicdomain/zero/1.0/\n */\n(function (global) {\n\n var apple_phone = /iPhone/i,\n apple_ipod = /iPod/i,\n apple_tablet = /iPad/i,\n android_phone = /(?=.*\\bAndroid\\b)(?=.*\\bMobile\\b)/i, // Match 'Android' AND 'Mobile'\n android_tablet = /Android/i,\n amazon_phone = /(?=.*\\bAndroid\\b)(?=.*\\bSD4930UR\\b)/i,\n amazon_tablet = /(?=.*\\bAndroid\\b)(?=.*\\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\\b)/i,\n windows_phone = /IEMobile/i,\n windows_tablet = /(?=.*\\bWindows\\b)(?=.*\\bARM\\b)/i, // Match 'Windows' AND 'ARM'\n other_blackberry = /BlackBerry/i,\n other_blackberry_10 = /BB10/i,\n other_opera = /Opera Mini/i,\n other_chrome = /(CriOS|Chrome)(?=.*\\bMobile\\b)/i,\n other_firefox = /(?=.*\\bFirefox\\b)(?=.*\\bMobile\\b)/i, // Match 'Firefox' AND 'Mobile'\n seven_inch = new RegExp(\n '(?:' + // Non-capturing group\n\n 'Nexus 7' + // Nexus 7\n\n '|' + // OR\n\n 'BNTV250' + // B&N Nook Tablet 7 inch\n\n '|' + // OR\n\n 'Kindle Fire' + // Kindle Fire\n\n '|' + // OR\n\n 'Silk' + // Kindle Fire, Silk Accelerated\n\n '|' + // OR\n\n 'GT-P1000' + // Galaxy Tab 7 inch\n\n ')', // End non-capturing group\n\n 'i'); // Case-insensitive matching\n\n var match = function(regex, userAgent) {\n return regex.test(userAgent);\n };\n\n var IsMobileClass = function(userAgent) {\n var ua = userAgent || navigator.userAgent;\n\n // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n var tmp = ua.split('[FBAN');\n if (typeof tmp[1] !== 'undefined') {\n ua = tmp[0];\n }\n\n // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probable happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n tmp = ua.split('Twitter');\n if (typeof tmp[1] !== 'undefined') {\n ua = tmp[0];\n }\n\n this.apple = {\n phone: match(apple_phone, ua),\n ipod: match(apple_ipod, ua),\n tablet: !match(apple_phone, ua) && match(apple_tablet, ua),\n device: match(apple_phone, ua) || match(apple_ipod, ua) || match(apple_tablet, ua)\n };\n this.amazon = {\n phone: match(amazon_phone, ua),\n tablet: !match(amazon_phone, ua) && match(amazon_tablet, ua),\n device: match(amazon_phone, ua) || match(amazon_tablet, ua)\n };\n this.android = {\n phone: match(amazon_phone, ua) || match(android_phone, ua),\n tablet: !match(amazon_phone, ua) && !match(android_phone, ua) && (match(amazon_tablet, ua) || match(android_tablet, ua)),\n device: match(amazon_phone, ua) || match(amazon_tablet, ua) || match(android_phone, ua) || match(android_tablet, ua)\n };\n this.windows = {\n phone: match(windows_phone, ua),\n tablet: match(windows_tablet, ua),\n device: match(windows_phone, ua) || match(windows_tablet, ua)\n };\n this.other = {\n blackberry: match(other_blackberry, ua),\n blackberry10: match(other_blackberry_10, ua),\n opera: match(other_opera, ua),\n firefox: match(other_firefox, ua),\n chrome: match(other_chrome, ua),\n device: match(other_blackberry, ua) || match(other_blackberry_10, ua) || match(other_opera, ua) || match(other_firefox, ua) || match(other_chrome, ua)\n };\n this.seven_inch = match(seven_inch, ua);\n this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch;\n\n // excludes 'other' devices and ipods, targeting touchscreen phones\n this.phone = this.apple.phone || this.android.phone || this.windows.phone;\n\n // excludes 7 inch devices, classifying as phone or tablet is left to the user\n this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet;\n\n if (typeof window === 'undefined') {\n return this;\n }\n };\n\n var instantiate = function() {\n var IM = new IsMobileClass();\n IM.Class = IsMobileClass;\n return IM;\n };\n\n if (typeof module !== 'undefined' && module.exports && typeof window === 'undefined') {\n //node\n module.exports = IsMobileClass;\n } else if (typeof module !== 'undefined' && module.exports && typeof window !== 'undefined') {\n //browserify\n module.exports = instantiate();\n } else if (typeof define === 'function' && define.amd) {\n //AMD\n define('isMobile', [], global.isMobile = instantiate());\n } else {\n global.isMobile = instantiate();\n }\n\n})(this);\n","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var EMPTY_ARRAY_BUFFER = new ArrayBuffer(0);\n\n/**\n * Helper class to create a webGL buffer\n *\n * @class\n * @memberof PIXI.glCore\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param type {gl.ARRAY_BUFFER | gl.ELEMENT_ARRAY_BUFFER} @mat\n * @param data {ArrayBuffer| SharedArrayBuffer|ArrayBufferView} an array of data\n * @param drawType {gl.STATIC_DRAW|gl.DYNAMIC_DRAW|gl.STREAM_DRAW}\n */\nvar Buffer = function(gl, type, data, drawType)\n{\n\n\t/**\n * The current WebGL rendering context\n *\n * @member {WebGLRenderingContext}\n */\n\tthis.gl = gl;\n\n\t/**\n * The WebGL buffer, created upon instantiation\n *\n * @member {WebGLBuffer}\n */\n\tthis.buffer = gl.createBuffer(); \n\n\t/**\n * The type of the buffer\n *\n * @member {gl.ARRAY_BUFFER|gl.ELEMENT_ARRAY_BUFFER}\n */\n\tthis.type = type || gl.ARRAY_BUFFER;\n\n\t/**\n * The draw type of the buffer\n *\n * @member {gl.STATIC_DRAW|gl.DYNAMIC_DRAW|gl.STREAM_DRAW}\n */\n\tthis.drawType = drawType || gl.STATIC_DRAW;\n\n\t/**\n * The data in the buffer, as a typed array\n *\n * @member {ArrayBuffer| SharedArrayBuffer|ArrayBufferView}\n */\n\tthis.data = EMPTY_ARRAY_BUFFER;\n\n\tif(data)\n\t{\n\t\tthis.upload(data);\n\t}\n};\n\n/**\n * Uploads the buffer to the GPU\n * @param data {ArrayBuffer| SharedArrayBuffer|ArrayBufferView} an array of data to upload\n * @param offset {Number} if only a subset of the data should be uploaded, this is the amount of data to subtract\n * @param dontBind {Boolean} whether to bind the buffer before uploading it\n */\nBuffer.prototype.upload = function(data, offset, dontBind)\n{\n\t// todo - needed?\n\tif(!dontBind) this.bind();\n\n\tvar gl = this.gl;\n\n\tdata = data || this.data;\n\toffset = offset || 0;\n\n\tif(this.data.byteLength >= data.byteLength)\n\t{\n\t\tgl.bufferSubData(this.type, offset, data);\n\t}\n\telse\n\t{\n\t\tgl.bufferData(this.type, data, this.drawType);\n\t}\n\n\tthis.data = data;\n};\n/**\n * Binds the buffer\n *\n */\nBuffer.prototype.bind = function()\n{\n\tvar gl = this.gl;\n\tgl.bindBuffer(this.type, this.buffer);\n};\n\nBuffer.createVertexBuffer = function(gl, data, drawType)\n{\n\treturn new Buffer(gl, gl.ARRAY_BUFFER, data, drawType);\n};\n\nBuffer.createIndexBuffer = function(gl, data, drawType)\n{\n\treturn new Buffer(gl, gl.ELEMENT_ARRAY_BUFFER, data, drawType);\n};\n\nBuffer.create = function(gl, type, data, drawType)\n{\n\treturn new Buffer(gl, type, data, drawType);\n};\n\n/**\n * Destroys the buffer\n *\n */\nBuffer.prototype.destroy = function(){\n\tthis.gl.deleteBuffer(this.buffer);\n};\n\nmodule.exports = Buffer;\n","\nvar Texture = require('./GLTexture');\n\n/**\n * Helper class to create a webGL Framebuffer\n *\n * @class\n * @memberof PIXI.glCore\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param width {Number} the width of the drawing area of the frame buffer\n * @param height {Number} the height of the drawing area of the frame buffer\n */\nvar Framebuffer = function(gl, width, height)\n{\n /**\n * The current WebGL rendering context\n *\n * @member {WebGLRenderingContext}\n */\n this.gl = gl;\n\n /**\n * The frame buffer\n *\n * @member {WebGLFramebuffer}\n */\n this.framebuffer = gl.createFramebuffer();\n\n /**\n * The stencil buffer\n *\n * @member {WebGLRenderbuffer}\n */\n this.stencil = null;\n\n /**\n * The stencil buffer\n *\n * @member {PIXI.glCore.GLTexture}\n */\n this.texture = null;\n\n /**\n * The width of the drawing area of the buffer\n *\n * @member {Number}\n */\n this.width = width || 100;\n /**\n * The height of the drawing area of the buffer\n *\n * @member {Number}\n */\n this.height = height || 100;\n};\n\n/**\n * Adds a texture to the frame buffer\n * @param texture {PIXI.glCore.GLTexture}\n */\nFramebuffer.prototype.enableTexture = function(texture)\n{\n var gl = this.gl;\n\n this.texture = texture || new Texture(gl);\n\n this.texture.bind();\n\n //gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, this.width, this.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n this.bind();\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.texture.texture, 0);\n};\n\n/**\n * Initialises the stencil buffer\n */\nFramebuffer.prototype.enableStencil = function()\n{\n if(this.stencil)return;\n\n var gl = this.gl;\n\n this.stencil = gl.createRenderbuffer();\n\n gl.bindRenderbuffer(gl.RENDERBUFFER, this.stencil);\n\n // TODO.. this is depth AND stencil?\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, this.stencil);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, this.width , this.height );\n};\n\n/**\n * Erases the drawing area and fills it with a colour\n * @param r {Number} the red value of the clearing colour\n * @param g {Number} the green value of the clearing colour\n * @param b {Number} the blue value of the clearing colour\n * @param a {Number} the alpha value of the clearing colour\n */\nFramebuffer.prototype.clear = function( r, g, b, a )\n{\n this.bind();\n\n var gl = this.gl;\n\n gl.clearColor(r, g, b, a);\n gl.clear(gl.COLOR_BUFFER_BIT);\n};\n\n/**\n * Binds the frame buffer to the WebGL context\n */\nFramebuffer.prototype.bind = function()\n{\n var gl = this.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer );\n};\n\n/**\n * Unbinds the frame buffer to the WebGL context\n */\nFramebuffer.prototype.unbind = function()\n{\n var gl = this.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, null );\n};\n/**\n * Resizes the drawing area of the buffer to the given width and height\n * @param width {Number} the new width\n * @param height {Number} the new height\n */\nFramebuffer.prototype.resize = function(width, height)\n{\n var gl = this.gl;\n\n this.width = width;\n this.height = height;\n\n if ( this.texture )\n {\n this.texture.uploadData(null, width, height);\n }\n\n if ( this.stencil )\n {\n // update the stencil buffer width and height\n gl.bindRenderbuffer(gl.RENDERBUFFER, this.stencil);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, width, height);\n }\n};\n\n/**\n * Destroys this buffer\n */\nFramebuffer.prototype.destroy = function()\n{\n var gl = this.gl;\n\n //TODO\n if(this.texture)\n {\n this.texture.destroy();\n }\n\n gl.deleteFramebuffer(this.framebuffer);\n\n this.gl = null;\n\n this.stencil = null;\n this.texture = null;\n};\n\n/**\n * Creates a frame buffer with a texture containing the given data\n * @static\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param width {Number} the width of the drawing area of the frame buffer\n * @param height {Number} the height of the drawing area of the frame buffer\n * @param data {ArrayBuffer| SharedArrayBuffer|ArrayBufferView} an array of data\n */\nFramebuffer.createRGBA = function(gl, width, height, data)\n{\n var texture = Texture.fromData(gl, null, width, height);\n texture.enableNearestScaling();\n texture.enableWrapClamp();\n\n //now create the framebuffer object and attach the texture to it.\n var fbo = new Framebuffer(gl, width, height);\n fbo.enableTexture(texture);\n\n fbo.unbind();\n\n return fbo;\n};\n\n/**\n * Creates a frame buffer with a texture containing the given data\n * @static\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param width {Number} the width of the drawing area of the frame buffer\n * @param height {Number} the height of the drawing area of the frame buffer\n * @param data {ArrayBuffer| SharedArrayBuffer|ArrayBufferView} an array of data\n */\nFramebuffer.createFloat32 = function(gl, width, height, data)\n{\n // create a new texture..\n var texture = new Texture.fromData(gl, data, width, height);\n texture.enableNearestScaling();\n texture.enableWrapClamp();\n\n //now create the framebuffer object and attach the texture to it.\n var fbo = new Framebuffer(gl, width, height);\n fbo.enableTexture(texture);\n\n fbo.unbind();\n\n return fbo;\n};\n\nmodule.exports = Framebuffer;\n","\nvar compileProgram = require('./shader/compileProgram'),\n\textractAttributes = require('./shader/extractAttributes'),\n\textractUniforms = require('./shader/extractUniforms'),\n\tgenerateUniformAccessObject = require('./shader/generateUniformAccessObject');\n\n/**\n * Helper class to create a webGL Shader\n *\n * @class\n * @memberof PIXI.glCore\n * @param gl {WebGLRenderingContext}\n * @param vertexSrc {string|string[]} The vertex shader source as an array of strings.\n * @param fragmentSrc {string|string[]} The fragment shader source as an array of strings.\n */\nvar Shader = function(gl, vertexSrc, fragmentSrc)\n{\n\t/**\n\t * The current WebGL rendering context\n\t *\n\t * @member {WebGLRenderingContext}\n\t */\n\tthis.gl = gl;\n\n\t/**\n\t * The shader program\n\t *\n\t * @member {WebGLProgram}\n\t */\n\t// First compile the program..\n\tthis.program = compileProgram(gl, vertexSrc, fragmentSrc);\n\n\n\t/**\n\t * The attributes of the shader as an object containing the following properties\n\t * {\n\t * \ttype,\n\t * \tsize,\n\t * \tlocation,\n\t * \tpointer\n\t * }\n\t * @member {Object}\n\t */\n\t// next extract the attributes\n\tthis.attributes = extractAttributes(gl, this.program);\n\n var uniformData = extractUniforms(gl, this.program);\n\n\t/**\n\t * The uniforms of the shader as an object containing the following properties\n\t * {\n\t * \tgl,\n\t * \tdata\n\t * }\n\t * @member {Object}\n\t */\n this.uniforms = generateUniformAccessObject( gl, uniformData );\n};\n/**\n * Uses this shader\n */\nShader.prototype.bind = function()\n{\n\tthis.gl.useProgram(this.program);\n};\n\n/**\n * Destroys this shader\n * TODO\n */\nShader.prototype.destroy = function()\n{\n\t// var gl = this.gl;\n};\n\nmodule.exports = Shader;\n","\n/**\n * Helper class to create a WebGL Texture\n *\n * @class\n * @memberof PIXI.glCore\n * @param gl {WebGLRenderingContext} The current WebGL context\n * @param width {number} the width of the texture\n * @param height {number} the height of the texture\n * @param format {number} the pixel format of the texture. defaults to gl.RGBA\n * @param type {number} the gl type of the texture. defaults to gl.UNSIGNED_BYTE\n */\nvar Texture = function(gl, width, height, format, type)\n{\n\t/**\n\t * The current WebGL rendering context\n\t *\n\t * @member {WebGLRenderingContext}\n\t */\n\tthis.gl = gl;\n\n\n\t/**\n\t * The WebGL texture\n\t *\n\t * @member {WebGLTexture}\n\t */\n\tthis.texture = gl.createTexture();\n\n\t/**\n\t * If mipmapping was used for this texture, enable and disable with enableMipmap()\n\t *\n\t * @member {Boolean}\n\t */\n\t// some settings..\n\tthis.mipmap = false;\n\n\n\t/**\n\t * Set to true to enable pre-multiplied alpha\n\t *\n\t * @member {Boolean}\n\t */\n\tthis.premultiplyAlpha = false;\n\n\t/**\n\t * The width of texture\n\t *\n\t * @member {Number}\n\t */\n\tthis.width = width || -1;\n\t/**\n\t * The height of texture\n\t *\n\t * @member {Number}\n\t */\n\tthis.height = height || -1;\n\n\t/**\n\t * The pixel format of the texture. defaults to gl.RGBA\n\t *\n\t * @member {Number}\n\t */\n\tthis.format = format || gl.RGBA;\n\n\t/**\n\t * The gl type of the texture. defaults to gl.UNSIGNED_BYTE\n\t *\n\t * @member {Number}\n\t */\n\tthis.type = type || gl.UNSIGNED_BYTE;\n\n\n};\n\n/**\n * Uploads this texture to the GPU\n * @param source {HTMLImageElement|ImageData|HTMLVideoElement} the source image of the texture\n */\nTexture.prototype.upload = function(source)\n{\n\tthis.bind();\n\n\tvar gl = this.gl;\n\n\n\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);\n\n\tvar newWidth = source.videoWidth || source.width;\n\tvar newHeight = source.videoHeight || source.height;\n\n\tif(newHeight !== this.height || newWidth !== this.width)\n\t{\n \tgl.texImage2D(gl.TEXTURE_2D, 0, this.format, this.format, this.type, source);\n\t}\n\telse\n\t{\n \tgl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, this.format, this.type, source);\n\t}\n\n\t// if the source is a video, we need to use the videoWidth / videoHeight properties as width / height will be incorrect.\n\tthis.width = newWidth;\n\tthis.height = newHeight;\n\n};\n\nvar FLOATING_POINT_AVAILABLE = false;\n\n/**\n * Use a data source and uploads this texture to the GPU\n * @param data {TypedArray} the data to upload to the texture\n * @param width {number} the new width of the texture\n * @param height {number} the new height of the texture\n */\nTexture.prototype.uploadData = function(data, width, height)\n{\n\tthis.bind();\n\n\tvar gl = this.gl;\n\n\n\tif(data instanceof Float32Array)\n\t{\n\t\tif(!FLOATING_POINT_AVAILABLE)\n\t\t{\n\t\t\tvar ext = gl.getExtension(\"OES_texture_float\");\n\n\t\t\tif(ext)\n\t\t\t{\n\t\t\t\tFLOATING_POINT_AVAILABLE = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthrow new Error('floating point textures not available');\n\t\t\t}\n\t\t}\n\n\t\tthis.type = gl.FLOAT;\n\t}\n\telse\n\t{\n\t\t// TODO support for other types\n\t\tthis.type = gl.UNSIGNED_BYTE;\n\t}\n\n\t// what type of data?\n\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);\n\n\n\tif(width !== this.width || height !== this.height)\n\t{\n\t\tgl.texImage2D(gl.TEXTURE_2D, 0, this.format, width, height, 0, this.format, this.type, data || null);\n\t}\n\telse\n\t{\n\t\tgl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, this.format, this.type, data || null);\n\t}\n\n\tthis.width = width;\n\tthis.height = height;\n\n\n//\ttexSubImage2D\n};\n\n/**\n * Binds the texture\n * @param location\n */\nTexture.prototype.bind = function(location)\n{\n\tvar gl = this.gl;\n\n\tif(location !== undefined)\n\t{\n\t\tgl.activeTexture(gl.TEXTURE0 + location);\n\t}\n\n\tgl.bindTexture(gl.TEXTURE_2D, this.texture);\n};\n\n/**\n * Unbinds the texture\n */\nTexture.prototype.unbind = function()\n{\n\tvar gl = this.gl;\n\tgl.bindTexture(gl.TEXTURE_2D, null);\n};\n\n/**\n * @param linear {Boolean} if we want to use linear filtering or nearest neighbour interpolation\n */\nTexture.prototype.minFilter = function( linear )\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tif(this.mipmap)\n\t{\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, linear ? gl.LINEAR_MIPMAP_LINEAR : gl.NEAREST_MIPMAP_NEAREST);\n\t}\n\telse\n\t{\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, linear ? gl.LINEAR : gl.NEAREST);\n\t}\n};\n\n/**\n * @param linear {Boolean} if we want to use linear filtering or nearest neighbour interpolation\n */\nTexture.prototype.magFilter = function( linear )\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, linear ? gl.LINEAR : gl.NEAREST);\n};\n\n/**\n * Enables mipmapping\n */\nTexture.prototype.enableMipmap = function()\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tthis.mipmap = true;\n\n\tgl.generateMipmap(gl.TEXTURE_2D);\n};\n\n/**\n * Enables linear filtering\n */\nTexture.prototype.enableLinearScaling = function()\n{\n\tthis.minFilter(true);\n\tthis.magFilter(true);\n};\n\n/**\n * Enables nearest neighbour interpolation\n */\nTexture.prototype.enableNearestScaling = function()\n{\n\tthis.minFilter(false);\n\tthis.magFilter(false);\n};\n\n/**\n * Enables clamping on the texture so WebGL will not repeat it\n */\nTexture.prototype.enableWrapClamp = function()\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n};\n\n/**\n * Enable tiling on the texture\n */\nTexture.prototype.enableWrapRepeat = function()\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);\n};\n\nTexture.prototype.enableWrapMirrorRepeat = function()\n{\n\tvar gl = this.gl;\n\n\tthis.bind();\n\n\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.MIRRORED_REPEAT);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.MIRRORED_REPEAT);\n};\n\n\n/**\n * Destroys this texture\n */\nTexture.prototype.destroy = function()\n{\n\tvar gl = this.gl;\n\t//TODO\n\tgl.deleteTexture(this.texture);\n};\n\n/**\n * @static\n * @param gl {WebGLRenderingContext} The current WebGL context\n * @param source {HTMLImageElement|ImageData} the source image of the texture\n * @param premultiplyAlpha {Boolean} If we want to use pre-multiplied alpha\n */\nTexture.fromSource = function(gl, source, premultiplyAlpha)\n{\n\tvar texture = new Texture(gl);\n\ttexture.premultiplyAlpha = premultiplyAlpha || false;\n\ttexture.upload(source);\n\n\treturn texture;\n};\n\n/**\n * @static\n * @param gl {WebGLRenderingContext} The current WebGL context\n * @param data {TypedArray} the data to upload to the texture\n * @param width {number} the new width of the texture\n * @param height {number} the new height of the texture\n */\nTexture.fromData = function(gl, data, width, height)\n{\n\t//console.log(data, width, height);\n\tvar texture = new Texture(gl);\n\ttexture.uploadData(data, width, height);\n\n\treturn texture;\n};\n\n\nmodule.exports = Texture;\n","\n// state object//\nvar setVertexAttribArrays = require( './setVertexAttribArrays' );\n\n/**\n * Helper class to work with WebGL VertexArrayObjects (vaos)\n * Only works if WebGL extensions are enabled (they usually are)\n *\n * @class\n * @memberof PIXI.glCore\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n */\nfunction VertexArrayObject(gl, state)\n{\n this.nativeVaoExtension = null;\n\n if(!VertexArrayObject.FORCE_NATIVE)\n {\n this.nativeVaoExtension = gl.getExtension('OES_vertex_array_object') ||\n gl.getExtension('MOZ_OES_vertex_array_object') ||\n gl.getExtension('WEBKIT_OES_vertex_array_object');\n }\n\n this.nativeState = state;\n\n if(this.nativeVaoExtension)\n {\n this.nativeVao = this.nativeVaoExtension.createVertexArrayOES();\n\n var maxAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n\n // VAO - overwrite the state..\n this.nativeState = {\n tempAttribState: new Array(maxAttribs),\n attribState: new Array(maxAttribs)\n };\n }\n\n /**\n * The current WebGL rendering context\n *\n * @member {WebGLRenderingContext}\n */\n this.gl = gl;\n\n /**\n * An array of attributes\n *\n * @member {Array}\n */\n this.attributes = [];\n\n /**\n * @member {PIXI.glCore.GLBuffer}\n */\n this.indexBuffer = null;\n\n /**\n * A boolean flag\n *\n * @member {Boolean}\n */\n this.dirty = false;\n}\n\nVertexArrayObject.prototype.constructor = VertexArrayObject;\nmodule.exports = VertexArrayObject;\n\n/**\n* Some devices behave a bit funny when using the newer extensions (im looking at you ipad 2!)\n* If you find on older devices that things have gone a bit weird then set this to true.\n*/\n/**\n * Lets the VAO know if you should use the WebGL extension or the native methods.\n * Some devices behave a bit funny when using the newer extensions (im looking at you ipad 2!)\n * If you find on older devices that things have gone a bit weird then set this to true.\n * @static\n * @property {Boolean} FORCE_NATIVE\n */\nVertexArrayObject.FORCE_NATIVE = false;\n\n/**\n * Binds the buffer\n */\nVertexArrayObject.prototype.bind = function()\n{\n if(this.nativeVao)\n {\n this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao);\n\n if(this.dirty)\n {\n this.dirty = false;\n this.activate();\n }\n }\n else\n {\n\n this.activate();\n }\n\n return this;\n};\n\n/**\n * Unbinds the buffer\n */\nVertexArrayObject.prototype.unbind = function()\n{\n if(this.nativeVao)\n {\n this.nativeVaoExtension.bindVertexArrayOES(null);\n }\n\n return this;\n};\n\n/**\n * Uses this vao\n */\nVertexArrayObject.prototype.activate = function()\n{\n\n var gl = this.gl;\n var lastBuffer = null;\n\n for (var i = 0; i < this.attributes.length; i++)\n {\n var attrib = this.attributes[i];\n\n if(lastBuffer !== attrib.buffer)\n {\n attrib.buffer.bind();\n lastBuffer = attrib.buffer;\n }\n\n //attrib.attribute.pointer(attrib.type, attrib.normalized, attrib.stride, attrib.start);\n gl.vertexAttribPointer(attrib.attribute.location,\n attrib.attribute.size, attrib.type || gl.FLOAT,\n attrib.normalized || false,\n attrib.stride || 0,\n attrib.start || 0);\n\n\n }\n\n setVertexAttribArrays(gl, this.attributes, this.nativeState);\n\n this.indexBuffer.bind();\n\n return this;\n};\n\n/**\n *\n * @param buffer {PIXI.gl.GLBuffer}\n * @param attribute {*}\n * @param type {String}\n * @param normalized {Boolean}\n * @param stride {Number}\n * @param start {Number}\n */\nVertexArrayObject.prototype.addAttribute = function(buffer, attribute, type, normalized, stride, start)\n{\n this.attributes.push({\n buffer: buffer,\n attribute: attribute,\n\n location: attribute.location,\n type: type || this.gl.FLOAT,\n normalized: normalized || false,\n stride: stride || 0,\n start: start || 0\n });\n\n this.dirty = true;\n\n return this;\n};\n\n/**\n *\n * @param buffer {PIXI.gl.GLBuffer}\n */\nVertexArrayObject.prototype.addIndex = function(buffer/*, options*/)\n{\n this.indexBuffer = buffer;\n\n this.dirty = true;\n\n return this;\n};\n\n/**\n * Unbinds this vao and disables it\n */\nVertexArrayObject.prototype.clear = function()\n{\n // var gl = this.gl;\n\n // TODO - should this function unbind after clear?\n // for now, no but lets see what happens in the real world!\n if(this.nativeVao)\n {\n this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao);\n }\n\n this.attributes.length = 0;\n this.indexBuffer = null;\n\n return this;\n};\n\n/**\n * @param type {Number}\n * @param size {Number}\n * @param start {Number}\n */\nVertexArrayObject.prototype.draw = function(type, size, start)\n{\n var gl = this.gl;\n gl.drawElements(type, size, gl.UNSIGNED_SHORT, start || 0);\n\n return this;\n};\n\n/**\n * Destroy this vao\n */\nVertexArrayObject.prototype.destroy = function()\n{\n // lose references\n this.gl = null;\n this.indexBuffer = null;\n this.attributes = null;\n this.nativeState = null;\n\n if(this.nativeVao)\n {\n this.nativeVaoExtension.deleteVertexArrayOES(this.nativeVao);\n }\n\n this.nativeVaoExtension = null;\n this.nativeVao = null;\n};\n","\n/**\n * Helper class to create a webGL Context\n *\n * @class\n * @memberof PIXI.glCore\n * @param canvas {HTMLCanvasElement} the canvas element that we will get the context from\n * @param options {Object} An options object that gets passed in to the canvas element containing the context attributes,\n * see https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement/getContext for the options available\n * @return {WebGLRenderingContext} the WebGL context\n */\nvar createContext = function(canvas, options)\n{\n var gl = canvas.getContext('webgl', options) || \n canvas.getContext('experimental-webgl', options);\n\n if (!gl)\n {\n // fail, not able to get a context\n throw new Error('This browser does not support webGL. Try using the canvas renderer');\n }\n\n return gl;\n};\n\nmodule.exports = createContext;\n","var gl = {\n createContext: require('./createContext'),\n setVertexAttribArrays: require('./setVertexAttribArrays'),\n GLBuffer: require('./GLBuffer'),\n GLFramebuffer: require('./GLFramebuffer'),\n GLShader: require('./GLShader'),\n GLTexture: require('./GLTexture'),\n VertexArrayObject: require('./VertexArrayObject'),\n shader: require('./shader')\n};\n\n// Export for Node-compatible environments\nif (typeof module !== 'undefined' && module.exports)\n{\n // Export the module\n module.exports = gl;\n}\n\n// Add to the browser window pixi.gl\nif (typeof window !== 'undefined')\n{\n // add the window object\n window.PIXI = window.PIXI || {};\n window.PIXI.glCore = gl;\n}\n","// var GL_MAP = {};\n\n/**\n * @param gl {WebGLRenderingContext} The current WebGL context\n * @param attribs {*}\n * @param state {*}\n */\nvar setVertexAttribArrays = function (gl, attribs, state)\n{\n var i;\n if(state)\n {\n var tempAttribState = state.tempAttribState,\n attribState = state.attribState;\n\n for (i = 0; i < tempAttribState.length; i++)\n {\n tempAttribState[i] = false;\n }\n\n // set the new attribs\n for (i = 0; i < attribs.length; i++)\n {\n tempAttribState[attribs[i].attribute.location] = true;\n }\n\n for (i = 0; i < attribState.length; i++)\n {\n if (attribState[i] !== tempAttribState[i])\n {\n attribState[i] = tempAttribState[i];\n\n if (state.attribState[i])\n {\n gl.enableVertexAttribArray(i);\n }\n else\n {\n gl.disableVertexAttribArray(i);\n }\n }\n }\n\n }\n else\n {\n for (i = 0; i < attribs.length; i++)\n {\n var attrib = attribs[i];\n gl.enableVertexAttribArray(attrib.attribute.location);\n }\n }\n};\n\nmodule.exports = setVertexAttribArrays;\n","\n/**\n * @class\n * @memberof PIXI.glCore.shader\n * @param gl {WebGLRenderingContext} The current WebGL context {WebGLProgram}\n * @param vertexSrc {string|string[]} The vertex shader source as an array of strings.\n * @param fragmentSrc {string|string[]} The fragment shader source as an array of strings.\n * @return {WebGLProgram} the shader program\n */\nvar compileProgram = function(gl, vertexSrc, fragmentSrc)\n{\n var glVertShader = compileShader(gl, gl.VERTEX_SHADER, vertexSrc);\n var glFragShader = compileShader(gl, gl.FRAGMENT_SHADER, fragmentSrc);\n\n var program = gl.createProgram();\n\n gl.attachShader(program, glVertShader);\n gl.attachShader(program, glFragShader);\n gl.linkProgram(program);\n\n // if linking fails, then log and cleanup\n if (!gl.getProgramParameter(program, gl.LINK_STATUS))\n {\n console.error('Pixi.js Error: Could not initialize shader.');\n console.error('gl.VALIDATE_STATUS', gl.getProgramParameter(program, gl.VALIDATE_STATUS));\n console.error('gl.getError()', gl.getError());\n\n // if there is a program info log, log it\n if (gl.getProgramInfoLog(program) !== '')\n {\n console.warn('Pixi.js Warning: gl.getProgramInfoLog()', gl.getProgramInfoLog(program));\n }\n\n gl.deleteProgram(program);\n program = null;\n }\n\n // clean up some shaders\n gl.deleteShader(glVertShader);\n gl.deleteShader(glFragShader);\n\n return program;\n};\n\n/**\n * @private\n * @param gl {WebGLRenderingContext} The current WebGL context {WebGLProgram}\n * @param type {Number} the type, can be either VERTEX_SHADER or FRAGMENT_SHADER\n * @param vertexSrc {string|string[]} The vertex shader source as an array of strings.\n * @return {WebGLShader} the shader\n */\nvar compileShader = function (gl, type, src)\n{\n var shader = gl.createShader(type);\n\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS))\n {\n console.log(gl.getShaderInfoLog(shader));\n return null;\n }\n\n return shader;\n};\n\nmodule.exports = compileProgram;\n","/**\n * @class\n * @memberof PIXI.glCore.shader\n * @param type {String} Type of value\n * @param size {Number}\n */\nvar defaultValue = function(type, size) \n{\n switch (type)\n {\n case 'float':\n return 0;\n\n case 'vec2': \n return new Float32Array(2 * size);\n\n case 'vec3':\n return new Float32Array(3 * size);\n\n case 'vec4': \n return new Float32Array(4 * size);\n \n case 'int':\n case 'sampler2D':\n return 0;\n\n case 'ivec2': \n return new Int32Array(2 * size);\n\n case 'ivec3':\n return new Int32Array(3 * size);\n\n case 'ivec4': \n return new Int32Array(4 * size);\n\n case 'bool': \n return false;\n\n case 'bvec2':\n\n return booleanArray( 2 * size);\n\n case 'bvec3':\n return booleanArray(3 * size);\n\n case 'bvec4':\n return booleanArray(4 * size);\n\n case 'mat2':\n return new Float32Array([1, 0,\n 0, 1]);\n\n case 'mat3': \n return new Float32Array([1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]);\n\n case 'mat4':\n return new Float32Array([1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n 0, 0, 0, 1]);\n }\n};\n\nvar booleanArray = function(size)\n{\n var array = new Array(size);\n\n for (var i = 0; i < array.length; i++) \n {\n array[i] = false;\n }\n\n return array;\n};\n\nmodule.exports = defaultValue;\n","\nvar mapType = require('./mapType');\nvar mapSize = require('./mapSize');\n\n/**\n * Extracts the attributes\n * @class\n * @memberof PIXI.glCore.shader\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param program {WebGLProgram} The shader program to get the attributes from\n * @return attributes {Object}\n */\nvar extractAttributes = function(gl, program)\n{\n var attributes = {};\n\n var totalAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (var i = 0; i < totalAttributes; i++)\n {\n var attribData = gl.getActiveAttrib(program, i);\n var type = mapType(gl, attribData.type);\n\n attributes[attribData.name] = {\n type:type,\n size:mapSize(type),\n location:gl.getAttribLocation(program, attribData.name),\n //TODO - make an attribute object\n pointer: pointer\n };\n }\n\n return attributes;\n};\n\nvar pointer = function(type, normalized, stride, start){\n // console.log(this.location)\n gl.vertexAttribPointer(this.location,this.size, type || gl.FLOAT, normalized || false, stride || 0, start || 0);\n};\n\nmodule.exports = extractAttributes;\n","var mapType = require('./mapType');\nvar defaultValue = require('./defaultValue');\n\n/**\n * Extracts the uniforms\n * @class\n * @memberof PIXI.glCore.shader\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param program {WebGLProgram} The shader program to get the uniforms from\n * @return uniforms {Object}\n */\nvar extractUniforms = function(gl, program)\n{\n\tvar uniforms = {};\n\n var totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n\n for (var i = 0; i < totalUniforms; i++)\n {\n \tvar uniformData = gl.getActiveUniform(program, i);\n \tvar name = uniformData.name.replace(/\\[.*?\\]/, \"\");\n var type = mapType(gl, uniformData.type );\n\n \tuniforms[name] = {\n \t\ttype:type,\n \t\tsize:uniformData.size,\n \t\tlocation:gl.getUniformLocation(program, name),\n \t\tvalue:defaultValue(type, uniformData.size)\n \t};\n }\n\n\treturn uniforms;\n};\n\nmodule.exports = extractUniforms;\n","/**\n * Extracts the attributes\n * @class\n * @memberof PIXI.glCore.shader\n * @param gl {WebGLRenderingContext} The current WebGL rendering context\n * @param uniforms {Array} @mat ?\n * @return attributes {Object}\n */\nvar generateUniformAccessObject = function(gl, uniformData)\n{\n // this is the object we will be sending back.\n // an object hierachy will be created for structs\n var uniforms = {data:{}};\n\n uniforms.gl = gl;\n\n var uniformKeys= Object.keys(uniformData);\n\n for (var i = 0; i < uniformKeys.length; i++)\n {\n var fullName = uniformKeys[i];\n\n var nameTokens = fullName.split('.');\n var name = nameTokens[nameTokens.length - 1];\n\n var uniformGroup = getUniformGroup(nameTokens, uniforms);\n\n var uniform = uniformData[fullName];\n uniformGroup.data[name] = uniform;\n\n uniformGroup.gl = gl;\n\n Object.defineProperty(uniformGroup, name, {\n get: generateGetter(name),\n set: generateSetter(name, uniform)\n });\n }\n\n return uniforms;\n};\n\nvar generateGetter = function(name)\n{\n\tvar template = getterTemplate.replace('%%', name);\n\treturn new Function(template); // jshint ignore:line\n};\n\nvar generateSetter = function(name, uniform)\n{\n var template = setterTemplate.replace(/%%/g, name);\n var setTemplate;\n\n if(uniform.size === 1)\n {\n setTemplate = GLSL_TO_SINGLE_SETTERS[uniform.type];\n }\n else\n {\n setTemplate = GLSL_TO_ARRAY_SETTERS[uniform.type];\n }\n\n if(setTemplate)\n {\n template += \"\\nthis.gl.\" + setTemplate + \";\";\n }\n\n \treturn new Function('value', template); // jshint ignore:line\n};\n\nvar getUniformGroup = function(nameTokens, uniform)\n{\n var cur = uniform;\n\n for (var i = 0; i < nameTokens.length - 1; i++)\n {\n var o = cur[nameTokens[i]] || {data:{}};\n cur[nameTokens[i]] = o;\n cur = o;\n }\n\n return cur;\n};\n\nvar getterTemplate = [\n 'return this.data.%%.value;',\n].join('\\n');\n\nvar setterTemplate = [\n 'this.data.%%.value = value;',\n 'var location = this.data.%%.location;'\n].join('\\n');\n\n\nvar GLSL_TO_SINGLE_SETTERS = {\n\n 'float': 'uniform1f(location, value)',\n\n 'vec2': 'uniform2f(location, value[0], value[1])',\n 'vec3': 'uniform3f(location, value[0], value[1], value[2])',\n 'vec4': 'uniform4f(location, value[0], value[1], value[2], value[3])',\n\n 'int': 'uniform1i(location, value)',\n 'ivec2': 'uniform2i(location, value[0], value[1])',\n 'ivec3': 'uniform3i(location, value[0], value[1], value[2])',\n 'ivec4': 'uniform4i(location, value[0], value[1], value[2], value[3])',\n\n 'bool': 'uniform1i(location, value)',\n 'bvec2': 'uniform2i(location, value[0], value[1])',\n 'bvec3': 'uniform3i(location, value[0], value[1], value[2])',\n 'bvec4': 'uniform4i(location, value[0], value[1], value[2], value[3])',\n\n 'mat2': 'uniformMatrix2fv(location, false, value)',\n 'mat3': 'uniformMatrix3fv(location, false, value)',\n 'mat4': 'uniformMatrix4fv(location, false, value)',\n\n 'sampler2D':'uniform1i(location, value)'\n};\n\nvar GLSL_TO_ARRAY_SETTERS = {\n\n 'float': 'uniform1fv(location, value)',\n\n 'vec2': 'uniform2fv(location, value)',\n 'vec3': 'uniform3fv(location, value)',\n 'vec4': 'uniform4fv(location, value)',\n\n 'int': 'uniform1iv(location, value)',\n 'ivec2': 'uniform2iv(location, value)',\n 'ivec3': 'uniform3iv(location, value)',\n 'ivec4': 'uniform4iv(location, value)',\n\n 'bool': 'uniform1iv(location, value)',\n 'bvec2': 'uniform2iv(location, value)',\n 'bvec3': 'uniform3iv(location, value)',\n 'bvec4': 'uniform4iv(location, value)',\n\n 'sampler2D':'uniform1iv(location, value)'\n};\n\nmodule.exports = generateUniformAccessObject;\n","module.exports = {\n compileProgram: require('./compileProgram'),\n defaultValue: require('./defaultValue'),\n extractAttributes: require('./extractAttributes'),\n extractUniforms: require('./extractUniforms'),\n generateUniformAccessObject: require('./generateUniformAccessObject'),\n mapSize: require('./mapSize'),\n mapType: require('./mapType') \n};","/**\n * @class\n * @memberof PIXI.glCore.shader\n * @param type {String}\n * @return {Number}\n */\nvar mapSize = function(type) \n{ \n return GLSL_TO_SIZE[type];\n};\n\n\nvar GLSL_TO_SIZE = {\n 'float': 1,\n 'vec2': 2,\n 'vec3': 3,\n 'vec4': 4,\n\n 'int': 1,\n 'ivec2': 2,\n 'ivec3': 3,\n 'ivec4': 4,\n\n 'bool': 1,\n 'bvec2': 2,\n 'bvec3': 3,\n 'bvec4': 4,\n\n 'mat2': 4,\n 'mat3': 9,\n 'mat4': 16,\n\n 'sampler2D': 1\n};\n\nmodule.exports = mapSize;\n","\n\nvar mapSize = function(gl, type) \n{\n if(!GL_TABLE) \n {\n var typeNames = Object.keys(GL_TO_GLSL_TYPES);\n\n GL_TABLE = {};\n\n for(var i = 0; i < typeNames.length; ++i) \n {\n var tn = typeNames[i];\n GL_TABLE[ gl[tn] ] = GL_TO_GLSL_TYPES[tn];\n }\n }\n\n return GL_TABLE[type];\n};\n\nvar GL_TABLE = null;\n\nvar GL_TO_GLSL_TYPES = {\n 'FLOAT': 'float',\n 'FLOAT_VEC2': 'vec2',\n 'FLOAT_VEC3': 'vec3',\n 'FLOAT_VEC4': 'vec4',\n\n 'INT': 'int',\n 'INT_VEC2': 'ivec2',\n 'INT_VEC3': 'ivec3',\n 'INT_VEC4': 'ivec4',\n \n 'BOOL': 'bool',\n 'BOOL_VEC2': 'bvec2',\n 'BOOL_VEC3': 'bvec3',\n 'BOOL_VEC4': 'bvec4',\n \n 'FLOAT_MAT2': 'mat2',\n 'FLOAT_MAT3': 'mat3',\n 'FLOAT_MAT4': 'mat4',\n \n 'SAMPLER_2D': 'sampler2D' \n};\n\nmodule.exports = mapSize;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n};\n\n\nexports.basename = function(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\n\nexports.extname = function(path) {\n return splitPath(path)[3];\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","'use strict'\n\nmodule.exports = function parseURI (str, opts) {\n opts = opts || {}\n\n var o = {\n key: ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'],\n q: {\n name: 'queryKey',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g\n },\n parser: {\n strict: /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n }\n\n var m = o.parser[opts.strictMode ? 'strict' : 'loose'].exec(str)\n var uri = {}\n var i = 14\n\n while (i--) uri[o.key[i]] = m[i] || ''\n\n uri[o.q.name] = {}\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) uri[o.q.name][$1] = $2\n })\n\n return uri\n}\n","'use strict';\n\nvar parseUri = require('parse-uri');\nvar async = require('./async');\nvar Resource = require('./Resource');\nvar EventEmitter = require('eventemitter3');\n\n// some constants\nvar DEFAULT_CONCURRENCY = 10;\nvar MAX_PROGRESS = 100;\n\n/**\n * Manages the state and loading of multiple resources to load.\n *\n * @class\n * @param {string} [baseUrl=''] - The base url for all resources loaded by this loader.\n * @param {number} [concurrency=10] - The number of resources to load concurrently.\n */\nfunction Loader(baseUrl, concurrency) {\n EventEmitter.call(this);\n\n concurrency = concurrency || DEFAULT_CONCURRENCY;\n\n /**\n * The base url for all resources loaded by this loader.\n *\n * @member {string}\n */\n this.baseUrl = baseUrl || '';\n\n /**\n * The progress percent of the loader going through the queue.\n *\n * @member {number}\n */\n this.progress = 0;\n\n /**\n * Loading state of the loader, true if it is currently loading resources.\n *\n * @member {boolean}\n */\n this.loading = false;\n\n /**\n * The percentage of total progress that a single resource represents.\n *\n * @member {number}\n */\n this._progressChunk = 0;\n\n /**\n * The middleware to run before loading each resource.\n *\n * @member {function[]}\n */\n this._beforeMiddleware = [];\n\n /**\n * The middleware to run after loading each resource.\n *\n * @member {function[]}\n */\n this._afterMiddleware = [];\n\n /**\n * The `_loadResource` function bound with this object context.\n *\n * @private\n * @member {function}\n */\n this._boundLoadResource = this._loadResource.bind(this);\n\n /**\n * The resource buffer that fills until `load` is called to start loading resources.\n *\n * @private\n * @member {Resource[]}\n */\n this._buffer = [];\n\n /**\n * Used to track load completion.\n *\n * @private\n * @member {number}\n */\n this._numToLoad = 0;\n\n /**\n * The resources waiting to be loaded.\n *\n * @private\n * @member {Resource[]}\n */\n this._queue = async.queue(this._boundLoadResource, concurrency);\n\n /**\n * All the resources for this loader keyed by name.\n *\n * @member {object}\n */\n this.resources = {};\n\n /**\n * Emitted once per loaded or errored resource.\n *\n * @event progress\n * @memberof Loader#\n */\n\n /**\n * Emitted once per errored resource.\n *\n * @event error\n * @memberof Loader#\n */\n\n /**\n * Emitted once per loaded resource.\n *\n * @event load\n * @memberof Loader#\n */\n\n /**\n * Emitted when the loader begins to process the queue.\n *\n * @event start\n * @memberof Loader#\n */\n\n /**\n * Emitted when the queued resources all load.\n *\n * @event complete\n * @memberof Loader#\n */\n}\n\nLoader.prototype = Object.create(EventEmitter.prototype);\nLoader.prototype.constructor = Loader;\nmodule.exports = Loader;\n\n/**\n * Adds a resource (or multiple resources) to the loader queue.\n *\n * This function can take a wide variety of different parameters. The only thing that is always\n * required the url to load. All the following will work:\n *\n * ```js\n * loader\n * // normal param syntax\n * .add('key', 'http://...', function () {})\n * .add('http://...', function () {})\n * .add('http://...')\n *\n * // object syntax\n * .add({\n * name: 'key2',\n * url: 'http://...'\n * }, function () {})\n * .add({\n * url: 'http://...'\n * }, function () {})\n * .add({\n * name: 'key3',\n * url: 'http://...'\n * onComplete: function () {}\n * })\n * .add({\n * url: 'https://...',\n * onComplete: function () {},\n * crossOrigin: true\n * })\n *\n * // you can also pass an array of objects or urls or both\n * .add([\n * { name: 'key4', url: 'http://...', onComplete: function () {} },\n * { url: 'http://...', onComplete: function () {} },\n * 'http://...'\n * ])\n *\n * // and you can use both params and options\n * .add('key', 'http://...', { crossOrigin: true }, function () {})\n * .add('http://...', { crossOrigin: true }, function () {});\n * ```\n *\n * @alias enqueue\n * @param {string} [name] - The name of the resource to load, if not passed the url is used.\n * @param {string} [url] - The url for this resource, relative to the baseUrl of this loader.\n * @param {object} [options] - The options for the load.\n * @param {boolean} [options.crossOrigin] - Is this request cross-origin? Default is to determine automatically.\n * @param {Resource.XHR_LOAD_TYPE} [options.loadType=Resource.LOAD_TYPE.XHR] - How should this resource be loaded?\n * @param {Resource.XHR_RESPONSE_TYPE} [options.xhrType=Resource.XHR_RESPONSE_TYPE.DEFAULT] - How should the data being\n * loaded be interpreted when using XHR?\n * @param {function} [cb] - Function to call when this specific resource completes loading.\n * @return {Loader} Returns itself.\n */\nLoader.prototype.add = Loader.prototype.enqueue = function (name, url, options, cb) {\n // special case of an array of objects or urls\n if (Array.isArray(name)) {\n for (var i = 0; i < name.length; ++i) {\n this.add(name[i]);\n }\n\n return this;\n }\n\n // if an object is passed instead of params\n if (typeof name === 'object') {\n cb = url || name.callback || name.onComplete;\n options = name;\n url = name.url;\n name = name.name || name.key || name.url;\n }\n\n // case where no name is passed shift all args over by one.\n if (typeof url !== 'string') {\n cb = options;\n options = url;\n url = name;\n }\n\n // now that we shifted make sure we have a proper url.\n if (typeof url !== 'string') {\n throw new Error('No url passed to add resource to loader.');\n }\n\n // options are optional so people might pass a function and no options\n if (typeof options === 'function') {\n cb = options;\n options = null;\n }\n\n // check if resource already exists.\n if (this.resources[name]) {\n throw new Error('Resource with name \"' + name + '\" already exists.');\n }\n\n // add base url if this isn't an absolute url\n url = this._prepareUrl(url);\n\n // create the store the resource\n this.resources[name] = new Resource(name, url, options);\n\n if (typeof cb === 'function') {\n this.resources[name].once('afterMiddleware', cb);\n }\n\n this._numToLoad++;\n\n // if already loading add it to the worker queue\n if (this._queue.started) {\n this._queue.push(this.resources[name]);\n this._progressChunk = (MAX_PROGRESS - this.progress) / (this._queue.length() + this._queue.running());\n }\n // otherwise buffer it to be added to the queue later\n else {\n this._buffer.push(this.resources[name]);\n this._progressChunk = MAX_PROGRESS / this._buffer.length;\n }\n\n return this;\n};\n\n/**\n * Sets up a middleware function that will run *before* the\n * resource is loaded.\n *\n * @alias pre\n * @method before\n * @param {function} fn - The middleware function to register.\n * @return {Loader} Returns itself.\n */\nLoader.prototype.before = Loader.prototype.pre = function (fn) {\n this._beforeMiddleware.push(fn);\n\n return this;\n};\n\n/**\n * Sets up a middleware function that will run *after* the\n * resource is loaded.\n *\n * @alias use\n * @method after\n * @param {function} fn - The middleware function to register.\n * @return {Loader} Returns itself.\n */\nLoader.prototype.after = Loader.prototype.use = function (fn) {\n this._afterMiddleware.push(fn);\n\n return this;\n};\n\n/**\n * Resets the queue of the loader to prepare for a new load.\n *\n * @return {Loader} Returns itself.\n */\nLoader.prototype.reset = function () {\n // this.baseUrl = baseUrl || '';\n\n this.progress = 0;\n\n this.loading = false;\n\n this._progressChunk = 0;\n\n // this._beforeMiddleware.length = 0;\n // this._afterMiddleware.length = 0;\n\n this._buffer.length = 0;\n\n this._numToLoad = 0;\n\n this._queue.kill();\n this._queue.started = false;\n\n // abort all resource loads\n for (var k in this.resources) {\n var res = this.resources[k];\n\n res.off('complete', this._onLoad, this);\n\n if (res.isLoading) {\n res.abort();\n }\n }\n\n this.resources = {};\n\n return this;\n};\n\n/**\n * Starts loading the queued resources.\n *\n * @fires start\n * @param {function} [cb] - Optional callback that will be bound to the `complete` event.\n * @return {Loader} Returns itself.\n */\nLoader.prototype.load = function (cb) {\n // register complete callback if they pass one\n if (typeof cb === 'function') {\n this.once('complete', cb);\n }\n\n // if the queue has already started we are done here\n if (this._queue.started) {\n return this;\n }\n\n // notify of start\n this.emit('start', this);\n\n // update loading state\n this.loading = true;\n\n // start the internal queue\n for (var i = 0; i < this._buffer.length; ++i) {\n this._queue.push(this._buffer[i]);\n }\n\n // empty the buffer\n this._buffer.length = 0;\n\n return this;\n};\n\n/**\n * Prepares a url for usage based on the configuration of this object\n *\n * @private\n * @param {string} url - The url to prepare.\n * @return {string} The prepared url.\n */\nLoader.prototype._prepareUrl = function (url) {\n var parsedUrl = parseUri(url, { strictMode: true });\n\n // absolute url, just use it as is.\n if (parsedUrl.protocol || !parsedUrl.path || parsedUrl.path.indexOf('//') === 0) {\n return url;\n }\n\n // if baseUrl doesn't end in slash and url doesn't start with slash, then add a slash inbetween\n if (this.baseUrl.length\n && this.baseUrl.lastIndexOf('/') !== this.baseUrl.length - 1\n && url.charAt(0) !== '/'\n ) {\n return this.baseUrl + '/' + url;\n }\n\n return this.baseUrl + url;\n};\n\n/**\n * Loads a single resource.\n *\n * @private\n * @param {Resource} resource - The resource to load.\n * @param {function} dequeue - The function to call when we need to dequeue this item.\n */\nLoader.prototype._loadResource = function (resource, dequeue) {\n var self = this;\n\n resource._dequeue = dequeue;\n\n // run before middleware\n async.eachSeries(\n this._beforeMiddleware,\n function (fn, next) {\n fn.call(self, resource, function () {\n // if the before middleware marks the resource as complete,\n // break and don't process any more before middleware\n next(resource.isComplete ? {} : null);\n });\n },\n function () {\n // resource.on('progress', self.emit.bind(self, 'progress'));\n\n if (resource.isComplete) {\n self._onLoad(resource);\n }\n else {\n resource.once('complete', self._onLoad, self);\n resource.load();\n }\n }\n );\n};\n\n/**\n * Called once each resource has loaded.\n *\n * @fires complete\n * @private\n */\nLoader.prototype._onComplete = function () {\n this.loading = false;\n\n this.emit('complete', this, this.resources);\n};\n\n/**\n * Called each time a resources is loaded.\n *\n * @fires progress\n * @fires error\n * @fires load\n * @private\n * @param {Resource} resource - The resource that was loaded\n */\nLoader.prototype._onLoad = function (resource) {\n var self = this;\n\n // run middleware, this *must* happen before dequeue so sub-assets get added properly\n async.eachSeries(\n this._afterMiddleware,\n function (fn, next) {\n fn.call(self, resource, next);\n },\n function () {\n resource.emit('afterMiddleware', resource);\n\n self._numToLoad--;\n\n self.progress += self._progressChunk;\n self.emit('progress', self, resource);\n\n if (resource.error) {\n self.emit('error', resource.error, self, resource);\n }\n else {\n self.emit('load', self, resource);\n }\n\n // do completion check\n if (self._numToLoad === 0) {\n self.progress = 100;\n self._onComplete();\n }\n }\n );\n\n // remove this resource from the async queue\n resource._dequeue();\n};\n\nLoader.LOAD_TYPE = Resource.LOAD_TYPE;\nLoader.XHR_RESPONSE_TYPE = Resource.XHR_RESPONSE_TYPE;\n","'use strict';\n\nvar EventEmitter = require('eventemitter3');\nvar parseUri = require('parse-uri');\n\n// tests is CORS is supported in XHR, if not we need to use XDR\nvar useXdr = !!(window.XDomainRequest && !('withCredentials' in (new XMLHttpRequest())));\nvar tempAnchor = null;\n\n// some status constants\nvar STATUS_NONE = 0;\nvar STATUS_OK = 200;\nvar STATUS_EMPTY = 204;\n\n/**\n * Manages the state and loading of a single resource represented by\n * a single URL.\n *\n * @class\n * @param {string} name - The name of the resource to load.\n * @param {string|string[]} url - The url for this resource, for audio/video loads you can pass an array of sources.\n * @param {object} [options] - The options for the load.\n * @param {string|boolean} [options.crossOrigin] - Is this request cross-origin? Default is to determine automatically.\n * @param {Resource.LOAD_TYPE} [options.loadType=Resource.LOAD_TYPE.XHR] - How should this resource be loaded?\n * @param {Resource.XHR_RESPONSE_TYPE} [options.xhrType=Resource.XHR_RESPONSE_TYPE.DEFAULT] - How should the data being\n * loaded be interpreted when using XHR?\n * @param {object} [options.metadata] - Extra info for middleware.\n */\nfunction Resource(name, url, options) {\n EventEmitter.call(this);\n\n options = options || {};\n\n if (typeof name !== 'string' || typeof url !== 'string') {\n throw new Error('Both name and url are required for constructing a resource.');\n }\n\n /**\n * The name of this resource.\n *\n * @member {string}\n * @readonly\n */\n this.name = name;\n\n /**\n * The url used to load this resource.\n *\n * @member {string}\n * @readonly\n */\n this.url = url;\n\n /**\n * Stores whether or not this url is a data url.\n *\n * @member {boolean}\n * @readonly\n */\n this.isDataUrl = this.url.indexOf('data:') === 0;\n\n /**\n * The data that was loaded by the resource.\n *\n * @member {any}\n */\n this.data = null;\n\n /**\n * Is this request cross-origin? If unset, determined automatically.\n *\n * @member {string}\n */\n this.crossOrigin = options.crossOrigin === true ? 'anonymous' : options.crossOrigin;\n\n /**\n * The method of loading to use for this resource.\n *\n * @member {Resource.LOAD_TYPE}\n */\n this.loadType = options.loadType || this._determineLoadType();\n\n /**\n * The type used to load the resource via XHR. If unset, determined automatically.\n *\n * @member {string}\n */\n this.xhrType = options.xhrType;\n\n /**\n * Extra info for middleware, and controlling specifics about how the resource loads.\n *\n * Note that if you pass in a `loadElement`, the Resource class takes ownership of it.\n * Meaning it will modify it as it sees fit.\n *\n * @member {object}\n * @property {HTMLImageElement|HTMLAudioElement|HTMLVideoElement} [loadElement=null] - The\n * element to use for loading, instead of creating one.\n * @property {boolean} [skipSource=false] - Skips adding source(s) to the load element. This\n * is useful if you want to pass in a `loadElement` that you already added load sources\n * to.\n */\n this.metadata = options.metadata || {};\n\n /**\n * The error that occurred while loading (if any).\n *\n * @member {Error}\n * @readonly\n */\n this.error = null;\n\n /**\n * The XHR object that was used to load this resource. This is only set\n * when `loadType` is `Resource.LOAD_TYPE.XHR`.\n *\n * @member {XMLHttpRequest}\n */\n this.xhr = null;\n\n /**\n * Describes if this resource was loaded as json. Only valid after the resource\n * has completely loaded.\n *\n * @member {boolean}\n */\n this.isJson = false;\n\n /**\n * Describes if this resource was loaded as xml. Only valid after the resource\n * has completely loaded.\n *\n * @member {boolean}\n */\n this.isXml = false;\n\n /**\n * Describes if this resource was loaded as an image tag. Only valid after the resource\n * has completely loaded.\n *\n * @member {boolean}\n */\n this.isImage = false;\n\n /**\n * Describes if this resource was loaded as an audio tag. Only valid after the resource\n * has completely loaded.\n *\n * @member {boolean}\n */\n this.isAudio = false;\n\n /**\n * Describes if this resource was loaded as a video tag. Only valid after the resource\n * has completely loaded.\n *\n * @member {boolean}\n */\n this.isVideo = false;\n\n /**\n * Describes if this resource has finished loading. Is true when the resource has completely\n * loaded.\n *\n * @member {boolean}\n */\n this.isComplete = false;\n\n /**\n * Describes if this resource is currently loading. Is true when the resource starts loading,\n * and is false again when complete.\n *\n * @member {boolean}\n */\n this.isLoading = false;\n\n /**\n * The `dequeue` method that will be used a storage place for the async queue dequeue method\n * used privately by the loader.\n *\n * @private\n * @member {function}\n */\n this._dequeue = null;\n\n /**\n * The `complete` function bound to this resource's context.\n *\n * @private\n * @member {function}\n */\n this._boundComplete = this.complete.bind(this);\n\n /**\n * The `_onError` function bound to this resource's context.\n *\n * @private\n * @member {function}\n */\n this._boundOnError = this._onError.bind(this);\n\n /**\n * The `_onProgress` function bound to this resource's context.\n *\n * @private\n * @member {function}\n */\n this._boundOnProgress = this._onProgress.bind(this);\n\n // xhr callbacks\n this._boundXhrOnError = this._xhrOnError.bind(this);\n this._boundXhrOnAbort = this._xhrOnAbort.bind(this);\n this._boundXhrOnLoad = this._xhrOnLoad.bind(this);\n this._boundXdrOnTimeout = this._xdrOnTimeout.bind(this);\n\n /**\n * Emitted when the resource beings to load.\n *\n * @event start\n * @memberof Resource#\n */\n\n /**\n * Emitted each time progress of this resource load updates.\n * Not all resources types and loader systems can support this event\n * so sometimes it may not be available. If the resource\n * is being loaded on a modern browser, using XHR, and the remote server\n * properly sets Content-Length headers, then this will be available.\n *\n * @event progress\n * @memberof Resource#\n */\n\n /**\n * Emitted once this resource has loaded, if there was an error it will\n * be in the `error` property.\n *\n * @event complete\n * @memberof Resource#\n */\n}\n\nResource.prototype = Object.create(EventEmitter.prototype);\nResource.prototype.constructor = Resource;\nmodule.exports = Resource;\n\n/**\n * Marks the resource as complete.\n *\n * @fires complete\n */\nResource.prototype.complete = function () {\n // TODO: Clean this up in a wrapper or something...gross....\n if (this.data && this.data.removeEventListener) {\n this.data.removeEventListener('error', this._boundOnError, false);\n this.data.removeEventListener('load', this._boundComplete, false);\n this.data.removeEventListener('progress', this._boundOnProgress, false);\n this.data.removeEventListener('canplaythrough', this._boundComplete, false);\n }\n\n if (this.xhr) {\n if (this.xhr.removeEventListener) {\n this.xhr.removeEventListener('error', this._boundXhrOnError, false);\n this.xhr.removeEventListener('abort', this._boundXhrOnAbort, false);\n this.xhr.removeEventListener('progress', this._boundOnProgress, false);\n this.xhr.removeEventListener('load', this._boundXhrOnLoad, false);\n }\n else {\n this.xhr.onerror = null;\n this.xhr.ontimeout = null;\n this.xhr.onprogress = null;\n this.xhr.onload = null;\n }\n }\n\n if (this.isComplete) {\n throw new Error('Complete called again for an already completed resource.');\n }\n\n this.isComplete = true;\n this.isLoading = false;\n\n this.emit('complete', this);\n};\n\n/**\n * Aborts the loading of this resource, with an optional message.\n *\n * @param {string} message - The message to use for the error\n */\nResource.prototype.abort = function (message) {\n // abort can be called multiple times, ignore subsequent calls.\n if (this.error) {\n return;\n }\n\n // store error\n this.error = new Error(message);\n\n // abort the actual loading\n if (this.xhr) {\n this.xhr.abort();\n }\n else if (this.xdr) {\n this.xdr.abort();\n }\n else if (this.data) {\n // single source\n if (typeof this.data.src !== 'undefined') {\n this.data.src = '';\n }\n // multi-source\n else {\n while (this.data.firstChild) {\n this.data.removeChild(this.data.firstChild);\n }\n }\n }\n\n // done now.\n this.complete();\n};\n\n/**\n * Kicks off loading of this resource. This method is asynchronous.\n *\n * @fires start\n * @param {function} [cb] - Optional callback to call once the resource is loaded.\n */\nResource.prototype.load = function (cb) {\n if (this.isLoading) {\n return;\n }\n\n if (this.isComplete) {\n if (cb) {\n var self = this;\n\n setTimeout(function () {\n cb(self);\n }, 1);\n }\n\n return;\n }\n else if (cb) {\n this.once('complete', cb);\n }\n\n this.isLoading = true;\n\n this.emit('start', this);\n\n // if unset, determine the value\n if (this.crossOrigin === false || typeof this.crossOrigin !== 'string') {\n this.crossOrigin = this._determineCrossOrigin(this.url);\n }\n\n switch (this.loadType) {\n case Resource.LOAD_TYPE.IMAGE:\n this._loadElement('image');\n break;\n\n case Resource.LOAD_TYPE.AUDIO:\n this._loadSourceElement('audio');\n break;\n\n case Resource.LOAD_TYPE.VIDEO:\n this._loadSourceElement('video');\n break;\n\n case Resource.LOAD_TYPE.XHR:\n /* falls through */\n default:\n if (useXdr && this.crossOrigin) {\n this._loadXdr();\n }\n else {\n this._loadXhr();\n }\n break;\n }\n};\n\n/**\n * Loads this resources using an element that has a single source,\n * like an HTMLImageElement.\n *\n * @private\n * @param {string} type - The type of element to use.\n */\nResource.prototype._loadElement = function (type) {\n if (this.metadata.loadElement) {\n this.data = this.metadata.loadElement;\n }\n else if (type === 'image' && typeof window.Image !== 'undefined') {\n this.data = new Image();\n }\n else {\n this.data = document.createElement(type);\n }\n\n if (this.crossOrigin) {\n this.data.crossOrigin = this.crossOrigin;\n }\n\n if (!this.metadata.skipSource) {\n this.data.src = this.url;\n }\n\n var typeName = 'is' + type[0].toUpperCase() + type.substring(1);\n\n if (this[typeName] === false) {\n this[typeName] = true;\n }\n\n this.data.addEventListener('error', this._boundOnError, false);\n this.data.addEventListener('load', this._boundComplete, false);\n this.data.addEventListener('progress', this._boundOnProgress, false);\n};\n\n/**\n * Loads this resources using an element that has multiple sources,\n * like an HTMLAudioElement or HTMLVideoElement.\n *\n * @private\n * @param {string} type - The type of element to use.\n */\nResource.prototype._loadSourceElement = function (type) {\n if (this.metadata.loadElement) {\n this.data = this.metadata.loadElement;\n }\n else if (type === 'audio' && typeof window.Audio !== 'undefined') {\n this.data = new Audio();\n }\n else {\n this.data = document.createElement(type);\n }\n\n if (this.data === null) {\n this.abort('Unsupported element ' + type);\n\n return;\n }\n\n if (!this.metadata.skipSource) {\n // support for CocoonJS Canvas+ runtime, lacks document.createElement('source')\n if (navigator.isCocoonJS) {\n this.data.src = Array.isArray(this.url) ? this.url[0] : this.url;\n }\n else if (Array.isArray(this.url)) {\n for (var i = 0; i < this.url.length; ++i) {\n this.data.appendChild(this._createSource(type, this.url[i]));\n }\n }\n else {\n this.data.appendChild(this._createSource(type, this.url));\n }\n }\n\n this['is' + type[0].toUpperCase() + type.substring(1)] = true;\n\n this.data.addEventListener('error', this._boundOnError, false);\n this.data.addEventListener('load', this._boundComplete, false);\n this.data.addEventListener('progress', this._boundOnProgress, false);\n this.data.addEventListener('canplaythrough', this._boundComplete, false);\n\n this.data.load();\n};\n\n/**\n * Loads this resources using an XMLHttpRequest.\n *\n * @private\n */\nResource.prototype._loadXhr = function () {\n // if unset, determine the value\n if (typeof this.xhrType !== 'string') {\n this.xhrType = this._determineXhrType();\n }\n\n var xhr = this.xhr = new XMLHttpRequest();\n\n // set the request type and url\n xhr.open('GET', this.url, true);\n\n // load json as text and parse it ourselves. We do this because some browsers\n // *cough* safari *cough* can't deal with it.\n if (this.xhrType === Resource.XHR_RESPONSE_TYPE.JSON || this.xhrType === Resource.XHR_RESPONSE_TYPE.DOCUMENT) {\n xhr.responseType = Resource.XHR_RESPONSE_TYPE.TEXT;\n }\n else {\n xhr.responseType = this.xhrType;\n }\n\n xhr.addEventListener('error', this._boundXhrOnError, false);\n xhr.addEventListener('abort', this._boundXhrOnAbort, false);\n xhr.addEventListener('progress', this._boundOnProgress, false);\n xhr.addEventListener('load', this._boundXhrOnLoad, false);\n\n xhr.send();\n};\n\n/**\n * Loads this resources using an XDomainRequest. This is here because we need to support IE9 (gross).\n *\n * @private\n */\nResource.prototype._loadXdr = function () {\n // if unset, determine the value\n if (typeof this.xhrType !== 'string') {\n this.xhrType = this._determineXhrType();\n }\n\n var xdr = this.xhr = new XDomainRequest();\n\n // XDomainRequest has a few quirks. Occasionally it will abort requests\n // A way to avoid this is to make sure ALL callbacks are set even if not used\n // More info here: http://stackoverflow.com/questions/15786966/xdomainrequest-aborts-post-on-ie-9\n xdr.timeout = 5000;\n\n xdr.onerror = this._boundXhrOnError;\n xdr.ontimeout = this._boundXdrOnTimeout;\n xdr.onprogress = this._boundOnProgress;\n xdr.onload = this._boundXhrOnLoad;\n\n xdr.open('GET', this.url, true);\n\n // Note: The xdr.send() call is wrapped in a timeout to prevent an\n // issue with the interface where some requests are lost if multiple\n // XDomainRequests are being sent at the same time.\n // Some info here: https://github.com/photonstorm/phaser/issues/1248\n setTimeout(function () {\n xdr.send();\n }, 0);\n};\n\n/**\n * Creates a source used in loading via an element.\n *\n * @private\n * @param {string} type - The element type (video or audio).\n * @param {string} url - The source URL to load from.\n * @param {string} [mime] - The mime type of the video\n * @return {HTMLSourceElement} The source element.\n */\nResource.prototype._createSource = function (type, url, mime) {\n if (!mime) {\n mime = type + '/' + url.substr(url.lastIndexOf('.') + 1);\n }\n\n var source = document.createElement('source');\n\n source.src = url;\n source.type = mime;\n\n return source;\n};\n\n/**\n * Called if a load errors out.\n *\n * @param {Event} event - The error event from the element that emits it.\n * @private\n */\nResource.prototype._onError = function (event) {\n this.abort('Failed to load element using ' + event.target.nodeName);\n};\n\n/**\n * Called if a load progress event fires for xhr/xdr.\n *\n * @fires progress\n * @private\n * @param {XMLHttpRequestProgressEvent|Event} event - Progress event.\n */\nResource.prototype._onProgress = function (event) {\n if (event && event.lengthComputable) {\n this.emit('progress', this, event.loaded / event.total);\n }\n};\n\n/**\n * Called if an error event fires for xhr/xdr.\n *\n * @private\n * @param {XMLHttpRequestErrorEvent|Event} event - Error event.\n */\nResource.prototype._xhrOnError = function () {\n var xhr = this.xhr;\n\n this.abort(reqType(xhr) + ' Request failed. Status: ' + xhr.status + ', text: \"' + xhr.statusText + '\"');\n};\n\n/**\n * Called if an abort event fires for xhr.\n *\n * @private\n * @param {XMLHttpRequestAbortEvent} event - Abort Event\n */\nResource.prototype._xhrOnAbort = function () {\n this.abort(reqType(this.xhr) + ' Request was aborted by the user.');\n};\n\n/**\n * Called if a timeout event fires for xdr.\n *\n * @private\n * @param {Event} event - Timeout event.\n */\nResource.prototype._xdrOnTimeout = function () {\n this.abort(reqType(this.xhr) + ' Request timed out.');\n};\n\n/**\n * Called when data successfully loads from an xhr/xdr request.\n *\n * @private\n * @param {XMLHttpRequestLoadEvent|Event} event - Load event\n */\nResource.prototype._xhrOnLoad = function () {\n var xhr = this.xhr;\n var status = typeof xhr.status === 'undefined' ? xhr.status : STATUS_OK; // XDR has no `.status`, assume 200.\n\n // status can be 0 when using the file:// protocol, also check if a response was found\n if (status === STATUS_OK || status === STATUS_EMPTY || (status === STATUS_NONE && xhr.responseText.length > 0)) {\n // if text, just return it\n if (this.xhrType === Resource.XHR_RESPONSE_TYPE.TEXT) {\n this.data = xhr.responseText;\n }\n // if json, parse into json object\n else if (this.xhrType === Resource.XHR_RESPONSE_TYPE.JSON) {\n try {\n this.data = JSON.parse(xhr.responseText);\n this.isJson = true;\n }\n catch (e) {\n this.abort('Error trying to parse loaded json:', e);\n\n return;\n }\n }\n // if xml, parse into an xml document or div element\n else if (this.xhrType === Resource.XHR_RESPONSE_TYPE.DOCUMENT) {\n try {\n if (window.DOMParser) {\n var domparser = new DOMParser();\n\n this.data = domparser.parseFromString(xhr.responseText, 'text/xml');\n }\n else {\n var div = document.createElement('div');\n\n div.innerHTML = xhr.responseText;\n this.data = div;\n }\n this.isXml = true;\n }\n catch (e) {\n this.abort('Error trying to parse loaded xml:', e);\n\n return;\n }\n }\n // other types just return the response\n else {\n this.data = xhr.response || xhr.responseText;\n }\n }\n else {\n this.abort('[' + xhr.status + ']' + xhr.statusText + ':' + xhr.responseURL);\n\n return;\n }\n\n this.complete();\n};\n\n/**\n * Sets the `crossOrigin` property for this resource based on if the url\n * for this resource is cross-origin. If crossOrigin was manually set, this\n * function does nothing.\n *\n * @private\n * @param {string} url - The url to test.\n * @param {object} [loc=window.location] - The location object to test against.\n * @return {string} The crossOrigin value to use (or empty string for none).\n */\nResource.prototype._determineCrossOrigin = function (url, loc) {\n // data: and javascript: urls are considered same-origin\n if (url.indexOf('data:') === 0) {\n return '';\n }\n\n // default is window.location\n loc = loc || window.location;\n\n if (!tempAnchor) {\n tempAnchor = document.createElement('a');\n }\n\n // let the browser determine the full href for the url of this resource and then\n // parse with the node url lib, we can't use the properties of the anchor element\n // because they don't work in IE9 :(\n tempAnchor.href = url;\n url = parseUri(tempAnchor.href, { strictMode: true });\n\n var samePort = (!url.port && loc.port === '') || (url.port === loc.port);\n var protocol = url.protocol ? url.protocol + ':' : '';\n\n // if cross origin\n if (url.host !== loc.hostname || !samePort || protocol !== loc.protocol) {\n return 'anonymous';\n }\n\n return '';\n};\n\n/**\n * Determines the responseType of an XHR request based on the extension of the\n * resource being loaded.\n *\n * @private\n * @return {Resource.XHR_RESPONSE_TYPE} The responseType to use.\n */\nResource.prototype._determineXhrType = function () {\n return Resource._xhrTypeMap[this._getExtension()] || Resource.XHR_RESPONSE_TYPE.TEXT;\n};\n\nResource.prototype._determineLoadType = function () {\n return Resource._loadTypeMap[this._getExtension()] || Resource.LOAD_TYPE.XHR;\n};\n\nResource.prototype._getExtension = function () {\n var url = this.url;\n var ext = '';\n\n if (this.isDataUrl) {\n var slashIndex = url.indexOf('/');\n\n ext = url.substring(slashIndex + 1, url.indexOf(';', slashIndex));\n }\n else {\n var queryStart = url.indexOf('?');\n\n if (queryStart !== -1) {\n url = url.substring(0, queryStart);\n }\n\n ext = url.substring(url.lastIndexOf('.') + 1);\n }\n\n return ext.toLowerCase();\n};\n\n/**\n * Determines the mime type of an XHR request based on the responseType of\n * resource being loaded.\n *\n * @private\n * @param {Resource.XHR_RESPONSE_TYPE} type - The type to get a mime type for.\n * @return {string} The mime type to use.\n */\nResource.prototype._getMimeFromXhrType = function (type) {\n switch (type) {\n case Resource.XHR_RESPONSE_TYPE.BUFFER:\n return 'application/octet-binary';\n\n case Resource.XHR_RESPONSE_TYPE.BLOB:\n return 'application/blob';\n\n case Resource.XHR_RESPONSE_TYPE.DOCUMENT:\n return 'application/xml';\n\n case Resource.XHR_RESPONSE_TYPE.JSON:\n return 'application/json';\n\n case Resource.XHR_RESPONSE_TYPE.DEFAULT:\n case Resource.XHR_RESPONSE_TYPE.TEXT:\n /* falls through */\n default:\n return 'text/plain';\n\n }\n};\n\n/**\n * Quick helper to get string xhr type.\n *\n * @ignore\n * @param {XMLHttpRequest|XDomainRequest} xhr - The request to check.\n * @return {string} The type.\n */\nfunction reqType(xhr) {\n return xhr.toString().replace('object ', '');\n}\n\n/**\n * The types of loading a resource can use.\n *\n * @static\n * @readonly\n * @enum {number}\n */\nResource.LOAD_TYPE = {\n /** Uses XMLHttpRequest to load the resource. */\n XHR: 1,\n /** Uses an `Image` object to load the resource. */\n IMAGE: 2,\n /** Uses an `Audio` object to load the resource. */\n AUDIO: 3,\n /** Uses a `Video` object to load the resource. */\n VIDEO: 4\n};\n\n/**\n * The XHR ready states, used internally.\n *\n * @static\n * @readonly\n * @enum {string}\n */\nResource.XHR_RESPONSE_TYPE = {\n /** defaults to text */\n DEFAULT: 'text',\n /** ArrayBuffer */\n BUFFER: 'arraybuffer',\n /** Blob */\n BLOB: 'blob',\n /** Document */\n DOCUMENT: 'document',\n /** Object */\n JSON: 'json',\n /** String */\n TEXT: 'text'\n};\n\nResource._loadTypeMap = {\n gif: Resource.LOAD_TYPE.IMAGE,\n png: Resource.LOAD_TYPE.IMAGE,\n bmp: Resource.LOAD_TYPE.IMAGE,\n jpg: Resource.LOAD_TYPE.IMAGE,\n jpeg: Resource.LOAD_TYPE.IMAGE,\n tif: Resource.LOAD_TYPE.IMAGE,\n tiff: Resource.LOAD_TYPE.IMAGE,\n webp: Resource.LOAD_TYPE.IMAGE,\n tga: Resource.LOAD_TYPE.IMAGE,\n 'svg+xml': Resource.LOAD_TYPE.IMAGE\n};\n\nResource._xhrTypeMap = {\n // xml\n xhtml: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n html: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n htm: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n xml: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n tmx: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n tsx: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n svg: Resource.XHR_RESPONSE_TYPE.DOCUMENT,\n\n // images\n gif: Resource.XHR_RESPONSE_TYPE.BLOB,\n png: Resource.XHR_RESPONSE_TYPE.BLOB,\n bmp: Resource.XHR_RESPONSE_TYPE.BLOB,\n jpg: Resource.XHR_RESPONSE_TYPE.BLOB,\n jpeg: Resource.XHR_RESPONSE_TYPE.BLOB,\n tif: Resource.XHR_RESPONSE_TYPE.BLOB,\n tiff: Resource.XHR_RESPONSE_TYPE.BLOB,\n webp: Resource.XHR_RESPONSE_TYPE.BLOB,\n tga: Resource.XHR_RESPONSE_TYPE.BLOB,\n\n // json\n json: Resource.XHR_RESPONSE_TYPE.JSON,\n\n // text\n text: Resource.XHR_RESPONSE_TYPE.TEXT,\n txt: Resource.XHR_RESPONSE_TYPE.TEXT\n};\n\n/**\n * Sets the load type to be used for a specific extension.\n *\n * @static\n * @param {string} extname - The extension to set the type for, e.g. \"png\" or \"fnt\"\n * @param {Resource.LOAD_TYPE} loadType - The load type to set it to.\n */\nResource.setExtensionLoadType = function (extname, loadType) {\n setExtMap(Resource._loadTypeMap, extname, loadType);\n};\n\n/**\n * Sets the load type to be used for a specific extension.\n *\n * @static\n * @param {string} extname - The extension to set the type for, e.g. \"png\" or \"fnt\"\n * @param {Resource.XHR_RESPONSE_TYPE} xhrType - The xhr type to set it to.\n */\nResource.setExtensionXhrType = function (extname, xhrType) {\n setExtMap(Resource._xhrTypeMap, extname, xhrType);\n};\n\nfunction setExtMap(map, extname, val) {\n if (extname && extname.indexOf('.') === 0) {\n extname = extname.substring(1);\n }\n\n if (!extname) {\n return;\n }\n\n map[extname] = val;\n}\n","'use strict';\n\n/**\n * Smaller version of the async library constructs.\n *\n */\n\nmodule.exports = {\n eachSeries: asyncEachSeries,\n queue: asyncQueue\n};\n\nfunction _noop() { /* empty */ }\n\n/**\n * Iterates an array in series.\n *\n * @param {*[]} array - Array to iterate.\n * @param {function} iterator - Function to call for each element.\n * @param {function} callback - Function to call when done, or on error.\n */\nfunction asyncEachSeries(array, iterator, callback) {\n var i = 0;\n var len = array.length;\n\n (function next(err) {\n if (err || i === len) {\n if (callback) {\n callback(err);\n }\n\n return;\n }\n\n iterator(array[i++], next);\n })();\n}\n\n/**\n * Ensures a function is only called once.\n *\n * @param {function} fn - The function to wrap.\n * @return {function} The wrapping function.\n */\nfunction onlyOnce(fn) {\n return function onceWrapper() {\n if (fn === null) {\n throw new Error('Callback was already called.');\n }\n\n var callFn = fn;\n\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\n/**\n * Async queue implementation,\n *\n * @param {function} worker - The worker function to call for each task.\n * @param {number} concurrency - How many workers to run in parrallel.\n * @return {*} The async queue object.\n */\nfunction asyncQueue(worker, concurrency) {\n if (concurrency == null) { // eslint-disable-line no-eq-null,eqeqeq\n concurrency = 1;\n }\n else if (concurrency === 0) {\n throw new Error('Concurrency must not be zero');\n }\n\n var workers = 0;\n var q = {\n _tasks: [],\n concurrency: concurrency,\n saturated: _noop,\n unsaturated: _noop,\n buffer: concurrency / 4,\n empty: _noop,\n drain: _noop,\n error: _noop,\n started: false,\n paused: false,\n push: function (data, callback) {\n _insert(data, false, callback);\n },\n kill: function () {\n q.drain = _noop;\n q._tasks = [];\n },\n unshift: function (data, callback) {\n _insert(data, true, callback);\n },\n process: function () {\n while (!q.paused && workers < q.concurrency && q._tasks.length) {\n var task = q._tasks.shift();\n\n if (q._tasks.length === 0) {\n q.empty();\n }\n\n workers += 1;\n\n if (workers === q.concurrency) {\n q.saturated();\n }\n\n worker(task.data, onlyOnce(_next(task)));\n }\n },\n length: function () {\n return q._tasks.length;\n },\n running: function () {\n return workers;\n },\n idle: function () {\n return q._tasks.length + workers === 0;\n },\n pause: function () {\n if (q.paused === true) {\n return;\n }\n\n q.paused = true;\n },\n resume: function () {\n if (q.paused === false) {\n return;\n }\n\n q.paused = false;\n\n // Need to call q.process once per concurrent\n // worker to preserve full concurrency after pause\n for (var w = 1; w <= q.concurrency; w++) {\n q.process();\n }\n }\n };\n\n function _insert(data, insertAtFront, callback) {\n if (callback != null && typeof callback !== 'function') { // eslint-disable-line no-eq-null,eqeqeq\n throw new Error('task callback must be a function');\n }\n\n q.started = true;\n\n if (data == null && q.idle()) { // eslint-disable-line no-eq-null,eqeqeq\n // call drain immediately if there are no tasks\n setTimeout(function () {\n q.drain();\n }, 1);\n\n return;\n }\n\n var item = {\n data: data,\n callback: typeof callback === 'function' ? callback : _noop\n };\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n }\n else {\n q._tasks.push(item);\n }\n\n setTimeout(function () {\n q.process();\n }, 1);\n }\n\n function _next(task) {\n return function () {\n workers -= 1;\n\n task.callback.apply(task, arguments);\n\n if (arguments[0] != null) { // eslint-disable-line no-eq-null,eqeqeq\n q.error(arguments[0], task.data);\n }\n\n if (workers <= (q.concurrency - q.buffer)) {\n q.unsaturated();\n }\n\n if (q.idle()) {\n q.drain();\n }\n\n q.process();\n };\n }\n\n return q;\n}\n","/* eslint no-magic-numbers: 0 */\n'use strict';\n\nmodule.exports = {\n // private property\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\n encodeBinary: function (input) {\n var output = '';\n var bytebuffer;\n var encodedCharIndexes = new Array(4);\n var inx = 0;\n var jnx = 0;\n var paddingBytes = 0;\n\n while (inx < input.length) {\n // Fill byte buffer array\n bytebuffer = new Array(3);\n\n for (jnx = 0; jnx < bytebuffer.length; jnx++) {\n if (inx < input.length) {\n // throw away high-order byte, as documented at:\n // https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data\n bytebuffer[jnx] = input.charCodeAt(inx++) & 0xff;\n }\n else {\n bytebuffer[jnx] = 0;\n }\n }\n\n // Get each encoded character, 6 bits at a time\n // index 1: first 6 bits\n encodedCharIndexes[0] = bytebuffer[0] >> 2;\n // index 2: second 6 bits (2 least significant bits from input byte 1 + 4 most significant bits from byte 2)\n encodedCharIndexes[1] = ((bytebuffer[0] & 0x3) << 4) | (bytebuffer[1] >> 4);\n // index 3: third 6 bits (4 least significant bits from input byte 2 + 2 most significant bits from byte 3)\n encodedCharIndexes[2] = ((bytebuffer[1] & 0x0f) << 2) | (bytebuffer[2] >> 6);\n // index 3: forth 6 bits (6 least significant bits from input byte 3)\n encodedCharIndexes[3] = bytebuffer[2] & 0x3f;\n\n // Determine whether padding happened, and adjust accordingly\n paddingBytes = inx - (input.length - 1);\n switch (paddingBytes) {\n case 2:\n // Set last 2 characters to padding char\n encodedCharIndexes[3] = 64;\n encodedCharIndexes[2] = 64;\n break;\n\n case 1:\n // Set last character to padding char\n encodedCharIndexes[3] = 64;\n break;\n\n default:\n break; // No padding - proceed\n }\n\n // Now we will grab each appropriate character out of our keystring\n // based on our index array and append it to the output string\n for (jnx = 0; jnx < encodedCharIndexes.length; jnx++) {\n output += this._keyStr.charAt(encodedCharIndexes[jnx]);\n }\n }\n\n return output;\n }\n};\n","/* eslint global-require: 0 */\n'use strict';\n\nmodule.exports = require('./Loader');\nmodule.exports.Resource = require('./Resource');\nmodule.exports.middleware = {\n caching: {\n memory: require('./middlewares/caching/memory')\n },\n parsing: {\n blob: require('./middlewares/parsing/blob')\n }\n};\n\nmodule.exports.async = require('./async');\n","'use strict';\n\n// a simple in-memory cache for resources\nvar cache = {};\n\nmodule.exports = function () {\n return function (resource, next) {\n // if cached, then set data and complete the resource\n if (cache[resource.url]) {\n resource.data = cache[resource.url];\n resource.complete(); // marks resource load complete and stops processing before middlewares\n }\n // if not cached, wait for complete and store it in the cache.\n else {\n resource.once('complete', function () {\n cache[this.url] = this.data;\n });\n }\n\n next();\n };\n};\n","'use strict';\n\nvar Resource = require('../../Resource');\nvar b64 = require('../../b64');\n\nvar Url = window.URL || window.webkitURL;\n\n// a middleware for transforming XHR loaded Blobs into more useful objects\n\nmodule.exports = function () {\n return function (resource, next) {\n if (!resource.data) {\n next();\n\n return;\n }\n\n // if this was an XHR load of a blob\n if (resource.xhr && resource.xhrType === Resource.XHR_RESPONSE_TYPE.BLOB) {\n // if there is no blob support we probably got a binary string back\n if (!window.Blob || typeof resource.data === 'string') {\n var type = resource.xhr.getResponseHeader('content-type');\n\n // this is an image, convert the binary string into a data url\n if (type && type.indexOf('image') === 0) {\n resource.data = new Image();\n resource.data.src = 'data:' + type + ';base64,' + b64.encodeBinary(resource.xhr.responseText);\n\n resource.isImage = true;\n\n // wait until the image loads and then callback\n resource.data.onload = function () {\n resource.data.onload = null;\n\n next();\n };\n\n // next will be called on load\n return;\n }\n }\n // if content type says this is an image, then we should transform the blob into an Image object\n else if (resource.data.type.indexOf('image') === 0) {\n var src = Url.createObjectURL(resource.data);\n\n resource.blob = resource.data;\n resource.data = new Image();\n resource.data.src = src;\n\n resource.isImage = true;\n\n // cleanup the no longer used blob after the image loads\n resource.data.onload = function () {\n Url.revokeObjectURL(src);\n resource.data.onload = null;\n\n next();\n };\n\n // next will be called on load.\n return;\n }\n }\n\n next();\n };\n};\n","import * as core from '../core';\nimport Device from 'ismobilejs';\nimport accessibleTarget from './accessibleTarget';\n\n// add some extra variables to the container..\nObject.assign(\n core.DisplayObject.prototype,\n accessibleTarget\n);\n\nconst KEY_CODE_TAB = 9;\n\nconst DIV_TOUCH_SIZE = 100;\nconst DIV_TOUCH_POS_X = 0;\nconst DIV_TOUCH_POS_Y = 0;\nconst DIV_TOUCH_ZINDEX = 2;\n\nconst DIV_HOOK_SIZE = 1;\nconst DIV_HOOK_POS_X = -1000;\nconst DIV_HOOK_POS_Y = -1000;\nconst DIV_HOOK_ZINDEX = 2;\n\n/**\n * The Accessibility manager reacreates the ability to tab and and have content read by screen\n * readers. This is very important as it can possibly help people with disabilities access pixi\n * content.\n *\n * Much like interaction any DisplayObject can be made accessible. This manager will map the\n * events as if the mouse was being used, minimizing the efferot required to implement.\n *\n * @class\n * @memberof PIXI\n */\nexport default class AccessibilityManager\n{\n /**\n * @param {PIXI.CanvasRenderer|PIXI.WebGLRenderer} renderer - A reference to the current renderer\n */\n constructor(renderer)\n {\n if ((Device.tablet || Device.phone) && !navigator.isCocoonJS)\n {\n this.createTouchHook();\n }\n\n // first we create a div that will sit over the pixi element. This is where the div overlays will go.\n const div = document.createElement('div');\n\n div.style.width = `${DIV_TOUCH_SIZE}px`;\n div.style.height = `${DIV_TOUCH_SIZE}px`;\n div.style.position = 'absolute';\n div.style.top = `${DIV_TOUCH_POS_X}px`;\n div.style.left = `${DIV_TOUCH_POS_Y}px`;\n div.style.zIndex = DIV_TOUCH_ZINDEX;\n\n /**\n * This is the dom element that will sit over the pixi element. This is where the div overlays will go.\n *\n * @type {HTMLElement}\n * @private\n */\n this.div = div;\n\n /**\n * A simple pool for storing divs.\n *\n * @type {*}\n * @private\n */\n this.pool = [];\n\n /**\n * This is a tick used to check if an object is no longer being rendered.\n *\n * @type {Number}\n * @private\n */\n this.renderId = 0;\n\n /**\n * Setting this to true will visually show the divs\n *\n * @type {boolean}\n */\n this.debug = false;\n\n /**\n * The renderer this accessibility manager works for.\n *\n * @member {PIXI.SystemRenderer}\n */\n this.renderer = renderer;\n\n /**\n * The array of currently active accessible items.\n *\n * @member {Array<*>}\n * @private\n */\n this.children = [];\n\n /**\n * pre-bind the functions\n *\n * @private\n */\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onMouseMove = this._onMouseMove.bind(this);\n\n /**\n * stores the state of the manager. If there are no accessible objects or the mouse is moving the will be false.\n *\n * @member {Array<*>}\n * @private\n */\n this.isActive = false;\n this.isMobileAccessabillity = false;\n\n // let listen for tab.. once pressed we can fire up and show the accessibility layer\n window.addEventListener('keydown', this._onKeyDown, false);\n }\n\n /**\n * Creates the touch hooks.\n *\n */\n createTouchHook()\n {\n const hookDiv = document.createElement('button');\n\n hookDiv.style.width = `${DIV_HOOK_SIZE}px`;\n hookDiv.style.height = `${DIV_HOOK_SIZE}px`;\n hookDiv.style.position = 'absolute';\n hookDiv.style.top = `${DIV_HOOK_POS_X}px`;\n hookDiv.style.left = `${DIV_HOOK_POS_Y}px`;\n hookDiv.style.zIndex = DIV_HOOK_ZINDEX;\n hookDiv.style.backgroundColor = '#FF0000';\n hookDiv.title = 'HOOK DIV';\n\n hookDiv.addEventListener('focus', () =>\n {\n this.isMobileAccessabillity = true;\n this.activate();\n document.body.removeChild(hookDiv);\n });\n\n document.body.appendChild(hookDiv);\n }\n\n /**\n * Activating will cause the Accessibility layer to be shown. This is called when a user\n * preses the tab key\n *\n * @private\n */\n activate()\n {\n if (this.isActive)\n {\n return;\n }\n\n this.isActive = true;\n\n window.document.addEventListener('mousemove', this._onMouseMove, true);\n window.removeEventListener('keydown', this._onKeyDown, false);\n\n this.renderer.on('postrender', this.update, this);\n\n if (this.renderer.view.parentNode)\n {\n this.renderer.view.parentNode.appendChild(this.div);\n }\n }\n\n /**\n * Deactivating will cause the Accessibility layer to be hidden. This is called when a user moves\n * the mouse\n *\n * @private\n */\n deactivate()\n {\n if (!this.isActive || this.isMobileAccessabillity)\n {\n return;\n }\n\n this.isActive = false;\n\n window.document.removeEventListener('mousemove', this._onMouseMove);\n window.addEventListener('keydown', this._onKeyDown, false);\n\n this.renderer.off('postrender', this.update);\n\n if (this.div.parentNode)\n {\n this.div.parentNode.removeChild(this.div);\n }\n }\n\n /**\n * This recursive function will run throught he scene graph and add any new accessible objects to the DOM layer.\n *\n * @private\n * @param {PIXI.Container} displayObject - The DisplayObject to check.\n */\n updateAccessibleObjects(displayObject)\n {\n if (!displayObject.visible)\n {\n return;\n }\n\n if (displayObject.accessible && displayObject.interactive)\n {\n if (!displayObject._accessibleActive)\n {\n this.addChild(displayObject);\n }\n\n displayObject.renderId = this.renderId;\n }\n\n const children = displayObject.children;\n\n for (let i = children.length - 1; i >= 0; i--)\n {\n this.updateAccessibleObjects(children[i]);\n }\n }\n\n /**\n * Before each render this function will ensure that all divs are mapped correctly to their DisplayObjects.\n *\n * @private\n */\n update()\n {\n if (!this.renderer.renderingToScreen)\n {\n return;\n }\n\n // update children...\n this.updateAccessibleObjects(this.renderer._lastObjectRendered);\n\n const rect = this.renderer.view.getBoundingClientRect();\n const sx = rect.width / this.renderer.width;\n const sy = rect.height / this.renderer.height;\n\n let div = this.div;\n\n div.style.left = `${rect.left}px`;\n div.style.top = `${rect.top}px`;\n div.style.width = `${this.renderer.width}px`;\n div.style.height = `${this.renderer.height}px`;\n\n for (let i = 0; i < this.children.length; i++)\n {\n const child = this.children[i];\n\n if (child.renderId !== this.renderId)\n {\n child._accessibleActive = false;\n\n core.utils.removeItems(this.children, i, 1);\n this.div.removeChild(child._accessibleDiv);\n this.pool.push(child._accessibleDiv);\n child._accessibleDiv = null;\n\n i--;\n\n if (this.children.length === 0)\n {\n this.deactivate();\n }\n }\n else\n {\n // map div to display..\n div = child._accessibleDiv;\n let hitArea = child.hitArea;\n const wt = child.worldTransform;\n\n if (child.hitArea)\n {\n div.style.left = `${(wt.tx + (hitArea.x * wt.a)) * sx}px`;\n div.style.top = `${(wt.ty + (hitArea.y * wt.d)) * sy}px`;\n\n div.style.width = `${hitArea.width * wt.a * sx}px`;\n div.style.height = `${hitArea.height * wt.d * sy}px`;\n }\n else\n {\n hitArea = child.getBounds();\n\n this.capHitArea(hitArea);\n\n div.style.left = `${hitArea.x * sx}px`;\n div.style.top = `${hitArea.y * sy}px`;\n\n div.style.width = `${hitArea.width * sx}px`;\n div.style.height = `${hitArea.height * sy}px`;\n }\n }\n }\n\n // increment the render id..\n this.renderId++;\n }\n\n /**\n * TODO: docs.\n *\n * @param {Rectangle} hitArea - TODO docs\n */\n capHitArea(hitArea)\n {\n if (hitArea.x < 0)\n {\n hitArea.width += hitArea.x;\n hitArea.x = 0;\n }\n\n if (hitArea.y < 0)\n {\n hitArea.height += hitArea.y;\n hitArea.y = 0;\n }\n\n if (hitArea.x + hitArea.width > this.renderer.width)\n {\n hitArea.width = this.renderer.width - hitArea.x;\n }\n\n if (hitArea.y + hitArea.height > this.renderer.height)\n {\n hitArea.height = this.renderer.height - hitArea.y;\n }\n }\n\n /**\n * Adds a DisplayObject to the accessibility manager\n *\n * @private\n * @param {DisplayObject} displayObject - The child to make accessible.\n */\n addChild(displayObject)\n {\n // this.activate();\n\n let div = this.pool.pop();\n\n if (!div)\n {\n div = document.createElement('button');\n\n div.style.width = `${DIV_TOUCH_SIZE}px`;\n div.style.height = `${DIV_TOUCH_SIZE}px`;\n div.style.backgroundColor = this.debug ? 'rgba(255,0,0,0.5)' : 'transparent';\n div.style.position = 'absolute';\n div.style.zIndex = DIV_TOUCH_ZINDEX;\n div.style.borderStyle = 'none';\n\n div.addEventListener('click', this._onClick.bind(this));\n div.addEventListener('focus', this._onFocus.bind(this));\n div.addEventListener('focusout', this._onFocusOut.bind(this));\n }\n\n if (displayObject.accessibleTitle)\n {\n div.title = displayObject.accessibleTitle;\n }\n else if (!displayObject.accessibleTitle && !displayObject.accessibleHint)\n {\n div.title = `displayObject ${this.tabIndex}`;\n }\n\n if (displayObject.accessibleHint)\n {\n div.setAttribute('aria-label', displayObject.accessibleHint);\n }\n\n //\n\n displayObject._accessibleActive = true;\n displayObject._accessibleDiv = div;\n div.displayObject = displayObject;\n\n this.children.push(displayObject);\n this.div.appendChild(displayObject._accessibleDiv);\n displayObject._accessibleDiv.tabIndex = displayObject.tabIndex;\n }\n\n /**\n * Maps the div button press to pixi's InteractionManager (click)\n *\n * @private\n * @param {MouseEvent} e - The click event.\n */\n _onClick(e)\n {\n const interactionManager = this.renderer.plugins.interaction;\n\n interactionManager.dispatchEvent(e.target.displayObject, 'click', interactionManager.eventData);\n }\n\n /**\n * Maps the div focus events to pixis InteractionManager (mouseover)\n *\n * @private\n * @param {FocusEvent} e - The focus event.\n */\n _onFocus(e)\n {\n const interactionManager = this.renderer.plugins.interaction;\n\n interactionManager.dispatchEvent(e.target.displayObject, 'mouseover', interactionManager.eventData);\n }\n\n /**\n * Maps the div focus events to pixis InteractionManager (mouseout)\n *\n * @private\n * @param {FocusEvent} e - The focusout event.\n */\n _onFocusOut(e)\n {\n const interactionManager = this.renderer.plugins.interaction;\n\n interactionManager.dispatchEvent(e.target.displayObject, 'mouseout', interactionManager.eventData);\n }\n\n /**\n * Is called when a key is pressed\n *\n * @private\n * @param {KeyboardEvent} e - The keydown event.\n */\n _onKeyDown(e)\n {\n if (e.keyCode !== KEY_CODE_TAB)\n {\n return;\n }\n\n this.activate();\n }\n\n /**\n * Is called when the mouse moves across the renderer element\n *\n * @private\n */\n _onMouseMove()\n {\n this.deactivate();\n }\n\n /**\n * Destroys the accessibility manager\n *\n */\n destroy()\n {\n this.div = null;\n\n for (let i = 0; i < this.children.length; i++)\n {\n this.children[i].div = null;\n }\n\n window.document.removeEventListener('mousemove', this._onMouseMove);\n window.removeEventListener('keydown', this._onKeyDown);\n\n this.pool = null;\n this.children = null;\n this.renderer = null;\n }\n}\n\ncore.WebGLRenderer.registerPlugin('accessibility', AccessibilityManager);\ncore.CanvasRenderer.registerPlugin('accessibility', AccessibilityManager);\n","/**\n * Default property values of accessible objects\n * used by {@link PIXI.accessibility.AccessibilityManager}.\n *\n * @mixin\n * @name accessibleTarget\n * @memberof PIXI\n * @example\n * function MyObject() {}\n *\n * Object.assign(\n * MyObject.prototype,\n * PIXI.accessibility.accessibleTarget\n * );\n */\nexport default {\n /**\n * Flag for if the object is accessible. If true AccessibilityManager will overlay a\n * shadow div with attributes set\n *\n * @member {boolean}\n */\n accessible: false,\n\n /**\n * Sets the title attribute of the shadow div\n * If accessibleTitle AND accessibleHint has not been this will default to 'displayObject [tabIndex]'\n *\n * @member {string}\n */\n accessibleTitle: null,\n\n /**\n * Sets the aria-label attribute of the shadow div\n *\n * @member {string}\n */\n accessibleHint: null,\n\n /**\n * @todo Needs docs.\n */\n tabIndex: 0,\n\n /**\n * @todo Needs docs.\n */\n _accessibleActive: false,\n\n /**\n * @todo Needs docs.\n */\n _accessibleDiv: false,\n};\n","/**\n * @namespace PIXI.AccessibilityManager\n */\nexport { default as accessibleTarget } from './accessibleTarget';\nexport { default as AccessibilityManager } from './AccessibilityManager';\n","import { GLShader } from 'pixi-gl-core';\nimport settings from './settings';\n\nconst { PRECISION } = settings;\n\nfunction checkPrecision(src)\n{\n if (src instanceof Array)\n {\n if (src[0].substring(0, 9) !== 'precision')\n {\n const copy = src.slice(0);\n\n copy.unshift(`precision ${PRECISION} float;`);\n\n return copy;\n }\n }\n else if (src.substring(0, 9) !== 'precision')\n {\n return `precision ${PRECISION} float;\\n${src}`;\n }\n\n return src;\n}\n\n/**\n * Wrapper class, webGL Shader for Pixi.\n * Adds precision string if vertexSrc or fragmentSrc have no mention of it.\n *\n * @class\n * @extends GLShader\n * @memberof PIXI\n */\nexport default class Shader extends GLShader\n{\n /**\n *\n * @param {WebGLRenderingContext} gl - The current WebGL rendering context\n * @param {string|string[]} vertexSrc - The vertex shader source as an array of strings.\n * @param {string|string[]} fragmentSrc - The fragment shader source as an array of strings.\n */\n constructor(gl, vertexSrc, fragmentSrc)\n {\n super(gl, checkPrecision(vertexSrc), checkPrecision(fragmentSrc));\n }\n}\n","/**\n * String of the current PIXI version.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @name VERSION\n * @type {string}\n */\nexport const VERSION = __VERSION__;\n\n/**\n * Two Pi.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @type {number}\n */\nexport const PI_2 = Math.PI * 2;\n\n/**\n * Conversion factor for converting radians to degrees.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @type {number}\n */\nexport const RAD_TO_DEG = 180 / Math.PI;\n\n/**\n * Conversion factor for converting degrees to radians.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @type {number}\n */\nexport const DEG_TO_RAD = Math.PI / 180;\n\n/**\n * Constant to identify the Renderer Type.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @name RENDERER_TYPE\n * @type {object}\n * @property {number} UNKNOWN - Unknown render type.\n * @property {number} WEBGL - WebGL render type.\n * @property {number} CANVAS - Canvas render type.\n */\nexport const RENDERER_TYPE = {\n UNKNOWN: 0,\n WEBGL: 1,\n CANVAS: 2,\n};\n\n/**\n * Various blend modes supported by PIXI.\n *\n * IMPORTANT - The WebGL renderer only supports the NORMAL, ADD, MULTIPLY and SCREEN blend modes.\n * Anything else will silently act like NORMAL.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @name BLEND_MODES\n * @type {object}\n * @property {number} NORMAL\n * @property {number} ADD\n * @property {number} MULTIPLY\n * @property {number} SCREEN\n * @property {number} OVERLAY\n * @property {number} DARKEN\n * @property {number} LIGHTEN\n * @property {number} COLOR_DODGE\n * @property {number} COLOR_BURN\n * @property {number} HARD_LIGHT\n * @property {number} SOFT_LIGHT\n * @property {number} DIFFERENCE\n * @property {number} EXCLUSION\n * @property {number} HUE\n * @property {number} SATURATION\n * @property {number} COLOR\n * @property {number} LUMINOSITY\n */\nexport const BLEND_MODES = {\n NORMAL: 0,\n ADD: 1,\n MULTIPLY: 2,\n SCREEN: 3,\n OVERLAY: 4,\n DARKEN: 5,\n LIGHTEN: 6,\n COLOR_DODGE: 7,\n COLOR_BURN: 8,\n HARD_LIGHT: 9,\n SOFT_LIGHT: 10,\n DIFFERENCE: 11,\n EXCLUSION: 12,\n HUE: 13,\n SATURATION: 14,\n COLOR: 15,\n LUMINOSITY: 16,\n};\n\n/**\n * Various webgl draw modes. These can be used to specify which GL drawMode to use\n * under certain situations and renderers.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @name DRAW_MODES\n * @type {object}\n * @property {number} POINTS\n * @property {number} LINES\n * @property {number} LINE_LOOP\n * @property {number} LINE_STRIP\n * @property {number} TRIANGLES\n * @property {number} TRIANGLE_STRIP\n * @property {number} TRIANGLE_FAN\n */\nexport const DRAW_MODES = {\n POINTS: 0,\n LINES: 1,\n LINE_LOOP: 2,\n LINE_STRIP: 3,\n TRIANGLES: 4,\n TRIANGLE_STRIP: 5,\n TRIANGLE_FAN: 6,\n};\n\n/**\n * The scale modes that are supported by pixi.\n *\n * The {@link PIXI.settings.SCALE_MODE} scale mode affects the default scaling mode of future operations.\n * It can be re-assigned to either LINEAR or NEAREST, depending upon suitability.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @name SCALE_MODES\n * @type {object}\n * @property {number} LINEAR Smooth scaling\n * @property {number} NEAREST Pixelating scaling\n */\nexport const SCALE_MODES = {\n LINEAR: 0,\n NEAREST: 1,\n};\n\n/**\n * The wrap modes that are supported by pixi.\n *\n * The {@link PIXI.settings.WRAP_MODE} wrap mode affects the default wraping mode of future operations.\n * It can be re-assigned to either CLAMP or REPEAT, depending upon suitability.\n * If the texture is non power of two then clamp will be used regardless as webGL can\n * only use REPEAT if the texture is po2.\n *\n * This property only affects WebGL.\n *\n * @static\n * @constant\n * @name WRAP_MODES\n * @memberof PIXI\n * @type {object}\n * @property {number} CLAMP - The textures uvs are clamped\n * @property {number} REPEAT - The texture uvs tile and repeat\n * @property {number} MIRRORED_REPEAT - The texture uvs tile and repeat with mirroring\n */\nexport const WRAP_MODES = {\n CLAMP: 0,\n REPEAT: 1,\n MIRRORED_REPEAT: 2,\n};\n\n/**\n * The gc modes that are supported by pixi.\n *\n * The {@link PIXI.settings.GC_MODE} Garbage Collection mode for pixi textures is AUTO\n * If set to GC_MODE, the renderer will occasianally check textures usage. If they are not\n * used for a specified period of time they will be removed from the GPU. They will of course\n * be uploaded again when they are required. This is a silent behind the scenes process that\n * should ensure that the GPU does not get filled up.\n *\n * Handy for mobile devices!\n * This property only affects WebGL.\n *\n * @static\n * @constant\n * @name GC_MODES\n * @memberof PIXI\n * @type {object}\n * @property {number} AUTO - Garbage collection will happen periodically automatically\n * @property {number} MANUAL - Garbage collection will need to be called manually\n */\nexport const GC_MODES = {\n AUTO: 0,\n MANUAL: 1,\n};\n\n/**\n * Regexp for image type by extension.\n *\n * @static\n * @constant\n * @memberof PIXI\n * @type {RegExp|string}\n * @example `image.png`\n */\nexport const URL_FILE_EXTENSION = /\\.(\\w{3,4})(?:$|\\?|#)/i;\n\n/**\n * Regexp for data URI.\n * Based on: {@link https://github.com/ragingwind/data-uri-regex}\n *\n * @static\n * @constant\n * @name DATA_URI\n * @memberof PIXI\n * @type {RegExp|string}\n * @example data:image/png;base64\n */\nexport const DATA_URI = /^\\s*data:(?:([\\w-]+)\\/([\\w+.-]+))?(?:;(charset=[\\w-]+|base64))?,(.*)/i;\n\n/**\n * Regexp for SVG size.\n *\n * @static\n * @constant\n * @name SVG_SIZE\n * @memberof PIXI\n * @type {RegExp|string}\n * @example <svg width=\"100\" height=\"100\"></svg>\n */\nexport const SVG_SIZE = /
© 2015 - 2025 Weber Informatics LLC | Privacy Policy