Файловый менеджер - Редактировать - /home/jogoso94/public_html/jogos/chess_classic/Chess.js
�азад
var dirtyTactic; (function (console, $hx_exports, $global) { "use strict"; $hx_exports.openfl = $hx_exports.openfl || {}; $hx_exports.lime = $hx_exports.lime || {}; var $hxClasses = {},$estr = function() { return js_Boot.__string_rec(this,''); }; function $extend(from, fields) { function Inherit() {} Inherit.prototype = from; var proto = new Inherit(); for (var name in fields) proto[name] = fields[name]; if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString; return proto; } var DisplayObjectContainerBatch = function() { this.parent = null; this.visible = true; this.rotation = 0; this.scaleY = 1; this.scaleX = 1; this.y = 0; this.x = 0; this.childs = []; this.childVisibilities = new haxe_ds_ObjectMap(); this.batchMatrix = new openfl_geom_Matrix(); }; window.famobi_onMuteRequested = function(){ dirtyTactic.mute(); window.famobi_analytics.trackEvent("EVENT_VOLUMECHANGE", {bgmVolume: dirtyTactic.sounds.muted ? 0 : 1, sfxVolume: dirtyTactic.sounds.muted ? 0 : 1}); }; window.famobi_onUnmuteRequested = function(){ dirtyTactic.unMute(); window.famobi_analytics.trackEvent("EVENT_VOLUMECHANGE", {bgmVolume: dirtyTactic.sounds.muted ? 0 : 1, sfxVolume: dirtyTactic.sounds.muted ? 0 : 1}); }; $hxClasses["DisplayObjectContainerBatch"] = DisplayObjectContainerBatch; DisplayObjectContainerBatch.__name__ = ["DisplayObjectContainerBatch"]; DisplayObjectContainerBatch.prototype = { batchMatrix: null ,childs: null ,childVisibilities: null ,x: null ,y: null ,scaleX: null ,scaleY: null ,rotation: null ,visible: null ,parent: null ,set_parent: function(par) { this.parent = par; this.updateMatrix(); return par; } ,set_x: function(value) { this.x = value; this.updateMatrix(); return value; } ,set_y: function(value) { this.y = value; this.updateMatrix(); return value; } ,set_scaleX: function(value) { this.scaleX = value; this.updateMatrix(); return value; } ,set_scaleY: function(value) { this.scaleY = value; this.updateMatrix(); return value; } ,set_rotation: function(value) { this.rotation = value; this.updateMatrix(); return value; } ,set_visible: function(value) { if(this.visible == value) return value; this.visible = value; var _g = 0; var _g1 = this.childs; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(!value) { this.childVisibilities.set(child,child.visible); child.visible = value; } else if(this.childVisibilities.exists(child)) child.visible = this.childVisibilities.get(child); } return value; } ,updateMatrix: function() { this.batchMatrix.identity(); this.batchMatrix.scale(this.scaleX,this.scaleY); this.batchMatrix.rotate(this.rotation); this.batchMatrix.translate(this.x,this.y); if(this.parent != null) this.batchMatrix.concat(this.parent.batchMatrix); } ,addChild: function(child) { child.parent = this; this.childs.push(child); if(!this.visible) { this.childVisibilities.set(child,child.visible); child.visible = false; } return child; } ,removeChild: function(child) { if(child == null) return null; child.parent = null; var x = child; HxOverrides.remove(this.childs,x); return child; } ,__class__: DisplayObjectContainerBatch ,__properties__: {set_parent:"set_parent",set_visible:"set_visible",set_rotation:"set_rotation",set_scaleY:"set_scaleY",set_scaleX:"set_scaleX",set_y:"set_y",set_x:"set_x"} }; var AiThinkMC = function() { DisplayObjectContainerBatch.call(this); this.img0 = new DisplayObjectBatch(Main.current.batch,"clock_1"); this.img0.tx = this.img0.get_width() / 2; this.img0.ty = this.img0.get_height() / 2; this.img1 = new DisplayObjectBatch(Main.current.batch,"clock_2"); this.img1.tx = this.img1.get_width() / 2; this.img1.ty = this.img1.get_height() / 2; this.img2 = new DisplayObjectBatch(Main.current.batch,"clock_3"); this.img2.tx = this.img2.get_width() / 2; this.img2.ty = this.img2.get_height() / 2; this.img0.parent = this; this.img1.parent = this; this.img2.parent = this; this.set_scaleX(this.set_scaleY(1)); this.img0.scaleX = this.img0.scaleY = 1.5; }; $hxClasses["AiThinkMC"] = AiThinkMC; AiThinkMC.__name__ = ["AiThinkMC"]; AiThinkMC.__super__ = DisplayObjectContainerBatch; AiThinkMC.prototype = $extend(DisplayObjectContainerBatch.prototype,{ img0: null ,img1: null ,img2: null ,update: function(frameTime) { } ,render: function() { if(!this.visible || Desk.current.computerLevel < 4) return; this.img0.render(); this.img1.render(); this.img2.render(); } ,__class__: AiThinkMC }); var ApplicationMain = function() { }; $hxClasses["ApplicationMain"] = ApplicationMain; ApplicationMain.__name__ = ["ApplicationMain"]; ApplicationMain.config = null; ApplicationMain.preloader = null; ApplicationMain.create = function() { var app = new openfl_display_Application(); app.create(ApplicationMain.config); var display = new Preloader(); ApplicationMain.preloader = new openfl_display_Preloader(display); app.setPreloader(ApplicationMain.preloader); ApplicationMain.preloader.onComplete.add(ApplicationMain.init); ApplicationMain.preloader.create(ApplicationMain.config); var urls = []; var types = []; urls.push("img/bg.jpg"); types.push("IMAGE"); urls.push("img/levels.json"); types.push("TEXT"); urls.push("img/MainAtlas.png"); types.push("IMAGE"); urls.push("img/MainAtlas.xml"); types.push("TEXT"); urls.push("img/MainFontNumeric.png"); types.push("IMAGE"); urls.push("img/MainFontNumeric1.png"); types.push("IMAGE"); urls.push(window.famobi.getMoreGamesButtonImage()); types.push("IMAGE"); urls.push("img/strings_enGB.json"); types.push("TEXT"); urls.push("img/TranspPixel.png"); types.push("IMAGE"); urls.push("Calibri-Regular"); types.push("FONT"); urls.push("snd/sprite.json"); types.push("TEXT"); if(ApplicationMain.config.assetsPrefix != null) { var _g1 = 0; var _g = urls.length; while(_g1 < _g) { var i = _g1++; if(types[i] != "FONT") urls[i] = ApplicationMain.config.assetsPrefix + urls[i]; } } ApplicationMain.preloader.load(urls,types); var result = app.exec(); }; ApplicationMain.init = function() { var loaded = 0; var total = 0; var library_onLoad = function(__) { loaded++; if(loaded == total) ApplicationMain.start(); }; ApplicationMain.preloader = null; if(total == 0) ApplicationMain.start(); }; ApplicationMain.main = function() { ApplicationMain.config = { build : "1287", company : "CaveOfWonders", file : "Chess", fps : 120, name : "Chess", orientation : "", packageName : "com.cawogames.Chess", version : "1.0.0", windows : [{ antialiasing : 0, background : 0, borderless : false, depthBuffer : false, display : 0, fullscreen : false, hardware : false, height : 0, parameters : "{}", resizable : true, stencilBuffer : true, title : "Chess", vsync : false, width : 0, x : null, y : null}]}; }; ApplicationMain.start = function() { var hasMain = false; var entryPoint = Type.resolveClass("Main"); var _g = 0; var _g1 = Type.getClassFields(entryPoint); while(_g < _g1.length) { var methodName = _g1[_g]; ++_g; if(methodName == "main") { hasMain = true; break; } } lime_Assets.initialize(); if(hasMain) Reflect.callMethod(entryPoint,Reflect.field(entryPoint,"main"),[]); else { var instance = Type.createInstance(DocumentClass,[]); } if(openfl_Lib.current.stage.window.__fullscreen) openfl_Lib.current.stage.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true)); openfl_Lib.current.stage.dispatchEvent(new openfl_events_Event("resize",false,false)); }; var openfl_events_IEventDispatcher = function() { }; $hxClasses["openfl.events.IEventDispatcher"] = openfl_events_IEventDispatcher; openfl_events_IEventDispatcher.__name__ = ["openfl","events","IEventDispatcher"]; openfl_events_IEventDispatcher.prototype = { addEventListener: null ,dispatchEvent: null ,hasEventListener: null ,removeEventListener: null ,willTrigger: null ,__class__: openfl_events_IEventDispatcher }; var openfl_events_EventDispatcher = function(target) { if(target != null) this.__targetDispatcher = target; }; $hxClasses["openfl.events.EventDispatcher"] = openfl_events_EventDispatcher; openfl_events_EventDispatcher.__name__ = ["openfl","events","EventDispatcher"]; openfl_events_EventDispatcher.__interfaces__ = [openfl_events_IEventDispatcher]; openfl_events_EventDispatcher.__sortByPriority = function(l1,l2) { if(l1.priority == l2.priority) return 0; else if(l1.priority > l2.priority) return -1; else return 1; }; openfl_events_EventDispatcher.prototype = { __dispatching: null ,__targetDispatcher: null ,__eventMap: null ,__newEventMap: null ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) useWeakReference = false; if(priority == null) priority = 0; if(useCapture == null) useCapture = false; if(this.__eventMap == null) { this.__dispatching = new haxe_ds_StringMap(); this.__eventMap = new haxe_ds_StringMap(); this.__newEventMap = new haxe_ds_StringMap(); } if(!this.__eventMap.exists(type)) { var list = []; list.push(new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority)); this.__eventMap.set(type,list); } else { var list1; if(this.__dispatching.get(type) == true) { if(!this.__newEventMap.exists(type)) { var _this = this.__eventMap.get(type); list1 = _this.slice(); this.__newEventMap.set(type,list1); } else list1 = this.__newEventMap.get(type); } else list1 = this.__eventMap.get(type); var _g1 = 0; var _g = list1.length; while(_g1 < _g) { var i = _g1++; if(Reflect.compareMethods(list1[i].callback,listener)) return; } list1.push(new openfl_events__$EventDispatcher_Listener(listener,useCapture,priority)); list1.sort(openfl_events_EventDispatcher.__sortByPriority); } } ,dispatchEvent: function(event) { if(this.__targetDispatcher != null) event.target = this.__targetDispatcher; else event.target = this; return this.__dispatchEvent(event); } ,hasEventListener: function(type) { if(this.__eventMap == null) return false; if(this.__dispatching.get(type) == true && this.__newEventMap.exists(type)) return this.__newEventMap.get(type).length > 0; else return this.__eventMap.exists(type); } ,removeEventListener: function(type,listener,useCapture) { if(useCapture == null) useCapture = false; if(this.__eventMap == null) return; var list = this.__eventMap.get(type); if(list == null) return; var dispatching = this.__dispatching.get(type) == true; if(dispatching) { if(!this.__newEventMap.exists(type)) { var _this = this.__eventMap.get(type); list = _this.slice(); this.__newEventMap.set(type,list); } else list = this.__newEventMap.get(type); } var _g1 = 0; var _g = list.length; while(_g1 < _g) { var i = _g1++; if(list[i].match(listener,useCapture)) { list.splice(i,1); break; } } if(!dispatching) { if(list.length == 0) this.__eventMap.remove(type); if(!this.__eventMap.iterator().hasNext()) { this.__eventMap = null; this.__newEventMap = null; } } } ,toString: function() { var full = Type.getClassName(js_Boot.getClass(this)); var $short = full.split(".").pop(); return "[object " + $short + "]"; } ,willTrigger: function(type) { return this.hasEventListener(type); } ,__dispatchEvent: function(event) { if(this.__eventMap == null || event == null) return false; var type = event.type; var list; if(this.__dispatching.get(type) == true) { list = this.__newEventMap.get(type); if(list == null) return false; list = list.slice(); } else { list = this.__eventMap.get(type); if(list == null) return false; this.__dispatching.set(type,true); } if(event.target == null) { if(this.__targetDispatcher != null) event.target = this.__targetDispatcher; else event.target = this; } event.currentTarget = this; var capture = event.eventPhase == 1; var index = 0; var listener; while(index < list.length) { listener = list[index]; if(listener.useCapture == capture) { listener.callback(event); if(event.__isCanceledNow) break; } if(listener == list[index]) index++; } if(this.__newEventMap != null && this.__newEventMap.exists(type)) { var list1 = this.__newEventMap.get(type); if(list1.length > 0) this.__eventMap.set(type,list1); else this.__eventMap.remove(type); if(!this.__eventMap.iterator().hasNext()) { this.__eventMap = null; this.__newEventMap = null; } else this.__newEventMap.remove(type); } this.__dispatching.set(event.type,false); return true; } ,__class__: openfl_events_EventDispatcher }; var openfl_display_IBitmapDrawable = function() { }; $hxClasses["openfl.display.IBitmapDrawable"] = openfl_display_IBitmapDrawable; openfl_display_IBitmapDrawable.__name__ = ["openfl","display","IBitmapDrawable"]; openfl_display_IBitmapDrawable.prototype = { __worldTransform: null ,__worldColorTransform: null ,__blendMode: null ,__cacheAsBitmap: null ,__renderCairo: null ,__renderCairoMask: null ,__renderCanvas: null ,__renderCanvasMask: null ,__renderGL: null ,__updateChildren: null ,__updateTransforms: null ,__updateMask: null ,__class__: openfl_display_IBitmapDrawable }; var openfl_display_DisplayObject = function() { this.__cacheAsBitmapSmooth = true; this.__cacheAsBitmap = false; this.__maskCached = false; openfl_events_EventDispatcher.call(this); this.__alpha = 1; this.__transform = new openfl_geom_Matrix(); this.__visible = true; this.__rotation = 0; this.__rotationSine = 0; this.__rotationCosine = 1; this.__renderTransform = new openfl_geom_Matrix(); this.__offset = new openfl_geom_Point(); this.__worldOffset = new openfl_geom_Point(); this.__worldAlpha = 1; this.__worldTransform = new openfl_geom_Matrix(); this.__worldColorTransform = new openfl_geom_ColorTransform(); this.set_name("instance" + ++openfl_display_DisplayObject.__instanceCount); }; $hxClasses["openfl.display.DisplayObject"] = openfl_display_DisplayObject; openfl_display_DisplayObject.__name__ = ["openfl","display","DisplayObject"]; openfl_display_DisplayObject.__interfaces__ = [openfl_display_IBitmapDrawable]; openfl_display_DisplayObject.__super__ = openfl_events_EventDispatcher; openfl_display_DisplayObject.prototype = $extend(openfl_events_EventDispatcher.prototype,{ blendMode: null ,cacheAsBitmapBounds: null ,loaderInfo: null ,mouseX: null ,mouseY: null ,opaqueBackground: null ,parent: null ,root: null ,scale9Grid: null ,shader: null ,stage: null ,__renderTransform: null ,__worldColorTransform: null ,__worldOffset: null ,__worldTransform: null ,__alpha: null ,__blendMode: null ,__cairo: null ,__children: null ,__filters: null ,__graphics: null ,__interactive: null ,__isMask: null ,__mask: null ,__maskGraphics: null ,__maskCached: null ,__name: null ,__objectTransform: null ,__offset: null ,__renderable: null ,__renderDirty: null ,__rotation: null ,__rotationCosine: null ,__rotationSine: null ,__scrollRect: null ,__shader: null ,__transform: null ,__transformDirty: null ,__visible: null ,__worldAlpha: null ,__worldAlphaChanged: null ,__worldClip: null ,__worldClipChanged: null ,__worldTransformCache: null ,__worldTransformChanged: null ,__worldVisible: null ,__worldVisibleChanged: null ,__worldZ: null ,__cacheAsBitmap: null ,__cacheAsBitmapMatrix: null ,__cacheAsBitmapSmooth: null ,__forceCacheAsBitmap: null ,__updateCachedBitmap: null ,__cachedBitmap: null ,__cachedBitmapBounds: null ,__cachedFilterBounds: null ,__cacheGLMatrix: null ,__updateFilters: null ,__canvas: null ,__context: null ,__style: null ,getBounds: function(targetCoordinateSpace) { var matrix; if(targetCoordinateSpace != null) { matrix = this.__getWorldTransform().clone(); matrix.concat(targetCoordinateSpace.__getWorldTransform().clone().invert()); } else { matrix = openfl_geom_Matrix.__temp; matrix.identity(); } var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,matrix); return bounds; } ,getRect: function(targetCoordinateSpace) { return this.getBounds(targetCoordinateSpace); } ,globalToLocal: function(pos) { pos = pos.clone(); this.__getWorldTransform().__transformInversePoint(pos); return pos; } ,hitTestObject: function(obj) { if(obj != null && obj.parent != null && this.parent != null) { var currentBounds = this.getBounds(this); var targetBounds = obj.getBounds(this); return currentBounds.intersects(targetBounds); } return false; } ,hitTestPoint: function(x,y,shapeFlag) { if(shapeFlag == null) shapeFlag = false; if(this.parent != null) { var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,this.__getWorldTransform()); return bounds.containsPoint(new openfl_geom_Point(x,y)); } return false; } ,localToGlobal: function(point) { return this.__getWorldTransform().transformPoint(point); } ,__broadcast: function(event,notifyChilden) { if(this.__eventMap != null && this.hasEventListener(event.type)) { var result = openfl_events_EventDispatcher.prototype.__dispatchEvent.call(this,event); if(event.__isCanceled) return true; return result; } return false; } ,__dispatchEvent: function(event) { var result = openfl_events_EventDispatcher.prototype.__dispatchEvent.call(this,event); if(event.__isCanceled) return true; if(event.bubbles && this.parent != null && this.parent != this) { event.eventPhase = 3; if(event.target == null) event.target = this; this.parent.__dispatchEvent(event); } return result; } ,__enterFrame: function(deltaTime) { } ,__getBounds: function(rect,matrix) { if(this.__graphics != null) this.__graphics.__getBounds(rect,matrix); } ,__getCursor: function() { return null; } ,__getInteractive: function(stack) { return false; } ,__getLocalBounds: function(rect) { this.__getBounds(rect,this.__transform); } ,__getRenderBounds: function(rect,matrix) { if(this.__scrollRect == null) this.__getBounds(rect,matrix); else { var r = openfl_geom_Rectangle.__temp; r.copyFrom(this.__scrollRect); r.__transform(r,matrix); rect.__expand(matrix.tx,matrix.ty,r.width,r.height); } } ,__getWorldTransform: function() { if(this.__transformDirty || openfl_display_DisplayObject.__worldTransformDirty > 0) { var list = []; var current = this; var transformDirty = this.__transformDirty; if(this.parent == null) { if(transformDirty) this.__update(true,false); } else while(current.parent != null) { list.push(current); current = current.parent; if(current.__transformDirty) transformDirty = true; } if(transformDirty) { var i = list.length; while(--i >= 0) list[i].__update(true,false); } } return this.__worldTransform; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(this.__graphics != null) { if(!hitObject.get_visible() || this.__isMask) return false; if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) return false; if(this.__graphics.__hitTest(x,y,shapeFlag,this.__getWorldTransform())) { if(stack != null && !interactiveOnly) stack.push(hitObject); return true; } } return false; } ,__hitTestMask: function(x,y) { if(this.__graphics != null) { if(this.__graphics.__hitTest(x,y,true,this.__getWorldTransform())) return true; } return false; } ,__renderCairo: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_cairo_CairoShape.render(this,renderSession); } ,__renderCairoMask: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_cairo_CairoGraphics.renderMask(this.__graphics,renderSession); } ,__renderCanvas: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_canvas_CanvasShape.render(this,renderSession); } ,__renderCanvasMask: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_canvas_CanvasGraphics.renderMask(this.__graphics,renderSession); } ,__renderDOM: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_dom_DOMShape.render(this,renderSession); } ,__renderGL: function(renderSession) { if(!this.__renderable || this.__worldAlpha <= 0) return; if(this.__cacheAsBitmap) { this.__cacheGL(renderSession); return; } if(this.__scrollRect != null) renderSession.maskManager.pushRect(this.__scrollRect,this.__renderTransform); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.pushMask(this); if(this.__graphics != null) { if(this.__graphics.__hardware) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.render(this,renderSession); else { openfl__$internal_renderer_canvas_CanvasGraphics.render(this.__graphics,renderSession); openfl__$internal_renderer_opengl_GLRenderer.renderBitmap(this,renderSession); } } if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.popMask(); if(this.__scrollRect != null) renderSession.maskManager.popRect(); } ,__drawGraphicsGL: function(renderSession) { if(this.__graphics != null) { if(this.__graphics.__hardware) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.render(this,renderSession); else { openfl__$internal_renderer_canvas_CanvasGraphics.render(this.__graphics,renderSession); openfl__$internal_renderer_opengl_GLRenderer.renderBitmap(this,renderSession); } } } ,__preRenderGL: function(renderSession) { if(this.__scrollRect != null) renderSession.maskManager.pushRect(this.__scrollRect,this.__renderTransform); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.pushMask(this); } ,__postRenderGL: function(renderSession) { if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.popMask(); if(this.__scrollRect != null) renderSession.maskManager.popRect(); } ,__cacheGL: function(renderSession) { var hasCacheMatrix = this.__cacheAsBitmapMatrix != null; var x = this.__cachedBitmapBounds.x; var y = this.__cachedBitmapBounds.y; var w = this.__cachedBitmapBounds.width; var h = this.__cachedBitmapBounds.height; if(this.__cacheGLMatrix == null) this.__cacheGLMatrix = new openfl_geom_Matrix(); if(hasCacheMatrix) { var bmpBounds = openfl_geom_Rectangle.__temp; this.__cachedBitmapBounds.__transform(bmpBounds,this.__cacheAsBitmapMatrix); x = bmpBounds.x; y = bmpBounds.y; w = bmpBounds.width; h = bmpBounds.height; this.__cacheGLMatrix = this.__cacheAsBitmapMatrix.clone(); } else this.__cacheGLMatrix.identity(); if(w <= 0 && h <= 0) return; if(this.__updateCachedBitmap || this.__updateFilters) { if(this.__cachedFilterBounds != null) { w += Math.abs(this.__cachedFilterBounds.x) + Math.abs(this.__cachedFilterBounds.width); h += Math.abs(this.__cachedFilterBounds.y) + Math.abs(this.__cachedFilterBounds.height); } if(this.__cachedBitmap == null) this.__cachedBitmap = openfl_display_BitmapData.__asRenderTexture(); this.__cachedBitmap.__resize(Math.ceil(w),Math.ceil(h)); var m = this.__cacheGLMatrix.clone(); m.translate(-x,-y); var shader = this.__shader; this.__shader = null; this.__cachedBitmap.__drawGL(renderSession,this,m,null,null,null,true,false,true); this.__shader = shader; this.__updateCachedBitmap = false; } if(this.__updateFilters) { openfl_filters_BitmapFilter.__applyFilters(this.__filters,renderSession,this.__cachedBitmap,this.__cachedBitmap,null,null); this.__updateFilters = false; } this.__cacheGLMatrix.invert(); this.__cacheGLMatrix.__translateTransformed(x,y); this.__cacheGLMatrix.concat(this.__renderTransform); this.__cacheGLMatrix.translate(this.__offset.x,this.__offset.y); renderSession.spriteBatch.renderBitmapData(this.__cachedBitmap,this.__cacheAsBitmapSmooth,this.__cacheGLMatrix,this.__worldColorTransform,this.__worldAlpha,this.blendMode,this.__shader,0); } ,__setStageReference: function(stage) { if(this.stage != stage) { if(this.stage != null) { if(this.stage.get_focus() == this) this.stage.set_focus(null); this.dispatchEvent(new openfl_events_Event("removedFromStage",false,false)); } this.stage = stage; if(stage != null) this.dispatchEvent(new openfl_events_Event("addedToStage",false,false)); } } ,__setRenderDirty: function() { if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } ,__setTransformDirty: function() { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } ,__update: function(transformOnly,updateChildren,maskGraphics) { this.__renderable = this.get_visible() && this.get_scaleX() != 0 && this.get_scaleY() != 0 && !this.__isMask; this.__updateTransforms(); if(this.parent != null && this.__isMask) this.__maskCached = false; if(updateChildren && this.__transformDirty) { this.__transformDirty = false; openfl_display_DisplayObject.__worldTransformDirty--; } if(!transformOnly && this.__mask != null && !this.__mask.__maskCached) { if(this.__maskGraphics == null) this.__maskGraphics = new openfl_display_Graphics(); this.__maskGraphics.clear(); this.__mask.__update(true,true,this.__maskGraphics); this.__mask.__maskCached = true; } if(maskGraphics != null) this.__updateMask(maskGraphics); if(!transformOnly && this.__cacheAsBitmap) { if(this.__updateCachedBitmap || this.__updateFilters) { if(this.__cachedBitmapBounds == null) this.__cachedBitmapBounds = new openfl_geom_Rectangle(); if(this.cacheAsBitmapBounds != null) this.__cachedBitmapBounds.copyFrom(this.cacheAsBitmapBounds); else { this.__cachedBitmapBounds.setEmpty(); this.__getRenderBounds(this.__cachedBitmapBounds,openfl_geom_Matrix.__identity); } if(this.__filters != null) { if(this.__cachedFilterBounds == null) this.__cachedFilterBounds = new openfl_geom_Rectangle(); this.__cachedFilterBounds.setEmpty(); openfl_filters_BitmapFilter.__expandBounds(this.__filters,this.__cachedFilterBounds,openfl_geom_Matrix.__identity); this.__cachedBitmapBounds.x += this.__cachedFilterBounds.x; this.__cachedBitmapBounds.y += this.__cachedFilterBounds.y; } } } if(!transformOnly) { if(!this.__worldColorTransform.__equals(this.get_transform().get_colorTransform())) this.__worldColorTransform = this.get_transform().get_colorTransform().__clone(); if(this.parent != null) { this.__worldAlpha = this.get_alpha() * this.parent.__worldAlpha; this.__worldColorTransform.__combine(this.parent.__worldColorTransform); if(this.blendMode == null || this.blendMode == 10) this.__blendMode = this.parent.__blendMode; if(this.shader == null) this.__shader = this.parent.__shader; } else this.__worldAlpha = this.get_alpha(); if(updateChildren && this.__renderDirty) this.__renderDirty = false; } } ,__updateChildren: function(transformOnly) { this.__renderable = this.get_visible() && this.get_scaleX() != 0 && this.get_scaleY() != 0 && !this.__isMask; if(!this.__renderable && !this.__isMask) return; this.__worldAlpha = this.get_alpha(); if(this.__transformDirty) { this.__transformDirty = false; openfl_display_DisplayObject.__worldTransformDirty--; } } ,__updateMask: function(maskGraphics) { if(this.__graphics != null) { maskGraphics.__commands.overrideMatrix(this.__worldTransform); maskGraphics.__commands.append(this.__graphics.__commands); maskGraphics.set___dirty(true); maskGraphics.__visible = true; if(maskGraphics.__bounds == null) maskGraphics.__bounds = new openfl_geom_Rectangle(); this.__graphics.__getBounds(maskGraphics.__bounds,openfl_geom_Matrix.__identity); } } ,__updateTransforms: function(overrideTransform) { var overrided = overrideTransform != null; var local; if(overrided) local = overrideTransform.clone(); else local = this.__transform; if(this.__worldTransform == null) this.__worldTransform = new openfl_geom_Matrix(); if(!overrided && this.parent != null) { var parentTransform = this.parent.__worldTransform; this.__worldTransform.a = local.a * parentTransform.a + local.b * parentTransform.c; this.__worldTransform.b = local.a * parentTransform.b + local.b * parentTransform.d; this.__worldTransform.c = local.c * parentTransform.a + local.d * parentTransform.c; this.__worldTransform.d = local.c * parentTransform.b + local.d * parentTransform.d; this.__worldTransform.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx; this.__worldTransform.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty; this.__worldOffset.copyFrom(this.parent.__worldOffset); } else { this.__worldTransform.copyFrom(local); this.__worldOffset.setTo(0,0); } if(this.__scrollRect != null) { this.__offset = this.__worldTransform.deltaTransformPoint(this.__scrollRect.get_topLeft()); this.__worldOffset.offset(this.__offset.x,this.__offset.y); } else this.__offset.setTo(0,0); this.__renderTransform.copyFrom(this.__worldTransform); this.__renderTransform.translate(-this.__worldOffset.x,-this.__worldOffset.y); } ,get_alpha: function() { return this.__alpha; } ,set_alpha: function(value) { if(value > 1.0) value = 1.0; if(value != this.__alpha) { if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } return this.__alpha = value; } ,set_blendMode: function(value) { this.__blendMode = value; return this.blendMode = value; } ,set_shader: function(value) { this.__shader = value; return this.shader = value; } ,get_cacheAsBitmap: function() { return this.__cacheAsBitmap; } ,set_cacheAsBitmap: function(value) { if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } return this.__forceCacheAsBitmap?this.__cacheAsBitmap = true:this.__cacheAsBitmap = value; } ,get_cacheAsBitmapMatrix: function() { return this.__cacheAsBitmapMatrix; } ,set_cacheAsBitmapMatrix: function(value) { if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } return this.__cacheAsBitmapMatrix = value.clone(); } ,get_cacheAsBitmapSmooth: function() { return this.__cacheAsBitmapSmooth; } ,set_cacheAsBitmapSmooth: function(value) { return this.__cacheAsBitmapSmooth = value; } ,get_filters: function() { if(this.__filters == null) return []; else return this.__filters.slice(); } ,set_filters: function(value) { if(value != null && value.length > 0) { this.__filters = value; this.__forceCacheAsBitmap = true; this.__cacheAsBitmap = true; this.__updateFilters = true; } else { this.__filters = null; this.__forceCacheAsBitmap = false; this.__cacheAsBitmap = false; this.__updateFilters = false; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } return value; } ,get_height: function() { var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,this.__transform); return bounds.height; } ,set_height: function(value) { var bounds = new openfl_geom_Rectangle(); var matrix = openfl_geom_Matrix.__temp; matrix.identity(); this.__getBounds(bounds,matrix); if(value != bounds.height) this.set_scaleY(value / bounds.height); else this.set_scaleY(1); return value; } ,get_mask: function() { return this.__mask; } ,set_mask: function(value) { if(value != this.__mask) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } if(this.__mask != null) { this.__mask.__isMask = false; this.__mask.__maskCached = false; this.__mask.__setTransformDirty(); this.__mask.__setRenderDirty(); this.__maskGraphics = null; } if(value != null) value.__isMask = true; return this.__mask = value; } ,get_mouseX: function() { var mouseX; if(this.stage != null) mouseX = this.stage.__mouseX; else mouseX = openfl_Lib.current.stage.__mouseX; var mouseY; if(this.stage != null) mouseY = this.stage.__mouseY; else mouseY = openfl_Lib.current.stage.__mouseY; return this.__getWorldTransform().__transformInverseX(mouseX,mouseY); } ,get_mouseY: function() { var mouseX; if(this.stage != null) mouseX = this.stage.__mouseX; else mouseX = openfl_Lib.current.stage.__mouseX; var mouseY; if(this.stage != null) mouseY = this.stage.__mouseY; else mouseY = openfl_Lib.current.stage.__mouseY; return this.__getWorldTransform().__transformInverseY(mouseX,mouseY); } ,get_name: function() { return this.__name; } ,set_name: function(value) { return this.__name = value; } ,get_root: function() { if(this.stage != null) return openfl_Lib.current; return null; } ,get_rotation: function() { return this.__rotation; } ,set_rotation: function(value) { if(value != this.__rotation) { this.__rotation = value; var radians = this.__rotation * (Math.PI / 180); this.__rotationSine = Math.sin(radians); this.__rotationCosine = Math.cos(radians); var __scaleX = this.get_scaleX(); var __scaleY = this.get_scaleY(); this.__transform.a = this.__rotationCosine * __scaleX; this.__transform.b = this.__rotationSine * __scaleX; this.__transform.c = -this.__rotationSine * __scaleY; this.__transform.d = this.__rotationCosine * __scaleY; if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } return value; } ,get_scaleX: function() { if(this.__transform.b == 0) return this.__transform.a; else return Math.sqrt(this.__transform.a * this.__transform.a + this.__transform.b * this.__transform.b); } ,set_scaleX: function(value) { if(this.__transform.c == 0) { if(value != this.__transform.a) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } this.__transform.a = value; } else { var a = this.__rotationCosine * value; var b = this.__rotationSine * value; if(this.__transform.a != a || this.__transform.b != b) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } this.__transform.a = a; this.__transform.b = b; } return value; } ,get_scaleY: function() { if(this.__transform.c == 0) return this.__transform.d; else return Math.sqrt(this.__transform.c * this.__transform.c + this.__transform.d * this.__transform.d); } ,set_scaleY: function(value) { if(this.__transform.c == 0) { if(value != this.__transform.d) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } this.__transform.d = value; } else { var c = -this.__rotationSine * value; var d = this.__rotationCosine * value; if(this.__transform.d != d || this.__transform.c != c) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } this.__transform.c = c; this.__transform.d = d; } return value; } ,get_scrollRect: function() { if(this.__scrollRect == null) return null; return this.__scrollRect.clone(); } ,set_scrollRect: function(value) { if(value != this.__scrollRect) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } return this.__scrollRect = value; } ,get_transform: function() { if(this.__objectTransform == null) this.__objectTransform = new openfl_geom_Transform(this); return this.__objectTransform; } ,set_transform: function(value) { if(value == null) throw new js__$Boot_HaxeError(new openfl_errors_TypeError("Parameter transform must be non-null.")); if(this.__objectTransform == null) this.__objectTransform = new openfl_geom_Transform(this); if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } this.__objectTransform.set_matrix(value.get_matrix()); this.__objectTransform.set_colorTransform(value.get_colorTransform().__clone()); return this.__objectTransform; } ,get_visible: function() { return this.__visible; } ,set_visible: function(value) { if(value != this.__visible) { if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } return this.__visible = value; } ,get_width: function() { var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,this.__transform); return bounds.width; } ,set_width: function(value) { var bounds = new openfl_geom_Rectangle(); var matrix = openfl_geom_Matrix.__temp; matrix.identity(); this.__getBounds(bounds,matrix); if(value != bounds.width) this.set_scaleX(value / bounds.width); else this.set_scaleX(1); return value; } ,get_x: function() { return this.__transform.tx; } ,set_x: function(value) { if(value != this.__transform.tx) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } return this.__transform.tx = value; } ,get_y: function() { return this.__transform.ty; } ,set_y: function(value) { if(value != this.__transform.ty) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } } return this.__transform.ty = value; } ,__class__: openfl_display_DisplayObject ,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_width:"set_width",get_width:"get_width",set_visible:"set_visible",get_visible:"get_visible",set_transform:"set_transform",get_transform:"get_transform",set_shader:"set_shader",set_scrollRect:"set_scrollRect",get_scrollRect:"get_scrollRect",set_scaleY:"set_scaleY",get_scaleY:"get_scaleY",set_scaleX:"set_scaleX",get_scaleX:"get_scaleX",set_rotation:"set_rotation",get_rotation:"get_rotation",get_root:"get_root",set_name:"set_name",get_name:"get_name",get_mouseY:"get_mouseY",get_mouseX:"get_mouseX",set_mask:"set_mask",get_mask:"get_mask",set_height:"set_height",get_height:"get_height",set_filters:"set_filters",get_filters:"get_filters",set_cacheAsBitmapSmooth:"set_cacheAsBitmapSmooth",get_cacheAsBitmapSmooth:"get_cacheAsBitmapSmooth",set_cacheAsBitmapMatrix:"set_cacheAsBitmapMatrix",get_cacheAsBitmapMatrix:"get_cacheAsBitmapMatrix",set_cacheAsBitmap:"set_cacheAsBitmap",get_cacheAsBitmap:"get_cacheAsBitmap",set_blendMode:"set_blendMode",set_alpha:"set_alpha",get_alpha:"get_alpha"} }); var openfl_display_InteractiveObject = function() { openfl_display_DisplayObject.call(this); this.doubleClickEnabled = false; this.mouseEnabled = true; this.needsSoftKeyboard = false; this.__tabEnabled = false; this.tabIndex = -1; }; $hxClasses["openfl.display.InteractiveObject"] = openfl_display_InteractiveObject; openfl_display_InteractiveObject.__name__ = ["openfl","display","InteractiveObject"]; openfl_display_InteractiveObject.__super__ = openfl_display_DisplayObject; openfl_display_InteractiveObject.prototype = $extend(openfl_display_DisplayObject.prototype,{ doubleClickEnabled: null ,focusRect: null ,mouseEnabled: null ,needsSoftKeyboard: null ,softKeyboardInputAreaOfInterest: null ,tabIndex: null ,__tabEnabled: null ,requestSoftKeyboard: function() { openfl_Lib.notImplemented("InteractiveObject.requestSoftKeyboard"); return false; } ,__getInteractive: function(stack) { if(stack != null) { stack.push(this); if(this.parent != null) this.parent.__getInteractive(stack); } return true; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) return false; return openfl_display_DisplayObject.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject); } ,get_tabEnabled: function() { return this.__tabEnabled; } ,set_tabEnabled: function(value) { return this.__tabEnabled = value; } ,__class__: openfl_display_InteractiveObject ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_tabEnabled:"set_tabEnabled",get_tabEnabled:"get_tabEnabled"}) }); var openfl_display_DisplayObjectContainer = function() { openfl_display_InteractiveObject.call(this); this.mouseChildren = true; this.__children = []; this.__removedChildren = []; }; $hxClasses["openfl.display.DisplayObjectContainer"] = openfl_display_DisplayObjectContainer; openfl_display_DisplayObjectContainer.__name__ = ["openfl","display","DisplayObjectContainer"]; openfl_display_DisplayObjectContainer.__super__ = openfl_display_InteractiveObject; openfl_display_DisplayObjectContainer.prototype = $extend(openfl_display_InteractiveObject.prototype,{ mouseChildren: null ,numChildren: null ,tabChildren: null ,__removedChildren: null ,addChild: function(child) { if(child != null) { if(child.parent != null) child.parent.removeChild(child); this.__children.push(child); child.parent = this; if(this.stage != null) child.__setStageReference(this.stage); if(!child.__transformDirty) { child.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } if(!child.__renderDirty) { child.__updateCachedBitmap = true; child.__updateFilters = child.get_filters() != null && child.get_filters().length > 0; child.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } var event = new openfl_events_Event("added",true); event.target = child; child.__dispatchEvent(event); } return child; } ,addChildAt: function(child,index) { if(index > this.__children.length || index < 0) throw new js__$Boot_HaxeError("Invalid index position " + index); if(child.parent == this) HxOverrides.remove(this.__children,child); else { if(child.parent != null) child.parent.removeChild(child); child.parent = this; if(this.stage != null) child.__setStageReference(this.stage); if(!child.__transformDirty) { child.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } if(!child.__renderDirty) { child.__updateCachedBitmap = true; child.__updateFilters = child.get_filters() != null && child.get_filters().length > 0; child.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } var event = new openfl_events_Event("added",true); event.target = child; child.__dispatchEvent(event); } this.__children.splice(index,0,child); return child; } ,areInaccessibleObjectsUnderPoint: function(point) { return false; } ,contains: function(child) { while(child != this && child != null) child = child.parent; return child == this; } ,getChildAt: function(index) { if(index >= 0 && index < this.__children.length) return this.__children[index]; return null; } ,getChildByName: function(name) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_name() == name) return child; } return null; } ,getChildIndex: function(child) { var _g1 = 0; var _g = this.__children.length; while(_g1 < _g) { var i = _g1++; if(this.__children[i] == child) return i; } return -1; } ,getObjectsUnderPoint: function(point) { var stack = []; this.__hitTest(point.x,point.y,false,stack,false,this); stack.reverse(); return stack; } ,removeChild: function(child) { if(child != null && child.parent == this) { child.__dispatchEvent(new openfl_events_Event("removed",true)); if(this.stage != null) child.__setStageReference(null); child.parent = null; HxOverrides.remove(this.__children,child); this.__removedChildren.push(child); if(!child.__transformDirty) { child.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } if(!child.__renderDirty) { child.__updateCachedBitmap = true; child.__updateFilters = child.get_filters() != null && child.get_filters().length > 0; child.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } return child; } ,removeChildAt: function(index) { if(index >= 0 && index < this.__children.length) return this.removeChild(this.__children[index]); return null; } ,removeChildren: function(beginIndex,endIndex) { if(endIndex == null) endIndex = 2147483647; if(beginIndex == null) beginIndex = 0; if(endIndex == 2147483647) { endIndex = this.__children.length - 1; if(endIndex < 0) return; } if(beginIndex > this.__children.length - 1) return; else if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__children.length) throw new js__$Boot_HaxeError(new openfl_errors_RangeError("The supplied index is out of bounds.")); var numRemovals = endIndex - beginIndex; while(numRemovals >= 0) { this.removeChildAt(beginIndex); numRemovals--; } } ,resolve: function(fieldName) { if(this.__children == null) return null; var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_name() == fieldName) return child; } return null; } ,setChildIndex: function(child,index) { if(index >= 0 && index <= this.__children.length && child.parent == this) { HxOverrides.remove(this.__children,child); this.__children.splice(index,0,child); } } ,swapChildren: function(child1,child2) { if(child1.parent == this && child2.parent == this) { var index1 = HxOverrides.indexOf(this.__children,child1,0); var index2 = HxOverrides.indexOf(this.__children,child2,0); this.__children[index1] = child2; this.__children[index2] = child1; } } ,swapChildrenAt: function(index1,index2) { var swap = this.__children[index1]; this.__children[index1] = this.__children[index2]; this.__children[index2] = swap; swap = null; } ,__broadcast: function(event,notifyChilden) { if(event.target == null) event.target = this; var result = openfl_display_InteractiveObject.prototype.__broadcast.call(this,event,notifyChilden); if(!event.__isCanceled && notifyChilden) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__broadcast(event,true); if(event.__isCanceled) return true; } } return result; } ,__enterFrame: function(deltaTime) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__enterFrame(deltaTime); } } ,__getBounds: function(rect,matrix) { openfl_display_InteractiveObject.prototype.__getBounds.call(this,rect,matrix); if(this.__children.length == 0) return; if(matrix != null) { this.__updateTransforms(matrix); this.__updateChildren(true); } var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_scaleX() == 0 || child.get_scaleY() == 0) continue; child.__getBounds(rect,child.__worldTransform); } if(matrix != null) { this.__updateTransforms(); this.__updateChildren(true); } } ,__getRenderBounds: function(rect,matrix) { if(this.__scrollRect != null) { openfl_display_InteractiveObject.prototype.__getRenderBounds.call(this,rect,matrix); return; } else openfl_display_InteractiveObject.prototype.__getBounds.call(this,rect,matrix); if(this.__children.length == 0) return; if(matrix != null) { this.__updateTransforms(matrix); this.__updateChildren(true); } var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.get_scaleX() == 0 || child.get_scaleY() == 0 || child.__isMask) continue; child.__getRenderBounds(rect,child.__worldTransform); } if(matrix != null) { this.__updateTransforms(); this.__updateChildren(true); } } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled && !this.mouseChildren) return false; if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) return false; if(this.get_scrollRect() != null && !this.get_scrollRect().containsPoint(this.globalToLocal(new openfl_geom_Point(x,y)))) return false; var i = this.__children.length; if(interactiveOnly) { if(stack == null || !this.mouseChildren) { while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,null,true,this.__children[i])) { if(stack != null) stack.push(hitObject); return true; } } else if(stack != null) { var length = stack.length; var interactive = false; var hitTest = false; while(--i >= 0) { interactive = this.__children[i].__getInteractive(null); if(interactive || this.mouseEnabled && !hitTest) { if(this.__children[i].__hitTest(x,y,shapeFlag,stack,true,this.__children[i])) { hitTest = true; if(interactive) break; } } } if(hitTest) { stack.splice(length,0,hitObject); return true; } } } else while(--i >= 0) this.__children[i].__hitTest(x,y,shapeFlag,stack,false,this.__children[i]); return false; } ,__hitTestMask: function(x,y) { var i = this.__children.length; while(--i >= 0) if(this.__children[i].__hitTestMask(x,y)) return true; return false; } ,__renderCairo: function(renderSession) { if(!this.__renderable || this.__worldAlpha <= 0) return; openfl_display_InteractiveObject.prototype.__renderCairo.call(this,renderSession); if(this.get_scrollRect() != null) renderSession.maskManager.pushRect(this.get_scrollRect(),this.__worldTransform); if(this.__mask != null) renderSession.maskManager.pushMask(this.__mask); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__renderCairo(renderSession); } if(this.__removedChildren.length > 0) this.__removedChildren.splice(0,this.__removedChildren.length); if(this.__mask != null) renderSession.maskManager.popMask(); if(this.get_scrollRect() != null) renderSession.maskManager.popRect(); } ,__renderCairoMask: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_cairo_CairoGraphics.renderMask(this.__graphics,renderSession); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__renderCairoMask(renderSession); } } ,__renderCanvas: function(renderSession) { if(!this.__renderable || this.__worldAlpha <= 0) return; openfl_display_InteractiveObject.prototype.__renderCanvas.call(this,renderSession); if(this.get_scrollRect() != null) renderSession.maskManager.pushRect(this.get_scrollRect(),this.__worldTransform); if(this.__mask != null) renderSession.maskManager.pushMask(this.__mask); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__renderCanvas(renderSession); } if(this.__removedChildren.length > 0) this.__removedChildren.splice(0,this.__removedChildren.length); if(this.__mask != null) renderSession.maskManager.popMask(); if(this.get_scrollRect() != null) renderSession.maskManager.popRect(); } ,__renderCanvasMask: function(renderSession) { if(this.__graphics != null) openfl__$internal_renderer_canvas_CanvasGraphics.renderMask(this.__graphics,renderSession); var bounds = new openfl_geom_Rectangle(); this.__getBounds(bounds,this.__transform); renderSession.context.rect(0,0,bounds.width,bounds.height); } ,__renderDOM: function(renderSession) { openfl_display_InteractiveObject.prototype.__renderDOM.call(this,renderSession); if(this.__mask != null) renderSession.maskManager.pushMask(this.__mask); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__renderDOM(renderSession); } var _g2 = 0; var _g11 = this.__removedChildren; while(_g2 < _g11.length) { var orphan = _g11[_g2]; ++_g2; if(orphan.stage == null) orphan.__renderDOM(renderSession); } if(this.__removedChildren.length > 0) this.__removedChildren.splice(0,this.__removedChildren.length); if(this.__mask != null) renderSession.maskManager.popMask(); } ,__renderGL: function(renderSession) { if(!this.__renderable || this.__worldAlpha <= 0) return; if(this.__cacheAsBitmap) { this.__cacheGL(renderSession); return; } if(this.__scrollRect != null) renderSession.maskManager.pushRect(this.__scrollRect,this.__renderTransform); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.pushMask(this); if(this.__graphics != null) { if(this.__graphics.__hardware) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.render(this,renderSession); else { openfl__$internal_renderer_canvas_CanvasGraphics.render(this.__graphics,renderSession); openfl__$internal_renderer_opengl_GLRenderer.renderBitmap(this,renderSession); } } var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__renderGL(renderSession); } if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.popMask(); if(this.__scrollRect != null) renderSession.maskManager.popRect(); if(this.__removedChildren.length > 0) this.__removedChildren.splice(0,this.__removedChildren.length); } ,__setStageReference: function(stage) { if(this.stage != stage) { if(this.stage != null) this.__dispatchEvent(new openfl_events_Event("removedFromStage",false,false)); this.stage = stage; if(stage != null) this.__dispatchEvent(new openfl_events_Event("addedToStage",false,false)); if(this.__children != null) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__setStageReference(stage); } } } } ,__update: function(transformOnly,updateChildren,maskGraphics) { openfl_display_InteractiveObject.prototype.__update.call(this,transformOnly,updateChildren,maskGraphics); if(!this.__renderable && !this.__isMask) return; if(updateChildren) { var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__update(transformOnly,true,maskGraphics); } } } ,__updateChildren: function(transformOnly) { openfl_display_InteractiveObject.prototype.__updateChildren.call(this,transformOnly); var _g = 0; var _g1 = this.__children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; child.__update(transformOnly,true); } } ,get_numChildren: function() { return this.__children.length; } ,__class__: openfl_display_DisplayObjectContainer ,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{get_numChildren:"get_numChildren"}) }); var openfl_display_Sprite = function() { openfl_display_DisplayObjectContainer.call(this); this.buttonMode = false; this.useHandCursor = true; this.loaderInfo = openfl_display_LoaderInfo.create(null); }; $hxClasses["openfl.display.Sprite"] = openfl_display_Sprite; openfl_display_Sprite.__name__ = ["openfl","display","Sprite"]; openfl_display_Sprite.__super__ = openfl_display_DisplayObjectContainer; openfl_display_Sprite.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{ buttonMode: null ,graphics: null ,hitArea: null ,useHandCursor: null ,startDrag: function(lockCenter,bounds) { if(lockCenter == null) lockCenter = false; if(this.stage != null) this.stage.__startDrag(this,lockCenter,bounds); } ,stopDrag: function() { if(this.stage != null) this.stage.__stopDrag(this); } ,__getCursor: function() { if(this.buttonMode && this.useHandCursor) return lime_ui_MouseCursor.POINTER; else return null; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(this.hitArea != null) { if(!this.hitArea.mouseEnabled) { this.hitArea.mouseEnabled = true; var hitTest = this.hitArea.__hitTest(x,y,shapeFlag,null,true,hitObject); this.hitArea.mouseEnabled = false; if(hitTest) stack[stack.length] = hitObject; return hitTest; } } else { if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled && !this.mouseChildren) return false; if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) return false; if(openfl_display_DisplayObjectContainer.prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject)) return interactiveOnly; else if((!interactiveOnly || this.mouseEnabled) && this.__graphics != null && this.__graphics.__hitTest(x,y,shapeFlag,this.__getWorldTransform())) { if(stack != null) stack.push(hitObject); return true; } } return false; } ,__hitTestMask: function(x,y) { if(openfl_display_DisplayObjectContainer.prototype.__hitTestMask.call(this,x,y)) return true; else if(this.__graphics != null && this.__graphics.__hitTest(x,y,true,this.__getWorldTransform())) return true; return false; } ,get_graphics: function() { if(this.__graphics == null) { this.__graphics = new openfl_display_Graphics(); this.__graphics.__owner = this; } return this.__graphics; } ,get_tabEnabled: function() { return this.__tabEnabled || this.buttonMode; } ,__class__: openfl_display_Sprite ,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{get_graphics:"get_graphics"}) }); var Main = function() { dirtyTactic = this; this.maxDrawCalls = 0; this.curFrameDrawCalls = 0; this.wasMuted1 = false; this.wasMuted = false; this.fullStop = false; this._mouseY = 0; this._mouseX = 0; this.movieClips = []; this.sortObjects = []; this.mostTopObjects = []; this.topObjects = []; this.bottomObjects = []; this.canvasIsOn = true; this.clearedCanvas = true; this.thisIsLogInSocial = false; this.thisAddedToStage = false; this.overlayMaker = null; this.isPlayingMusic = false; this.isMouseDown = false; this.isPausedByOrientation = false; this.isMobileBrowser = false; this.inputType = ""; this.minUpdateTime = 1; this.lastTime = 0; this.N = 1; this.paused = true; this.atlases = []; this.isFpsEnabled = true; this.inited = false; openfl_display_Sprite.call(this); this.soundsSpritesStartedThisFrame = []; this.objectsToUpdate = []; this.numericFont = new NumericFont("MainFontNumeric",21); this.numericFontFps = new NumericFont("MainFontNumeric1",21); Main.current = this; this.config = new Config(); this.musicSounds = []; this.isMobileBrowser = this.config.getIsMobileBrowser(); this.addEventListener("addedToStage",$bind(this,this.added)); this.batch = new Batching(null,0,0,"img/MainAtlas.png","img/MainAtlas.xml"); this.atlases.push(this.batch); this.batch.main = this; var imName = "img/bg.jpg"; var bgBitmap = openfl_Assets.getBitmapData(imName); this.bgBatch = new Batching([imName],bgBitmap.width,bgBitmap.height); this.atlases.push(this.bgBatch); this.bgBatch.main = this; window.famobi_onPauseRequested = $bind(this,this.pausePublisherApi); window.famobi_onResumeRequested = $bind(this,this.resumePublisherApi); }; $hxClasses["Main"] = Main; Main.__name__ = ["Main"]; Main.current = null; Main.openMoreGames = function() { window.famobi.moreGamesLink(); }; Main.main = function() { if(Main.created) return; openfl_Lib.current.stage.align = 6; openfl_Lib.current.stage.scaleMode = 2; openfl_Lib.current.addChildAt(new Main(),0); Main.created = true; Preloader.remove(); }; Main.__super__ = openfl_display_Sprite; Main.prototype = $extend(openfl_display_Sprite.prototype,{ inited: null ,isFpsEnabled: null ,fps: null ,config: null ,sWidth: null ,sHeight: null ,objectsToUpdate: null ,atlases: null ,batch: null ,bgBatch: null ,menuBatch: null ,lastBatch: null ,canvas: null ,rotateScreenWindow: null ,paused: null ,N: null ,lastTime: null ,minUpdateTime: null ,inputType: null ,isMobileBrowser: null ,isPausedByOrientation: null ,isMouseDown: null ,sounds: null ,isPlayingMusic: null ,musicSounds: null ,hp: null ,keyCodesDown: null ,overlayMaker: null ,soundsSpritesStartedThisFrame: null ,overlay: null ,numericFont: null ,numericFontFps: null ,thisAddedToStage: null ,thisIsLogInSocial: null ,clearedCanvas: null ,canvasIsOn: null ,bottomObjects: null ,topObjects: null ,mostTopObjects: null ,sortObjects: null ,movieClips: null ,_mouseX: null ,_mouseY: null ,desk: null ,ingameMenu: null ,resize: function(e) { if(!this.inited) { this.init(); return; } this.config.resizeSet(this.inited); this.config.initSize(true); this.sWidth = this.config.sWidth; this.sHeight = this.config.sHeight; this.N = this.config.N; if(this.canvas != null) { this.canvas.resize(); if(this.desk != null) this.desk.onResize(); this.update(null); } } ,fullStop: null ,set_fullStop: function(val) { this.fullStop = val; return val; } ,wasMuted: null ,wasMuted1: null ,pausePublisherApi: function() { this.set_fullStop(true); } ,resumePublisherApi: function() { this.set_fullStop(false); } ,soundOnPublisherApi: function() { if(!this.wasMuted1) this.unMute(); } ,soundOfPublisherApi: function() { this.wasMuted1 = this.sounds.muted; this.mute(); } ,getObjByName: function(name) { var _g1 = 0; var _g = this.sortObjects.length; while(_g1 < _g) { var i = _g1++; if(this.sortObjects[i].name == name) return this.sortObjects[i]; } return null; } ,setVisObjByName: function(name,vis) { var _g1 = 0; var _g = this.sortObjects.length; while(_g1 < _g) { var i = _g1++; if(this.sortObjects[i].name == name) { this.sortObjects[i].visible = vis; return this.sortObjects[i]; } } var _g11 = 0; var _g2 = this.bottomObjects.length; while(_g11 < _g2) { var i1 = _g11++; if(this.bottomObjects[i1].name == name) { this.bottomObjects[i1].visible = vis; return this.bottomObjects[i1]; } } var _g12 = 0; var _g3 = this.topObjects.length; while(_g12 < _g3) { var i2 = _g12++; if(this.topObjects[i2].name == name) { this.topObjects[i2].visible = vis; return this.topObjects[i2]; } } var _g13 = 0; var _g4 = this.mostTopObjects.length; while(_g13 < _g4) { var i3 = _g13++; if(!js_Boot.__instanceof(this.mostTopObjects[i3],BitmapNumFont) && this.mostTopObjects[i3].name == name) { this.mostTopObjects[i3].visible = vis; return this.mostTopObjects[i3]; } } return null; } ,added: function(e) { this.removeEventListener("addedToStage",$bind(this,this.added)); this.stage.addEventListener("resize",$bind(this,this.resize)); this.thisAddedToStage = true; this.init(); this.stage.__transparent = true; } ,playSpriteSound: function(spriteName,loop) { if(loop == null) loop = false; if(HxOverrides.indexOf(this.soundsSpritesStartedThisFrame,spriteName,0) != -1) return; this.soundsSpritesStartedThisFrame.push(spriteName); this.sounds.playSound("sprite",spriteName,loop,false,false,"sound"); } ,stopSpriteSound: function(spriteName,loop) { if(loop == null) loop = false; this.sounds.stopSound("sprite",spriteName); } ,playSpriteMusicE: function(spriteName,loop,stopAllPlayingMusics) { if(stopAllPlayingMusics == null) stopAllPlayingMusics = true; if(loop == null) loop = false; if(stopAllPlayingMusics) this.stopAllMusics(); this.sounds.stopSound("sprite",spriteName); this.sounds.playSound("sprite",spriteName,loop,false,false,"music"); if(HxOverrides.indexOf(this.musicSounds,spriteName,0) != -1) this.musicSounds.push(spriteName); this.isPlayingMusic = true; } ,stopSpriteMusic: function(spriteName) { this.sounds.stopSound("sprite",spriteName); this.isPlayingMusic = false; } ,setMusicVolume: function(volume) { } ,setSoundVolume: function(volume) { } ,stopAllMusics: function() { return; } ,mute: function() { this.sounds.mute(); } ,unMute: function(playBgMusic) { if(playBgMusic == null) playBgMusic = false; this.sounds.unMute(); if(playBgMusic) this.playSpriteMusicE("BackgroundSound",true,true); } ,init: function() { if(this.inited) return; this.inited = true; this.config.checkSiteLock(); if(this.config.initSize()) { this.inited = false; return; } this.sWidth = this.config.sWidth; this.sHeight = this.config.sHeight; this.N = this.config.N; this.sounds = this.config.initSounds(); if(this.canvas == null) this.canvas = new BatchCanvas(); this.addChild(this.canvas); this.desk = new Desk(); this.ingameMenu = new IngameMenu(); this.addChild(this.ingameMenu); this.addChild(new MainMenu()); this.paused = true; this.addEventListener("enterFrame",$bind(this,this.update)); this.lastTime = openfl_Lib.getTimer(); this.keyCodesDown = []; this.stage.addEventListener("keyDown",$bind(this,this.keyDown)); this.stage.addEventListener("keyUp",$bind(this,this.keyUp)); if(this.inputType == "click" || this.inputType == "") { this.stage.addEventListener("mouseDown",$bind(this,this.mDown)); this.stage.addEventListener("mouseMove",$bind(this,this.mMove)); this.stage.addEventListener("mouseUp",$bind(this,this.mUp)); } else { this.stage.addEventListener("touchBegin",$bind(this,this.mDown)); this.stage.addEventListener("touchMove",$bind(this,this.mMove)); this.stage.addEventListener("touchEnd",$bind(this,this.mUp)); } this.config.sendToTopTapToStart(); } ,playFonSound: function() { } ,onSocialLogin: function() { this.thisIsLogInSocial = true; } ,cb: function(e) { } ,keyDown: function(e) { var _g1 = 0; var _g = this.keyCodesDown.length; while(_g1 < _g) { var i = _g1++; if(this.keyCodesDown[i] == e.keyCode) return; } this.keyCodesDown.push(e.keyCode); } ,keyUp: function(e) { HxOverrides.remove(this.keyCodesDown,e.keyCode); } ,createMenus: function() { } ,tapToStartClick: function(e) { this.inputType = e.type; this.createMenus(); } ,mDown: function(e) { this._mouseX = openfl_Lib.current.stage.__mouseX / this.get_scaleX(); this._mouseY = openfl_Lib.current.stage.__mouseY / this.get_scaleY(); this.isMouseDown = true; } ,mMove: function(e) { this._mouseX = openfl_Lib.current.stage.__mouseX / this.get_scaleX(); this._mouseY = openfl_Lib.current.stage.__mouseY / this.get_scaleY(); } ,mUp: function(e) { this._mouseX = openfl_Lib.current.stage.__mouseX / this.get_scaleX(); this._mouseY = openfl_Lib.current.stage.__mouseY / this.get_scaleY(); this.isMouseDown = false; } ,pauseGame: function(e) { return; if(this.paused) return; this.paused = true; } ,newGame: function(animate) { if(animate == null) animate = false; this.desk.newGame(null,animate); this.paused = false; } ,isKeyDown: function(keyCode) { var _g1 = 0; var _g = this.keyCodesDown.length; while(_g1 < _g) { var i = _g1++; if(this.keyCodesDown[i] == keyCode) return true; } return false; } ,sortFun: function(obj1,obj2) { if(obj1.y > obj2.y) return 1; else if(obj1.y == obj2.y) { return 0; if(obj1.get_height() > obj1.get_height()) return 1; else return -1; } else return -1; } ,sortY: function(obj1,obj2) { if(obj1.y > obj2.y) return 1; else return -1; } ,curFrameDrawCalls: null ,maxDrawCalls: null ,checkDrawCall: function(batch) { if(this.lastBatch != null && this.lastBatch != batch) { this.lastBatch.render(this.canvas,!this.clearedCanvas); this.clearedCanvas = true; this.curFrameDrawCalls++; } this.lastBatch = batch; } ,get_mouseX: function() { return this._mouseX; } ,get_mouseY: function() { return this._mouseY; } ,disableCanvas: function() { if(!this.canvasIsOn) return; } ,enableCanvas: function() { if(this.canvasIsOn) return; } ,update: function(e) { this._mouseX = openfl_Lib.current.stage.__mouseX / this.get_scaleX(); this._mouseY = openfl_Lib.current.stage.__mouseY / this.get_scaleY(); var t = openfl_Lib.getTimer(); var frameTime = t - this.lastTime; if(frameTime >= this.minUpdateTime) this.lastTime = t; else return; if(this.fullStop) return; var _g1 = 0; var _g = this.movieClips.length; while(_g1 < _g) { var i = _g1++; this.movieClips[i].update(); } while(this.soundsSpritesStartedThisFrame.length > 0) this.soundsSpritesStartedThisFrame.pop(); var _g11 = 0; var _g2 = this.objectsToUpdate.length; while(_g11 < _g2) { var i1 = _g11++; this.objectsToUpdate[i1].update(frameTime); } if(this.isFpsEnabled && this.fps != null) this.fps.update(frameTime); if(this.paused) return; var isTouchDev = false; isTouchDev = this.isMouseDown; if(!this.isMobileBrowser) isTouchDev = false; this.desk.update(frameTime); this.desk.render(); if(this.lastBatch != null) this.lastBatch.render(this.canvas,!this.clearedCanvas); this.lastBatch = null; this.clearedCanvas = false; if(this.curFrameDrawCalls > this.maxDrawCalls) this.maxDrawCalls = this.curFrameDrawCalls; this.curFrameDrawCalls = 0; } ,__class__: Main ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_fullStop:"set_fullStop"}) }); var DocumentClass = function() { openfl_Lib.current.addChild(this); Main.call(this); this.dispatchEvent(new openfl_events_Event("addedToStage",false,false)); }; $hxClasses["DocumentClass"] = DocumentClass; DocumentClass.__name__ = ["DocumentClass"]; DocumentClass.__super__ = Main; DocumentClass.prototype = $extend(Main.prototype,{ __class__: DocumentClass }); var BatchCanvas = function(_width,_height) { if(_height == null) _height = 0; if(_width == null) _width = 0; this.wasSH = -1; this.wasSW = -1; this.wasMainSY = -1; this.wasMainSX = -1; this.isOpenGLSupported = false; openfl_display_Sprite.call(this); this.main = Main.current; if(_width == 0) _width = Math.ceil(Main.current.sWidth); if(_height == 0) _height = Math.ceil(Main.current.sHeight); this.bmCanvas = new openfl_display_Bitmap(new openfl_display_BitmapData(_width,_height,true,0),1,true); this.addChild(this.bmCanvas); }; $hxClasses["BatchCanvas"] = BatchCanvas; BatchCanvas.__name__ = ["BatchCanvas"]; BatchCanvas.__super__ = openfl_display_Sprite; BatchCanvas.prototype = $extend(openfl_display_Sprite.prototype,{ bmCanvas: null ,isOpenGLSupported: null ,main: null ,wasMainSX: null ,wasMainSY: null ,wasSW: null ,wasSH: null ,resize: function() { if (this.bmCanvas != null) { //this.bmCanvas.bitmapData = new openfl_display_BitmapData(Math.ceil(Main.current.sWidth),Math.ceil(Main.current.sHeight),true,0); var ctx = this.bmCanvas.bitmapData.image.buffer.__srcContext; ctx.canvas.width = Math.ceil(Main.current.sWidth); ctx.canvas.height = Math.ceil(Main.current.sHeight); } } ,destroy: function() { this.main = null; if(this.bmCanvas != null && this.bmCanvas.parent != null) this.bmCanvas.parent.removeChild(this.bmCanvas); this.bmCanvas = null; } ,__class__: BatchCanvas }); var Batching = function(imgsArr,spriteWidth,spriteHeight,atlasImgPath,atlasXmlPath) { if(spriteHeight == null) spriteHeight = 1024; if(spriteWidth == null) spriteWidth = 1024; this.bgBmdHeight = 0; this.bgBmdWidth = 0; this.imName = ""; this.scale = 1; this.getBitmapDataCache = new haxe_ds_StringMap(); this.maxHeight = 0; this.curY = 0; this.curX = 0; this.atlasImgPath = atlasImgPath; this.atlasXmlPath = atlasXmlPath; this.drawArr = []; Batching.instances.h[Batching.count] = this; this.tileSheetId = Batching.count; Batching.count++; this.zonesMap = new haxe_ds_StringMap(); this.mapZones = new haxe_ds_IntMap(); this.rects = new haxe_ds_StringMap(); this.frames = new haxe_ds_StringMap(); this.framesByInd = []; this.frameM = new openfl_geom_Matrix(); this.hm = new openfl_geom_Matrix(); this.p = new openfl_geom_Point(); this.ct = new openfl_geom_ColorTransform(); this.hmm1 = new openfl_geom_Matrix(); this.hmm2 = new openfl_geom_Matrix(); if(atlasImgPath == null) this.bmd = new openfl_display_BitmapData(spriteWidth,spriteHeight,true,0); if(atlasImgPath != null) { this.parseAtlas(); return; } var tBmd = null; var gap = 1; var hp = new openfl_geom_Point(); var baseName; var ind = 0; while(imgsArr.length > 0) { baseName = imgsArr.pop(); tBmd = openfl_Assets.getBitmapData(baseName); if(this.curX + tBmd.width > this.bmd.width) { this.curX = 0; this.curY += this.maxHeight + gap; this.maxHeight = 0; } if(this.maxHeight < tBmd.height) this.maxHeight = tBmd.height; hp.x = this.curX; hp.y = this.curY; this.bmd.copyPixels(tBmd,tBmd.rect,hp); var value = new openfl_geom_Rectangle(hp.x,hp.y,tBmd.width,tBmd.height); this.rects.set(baseName,value); this.curX += tBmd.width + gap; } this.tileSheet = new openfl_display_Tilesheet(this.bmd); var ind1; var bounds1 = new openfl_geom_Rectangle(); var reccc; var texCoords; var $it0 = this.rects.keys(); while( $it0.hasNext() ) { var j = $it0.next(); ind1 = this.tileSheet.addTileRect(this.rects.get(j)); this.zonesMap.set(j,ind1); this.mapZones.h[ind1] = j; } this.main = Main.current; }; $hxClasses["Batching"] = Batching; Batching.__name__ = ["Batching"]; Batching.prototype = { tileSheetId: null ,curX: null ,curY: null ,maxHeight: null ,zonesMap: null ,mapZones: null ,rects: null ,frames: null ,framesByInd: null ,bmd: null ,tileSheet: null ,atlasImgPath: null ,atlasXmlPath: null ,hm: null ,hmm1: null ,hmm2: null ,p: null ,ct: null ,frameM: null ,drawArr: null ,getBitmapDataCache: null ,main: null ,scale: null ,imName: null ,bgBmdWidth: null ,bgBmdHeight: null ,parseAtlas: function() { var atlasBmd = openfl_Assets.getBitmapData(this.atlasImgPath); var atlasXml = null; atlasXml = Xml.parse(openfl_Assets.getText(this.atlasXmlPath)); var bounds; var $it0 = atlasXml.firstElement().elementsNamed("SubTexture"); while( $it0.hasNext() ) { var subTexture = $it0.next(); bounds = new openfl_geom_Rectangle(Std.parseFloat(subTexture.get("x")),Std.parseFloat(subTexture.get("y")),Std.parseFloat(subTexture.get("width")),Std.parseFloat(subTexture.get("height"))); var key = subTexture.get("name"); this.rects.set(key,bounds); if(!(function($this) { var $r; var f = Std.parseFloat(subTexture.get("frameX")); $r = isNaN(f); return $r; }(this))) { bounds = new openfl_geom_Rectangle(Std.parseFloat(subTexture.get("frameX")),Std.parseFloat(subTexture.get("frameY")),Std.parseFloat(subTexture.get("frameWidth")),Std.parseFloat(subTexture.get("frameHeight"))); var key1 = subTexture.get("name"); this.frames.set(key1,bounds); } } var imgRect; this.bmd = atlasBmd; this.tileSheet = new openfl_display_Tilesheet(this.bmd); var ind; var texCoords; var bounds1 = new openfl_geom_Rectangle(); var reccc; var $it1 = this.rects.keys(); while( $it1.hasNext() ) { var j = $it1.next(); ind = this.tileSheet.addTileRect(this.rects.get(j)); this.zonesMap.set(j,ind); this.mapZones.h[ind] = j; this.framesByInd[ind] = this.frames.get(j); } } ,getImgId: function(imgName) { var retVal = this.zonesMap.get(imgName); if(retVal == null) return -1; return retVal; } ,searchImgId: function(imgName) { var $it0 = this.zonesMap.keys(); while( $it0.hasNext() ) { var i = $it0.next(); if(i.indexOf(imgName) != -1) return this.zonesMap.get(i); } return -1; } ,getImgRect: function(imgName) { var retRect; if(this.frames.exists(imgName)) retRect = this.frames.get(imgName).clone(); else retRect = this.rects.get(imgName).clone(); return retRect; } ,getBitmapData: function(imName,dontCache) { if(dontCache == null) dontCache = true; if(this.getImgId(imName) == -1) return null; var rr = this.getImgRect(imName); var frame; if(this.frames.exists(imName)) frame = this.frames.get(imName); else frame = null; if(!dontCache) { if(this.getBitmapDataCache.exists(imName)) return this.getBitmapDataCache.get(imName); } var retBmd; if(frame != null) retBmd = new openfl_display_BitmapData(Math.ceil(frame.width),Math.ceil(frame.height),true,0); else retBmd = new openfl_display_BitmapData(Math.ceil(rr.width),Math.ceil(rr.height),true,0); var tx; if(frame != null) tx = -frame.x; else tx = 0; var ty; if(frame != null) ty = -frame.y; else ty = 0; var dRect; dRect = this.tileSheet.getTileRect(this.getImgId(imName)); this.p.x = tx; this.p.y = ty; retBmd.copyPixels(this.bmd,dRect,this.p,null,null,true); if(!dontCache && !this.getBitmapDataCache.exists(imName)) this.getBitmapDataCache.set(imName,retBmd); return retBmd; } ,hittestPoint: function(imName,px,py,thereshold) { if(thereshold == null) thereshold = 255; if(this.getImgId(imName) == -1) return false; var frame; if(this.frames.exists(imName)) frame = this.frames.get(imName); else frame = null; var tx; if(frame != null) tx = -frame.x; else tx = 0; var ty; if(frame != null) ty = -frame.y; else ty = 0; var dRect; dRect = this.tileSheet.getTileRect(this.getImgId(imName)); if((this.bmd.getPixel32(Math.round(px + dRect.x + tx),Math.round(py + dRect.y + ty)) >> 24 & 255) >= thereshold) return true; return false; } ,hittestObject: function(imgName1,imgName2,m1,m2,width,height,intersBoundsX,intersBoundsY,thereshold,step) { if(step == null) step = 1; if(thereshold == null) thereshold = 255; if(intersBoundsY == null) intersBoundsY = 0; if(intersBoundsX == null) intersBoundsX = 0; var mp1X = 0; var mp1Y = 0; var mp2X = 0; var mp2Y = 0; this.hmm1.a = m1.a; this.hmm1.b = m1.b; this.hmm1.c = m1.c; this.hmm1.d = m1.d; this.hmm1.tx = m1.tx; this.hmm1.ty = m1.ty; this.hmm2.a = m2.a; this.hmm2.b = m2.b; this.hmm2.c = m2.c; this.hmm2.d = m2.d; this.hmm2.tx = m2.tx; this.hmm2.ty = m2.ty; this.hmm1.invert(); this.hmm2.invert(); var dr1 = this.tileSheet.getTileRect(this.getImgId(imgName1)); var dr2 = this.tileSheet.getTileRect(this.getImgId(imgName2)); var frame; if(this.frames.exists(imgName1)) frame = this.frames.get(imgName1); else frame = null; var tx1; if(frame != null) tx1 = -frame.x; else tx1 = 0; var ty1; if(frame != null) ty1 = -frame.y; else ty1 = 0; if(this.frames.exists(imgName2)) frame = this.frames.get(imgName1); else frame = null; var tx2; if(frame != null) tx2 = -frame.x; else tx2 = 0; var ty2; if(frame != null) ty2 = -frame.y; else ty2 = 0; var breaked = false; var w = Math.floor(width); var h = Math.floor(height); var __x = 0; var __y = 0; var i = 0; var j = 0; while(i < w) { while(j < h) { __x = i + intersBoundsX; __y = j + intersBoundsY; mp1X = Math.round(__x * this.hmm1.a + __y * this.hmm1.c + this.hmm1.tx + dr1.x + tx1); mp1Y = Math.round(__x * this.hmm1.b + __y * this.hmm1.d + this.hmm1.ty + dr1.y + ty1); mp2X = Math.round(__x * this.hmm2.a + __y * this.hmm2.c + this.hmm2.tx + dr2.x + tx2); mp2Y = Math.round(__x * this.hmm2.b + __y * this.hmm2.d + this.hmm2.ty + dr2.y + ty2); if((this.bmd.getPixel32(mp1X,mp1Y) >> 24 & 255) >= thereshold && (this.bmd.getPixel32(mp2X,mp2Y) >> 24 & 255) >= thereshold) return true; j += step; } j = 0; i += step; } return false; } ,drawImageTo: function(imName,canvas,transform) { if(this.getImgId(imName) == -1) return null; var frame; if(this.frames.exists(imName)) frame = this.frames.get(imName); else frame = null; var tx; if(frame != null) tx = -frame.x; else tx = 0; var ty; if(frame != null) ty = -frame.y; else ty = 0; var dRect; dRect = this.tileSheet.getTileRect(this.getImgId(imName)).clone(); var matrix = new openfl_geom_Matrix(); matrix.translate(-dRect.x,-dRect.y); matrix.concat(transform); canvas.draw(this.bmd,matrix,null,null,dRect); } ,addDraw: function(ind,matrix,alpha,ignoreDrawCalls) { if(ignoreDrawCalls == null) ignoreDrawCalls = false; if(alpha == null) alpha = 1; if(!ignoreDrawCalls) this.main.checkDrawCall(this); if(this.scale == 1) { this.hm.a = matrix.a; this.hm.b = matrix.b; this.hm.c = matrix.c; this.hm.d = matrix.d; this.hm.tx = matrix.tx; this.hm.ty = matrix.ty; } else { this.hm.a = 1; this.hm.b = 0; this.hm.c = 0; this.hm.d = 1; this.hm.tx = 0; this.hm.ty = 0; this.hm.scale(this.scale,this.scale); this.hm.concat(matrix); } var imgName = this.mapZones.h[ind]; var frame; if(this.framesByInd[ind] != null) frame = this.framesByInd[ind]; else frame = null; if(frame != null) { this.frameM.a = 1; this.frameM.b = 0; this.frameM.c = 0; this.frameM.d = 1; this.frameM.tx = -frame.x; this.frameM.ty = -frame.y; this.frameM.concat(this.hm); this.drawArr.push(this.frameM.tx); this.drawArr.push(this.frameM.ty); this.drawArr.push(ind); this.drawArr.push(this.frameM.a); this.drawArr.push(this.frameM.b); this.drawArr.push(this.frameM.c); this.drawArr.push(this.frameM.d); this.drawArr.push(alpha); } else { this.drawArr.push(this.hm.tx); this.drawArr.push(this.hm.ty); this.drawArr.push(ind); this.drawArr.push(this.hm.a); this.drawArr.push(this.hm.b); this.drawArr.push(this.hm.c); this.drawArr.push(this.hm.d); this.drawArr.push(alpha); } } ,render: function(canvas,clearCanvas) { if(clearCanvas == null) clearCanvas = true; var ctx = canvas.bmCanvas.bitmapData.image.buffer.__srcContext; if(clearCanvas) ctx.clearRect(0,0,canvas.bmCanvas.bitmapData.width,canvas.bmCanvas.bitmapData.height); var alpha = 1; var tx = 0; var ty = 0; var batchId = 0; var a = 1; var b = 0; var c = 0; var d = 1; var dRect; var drawSource = this.bmd.image.buffer.get_src(); var i = 0; while(i < this.drawArr.length) { tx = this.drawArr[i]; ty = this.drawArr[i + 1]; batchId = this.drawArr[i + 2] | 0; a = this.drawArr[i + 3]; b = this.drawArr[i + 4]; c = this.drawArr[i + 5]; d = this.drawArr[i + 6]; alpha = this.drawArr[i + 7]; i += 8; dRect = this.tileSheet.__tileRects[batchId]; if(alpha == 1 && a == 1 && b == 0 && c == 0 && d == 1) ctx.drawImage(drawSource,dRect.x,dRect.y,dRect.width,dRect.height,tx,ty,dRect.width,dRect.height); else { ctx.save(); if(alpha != 1) ctx.globalAlpha = alpha; if(a != 1 || b != 0 || c != 0 || d != 1) { ctx.setTransform(a,b,c,d,tx,ty); tx = 0; ty = 0; } ctx.drawImage(drawSource,dRect.x,dRect.y,dRect.width,dRect.height,tx,ty,dRect.width,dRect.height); ctx.restore(); } } while(this.drawArr.length > 0) this.drawArr.pop(); } ,destroy: function() { this.zonesMap = null; this.mapZones = null; this.rects = null; this.frames = null; this.framesByInd = null; this.bmd = null; this.tileSheet = null; this.atlasImgPath = null; this.atlasXmlPath = null; this.hm = null; this.hmm1 = null; this.hmm2 = null; this.p = null; this.ct = null; this.frameM = null; this.drawArr = null; this.getBitmapDataCache = null; this.main = null; } ,__class__: Batching }; var BitmapNumFont = function(batch,prefix) { this.pool = []; this.displayObjects = []; this.visible = true; this.gapX = 0; this.text = ""; this.align = "LEFT"; this.height = 0; this.width = 0; this.y = 0; this.x = 0; this.batch = batch; this.prefix = prefix; }; $hxClasses["BitmapNumFont"] = BitmapNumFont; BitmapNumFont.__name__ = ["BitmapNumFont"]; BitmapNumFont.prototype = { batch: null ,prefix: null ,x: null ,y: null ,width: null ,height: null ,align: null ,text: null ,gapX: null ,visible: null ,displayObjects: null ,pool: null ,set_text: function(value) { if(value == this.text) return value; this.text = value; this.updateText(); return value; } ,set_align: function(value) { if(value == this.align) return value; this.align = value; this.updateText(); return value; } ,set_width: function(value) { if(value == this.width) return value; this.width = value; this.updateText(); return value; } ,set_gapX: function(value) { if(value == this.gapX) return value; this.gapX = value; this.updateText(); return value; } ,updateText: function() { while(this.displayObjects.length > 0) this.pool.push(this.displayObjects.pop()); var dObj; var curX = 0; var totWidth = 0; var sym; var ind; var imName; var _g1 = 0; var _g = this.text.length; while(_g1 < _g) { var i = _g1++; if(this.text.charAt(i) == ":") ind = 11; else ind = Std.parseInt(this.text.charAt(i)) + 1; imName = (ind < 10?this.prefix + "0":this.prefix) + ind; if(this.pool.length > 0) { dObj = this.pool.pop(); dObj.setBatchId(imName); } else dObj = new DisplayObjectBatch(this.batch,imName); this.displayObjects.push(dObj); dObj.x = curX; dObj.y = this.y; curX += dObj.get_width() + this.gapX; } totWidth = curX - this.gapX; var offsetX = 0; if(this.align == "LEFT") offsetX = this.x; else if(this.align == "CENTER") offsetX = this.width / 2 - totWidth / 2 + this.x; else if(this.align == "RIGHT") offsetX = this.width - totWidth + this.x; var _g11 = 0; var _g2 = this.displayObjects.length; while(_g11 < _g2) { var i1 = _g11++; this.displayObjects[i1].x += offsetX; } } ,update: function() { } ,render: function() { if(!this.visible) return; var _g1 = 0; var _g = this.displayObjects.length; while(_g1 < _g) { var i = _g1++; this.displayObjects[i].render(); } } ,destroy: function() { while(this.displayObjects.length > 0) this.displayObjects.pop().destroy(); while(this.pool.length > 0) this.pool.pop().destroy(); this.displayObjects = null; this.pool = null; this.batch = null; } ,__class__: BitmapNumFont ,__properties__: {set_gapX:"set_gapX",set_text:"set_text",set_align:"set_align",set_width:"set_width"} }; var DisplayObjectBatch = function(batch,imgName) { this.ignoreDrawCalls = false; this.name = ""; this.parent = null; this.visible = true; this.alpha = 1; this.__height = 0; this.__width = 0; this.rotation = 0; this.scaleY = 1; this.scaleX = 1; this.ty = 0; this.tx = 0; this.addonY = 0; this.addonX = 0; this.y = 0; this.x = 0; this.main = Main.current; if(imgName != "") { this.imgName = imgName; this.batchAtlas = batch; this.batchId = batch.getImgId(imgName); this.bounds = batch.getImgRect(imgName); this.bounds.x = this.bounds.y = 0; this.__width = this.bounds.width; this.__height = this.bounds.height; } this.mHm = new openfl_geom_Matrix(); this.mHm1 = new openfl_geom_Matrix(); this.mHr = new openfl_geom_Rectangle(); this.mHp = new openfl_geom_Point(); }; $hxClasses["DisplayObjectBatch"] = DisplayObjectBatch; DisplayObjectBatch.__name__ = ["DisplayObjectBatch"]; DisplayObjectBatch.prototype = { x: null ,y: null ,addonX: null ,addonY: null ,tx: null ,ty: null ,scaleX: null ,scaleY: null ,rotation: null ,__width: null ,__height: null ,alpha: null ,visible: null ,parent: null ,bounds: null ,main: null ,batchAtlas: null ,imgName: null ,batchId: null ,mHm: null ,mHm1: null ,mHr: null ,mHp: null ,name: null ,ignoreDrawCalls: null ,setBatchId: function(imgName,batch) { if(batch != null && batch != this.batchAtlas) this.batchAtlas = batch; this.imgName = imgName; this.batchId = this.batchAtlas.getImgId(imgName); this.bounds = this.batchAtlas.getImgRect(imgName); this.bounds.x = this.bounds.y = 0; this.__width = this.bounds.width; this.__height = this.bounds.height; return this.batchId; } ,hitTestPointSimple: function(_x,_y) { this.mHp.x = _x; this.mHp.y = _y; this.getBoundsAfterTransformation(); return this.mHr.containsPoint(this.mHp); } ,get_width: function() { return this.__width * this.scaleX; } ,get_height: function() { return this.__height * this.scaleY; } ,set_width: function(val) { this.scaleX = val / this.__width; return val; } ,set_height: function(val) { this.scaleY = val / this.__height; return val; } ,render: function() { if(!this.visible || this.alpha == 0 || this.mHm == null) return; this.prepareTransformMatrix(); this.batchAtlas.addDraw(this.batchId,this.mHm,this.alpha,this.ignoreDrawCalls); } ,renderWithMatrix: function(m) { if(!this.visible || this.alpha == 0) return; this.batchAtlas.addDraw(this.batchId,m,this.alpha,this.ignoreDrawCalls); } ,prepareTransformMatrix: function() { var px = 0; var py = 0; var parMatrix = null; if(this.parent != null) { if(js_Boot.__instanceof(this.parent,openfl_display_DisplayObject)) { var pt = this.parent; px = pt.get_x(); py = pt.get_y(); } else if(js_Boot.__instanceof(this.parent,DisplayObjectContainerBatch)) { var pt1 = this.parent; pt1.updateMatrix(); parMatrix = pt1.batchMatrix; } else { px = this.parent.x; py = this.parent.y; } } px += this.addonX; py += this.addonY; this.mHm.identity(); if(this.scaleX == 1 && this.scaleY == 1 && this.rotation == 0 && this.tx == 0 && this.ty == 0) { this.mHm.tx = this.x + px; this.mHm.ty = this.y + py; } else if(this.tx == 0 && this.ty == 0 && this.rotation == 0) { this.mHm.scale(this.scaleX,this.scaleY); this.mHm1.identity(); this.mHm1.tx = this.x + px; this.mHm1.ty = this.y + py; this.mHm.concat(this.mHm1); } else if(this.rotation == 0) { this.mHm.a = this.scaleX; this.mHm.b = 0; this.mHm.c = 0; this.mHm.d = this.scaleY; this.mHm.tx = this.x + px - this.tx * this.scaleX; this.mHm.ty = this.y + py - this.ty * this.scaleY; } else if(this.rotation != 0) { var cos = Math.cos(this.rotation); var sin = Math.sin(this.rotation); this.mHm.a = this.scaleX * cos; this.mHm.b = this.scaleX * sin; this.mHm.c = this.scaleY * -sin; this.mHm.d = this.scaleY * cos; this.mHm.tx = this.x + px - this.tx * this.mHm.a - this.ty * this.mHm.c; this.mHm.ty = this.y + py - this.tx * this.mHm.b - this.ty * this.mHm.d; } if(parMatrix != null) this.mHm.concat(parMatrix); } ,getBoundsAfterTransformation: function() { this.mHr.x = 0; this.mHr.y = 0; this.mHr.width = this.bounds.width; this.mHr.height = this.bounds.height; this.prepareTransformMatrix(); var topLeft = this.mHm.transformPoint(this.mHr.get_topLeft()); var topRight = this.mHm.transformPoint(new openfl_geom_Point(this.mHr.get_right(),this.mHr.get_top())); var bottomRight = this.mHm.transformPoint(this.mHr.get_bottomRight()); var bottomLeft = this.mHm.transformPoint(new openfl_geom_Point(this.mHr.get_left(),this.mHr.get_bottom())); var left = Math.min(Math.min(topLeft.x,topRight.x),Math.min(bottomRight.x,bottomLeft.x)); var top = Math.min(Math.min(topLeft.y,topRight.y),Math.min(bottomRight.y,bottomLeft.y)); var right = Math.max(Math.max(topLeft.x,topRight.x),Math.max(bottomRight.x,bottomLeft.x)); var bottom = Math.max(Math.max(topLeft.y,topRight.y),Math.max(bottomRight.y,bottomLeft.y)); this.mHr.x = left; this.mHr.y = top; this.mHr.width = right - left; this.mHr.height = bottom - top; } ,getBounds: function() { this.getBoundsAfterTransformation(); return this.mHr; } ,hittestObject: function(object,thereshold) { if(thereshold == null) thereshold = 255; var bounds1 = this.getBounds(); var bounds2 = object.getBounds(); var intersectBounds = bounds1.intersection(bounds2); if(intersectBounds.width < 1 || intersectBounds.height < 1) return false; var bmd1 = new openfl_display_BitmapData(Math.floor(intersectBounds.width),Math.floor(intersectBounds.height),true,0); var bmd2 = new openfl_display_BitmapData(Math.floor(intersectBounds.height),Math.floor(intersectBounds.width),true,0); this.mHm1.a = this.mHm.a; this.mHm1.b = this.mHm.b; this.mHm1.c = this.mHm.c; this.mHm1.d = this.mHm.d; this.mHm1.tx = this.mHm.tx; this.mHm1.ty = this.mHm.ty; this.mHm1.translate(-intersectBounds.x,-intersectBounds.y); this.batchAtlas.drawImageTo(this.imgName,bmd1,this.mHm1); object.prepareTransformMatrix(); this.mHm1 = object.mHm.clone(); this.mHm1.translate(-intersectBounds.x,-intersectBounds.y); object.batchAtlas.drawImageTo(object.imgName,bmd2,this.mHm1); var res = false; var breakIt = false; var _g1 = 0; var _g = bmd1.width; while(_g1 < _g) { var i = _g1++; if(breakIt) break; var _g3 = 0; var _g2 = bmd1.height; while(_g3 < _g2) { var j = _g3++; if((bmd1.getPixel32(i,j) >> 24 & 255) >= thereshold && (bmd2.getPixel32(i,j) >> 24 & 255) >= thereshold) { res = true; breakIt = true; break; } } } bmd1.dispose(); bmd2.dispose(); return res; } ,hitTestPoint: function(_x,_y,thereshold) { if(thereshold == null) thereshold = 255; if(this.mHm == null || !this.hitTestPointSimple(_x,_y)) return false; this.mHm1 = this.mHm.clone(); this.mHm1.invert(); this.mHp.x = _x * this.mHm1.a + _y * this.mHm1.c + this.mHm1.tx; this.mHp.y = _x * this.mHm1.b + _y * this.mHm1.d + this.mHm1.ty; return this.batchAtlas.hittestPoint(this.imgName,this.mHp.x,this.mHp.y,thereshold); } ,destroy: function() { this.parent = null; this.bounds = null; this.main = null; this.batchAtlas = null; this.mHm = null; this.mHm1 = null; this.mHr = null; this.mHp = null; } ,Destroy: function() { this.destroy(); } ,__class__: DisplayObjectBatch ,__properties__: {set_height:"set_height",get_height:"get_height",set_width:"set_width",get_width:"get_width"} }; var Chess = function(type,pos,isFirstPlayer) { this.isActive = true; this.col = 0; this.row = 0; this.pos = 0; this.isFirstPlayer = false; this.type = 0; this.themeType = 1; DisplayObjectBatch.call(this,Main.current.batch,""); this.batchAtlas = Main.current.batch; this.desk = Desk.current; this.parent = this.desk; this.init(type,pos,isFirstPlayer); }; $hxClasses["Chess"] = Chess; Chess.__name__ = ["Chess"]; Chess.__super__ = DisplayObjectBatch; Chess.prototype = $extend(DisplayObjectBatch.prototype,{ themeType: null ,type: null ,isFirstPlayer: null ,pos: null ,row: null ,col: null ,isActive: null ,set_isActive: function(value) { this.isActive = value; this.visible = value; if(!value) motion_Actuate.stop(this); return this.isActive; } ,desk: null ,init: function(type,pos,isFirstPlayer) { if(isFirstPlayer == null) isFirstPlayer = true; motion_Actuate.stop(this); this.type = type; this.pos = pos; this.isFirstPlayer = isFirstPlayer; this.updateTheme(); if(this.desk.twoPlayersViewOption == 0 || isFirstPlayer || this.desk.playersType[1] == "computer") { this.tx = this.ty = 0; this.scaleY = 1; } else { this.ty = this.bounds.height; this.scaleY = -1; } this.row = Math.floor(pos / 8); this.col = Math.floor(pos % 8); var posCoord = this.desk.getPosition(pos); this.x = posCoord.x; this.y = posCoord.y; } ,setPos: function(pos,animate) { if(animate == null) animate = false; if(pos == this.pos) return; this.pos = pos; var posCoord = this.desk.getPosition(pos); if(animate) motion_Actuate.tween(this,0.5,{ x : posCoord.x, y : posCoord.y}).onComplete(($_=this.desk,$bind($_,$_.updateChesses))); this.desk.movingChess = this; } ,updateTheme: function() { this.set_themeType(this.desk.curThemeChess); } ,set_themeType: function(theme) { this.setBatchId("set" + theme + "_" + (Desk.current.inversedColors?Desk.chessNamesMapInversed[this.type]:Desk.chessNamesMap[this.type])); this.themeType = theme; return theme; } ,destroy: function() { motion_Actuate.stop(this); DisplayObjectBatch.prototype.destroy.call(this); } ,__class__: Chess ,__properties__: $extend(DisplayObjectBatch.prototype.__properties__,{set_isActive:"set_isActive",set_themeType:"set_themeType"}) }); var Config = function() { this.debTxt = null; this.isPausedByOrientation = false; this.N = 1; this.realStageHeight = -1; this.realStageWidth = -1; this.sHeight = 0; this.sWidth = 0; this.wasLandscape = false; this.wasPortrait = false; this.minSizeCoefHTML5SimpBrowser = 0.8; this.initSHeight = 640; this.initSWidth = 640; this.isPortrait = true; this.isSiteLocked = false; this.gameName = "new game name"; this.main = Main.current; this.iOSjs = eval("iOSjs"); this.iOSjs.setResFunction($bind(this,this.iosRes)); }; $hxClasses["Config"] = Config; Config.__name__ = ["Config"]; Config.logTxt = null; Config.openMoreGames = function() { window.famobi.moreGamesLink(); }; Config.prototype = { gameName: null ,isSiteLocked: null ,isPortrait: null ,initSWidth: null ,initSHeight: null ,minSizeCoefHTML5SimpBrowser: null ,wasPortrait: null ,wasLandscape: null ,sWidth: null ,sHeight: null ,realStageWidth: null ,realStageHeight: null ,sounds: null ,N: null ,tapToStartWin: null ,rotateScreenWindow: null ,iOSjs: null ,main: null ,isPausedByOrientation: null ,iosRes: function() { this.main.resize(null); } ,initSounds: function() { if(this.sounds != null) return this.sounds; var soundsArr = []; this.sounds = new Sounds(); return this.sounds; } ,getIsMobileBrowser: function() { var isMobileBrowser = false; var evalString = ""; evalString += "/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Opera Mini/i.test(navigator.userAgent)"; isMobileBrowser = eval(evalString); if(!isMobileBrowser) eval("document.getElementById('openfl-content').style.overflow = 'hidden'"); return isMobileBrowser; } ,checkSiteLock: function() { } ,updateStageSizes: function() { var sw = openfl_Lib.current.stage.stageWidth; var sh = openfl_Lib.current.stage.stageHeight; } ,setRotateWin: function(visible) { if(visible == null) visible = true; return; if(visible && !this.isPortrait) this.wasPortrait = true; if(visible && this.isPortrait) this.wasLandscape = true; if(this.rotateScreenWindow == null) { this.rotateScreenWindow = new openfl_display_Sprite(); this.rotateScreenWindow.addChild(new openfl_display_Bitmap(openfl_Assets.getBitmapData("img/Rotate_to_play.jpg"))); openfl_Lib.current.stage.addChild(this.rotateScreenWindow); } if(visible) { var viewPort = this.iOSjs.getCurSize(); if(this.isPortrait) { this.rotateScreenWindow.set_height(viewPort.height); this.rotateScreenWindow.set_scaleX(this.rotateScreenWindow.get_scaleY()); this.rotateScreenWindow.set_x(viewPort.width / 2 - this.rotateScreenWindow.get_width() / 2); } else { this.rotateScreenWindow.set_width(viewPort.width); this.rotateScreenWindow.set_scaleY(this.rotateScreenWindow.get_scaleX()); this.rotateScreenWindow.set_y(viewPort.height / 2 - this.rotateScreenWindow.get_height() / 2); } } this.rotateScreenWindow.set_visible(visible); if(!visible) this.resizeMain(); } ,resizeMain: function() { var fullSize = this.getCurSize(); var viewPort = this.getCurSize(); if(this.getIsMobileBrowser()) this.main.set_scaleX(this.main.set_scaleY(this.isPortrait?viewPort.width / this.sWidth:viewPort.height / this.sHeight)); else { this.main.set_scaleX(this.main.set_scaleY(this.isPortrait?viewPort.width / this.sWidth:viewPort.height / this.sHeight)); if(this.isPortrait && viewPort.width > viewPort.height) this.main.set_scaleX(this.main.set_scaleY(viewPort.height / this.sHeight)); } if(!this.isPortrait) { this.main.set_x(viewPort.width / 2 - this.sWidth * this.main.get_scaleY() / 2); if(!this.getIsMobileBrowser()) this.main.set_x(viewPort.width / 2 - this.sWidth * this.main.get_scaleY() / 2); } else { } js_Lib["eval"]("document.getElementById('openfl-content').style.width = '" + this.sWidth * this.main.get_scaleX() + "px'"); eval("document.getElementById('openfl-content').style.top = '" + 0 + "px'"); eval("document.getElementById('openfl-content').style.left = '" + 0 + "px'"); js_Lib["eval"]("document.getElementById('openfl-content').style.height = '" + this.sHeight * this.main.get_scaleY() + "px'"); eval("document.getElementById('openfl-content').style.margin = 'auto'"); window.scroll(0,0); window.scrollTo(0,0); window.document.body.scrollTop = 0; var color = 16711680; js_Lib["eval"]("document.body.style.backgroundColor = '" + "#" + StringTools.hex(openfl_Lib.current.stage.get_color(),6) + "'"); } ,debTxt: null ,log: function(txt) { } ,resizeSet: function(inited) { return false; var viewPort = this.iOSjs.getCurSize(); if(inited && this.main.isMobileBrowser) { var viewPort1 = this.iOSjs.getCurSize(); if((viewPort1.width > viewPort1.height && this.isPortrait || viewPort1.width < viewPort1.height && !this.isPortrait) && this.main.isMobileBrowser) { this.main.set_visible(false); if(!this.main.paused) this.main.pauseGame(); this.isPausedByOrientation = true; this.setRotateWin(true); eval("document.getElementById('openfl-content').style.overflow = 'hidden'"); } else { this.main.set_visible(true); this.setRotateWin(false); eval("document.getElementById('openfl-content').style.overflow = 'hidden'"); } return true; } this.setRotateWin(false); return false; } ,getCurSize: function() { var viewPort = this.iOSjs.getCurSize(); return viewPort; } ,initSize: function(isReinit) { if(isReinit == null) isReinit = false; var isw = this.initSWidth; var ish = this.initSHeight; var viewPort; viewPort = this.iOSjs.getCurSize(); var minCoef = 1.4; if(viewPort.height / viewPort.width > minCoef) { ish = ish * (viewPort.height / viewPort.width); isw = Math.round(isw); ish = Math.round(ish); this.main.set_scaleX(this.main.set_scaleY(viewPort.height / ish)); } else { var wsize = 890; var whCoef = viewPort.width / viewPort.height; isw = 650 * whCoef > wsize?ish = 650:ish = wsize / whCoef; isw = isw * (viewPort.width / viewPort.height); isw = Math.round(isw); ish = Math.round(ish); this.main.set_scaleX(this.main.set_scaleY(this.main.set_scaleX(this.main.set_scaleY(viewPort.width / isw)))); } this.sWidth = isw; this.sHeight = ish; this.N = 30 / openfl_Lib.current.stage.get_frameRate(); js_Lib["eval"]("document.getElementById('openfl-content').style.width = '" + this.sWidth * this.main.get_scaleX() + "px'"); eval("document.getElementById('openfl-content').style.top = '" + 0 + "px'"); eval("document.getElementById('openfl-content').style.left = '" + 0 + "px'"); js_Lib["eval"]("document.getElementById('openfl-content').style.height = '" + this.sHeight * this.main.get_scaleY() + "px'"); eval("document.getElementById('openfl-content').style.margin = 'auto'"); window.scroll(0,0); window.scrollTo(0,0); window.document.body.scrollTop = 0; var color = 16711680; js_Lib["eval"]("document.body.style.backgroundColor = '" + "#" + StringTools.hex(openfl_Lib.current.stage.get_color(),6) + "'"); if(!isReinit) { openfl_Lib.current.stage.addEventListener("touchEnd",$bind(this,this.tapToStartClick)); openfl_Lib.current.stage.addEventListener("click",$bind(this,this.tapToStartClick)); } return false; } ,sendToTopTapToStart: function() { } ,tapToStartClick: function(e) { openfl_Lib.current.stage.removeEventListener("touchEnd",$bind(this,this.tapToStartClick)); openfl_Lib.current.stage.removeEventListener("click",$bind(this,this.tapToStartClick)); if(this.tapToStartWin != null && this.tapToStartWin.parent != null) this.tapToStartWin.parent.removeChild(this.tapToStartWin); if(this.tapToStartWin != null) this.tapToStartWin.close(); this.tapToStartWin = null; this.main.tapToStartClick(e); } ,__class__: Config }; var lime_AssetLibrary = function() { this.onChange = new lime_app_Event_$Void_$Void(); }; $hxClasses["lime.AssetLibrary"] = lime_AssetLibrary; lime_AssetLibrary.__name__ = ["lime","AssetLibrary"]; lime_AssetLibrary.prototype = { onChange: null ,exists: function(id,type) { return false; } ,getAudioBuffer: function(id) { return null; } ,getBytes: function(id) { return null; } ,getFont: function(id) { return null; } ,getImage: function(id) { return null; } ,getPath: function(id) { return null; } ,getText: function(id) { var bytes = this.getBytes(id); if(bytes == null) return null; else return bytes.getString(0,bytes.length); } ,isLocal: function(id,type) { return true; } ,list: function(type) { return null; } ,load: function() { var _g = this; return new lime_app_Future(function() { return _g; }); } ,loadAudioBuffer: function(id) { var _g = this; return new lime_app_Future(function() { return _g.getAudioBuffer(id); }); } ,loadBytes: function(id) { var _g = this; return new lime_app_Future(function() { return _g.getBytes(id); }); } ,loadFont: function(id) { var _g = this; return new lime_app_Future(function() { return _g.getFont(id); }); } ,loadImage: function(id) { var _g = this; return new lime_app_Future(function() { return _g.getImage(id); }); } ,loadText: function(id) { return this.loadBytes(id).then(function(bytes) { return new lime_app_Future(function() { if(bytes == null) return null; else return bytes.getString(0,bytes.length); }); }); } ,unload: function() { } ,__class__: lime_AssetLibrary }; var DefaultAssetLibrary = function() { this.type = new haxe_ds_StringMap(); this.path = new haxe_ds_StringMap(); this.className = new haxe_ds_StringMap(); lime_AssetLibrary.call(this); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf); openfl_text_Font.registerFont(_$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff); var id; id = "img/bg.jpg"; this.path.set(id,id); this.type.set(id,"IMAGE"); id = "img/levels.json"; this.path.set(id,id); this.type.set(id,"TEXT"); id = "img/MainAtlas.png"; this.path.set(id,id); this.type.set(id,"IMAGE"); id = "img/MainAtlas.xml"; this.path.set(id,id); this.type.set(id,"TEXT"); id = "img/MainFontNumeric.png"; this.path.set(id,id); this.type.set(id,"IMAGE"); id = "img/MainFontNumeric1.png"; this.path.set(id,id); this.type.set(id,"IMAGE"); id = window.famobi.getMoreGamesButtonImage(); this.path.set(id,id); this.type.set(id,"IMAGE"); id = "img/strings_enGB.json"; this.path.set(id,id); this.type.set(id,"TEXT"); id = "img/TranspPixel.png"; this.path.set(id,id); this.type.set(id,"IMAGE"); id = "fonts/Calibri_gdi.ttf"; this.className.set(id,_$_$ASSET_$_$fonts_$calibri_$gdi_$ttf); this.type.set(id,"FONT"); id = "fonts/Calibri_gdi.woff"; this.className.set(id,_$_$ASSET_$_$fonts_$calibri_$gdi_$woff); this.type.set(id,"FONT"); id = "snd/sprite.json"; this.path.set(id,id); this.type.set(id,"TEXT"); id = "snd/sprite.m4a"; this.path.set(id,id); this.type.set(id,"SOUND"); id = "snd/sprite.mp3"; this.path.set(id,id); this.type.set(id,"MUSIC"); id = "snd/sprite.ogg"; this.path.set(id,id); this.type.set(id,"SOUND"); id = "snd/sprite.json"; this.path.set(id,id); this.type.set(id,"TEXT"); var assetsPrefix = null; if(ApplicationMain.config != null && Object.prototype.hasOwnProperty.call(ApplicationMain.config,"assetsPrefix")) assetsPrefix = ApplicationMain.config.assetsPrefix; if(assetsPrefix != null) { var $it0 = this.path.keys(); while( $it0.hasNext() ) { var k = $it0.next(); var value = assetsPrefix + this.path.get(k); this.path.set(k,value); } } }; $hxClasses["DefaultAssetLibrary"] = DefaultAssetLibrary; DefaultAssetLibrary.__name__ = ["DefaultAssetLibrary"]; DefaultAssetLibrary.__super__ = lime_AssetLibrary; DefaultAssetLibrary.prototype = $extend(lime_AssetLibrary.prototype,{ className: null ,path: null ,type: null ,lastModified: null ,timer: null ,exists: function(id,type) { var requestedType; if(type != null) requestedType = js_Boot.__cast(type , String); else requestedType = null; var assetType = this.type.get(id); if(assetType != null) { if(assetType == requestedType || (requestedType == "SOUND" || requestedType == "MUSIC") && (assetType == "MUSIC" || assetType == "SOUND")) return true; if(requestedType == "BINARY" || requestedType == null || assetType == "BINARY" && requestedType == "TEXT") return true; } return false; } ,getAudioBuffer: function(id) { return null; } ,getBytes: function(id) { var loader; var key = this.path.get(id); loader = lime_app_Preloader.loaders.get(key); if(loader == null) return null; var bytes = loader.bytes; if(bytes != null) return bytes; else return null; } ,getFont: function(id) { return js_Boot.__cast(Type.createInstance(this.className.get(id),[]) , lime_text_Font); } ,getImage: function(id) { return lime_graphics_Image.fromImageElement((function($this) { var $r; var key = $this.path.get(id); $r = lime_app_Preloader.images.get(key); return $r; }(this))); } ,getPath: function(id) { return this.path.get(id); } ,getText: function(id) { var loader; var key = this.path.get(id); loader = lime_app_Preloader.loaders.get(key); if(loader == null) return null; var bytes = loader.bytes; if(bytes != null) return bytes.getString(0,bytes.length); else return null; } ,isLocal: function(id,type) { var requestedType; if(type != null) requestedType = js_Boot.__cast(type , String); else requestedType = null; return true; } ,list: function(type) { var requestedType; if(type != null) requestedType = js_Boot.__cast(type , String); else requestedType = null; var items = []; var $it0 = this.type.keys(); while( $it0.hasNext() ) { var id = $it0.next(); if(requestedType == null || this.exists(id,type)) items.push(id); } return items; } ,loadAudioBuffer: function(id) { var _g = this; var promise = new lime_app_Promise(); promise.completeWith(new lime_app_Future(function() { return _g.getAudioBuffer(id); })); return promise.future; } ,loadBytes: function(id) { var promise = new lime_app_Promise(); if(this.path.exists(id)) { var request = new lime_net_HTTPRequest(); promise.completeWith(request.load(this.path.get(id) + "?" + lime_Assets.cache.version)); } else promise.complete(this.getBytes(id)); return promise.future; } ,loadImage: function(id) { var promise = new lime_app_Promise(); if(this.path.exists(id)) { var image = new Image(); image.onload = function(_) { promise.complete(lime_graphics_Image.fromImageElement(image)); }; image.onerror = $bind(promise,promise.error); image.src = this.path.get(id) + "?" + lime_Assets.cache.version; } else promise.complete(this.getImage(id)); return promise.future; } ,loadText: function(id) { var promise = new lime_app_Promise(); if(this.path.exists(id)) { var request = new lime_net_HTTPRequest(); var future = request.load(this.path.get(id) + "?" + lime_Assets.cache.version); future.onProgress(function(progress) { promise.progress(progress); }); future.onError(function(msg) { promise.error(msg); }); future.onComplete(function(bytes) { promise.complete(bytes.getString(0,bytes.length)); }); } else promise.complete(this.getText(id)); return promise.future; } ,__class__: DefaultAssetLibrary }); var lime_text_Font = function(name) { if(name != null) this.name = name; if(this.__fontPath != null) this.__fromFile(this.__fontPath); }; $hxClasses["lime.text.Font"] = lime_text_Font; lime_text_Font.__name__ = ["lime","text","Font"]; lime_text_Font.fromBytes = function(bytes) { var font = new lime_text_Font(); font.__fromBytes(bytes); return font; }; lime_text_Font.fromFile = function(path) { var font = new lime_text_Font(); font.__fromFile(path); return font; }; lime_text_Font.prototype = { ascender: null ,descender: null ,height: null ,name: null ,numGlyphs: null ,src: null ,underlinePosition: null ,underlineThickness: null ,unitsPerEM: null ,__fontPath: null ,decompose: function() { return null; } ,getGlyph: function(character) { return -1; } ,getGlyphs: function(characters) { if(characters == null) characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^`'\"/\\&*()[]{}<>|:;_-+=?,. "; return null; } ,getGlyphMetrics: function(glyph) { return null; } ,renderGlyph: function(glyph,fontSize) { return null; } ,renderGlyphs: function(glyphs,fontSize) { return null; } ,__fromBytes: function(bytes) { this.__fontPath = null; } ,__fromFile: function(path) { this.__fontPath = path; } ,__setSize: function(size) { } ,get_ascender: function() { return 0; } ,get_descender: function() { return 0; } ,get_height: function() { return 0; } ,get_numGlyphs: function() { return 0; } ,get_underlinePosition: function() { return 0; } ,get_underlineThickness: function() { return 0; } ,get_unitsPerEM: function() { return 0; } ,__class__: lime_text_Font ,__properties__: {get_unitsPerEM:"get_unitsPerEM",get_underlineThickness:"get_underlineThickness",get_underlinePosition:"get_underlinePosition",get_numGlyphs:"get_numGlyphs",get_height:"get_height",get_descender:"get_descender",get_ascender:"get_ascender"} }; var _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf = function() { lime_text_Font.call(this); this.name = "Calibri-Regular"; }; $hxClasses["__ASSET__fonts_calibri_gdi_ttf"] = _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf; _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf.__name__ = ["__ASSET__fonts_calibri_gdi_ttf"]; _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf.__super__ = lime_text_Font; _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf }); var _$_$ASSET_$_$fonts_$calibri_$gdi_$woff = function() { lime_text_Font.call(this); this.name = "Calibri-Regular"; }; $hxClasses["__ASSET__fonts_calibri_gdi_woff"] = _$_$ASSET_$_$fonts_$calibri_$gdi_$woff; _$_$ASSET_$_$fonts_$calibri_$gdi_$woff.__name__ = ["__ASSET__fonts_calibri_gdi_woff"]; _$_$ASSET_$_$fonts_$calibri_$gdi_$woff.__super__ = lime_text_Font; _$_$ASSET_$_$fonts_$calibri_$gdi_$woff.prototype = $extend(lime_text_Font.prototype,{ __class__: _$_$ASSET_$_$fonts_$calibri_$gdi_$woff }); var openfl_text_Font = function(name) { lime_text_Font.call(this,name); }; $hxClasses["openfl.text.Font"] = openfl_text_Font; openfl_text_Font.__name__ = ["openfl","text","Font"]; openfl_text_Font.enumerateFonts = function(enumerateDeviceFonts) { if(enumerateDeviceFonts == null) enumerateDeviceFonts = false; return openfl_text_Font.__registeredFonts; }; openfl_text_Font.fromBytes = function(bytes) { var font = new openfl_text_Font(); font.__fromBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(bytes)); return font; }; openfl_text_Font.fromFile = function(path) { var font = new openfl_text_Font(); font.__fromFile(path); return font; }; openfl_text_Font.registerFont = function(font) { var instance; instance = js_Boot.__cast(Type.createInstance(font,[]) , openfl_text_Font); if(instance != null) openfl_text_Font.__registeredFonts.push(instance); }; openfl_text_Font.__fromLimeFont = function(value) { var font = new openfl_text_Font(); font.name = value.name; font.src = value.src; return font; }; openfl_text_Font.__super__ = lime_text_Font; openfl_text_Font.prototype = $extend(lime_text_Font.prototype,{ fontStyle: null ,fontType: null ,get_fontName: function() { return this.name; } ,set_fontName: function(value) { return this.name = value; } ,__class__: openfl_text_Font ,__properties__: $extend(lime_text_Font.prototype.__properties__,{set_fontName:"set_fontName",get_fontName:"get_fontName"}) }); var _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf = function() { var font = new _$_$ASSET_$_$fonts_$calibri_$gdi_$ttf(); this.src = font.src; this.name = font.name; openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__fonts_calibri_gdi_ttf"] = _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf.__name__ = ["__ASSET__OPENFL__fonts_calibri_gdi_ttf"]; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$ttf }); var _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff = function() { var font = new _$_$ASSET_$_$fonts_$calibri_$gdi_$woff(); this.src = font.src; this.name = font.name; openfl_text_Font.call(this); }; $hxClasses["__ASSET__OPENFL__fonts_calibri_gdi_woff"] = _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff.__name__ = ["__ASSET__OPENFL__fonts_calibri_gdi_woff"]; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff.__super__ = openfl_text_Font; _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff.prototype = $extend(openfl_text_Font.prototype,{ __class__: _$_$ASSET_$_$OPENFL_$_$fonts_$calibri_$gdi_$woff }); var Desk = function() { this.startTime = 0; this.curDrawAiAskWait = 0; this.maxDrawAiAskWait = 30; this.minDrawAiAskWait = 10; this.hideHints = false; this.twoPlayersViewOption = 1; this.inversedColors = false; this.movingChess = null; this.computerLevel = 1; this.playersType = ["human","computer"]; this.isBusy = true; this.legalMovesHighlights = []; this.selectedChess = null; this.selectedCell = 0; this.cellSelected = false; this.isMDown = false; this.hp = new openfl_geom_Point(); this.oy = 20; this.ox = 24; this.stateIndexesInv = []; this.stateIndexes = []; this.cellSize = 74.8; this.chesses = []; this.bgsArr = []; this.curThemeChess = 1; this.curTheme = 1; DisplayObjectContainerBatch.call(this); Desk.current = this; this.main = Main.current; this.chessEngine = new Engine(); this.deskImg = new DisplayObjectBatch(this.main.batch,"chess_bg_" + this.curTheme); this.deskImg.parent = this; this.aiThinkingMC = new AiThinkMC(); this.aiThinkingMC.set_visible(false); this.aiThinkingMC.set_parent(this); this.onResize(); var r = 0; var c = 0; var curIndex = 21; var _g = 0; while(_g < 8) { var i = _g++; r = 7 - i; var _g1 = 0; while(_g1 < 8) { var j = _g1++; c = j; this.stateIndexes[r * 8 + c] = curIndex; curIndex++; } curIndex += 2; } var _g2 = 0; while(_g2 < 120) { var i1 = _g2++; this.stateIndexesInv.push(HxOverrides.indexOf(this.stateIndexes,i1,0)); } var legalHighlight; var _g11 = 0; var _g3 = 64; while(_g11 < _g3) { var i2 = _g11++; legalHighlight = new DisplayObjectBatch(this.main.batch,"root"); legalHighlight.tx = legalHighlight.get_width() / 2; legalHighlight.ty = legalHighlight.get_height() / 2; legalHighlight.visible = false; legalHighlight.parent = this; this.legalMovesHighlights.push(legalHighlight); legalHighlight.x = this.ox + i2 % 8 * this.cellSize + this.cellSize / 2; legalHighlight.y = this.oy + Math.floor(i2 / 8) * this.cellSize + this.cellSize / 2; } this.selectedChessHighlight = new DisplayObjectBatch(this.main.batch,"select_1"); this.selectedChessHighlight.visible = false; this.selectedChessHighlight.parent = this; this.lastMoveHighlight1 = new DisplayObjectBatch(this.main.batch,"select_3"); this.lastMoveHighlight1.visible = false; this.lastMoveHighlight1.parent = this; this.lastMoveHighlight2 = new DisplayObjectBatch(this.main.batch,"select_2"); this.lastMoveHighlight2.visible = false; this.lastMoveHighlight2.parent = this; }; $hxClasses["Desk"] = Desk; Desk.__name__ = ["Desk"]; Desk.current = null; Desk.__super__ = DisplayObjectContainerBatch; Desk.prototype = $extend(DisplayObjectContainerBatch.prototype,{ curTheme: null ,curThemeChess: null ,bgsArr: null ,bg: null ,main: null ,deskImg: null ,chesses: null ,chessEngine: null ,state: null ,cellSize: null ,stateIndexes: null ,stateIndexesInv: null ,ox: null ,oy: null ,hp: null ,isMDown: null ,cellSelected: null ,selectedCell: null ,selectedChess: null ,legalMovesHighlights: null ,selectedChessHighlight: null ,lastMoveHighlight1: null ,lastMoveHighlight2: null ,isBusy: null ,playersType: null ,computerLevel: null ,movingChess: null ,inversedColors: null ,twoPlayersViewOption: null ,hideHints: null ,minDrawAiAskWait: null ,maxDrawAiAskWait: null ,curDrawAiAskWait: null ,startTime: null ,aiThinkingMC: null ,levelName: null ,onResize: function() { this.set_x(Main.current.sWidth / 2 - this.deskImg.get_width() / 2); this.set_y(Main.current.sHeight / 2 - this.deskImg.get_height() / 2); this.aiThinkingMC.set_x(this.deskImg.get_width() / 2); this.aiThinkingMC.set_y(this.deskImg.get_height() / 2); while(this.bgsArr.length > 0) this.bgsArr.pop(); var sizeX = 0; while(sizeX < Main.current.sWidth) { this.bg = new DisplayObjectBatch(this.main.bgBatch,"img/bg.jpg"); this.bg.x = sizeX; this.bg.scaleX = this.bg.scaleY = Main.current.sHeight / this.bg.get_height(); sizeX += this.bg.get_width() - 2; this.bgsArr.push(this.bg); } var minusX = (sizeX - Main.current.sWidth) / 2; var _g1 = 0; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; } } ,newGame: function(fromState,animate) { this.levelName = this.playersType[1] == 'computer' ? "LEVEL_"+this.computerLevel : "LEVEL_2PLAYERS"; window.famobi_analytics.trackScreen("SCREEN_LEVEL"); window.famobi_analytics.trackEvent("EVENT_LEVELSTART", {levelName: this.levelName}); if(animate == null) animate = false; this.deskImg.setBatchId("chess_bg_" + this.curTheme); this.resetLegalHighlights(); this.selectedChessHighlight.visible = false; this.lastMoveHighlight1.visible = this.lastMoveHighlight2.visible = false; this.curDrawAiAskWait = 0; if(fromState != null) this.state = fromState; else this.state = this.chessEngine.p4_new_game(this.inversedColors); this.main.ingameMenu.reset(); this.main.ingameMenu.onMoveEnd(); var board = this.state.board; while(this.chesses.length > 0) this.chesses.pop().destroy(); var chess; var isFirstPlayer = false; var pos; var _g1 = 0; var _g = this.stateIndexes.length; while(_g1 < _g) { var i = _g1++; var chessType = board[this.stateIndexes[i]]; if(chessType == 0 || chessType == 16) continue; isFirstPlayer = chessType % 2 == 0; chess = new Chess(chessType,i,isFirstPlayer); this.chesses.push(chess); } if(this.curDelayActuator != null) motion_Actuate.unload(this.curDelayActuator); this.curDelayActuator = null; this.aiThinkingMC.set_visible(false); this.startTime = Math.floor(new Date().getTime() / 1000); this.isBusy = true; haxe_Timer.delay($bind(this,this.onNewGameReady),400); } ,onNewGameReady: function() { this.isBusy = false; } ,getPosition: function(ind) { this.hp.y = (ind != 0?Math.floor(ind / 8):0) * this.cellSize + this.oy; this.hp.x = Math.floor(ind % 8) * this.cellSize + this.ox; return this.hp; } ,resetLegalHighlights: function() { var _g1 = 0; var _g = this.legalMovesHighlights.length; while(_g1 < _g) { var i = _g1++; this.legalMovesHighlights[i].visible = false; } } ,undoMoves: function(n) { var delta; if(n < 0) delta = -n; else delta = this.state.moveno - n; if(delta > this.state.moveno) delta = this.state.moveno; this.state.jump_to_moveno(delta); this.resetLegalHighlights(); this.updateChesses(); } ,click: function() { var row = Math.floor((this.main.get_mouseY() - this.y - this.oy) / this.cellSize); var col = Math.floor((this.main.get_mouseX() - this.x - this.ox) / this.cellSize); if(row > 7 || col > 7 || row < 0 || col < 0) return; var pos = row * 8 + col; var myPos = pos; this.selectedCell = pos; var foundChess = false; var _g1 = 0; var _g = this.chesses.length; while(_g1 < _g) { var i = _g1++; if(this.chesses[i].isActive && this.chesses[i].pos == pos && (this.chesses[i].isFirstPlayer?0:1) == this.state.to_play) { this.cellSelected = true; if(this.selectedChess != this.chesses[i]) { this.selectedChess = this.chesses[i]; foundChess = true; } else { this.selectedChess = null; foundChess = false; this.cellSelected = false; this.resetLegalHighlights(); this.selectedChessHighlight.visible = false; } break; } } pos = this.stateIndexes[pos]; if(!foundChess && !this.cellSelected) return; else if(!foundChess && this.cellSelected) { if(this.makeMove(this.stateIndexes[this.selectedChess.pos],pos)) { this.resetLegalHighlights(); return; } else { this.selectedChess = null; foundChess = false; this.cellSelected = false; } } if(foundChess) { var parse = this.chessEngine.getLegalMoves(this.state,pos); this.resetLegalHighlights(); if(parse != null) { var _g11 = 0; var _g2 = parse.length; while(_g11 < _g2) { var i1 = _g11++; this.legalMovesHighlights[this.stateIndexesInv[parse[i1]]].visible = true; } this.selectedChessHighlight.visible = true; var pos1 = this.getPosition(myPos); this.selectedChessHighlight.x = pos1.x + 1; this.selectedChessHighlight.y = pos1.y + 2; } else { var pos2 = this.getPosition(myPos); this.selectedChessHighlight.x = pos2.x + 1; this.selectedChessHighlight.y = pos2.y + 2; this.selectedChessHighlight.visible = true; } } else { this.resetLegalHighlights(); this.selectedChessHighlight.visible = false; } } ,updateTheme: function() { this.deskImg.setBatchId("chess_bg_" + this.curTheme); var _g1 = 0; var _g = this.chesses.length; while(_g1 < _g) { var i = _g1++; this.chesses[i].updateTheme(); } } ,computerMove: function() { var moveArr = this.state.findmove(this.computerLevel); this.makeMove(moveArr[0],moveArr[1]); } ,adviceDraw: function() { } ,showDrawAsk: function() { } ,showFinishScreen: function(isWhiteWinner,isDraw) { if(isDraw == null) isDraw = false; this.main.addChild(new FinishScreen(!this.inversedColors?isWhiteWinner:isWhiteWinner,isDraw)); } ,onAiAskDrawResp: function(resp) { if(resp) this.showFinishScreen(false,true); else this.main.addChild(new InformWindow("",false,null,["flag_1"])); } ,offerDraw: function() { this.main.addChild(new InformWindow(Localization.getString("draw_ask_text"),true,$bind(this,this.onAiAskDrawResp))); } ,makeMove: function(st,end) { this.aiThinkingMC.set_visible(false); var mover = this.state.to_play; var res = this.state.move(st,end); if(res.ok) { this.selectedChess = null; this.cellSelected = false; this.selectedChessHighlight.visible = false; if(this.playersType[1 - mover] == "computer" && this.state.draw_timeout >= 40) { if(this.curDrawAiAskWait > 0) this.curDrawAiAskWait--; else { this.curDrawAiAskWait = this.minDrawAiAskWait + Std.random(this.maxDrawAiAskWait - this.minDrawAiAskWait); this.main.addChild(new InformWindow("",true,$bind(this,this.onAiAskDrawResp),["flag_2","comp"])); } } else { } this.main.playSpriteSound("move"); } if(res.ok && (res.flags & Engine.P4_MOVE_FLAG_MATE) != 0) { this.isBusy = true; motion_Actuate.timer(1).onComplete($bind(this,this.showFinishScreen),[!this.inversedColors?this.state.to_play != 0:this.state.to_play == 0]); } else if(res.ok && (res.flags & Engine.P4_MOVE_FLAG_DRAW) != 0) this.adviceDraw(); if(res.ok == true) { var mySt = this.stateIndexesInv[st]; var myEnd = this.stateIndexesInv[end]; var chess = null; var eChess = null; var _g1 = 0; var _g = this.chesses.length; while(_g1 < _g) { var i = _g1++; if(!this.chesses[i].isActive) continue; if(this.chesses[i].pos == mySt) chess = this.chesses[i]; if(this.chesses[i].pos == myEnd) eChess = this.chesses[i]; } chess.setPos(myEnd,true); this.delayNewMove(); return true; } return false; } ,saveGame: function(slot) { window.famobi_analytics.trackEvent("EVENT_CUSTOM", {event: "EVENT_SAVEGAME"}); var saveData = { }; saveData.beginning = this.state.beginning; saveData.history = this.state.history; saveData.moveno = this.state.moveno; saveData.playersType = this.playersType; saveData.inversedColors = this.inversedColors; saveData.twoPlayersViewOption = this.twoPlayersViewOption; saveData.hideHints = this.hideHints; saveData.computerLevel = this.computerLevel; saveData.duration = Math.floor(new Date().getTime() / 1000) - this.startTime; var saveString = JSON.stringify(saveData); var mnth = new Date().getMonth() + 1; var saveName, saveNameForStorage; saveName = new Date().getFullYear() + "." + (mnth < 10?"0" + mnth:mnth + "") + "." + (new Date().getDate() < 10?"0" + new Date().getDate():new Date().getDate() + ""); saveNameForStorage = saveName + "#" + slot; var savesArr; if(LocalSaves.getVar("saves") != null) savesArr = LocalSaves.getVar("saves"); else savesArr = []; savesArr[slot] = saveName; LocalSaves.setVar("saves",savesArr); LocalSaves.setVar(saveNameForStorage,saveString); return saveName; } ,loadSave: function(slot) { window.famobi_analytics.trackEvent("EVENT_CUSTOM", {event: "EVENT_LOADGAME"}); var saves; if(LocalSaves.getVar("saves") != null) saves = LocalSaves.getVar("saves"); else saves = null; if(saves == null || saves[slot] == null) return false; var saveName = saves[slot]; var saveNameForStorage = saveName + "#" + slot; if(LocalSaves.getVar(saveNameForStorage) == null) return false; var saveString = LocalSaves.getVar(saveNameForStorage); var saveData = JSON.parse(saveString); this.playersType = saveData.playersType; this.inversedColors = saveData.inversedColors; this.twoPlayersViewOption = saveData.twoPlayersViewOption; this.hideHints = saveData.hideHints; this.computerLevel = saveData.computerLevel; var duration = saveData.duration; this.startTime -= duration; var newState = this.chessEngine.p4_fen2state(saveData.beginning); this.newGame(newState); var moveno = saveData.moveno; var i = 0; while(newState.moveno < moveno) { var m = saveData.history[i++]; this.chessEngine.p4_move(newState,m[0],m[1],m[2]); } this.updateChesses(); return true; } ,aiDrawResponce: function() { if(this.state.draw_timeout >= 40) return true; return false; } ,updateChesses: function() { var curChessesInd = 0; var _g1 = 0; var _g = this.chesses.length; while(_g1 < _g) { var i = _g1++; this.chesses[i].set_isActive(false); } var board = this.state.board; var chess; var _g11 = 0; var _g2 = this.stateIndexes.length; //Famobi Score Calculation var _score_white = 16; var _score_black = 16; window.score_white = window.score_white || 0; window.score_black = window.score_black || 0; while(_g11 < _g2) { var i1 = _g11++; if(board[this.stateIndexes[i1]] != 16 && board[this.stateIndexes[i1]] != 0) { chess = this.chesses[curChessesInd]; chess.set_isActive(true); chess.init(board[this.stateIndexes[i1]],i1,board[this.stateIndexes[i1]] % 2 == 0); curChessesInd++; if(chess.isFirstPlayer) { //Amount of white players _score_black--; } else { //Amount of black players _score_white--; } } } if(_score_white != window.score_white) { window.famobi_analytics.trackEvent("EVENT_LIVESCORE", { liveScore: _score_white, player: "p1"}); window.score_white = _score_white; } if(_score_black != window.score_black) { window.famobi_analytics.trackEvent("EVENT_LIVESCORE", { liveScore: _score_black, player: Desk.current.playersType.includes("computer") ? "pc" : "p2"}); window.score_black = _score_black; } this.movingChess = null; if(this.state.history.length > 0) { this.lastMoveHighlight1.visible = this.lastMoveHighlight2.visible = true; var lastHist = this.state.history[this.state.history.length - 1]; var pos = this.getPosition(this.stateIndexesInv[lastHist[0]]); this.lastMoveHighlight1.x = pos.x + 1; this.lastMoveHighlight1.y = pos.y + 2; pos = this.getPosition(this.stateIndexesInv[lastHist[1]]); this.lastMoveHighlight2.x = pos.x + 1; this.lastMoveHighlight2.y = pos.y + 2; } else this.lastMoveHighlight1.visible = this.lastMoveHighlight2.visible = false; this.main.ingameMenu.onMoveEnd(); } ,curDelayActuator: null ,delayNewMove: function() { this.isBusy = true; this.curDelayActuator = motion_Actuate.timer(0.6).onComplete($bind(this,this.afterNewMoveDelay)); } ,afterNewMoveDelay: function() { this.curDelayActuator = null; this.isBusy = false; } ,update: function(frameTime) { if(this.isBusy) return; if(this.playersType[this.state.to_play] == "human") { if(!this.isMDown && this.main.isMouseDown) this.click(); } else if(!this.aiThinkingMC.visible) this.aiThinkingMC.set_visible(true); else this.computerMove(); this.isMDown = this.main.isMouseDown; } ,render: function() { var _g1 = 0; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].render(); } if(this.inversedColors) { this.deskImg.tx = this.deskImg.get_width() / 2; this.deskImg.addonX = this.deskImg.get_width() / 2 + 3; this.deskImg.scaleX = -1; this.deskImg.render(); this.deskImg.scaleX = 1; this.deskImg.tx = 0; this.deskImg.addonX = 0; } else { this.deskImg.render(); } if(!this.hideHints) this.selectedChessHighlight.render(); if(!this.hideHints) this.lastMoveHighlight1.render(); if(!this.hideHints) this.lastMoveHighlight2.render(); var _g11 = 0; var _g2 = this.chesses.length; while(_g11 < _g2) { var i1 = _g11++; if(this.chesses[i1] != this.movingChess) this.chesses[i1].render(); } if(this.movingChess != null) this.movingChess.render(); if(!this.hideHints) { var _g12 = 0; var _g3 = this.legalMovesHighlights.length; while(_g12 < _g3) { var i2 = _g12++; if(this.legalMovesHighlights[i2].visible) this.legalMovesHighlights[i2].render(); } } this.aiThinkingMC.render(); } ,__class__: Desk }); var EReg = function(r,opt) { opt = opt.split("u").join(""); this.r = new RegExp(r,opt); }; $hxClasses["EReg"] = EReg; EReg.__name__ = ["EReg"]; EReg.prototype = { r: null ,match: function(s) { if(this.r.global) this.r.lastIndex = 0; this.r.m = this.r.exec(s); this.r.s = s; return this.r.m != null; } ,matched: function(n) { if(this.r.m != null && n >= 0 && n < this.r.m.length) return this.r.m[n]; else throw new js__$Boot_HaxeError("EReg::matched"); } ,replace: function(s,by) { return s.replace(this.r,by); } ,__class__: EReg }; var EnState = function() { this.engine = Engine.current; }; $hxClasses["EnState"] = EnState; EnState.__name__ = ["EnState"]; EnState.prototype = { beginning: null ,best_pieces: null ,board: null ,castles: null ,current_repetitions: null ,draw_timeout: null ,enpassant: null ,history: null ,moveno: null ,pieces: null ,position_counts: null ,prepared: null ,rng: null ,stalemate_scores: null ,to_play: null ,values: null ,weights: null ,taken: null ,engine: null ,move: function(s,e,promotion) { return this.engine.p4_move(this,s,e,promotion); } ,findmove: function(level) { return this.engine.p4_findmove(this,level); } ,jump_to_moveno: function(moveno) { this.engine.p4_jump_to_moveno(this,moveno); return; } ,treeclimber: function(state,count,colour,score,s,e,alpha,beta) { return this.engine.p4_alphabeta_treeclimber(state,count,colour,score,s,e,alpha,beta); } ,__class__: EnState }; var Engine = function() { this.P4_ZEROS = []; this.P4_ENCODE_LUT = " PPRRNNBBKKQQ"; this.P4_PIECE_LUT = { P : 2, p : 3, R : 4, r : 5, N : 6, n : 7, B : 8, b : 9, K : 10, k : 11, Q : 12, q : 13}; this.P4_USE_TYPED_ARRAYS = false; this.P4_INITIAL_BOARD_BLACK_MOVE = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR b KQkq - 1 1"; this.P4_INITIAL_BOARD = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 1 1"; this.P4_DEBUG = 0; this.P4_KNIGHT_WEIGHTS = []; this.P4_BASE_PAWN_WEIGHTS = []; this.P4_CENTRALISING_WEIGHTS = []; this.P4_MIN_SCORE = -Engine.P4_MAX_SCORE; this.P4_WIN_NOW = Engine.P4_KING_VALUE - 250; this.P4_WIN = Engine.P4_KING_VALUE >> 1; this.P4_MOVES = [[],[],[],[],[1,10,-1,-10],[],[21,19,12,8,-21,-19,-12,-8],[],[11,9,-11,-9],[],[1,10,11,9,-1,-10,-11,-9],[],[1,10,11,9,-1,-10,-11,-9],[]]; this.P4_EDGE = 16; this.P4_KING = 10; this.P4_QUEEN = 12; this.P4_BISHOP = 8; this.P4_KNIGHT = 6; this.P4_ROOK = 4; this.P4_PAWN = 2; Engine.current = this; }; $hxClasses["Engine"] = Engine; Engine.__name__ = ["Engine"]; Engine.current = null; Engine.parseInt = function(stringValue,radix) { if(HxOverrides.substr(stringValue,0,1) == "-") return -Engine.parseInt(HxOverrides.substr(stringValue,1,null),radix); var value = 0; var _g1 = 0; var _g = stringValue.length; while(_g1 < _g) { var n = _g1++; var charCode = HxOverrides.cca(stringValue,n); value *= radix; if(charCode >= HxOverrides.cca("0",0) && charCode <= HxOverrides.cca("9",0)) value += charCode - HxOverrides.cca("0",0); else if(charCode >= HxOverrides.cca("a",0) && charCode <= HxOverrides.cca("z",0)) value += charCode - HxOverrides.cca("a",0) + 10; else if(charCode >= HxOverrides.cca("A",0) && charCode <= HxOverrides.cca("Z",0)) value += charCode - HxOverrides.cca("A",0) + 10; } return value; }; Engine.prototype = { P4_PAWN: null ,P4_ROOK: null ,P4_KNIGHT: null ,P4_BISHOP: null ,P4_QUEEN: null ,P4_KING: null ,P4_EDGE: null ,P4_MOVES: null ,P4_WIN: null ,P4_WIN_NOW: null ,P4_MIN_SCORE: null ,P4_CENTRALISING_WEIGHTS: null ,P4_BASE_PAWN_WEIGHTS: null ,P4_KNIGHT_WEIGHTS: null ,P4_DEBUG: null ,P4_INITIAL_BOARD: null ,P4_INITIAL_BOARD_BLACK_MOVE: null ,P4_USE_TYPED_ARRAYS: null ,P4_PIECE_LUT: null ,P4_ENCODE_LUT: null ,p4_alphabeta_treeclimber: function(state,count,colour,score,s,e,alpha,beta) { var move = this.p4_make_move(state,s,e,this.P4_QUEEN); var i; var ncolour = 1 - colour; var movelist = this.p4_parse(state,colour,move.ep,-score); var movecount = movelist.length; if(count != 0) { var t; var _g = 0; while(_g < movecount) { var i1 = _g++; var mv = movelist[i1]; var mscore = mv[0]; var ms = mv[1]; var me = mv[2]; if(mscore > this.P4_WIN) { alpha = Engine.P4_KING_VALUE; break; } t = -this.p4_alphabeta_treeclimber(state,count - 1,ncolour,mscore,ms,me,-beta,-alpha); if(t > alpha) alpha = t; if(alpha >= beta) break; } if(alpha < -this.P4_WIN_NOW && !this.p4_check_check(state,colour)) alpha = state.stalemate_scores[colour]; if(alpha < -this.P4_WIN) alpha += Engine.P4_WIN_DECAY; } else while(beta > alpha && --movecount != -1) if(movelist[movecount][0] > alpha) alpha = movelist[movecount][0]; this.p4_unmake_move(state,move); return alpha; } ,p4_prepare: function(state) { var i; var j; var x; var y; var a; var pieces = state.pieces = [[],[]]; var moveno = state.moveno >> 1; var board = state.board; var earliness_weight; if(moveno > 50) earliness_weight = 0; else earliness_weight = Std["int"](6 * Math.exp(moveno * -0.07)); var king_should_hide = moveno < 12; var early = moveno < 5; var kings = [0,0]; var material = [0,0]; var best_pieces = [0,0]; var _g = 20; while(_g < 100) { var i1 = _g++; a = board[i1]; var piece = a & 14; var colour = a & 1; if(piece != 0) { pieces[colour].push([a,i1]); if(piece == this.P4_KING) kings[colour] = i1; else { material[colour] += Engine.P4_VALUES[piece]; best_pieces[colour] = Std["int"](Math.max(best_pieces[colour],Engine.P4_VALUES[piece])); } } } var draw_likely = state.draw_timeout > 90 || state.current_repetitions >= 2; if(draw_likely) haxe_Log.trace("draw likely",{ fileName : "Engine.hx", lineNumber : 248, className : "Engine", methodName : "p4_prepare", customParams : [state.current_repetitions,state.draw_timeout]}); state.values = [[],[]]; var qvalue = Engine.P4_VALUES[this.P4_QUEEN]; var material_sum = material[0] + material[1] + 2 * qvalue; var wmul = 2 * (material[1] + qvalue) / material_sum; var bmul = 2 * (material[0] + qvalue) / material_sum; var multipliers = [wmul,bmul]; var emptiness = 4 * this.P4_QUEEN / material_sum; state.stalemate_scores = [0.5 + (wmul - 1) * 2 * qvalue | 0,0.5 + (bmul - 1) * 2 * qvalue | 0]; var _g1 = 0; var _g2 = Engine.P4_VALUES.length; while(_g1 < _g2) { var i2 = _g1++; var v = Engine.P4_VALUES[i2]; if(v < this.P4_WIN) { state.values[0][i2] = v * wmul + 0.5 | 0; state.values[1][i2] = v * bmul + 0.5 | 0; } else { state.values[0][i2] = v; state.values[1][i2] = v; } } state.best_pieces = [best_pieces[0] * wmul + 0.5 | 0,best_pieces[1] * bmul + 0.5 | 0]; var kx = [kings[0] % 10,kings[1] % 10]; var ky = [kings[0] / 10 | 0,kings[1] / 10 | 0]; var pawn_cols = [[],[]]; var _g3 = 3; while(_g3 < 9) { var y1 = _g3++; var _g11 = 1; while(_g11 < 9) { var x1 = _g11++; i = y1 * 10 + x1; a = board[i]; if((a & 14) != this.P4_PAWN) continue; if((a & 1) == 0) pawn_cols[0][x1] = y1; else if(pawn_cols[1][x1] == null) pawn_cols[1][x1] = y1; } } var target_king = moveno >= 20 || material_sum < 5 * qvalue; var weights = state.weights; var _g4 = 2; while(_g4 < 10) { var y2 = _g4++; var _g12 = 1; while(_g12 < 9) { var x2 = _g12++; i = y2 * 10 + x2; var early_centre = this.P4_CENTRALISING_WEIGHTS[i] * earliness_weight; var plateau = this.P4_KNIGHT_WEIGHTS[i]; var _g21 = 0; while(_g21 < 2) { var c = _g21++; var dx = Std["int"](Math.abs(kx[1 - c] - x2)); var dy = Std["int"](Math.abs(ky[1 - c] - y2)); var our_dx = Std["int"](Math.abs(kx[c] - x2)); var our_dy = Std["int"](Math.abs(ky[c] - y2)); var d = Math.max(Math.sqrt(dx * dx + dy * dy),1) + 1; var mul = multipliers[c]; var mul3 = mul * mul * mul; var at_home = y2 == 2 + c * 7; var pawn_home = y2 == 3 + c * 5; var row4 = y2 == 5 + c; var promotion_row = y2 == 9 - c * 7; var get_out; get_out = (early && at_home?1:0) * -5; var knight = (early_centre * 0.3 | 0) + 2 * plateau + get_out; var rook = early_centre * 0.3 | 0; var bishop = (early_centre * 0.6 | 0) + plateau + get_out; if(at_home) { rook += (x2 == 4 || x2 == 5?1:0) * (earliness_weight + (!target_king?1:0)); rook += (x2 == 1 || x2 == 8?1:0) * (moveno > 10 && moveno < 20?1:0) * -3; rook += (x2 == 2 || x2 == 7?1:0) * (moveno > 10 && moveno < 20?1:0) * -1; } var queen; queen = plateau * 0.5 + early_centre * (0.5 - (early?1:0)) | 0; var king; king = (king_should_hide && at_home?1:0) * 2 * earliness_weight; var get_on_with_it = Math.max(emptiness * 2,1); var pawn = get_on_with_it * this.P4_BASE_PAWN_WEIGHTS[c != 0?119 - i:i] | 0; if(early) { if(y2 >= 4 && y2 <= 7) { var boost; boost = 1 + 3 * (y2 == 5 || y2 == 6?1:0); pawn += Std["int"]((boost + this.p4_random_int(state,4)) * 0.1 * early_centre); } if(x2 == 4 || x2 == 5) { pawn -= 3 * (pawn_home?1:0); pawn += 3 * (row4?1:0); } } if(promotion_row) pawn += state.values[c][this.P4_QUEEN] - state.values[c][this.P4_PAWN]; pawn += 4 * (y2 == 3 && ky[c] == 2 && Math.abs(our_dx) < 2 && kx[c] != 5 && x2 != 4 && x2 != 5?1:0); var cols = pawn_cols[1 - c]; if(cols[x2] == null || c == 0 && cols[x2] < y2 || c == 1 && cols[x2] > y2) pawn += 2; if(target_king) { knight += 2 * (8 * mul / d | 0); rook += 2 * ((dx < 2?1:0) + (dy < 2?1:0)); bishop += 3 * (Math.abs(dx - dy) < 2?1:0); queen += 2 * (8 / d | 0) + (dx * dy == 0?1:0) + (dx - dy == 0?1:0); var king_centre_wt = 8 * emptiness * this.P4_CENTRALISING_WEIGHTS[i]; king += 150 * emptiness / (mul3 * d) + king_centre_wt * mul3 | 0; } weights[this.P4_PAWN + c][i] = pawn; weights[this.P4_KNIGHT + c][i] = knight; weights[this.P4_ROOK + c][i] = rook; weights[this.P4_BISHOP + c][i] = bishop; weights[this.P4_QUEEN + c][i] = queen; weights[this.P4_KING + c][i] = king; if(draw_likely && mul < 1) { var range = 3 / mul3; j = 2 + c; while(j < 14) { weights[j][i] += this.p4_random_int(state,range | 0); j += 2; } } } } } state.prepared = true; } ,p4_maybe_prepare: function(state) { if(!state.prepared) this.p4_prepare(state); } ,p4_parse: function(state,colour,ep,score) { var board = state.board; var s; var e; var E = null; var a; var i = 0; var j; var other_colour = 1 - colour; var dir = 10 - 20 * colour; var movelist = []; var captures = []; var weight; var pieces = state.pieces[colour]; var castle_flags = state.castles >> colour * 2 & 3; var values = state.values[other_colour]; var all_weights = state.weights; var j1 = 0; var weight_lut = null; var _g1 = 0; var _g = pieces.length; while(_g1 < _g) { var h = _g1++; j1 = pieces.length - h - 1; s = pieces[j1][1]; a = board[s]; weight_lut = all_weights[a]; weight = score - weight_lut[s]; a &= 14; if(a > 2) { var moves = this.P4_MOVES[a]; if((a & 2) != 0) { var _g2 = 0; while(_g2 < 8) { var i1 = _g2++; e = s + moves[i1]; E = board[e]; if(!(E != 0)) movelist.push([weight + values[E] + weight_lut[e],s,e]); else if((E & 17) == other_colour) captures.push([weight + values[E] + weight_lut[e] + all_weights[E][e],s,e]); } if(a == this.P4_KING && castle_flags != 0) { if((castle_flags & 1) != 0 && board[s - 1] + board[s - 2] + board[s - 3] == 0 && this.p4_check_castling(board,s - 2,other_colour,dir,-1) != 0) movelist.push([weight + 12,s,s - 2]); if((castle_flags & 2) != 0 && board[s + 1] + board[s + 2] == 0 && this.p4_check_castling(board,s,other_colour,dir,1) != 0) movelist.push([weight + 13,s,s + 2]); } } else { var mlen = moves.length; i = 0; while(i < mlen) { var m = moves[i++]; e = s; do { e += m; E = board[e]; if(E == 0) movelist.push([weight + values[E] + weight_lut[e],s,e]); else if((E & 17) == other_colour) captures.push([weight + values[E] + weight_lut[e] + all_weights[E][e],s,e]); } while(E == 0); } } } else { e = s + dir; if(board[e] == 0) { movelist.push([weight + weight_lut[e],s,e]); var e2 = e + dir; if(s * (120 - s) < 3200 && board[e2] == 0) movelist.push([weight + weight_lut[e2],s,e2]); } E = board[--e]; if(E != 0 && (E & 17) == other_colour) captures.push([weight + values[E] + weight_lut[e] + all_weights[E][e],s,e]); e += 2; E = board[e]; if(E != 0 && (E & 17) == other_colour) captures.push([weight + values[E] + weight_lut[e] + all_weights[E][e],s,e]); } } if(ep != 0) { var pawn = this.P4_PAWN | colour; var taken; s = ep - dir - 1; if(board[s] == pawn) { taken = values[this.P4_PAWN] + all_weights[this.P4_PAWN | other_colour][ep - dir]; captures.push([score - weight_lut[s] + weight_lut[ep] + taken,s,ep]); } s += 2; if(board[s] == pawn) { taken = values[this.P4_PAWN] + all_weights[this.P4_PAWN | other_colour][ep - dir]; captures.push([score - weight_lut[s] + weight_lut[ep] + taken,s,ep]); } } return captures.concat(movelist); } ,p4_check_castling: function(board,s,colour,dir,side) { var e; var E = 0; var knight = colour + this.P4_KNIGHT; var diag_slider = this.P4_BISHOP | colour; var diag_mask = 27; var grid_slider = this.P4_ROOK | colour; var king_pawn = 2 | colour; var grid_mask = 23; var _g1 = s; var _g = s + 3; while(_g1 < _g) { var p = _g1++; e = p; do { e += dir; E = board[e]; } while(E == 0); if((E & grid_mask) == grid_slider) return 0; e = p; var delta = dir - 1; do { e += delta; E = board[e]; } while(E == 0); if((E & diag_mask) == diag_slider) return 0; e = p; delta += 2; do { e += delta; E = board[e]; } while(E == 0); if((E & diag_mask) == diag_slider) return 0; if(board[p + dir - 2] == knight || board[p + dir + 2] == knight) return 0; } var _g11 = s + dir - 1; var _g2 = s + dir + 4; while(_g11 < _g2) { var p1 = _g11++; E = board[p1] & grid_mask; if(E == king_pawn || board[p1 + dir] == knight) return 0; } if(side < 0) e = s + 2; else e = s; do { e -= side; E = board[e]; } while(E == 0); if((E & grid_mask) == grid_slider) return 0; return 1; } ,p4_check_check: function(state,colour) { var board = state.board; var pieces = state.pieces[colour]; var p; var i = pieces.length; do p = pieces[--i]; while(p[0] != (this.P4_KING | colour)); var s = p[1]; var other_colour = 1 - colour; var dir = 10 - 20 * colour; if(board[s + dir - 1] == (this.P4_PAWN | other_colour) || board[s + dir + 1] == (this.P4_PAWN | other_colour)) return true; var knight_moves = this.P4_MOVES[this.P4_KNIGHT]; var king_moves = this.P4_MOVES[this.P4_KING]; var knight = this.P4_KNIGHT | other_colour; var king = this.P4_KING | other_colour; var _g = 0; while(_g < 8) { var i1 = _g++; if(board[s + knight_moves[i1]] == knight || board[s + king_moves[i1]] == king) return true; } var diagonal_moves = this.P4_MOVES[this.P4_BISHOP]; var grid_moves = this.P4_MOVES[this.P4_ROOK]; var diag_slider = this.P4_BISHOP | other_colour; var diag_mask = 27; var grid_slider = this.P4_ROOK | other_colour; var grid_mask = 23; var _g1 = 0; while(_g1 < 4) { var i2 = _g1++; var m = diagonal_moves[i2]; var e = s; var E; do { e += m; E = board[e]; } while(!(E != 0)); if((E & diag_mask) == diag_slider) return true; m = grid_moves[i2]; e = s; do { e += m; E = board[e]; } while(!(E != 0)); if((E & grid_mask) == grid_slider) return true; } return false; } ,p4_optimise_piece_list: function(state) { var i; var p; var s; var e; var movelists = [this.p4_parse(state,0,0,0),this.p4_parse(state,1,0,0)]; var weights = state.weights; var board = state.board; var _g = 0; while(_g < 2) { var colour = _g++; var our_values = state.values[colour]; var pieces = state.pieces[colour]; var movelist = movelists[colour]; var threats = movelists[1 - colour]; var scores = []; var _g2 = 0; var _g1 = pieces.length; while(_g2 < _g1) { var i1 = _g2++; p = pieces[i1]; scores[p[1]] = { score : 0, piece : p[0], pos : p[1], threatened : 0}; } i = movelist.length - 1; while(i >= 0) { var mv = movelist[i]; var score = mv[0]; s = mv[1]; e = mv[2]; if(!(board[e] != 0)) { var x = scores[s]; x.score = Std["int"](Math.max(x.score,score)); } i--; } i = threats.length - 1; while(i >= 0) { var mv1 = threats[i]; var x1 = scores[mv1[2]]; if(x1 != null) { var S = board[mv1[1]]; var r = 0.01; if(x1.threatened < r) x1.threatened = r; } i--; } var pieces2 = []; var p2; var _g11 = 20; while(_g11 < 100) { var i2 = _g11++; p2 = scores[i2]; if(p2 != null) { p2.score += p2.threatened * our_values[p2.piece]; pieces2.push(p2); } } pieces2.sort(function(a,b) { return a.score - b.score; }); var _g21 = 0; var _g12 = pieces2.length; while(_g21 < _g12) { var i3 = _g21++; p2 = pieces2[i3]; pieces[i3] = [p2.piece,p2.pos]; } } } ,p4_findmove: function(state,level,colour,ep) { this.p4_prepare(state); this.p4_optimise_piece_list(state); var board = state.board; if(colour == null) { colour = state.to_play; ep = state.enpassant; } var movelist = this.p4_parse(state,colour,ep,0); var alpha = this.P4_MIN_SCORE; var mv; var t; var i; var bs = 0; var be = 0; if(level <= 0) { var _g1 = 0; var _g = movelist.length; while(_g1 < _g) { var i1 = _g1++; mv = movelist[i1]; if(movelist[i1][0] > alpha && !this.check_check_move(state,colour,mv[1],mv[2])) { alpha = mv[0]; bs = mv[1]; be = mv[2]; } } return [bs,be,alpha]; } var _g11 = 0; var _g2 = movelist.length; while(_g11 < _g2) { var i2 = _g11++; mv = movelist[i2]; var mscore = mv[0]; var ms = mv[1]; var me = mv[2]; if(mscore > this.P4_WIN) { haxe_Log.trace("XXX taking king! it should never come to this",{ fileName : "Engine.hx", lineNumber : 815, className : "Engine", methodName : "p4_findmove"}); alpha = Engine.P4_KING_VALUE; bs = ms; be = me; break; } t = -state.treeclimber(state,level - 1,1 - colour,mscore,ms,me,this.P4_MIN_SCORE,-alpha); if(t > alpha) { alpha = t; bs = ms; be = me; } } if(alpha < -this.P4_WIN_NOW && !this.p4_check_check(state,colour)) alpha = state.stalemate_scores[colour]; return [bs,be,alpha]; } ,check_check_move: function(state,colour,s,e,promotion) { var retVal = false; if(promotion == null) promotion = this.P4_QUEEN; var changes = this.p4_make_move(state,s,e,promotion); retVal = this.p4_check_check(state,colour); this.p4_unmake_move(state,changes); return retVal; } ,p4_make_move: function(state,s,e,promotion) { var board = state.board; var S = board[s]; var E = board[e]; board[e] = S; board[s] = 0; var piece = S & 14; var moved_colour = S & 1; var end_piece = S; var rs = 0; var re = 0; var rook = null; var ep_taken = 0; var ep_position = null; var ep = 0; if(piece == this.P4_PAWN) { if((60 - e) * (60 - e) > 900) { promotion |= moved_colour; board[e] = promotion; end_piece = promotion; } else if(((s ^ e) & 1) != 0 && E == 0) { ep_position = e - 10 + 20 * moved_colour; ep_taken = board[ep_position]; board[ep_position] = 0; } else if((s - e) * (s - e) == 400) ep = s + e >> 1; } else if(piece == this.P4_KING && (s - e) * (s - e) == 4) { rs = s - 4 + (s < e?1:0) * 7; re = s + e >> 1; rook = moved_colour + this.P4_ROOK; board[rs] = 0; board[re] = rook; } var old_castle_state = state.castles; if(old_castle_state != 0) { var mask = 0; var shift = moved_colour * 2; var side = moved_colour * 70; var s2 = s - side; var e2 = e + side; if(s2 == 25) mask |= 3 << shift; else if(s2 == 21) mask |= 1 << shift; else if(s2 == 28) mask |= 2 << shift; if(e2 == 91) mask |= 4 >> shift; else if(e2 == 98) mask |= 8 >> shift; state.castles &= ~mask; } var old_pieces = state.pieces.slice(); var our_pieces = old_pieces[moved_colour]; var dest = state.pieces[moved_colour] = []; var _g1 = 0; var _g = our_pieces.length; while(_g1 < _g) { var i = _g1++; var x = our_pieces[i]; var pp = x[0]; var ps = x[1]; if(ps != s && ps != rs) dest.push(x); } dest.push([end_piece,e]); if(rook != null) dest.push([rook,re]); if(E != 0 || ep_taken != 0) { var their_pieces = old_pieces[1 - moved_colour]; dest = state.pieces[1 - moved_colour] = []; var gone; if(ep_taken != 0) gone = ep_position; else gone = e; var _g11 = 0; var _g2 = their_pieces.length; while(_g11 < _g2) { var i1 = _g11++; var x1 = their_pieces[i1]; if(x1[1] != gone) dest.push(x1); } } if(E != 0 && E != 16) state.taken[state.to_play].push(E); else if(ep_taken != 0 && ep_taken != 16) state.taken[state.to_play].push(ep_taken); return { s : s, e : e, S : S, E : E, ep : ep, castles : old_castle_state, rs : rs, re : re, rook : rook, ep_position : ep_position, ep_taken : ep_taken, pieces : old_pieces}; } ,p4_unmake_move: function(state,move) { var board = state.board; if(move.ep_position != null) { board[move.ep_position] = move.ep_taken; if(move.ep_taken != 0 && move.ep_taken != 16 && state.taken[state.to_play][state.taken[state.to_play].length - 1] == move.ep_taken) state.taken[state.to_play].pop(); } board[move.s] = move.S; board[move.e] = move.E; if(move.rs != 0) { board[move.rs] = move.rook; board[move.re] = 0; } state.pieces = move.pieces; state.castles = move.castles; if(move.E != 0 && move.E != 16 && state.taken[state.to_play][state.taken[state.to_play].length - 1] == move.E) state.taken[state.to_play].pop(); } ,p4_insufficient_material: function(state) { var knights = false; var bishops = null; var i; var board = state.board; var _g = 20; while(_g < 100) { var i1 = _g++; var piece = board[i1] & 14; if(piece == 0 || piece == this.P4_KING) continue; if(piece == this.P4_KNIGHT) { if(knights || bishops != null) return false; knights = true; } else if(piece == this.P4_BISHOP) { var x = i1 & 1; var y = (i1 / 10 | 0) & 1; var parity = x ^ y; if(knights) return false; else if(bishops == null) bishops = parity; else if(bishops != parity) return false; } else return false; } return true; } ,getLegalMoves: function(state,st,promotion) { var board = state.board; var s; if(st != Std.parseInt(Std.string(st) + "")) s = this.p4_destringify_point(Std.string(st) + ""); else s = st; if(promotion == null) promotion = this.P4_QUEEN; var colour = state.to_play; this.p4_maybe_prepare(state); var moves = this.p4_parse(state,colour,state.enpassant,0); var retArr = null; var changes; var _g1 = 0; var _g = moves.length; while(_g1 < _g) { var i = _g1++; if(s == moves[i][1]) { if(retArr == null) retArr = []; changes = this.p4_make_move(state,s,moves[i][2],promotion); if(!this.p4_check_check(state,colour)) retArr.push(moves[i][2]); this.p4_unmake_move(state,changes); } } return retArr; } ,p4_move: function(state,st,en,promotion) { var board = state.board; var colour = state.to_play; var other_colour = 1 - colour; var s; var e; if(st != Std.parseInt(Std.string(st) + "")) { if(en == null) { var mv = this.p4_interpret_movestring(state,Std.string(st) + ""); s = mv[0]; e = mv[1]; if(s == 0) return { flags : Engine.P4_MOVE_ILLEGAL, ok : false}; promotion = mv[2]; } else { s = this.p4_destringify_point(Std.string(st) + ""); e = this.p4_destringify_point(Std.string(en) + ""); } } else { s = st; e = en; } if(promotion == null) promotion = this.P4_QUEEN; var E = board[e]; var S = board[s]; var legal = false; this.p4_maybe_prepare(state); var moves = this.p4_parse(state,colour,state.enpassant,0); var _g1 = 0; var _g = moves.length; while(_g1 < _g) { var i = _g1++; if(e == moves[i][2] && s == moves[i][1]) { legal = true; break; } } if(!legal) return { flags : Engine.P4_MOVE_ILLEGAL, ok : false}; var changes = this.p4_make_move(state,s,e,promotion); if(this.p4_check_check(state,colour)) { this.p4_unmake_move(state,changes); haxe_Log.trace("in check",{ fileName : "Engine.hx", lineNumber : 1147, className : "Engine", methodName : "p4_move", customParams : [changes]}); return { flags : Engine.P4_MOVE_ILLEGAL, ok : false, string : "in check!"}; } var flags = Engine.P4_MOVE_FLAG_OK; state.enpassant = changes.ep; state.history.push([s,e,promotion]); if(changes.E != 0 || changes.ep_position != null) { state.draw_timeout = 0; flags |= Engine.P4_MOVE_FLAG_CAPTURE; } else if((S & 14) == this.P4_PAWN) state.draw_timeout = 0; else state.draw_timeout++; if(changes.rs != 0) if(s > e) flags |= Engine.P4_MOVE_FLAG_CASTLE_QUEEN; else flags |= Engine.P4_MOVE_FLAG_CASTLE_KING; var shortfen = this.p4_state2fen(state,true); var repetitions = Reflect.field(state.position_counts,shortfen) + 1; state.position_counts[shortfen] = repetitions; state.current_repetitions = repetitions; if(state.draw_timeout > 100 || repetitions >= 3 || this.p4_insufficient_material(state)) flags |= Engine.P4_MOVE_FLAG_DRAW; state.moveno++; state.to_play = other_colour; if(this.p4_check_check(state,other_colour)) flags |= Engine.P4_MOVE_FLAG_CHECK; var is_mate = true; var replies = this.p4_parse(state,other_colour,changes.ep,0); var _g11 = 0; var _g2 = replies.length; while(_g11 < _g2) { var i1 = _g11++; var m = replies[i1]; var change2 = this.p4_make_move(state,m[1],m[2],this.P4_QUEEN); var check = this.p4_check_check(state,other_colour); this.p4_unmake_move(state,change2); if(!check) { is_mate = false; break; } } if(is_mate) flags |= Engine.P4_MOVE_FLAG_MATE; var movestring = this.p4_move2string(state,s,e,S,promotion,flags,moves); state.prepared = false; return { flags : flags, string : movestring, ok : true}; } ,p4_move2string: function(state,s,e,S,promotion,flags,moves) { var piece = S & 14; var src; var dest; var mv; var i; var capture = flags & Engine.P4_MOVE_FLAG_CAPTURE; src = this.p4_stringify_point(s); dest = this.p4_stringify_point(e); if(piece == this.P4_PAWN) { if(capture != 0) mv = src.charAt(0) + "x" + dest; else mv = dest; if(e > 90 || e < 30) { if(promotion == null) promotion = this.P4_QUEEN; mv += "=" + this.P4_ENCODE_LUT.charAt(promotion); } } else if(piece == this.P4_KING && (s - e) * (s - e) == 4) { if(e < s) mv = "O-O-O"; else mv = "O-O"; } else { var row_qualifier = ""; var col_qualifier = ""; var pstr = this.P4_ENCODE_LUT.charAt(S); var sx = s % 10; var sy = s / 10 | 0; var co_landers = []; var _g1 = 0; var _g = moves.length; while(_g1 < _g) { var i1 = _g1++; var m = moves[i1]; if(e == m[2] && s != m[1] && state.board[m[1]] == S) co_landers.push(m[1]); } if(co_landers.length != 0) { var _g11 = 0; var _g2 = co_landers.length; while(_g11 < _g2) { var i2 = _g11++; var c = co_landers[i2]; var cx = c % 10; var cy = c / 10 | 0; if(cx == sx) row_qualifier = src.charAt(1); if(cy == sy) col_qualifier = src.charAt(0); } if(row_qualifier == "" && col_qualifier == "") col_qualifier = src.charAt(0); } mv = pstr + col_qualifier + row_qualifier + (capture != 0?"x":"") + dest; } if((flags & Engine.P4_MOVE_FLAG_CHECK) != 0) { if((flags & Engine.P4_MOVE_FLAG_MATE) != 0) mv += "#"; else mv += "+"; } else if((flags & Engine.P4_MOVE_FLAG_MATE) != 0) mv += " stalemate"; return mv; } ,p4_jump_to_moveno: function(state,moveno) { haxe_Log.trace("jumping to move",{ fileName : "Engine.hx", lineNumber : 1301, className : "Engine", methodName : "p4_jump_to_moveno", customParams : [moveno]}); if(moveno > state.moveno) moveno = state.moveno; else if(moveno < 0) moveno = state.moveno + moveno; var state2 = this.p4_fen2state(state.beginning); var i = 0; while(state2.moveno < moveno) { var m = state.history[i++]; this.p4_move(state2,m[0],m[1],m[2]); } var attr; var dest; var fields = Reflect.fields(state); state.beginning = state2.beginning; state.best_pieces = state2.best_pieces; state.board = state2.board; state.taken = state2.taken; state.castles = state2.castles; state.current_repetitions = state2.current_repetitions; state.draw_timeout = state2.draw_timeout; state.enpassant = state2.enpassant; state.history = state2.history; state.moveno = state2.moveno; state.pieces = state2.pieces; state.position_counts = state2.position_counts; state.rng = state2.rng; state.stalemate_scores = state2.stalemate_scores; state.to_play = state2.to_play; state.values = state2.values; state.weights = state2.weights; state.prepared = false; } ,p4_state2fen: function(state,reduced) { var piece_lut = " PpRrNnBbKkQq"; var board = state.board; var fen = ""; var y = 9; while(y > 1) { var count = 0; var _g = 1; while(_g < 9) { var x = _g++; var piece = board[y * 10 + x]; if(piece == 0) count++; else { if(count != 0) fen += count + ""; fen += piece_lut.charAt(piece); count = 0; } } if(count != 0) fen += count + ""; if(y > 2) fen += "/"; y--; } fen += " " + "wb".charAt(state.to_play) + " "; if(state.castles != null && state.castles != 0) { var lut = [2,"K",1,"Q",8,"k",4,"q"]; var i = 0; while(i < 8) { if(state.castles != null && (state.castles & lut[i]) != 0) fen += Std.string(lut[i + 1]) + ""; i += 2; } } else fen += "-"; if(state.enpassant != 0) fen += " " + this.p4_stringify_point(state.enpassant); else fen += " -"; if(reduced) return fen; fen += " " + state.draw_timeout + " "; fen += (state.moveno >> 1) + 1 + ""; return fen; } ,p4_stringify_point: function(p) { var letters = " abcdefgh"; var x = p % 10; var y = (p - x) / 10 - 1; return letters.charAt(x) + y; } ,p4_destringify_point: function(p) { var x = Engine.parseInt(p.charAt(0),19) - 9; var y = Std.parseInt(p.charAt(1)) + 1; if(y >= 2 && y < 10 && x >= 1 && x < 9) return y * 10 + x; return null; } ,p4_fen2state: function(fen,state) { if(state == null) state = this.p4_initialise_state(); var board = state.board; var fenbits = fen.split(" "); var fen_board = fenbits[0]; var fen_toplay = fenbits[1]; var fen_castles = fenbits[2]; var fen_enpassant = fenbits[3]; var fen_timeout = fenbits[4]; var fen_moveno = fenbits[5]; var fen_movenoInt = null; if(fen_timeout == null) fen_timeout = "0"; var y = 90; var x = 1; var i; var c; var _g1 = 0; var _g = fen_board.length; while(_g1 < _g) { var j = _g1++; c = fen_board.charAt(j); if(c == "/") { x = 1; y -= 10; if(y < 20) break; continue; } var piece; if(Object.prototype.hasOwnProperty.call(this.P4_PIECE_LUT,c)) piece = Reflect.field(this.P4_PIECE_LUT,c); else piece = 0; if(piece != 0 && x < 9) { board[y + x] = piece; x++; } else { var end = Math.min(x + Std.parseInt(c),9); while(x < end) { board[y + x] = 0; x++; } } } if(fen_toplay.toLowerCase() == "b") state.to_play = 1; else state.to_play = 0; state.castles = 0; var wk = board[25] == this.P4_KING; var bk = board[95] == this.P4_KING + 1; var castle_lut = { k : 8 * (bk && board[98] == this.P4_ROOK + 1?1:0), q : 4 * (bk && board[91] == this.P4_ROOK + 1?1:0), K : 2 * (wk && board[28] == this.P4_ROOK?1:0), Q : wk && board[21] == this.P4_ROOK?1:0}; var _g11 = 0; var _g2 = fen_castles.length; while(_g11 < _g2) { var i1 = _g11++; c = fen_castles.charAt(i1); var castle = Reflect.field(castle_lut,c); if(castle != null) { state.castles |= castle; if(castle == 0) haxe_Log.trace("FEN claims castle state " + fen_castles + " but pieces are not in place for " + c,{ fileName : "Engine.hx", lineNumber : 1499, className : "Engine", methodName : "p4_fen2state"}); } } if(fen_enpassant != "-") state.enpassant = this.p4_destringify_point(fen_enpassant); else state.enpassant = 0; state.draw_timeout = Std.parseInt(fen_timeout); if(fen_moveno == null || fen_moveno == "") { var pieces = 0; var mix = 0; var p; var q; y = 20; while(y < 100) { var _g3 = 1; while(_g3 < 9) { var x1 = _g3++; p = board[y + x1] & 15; if(p != 0) pieces += 1; else pieces += 0; if(x1 < 8) { q = board[y + x1 + 1]; if((q == 0?1:0) != (p == 0?1:0)) mix += 1; else mix += 0; } if(y < 90) { q = board[y + x1 + 10]; if((q == 0?1:0) != (p == 0?1:0)) mix += 1; else mix += 0; } } y += 10; } fen_movenoInt = Std["int"](Math.max(1,(32 - pieces) * 1.3 + (4 - fen_castles.length) * 1.5 + (mix - 16) / 5 | 0)); } else fen_movenoInt = Std.parseInt(fen_moveno); state.moveno = 2 * (fen_movenoInt - 1) + state.to_play; state.history = []; state.beginning = fen; state.prepared = false; state.position_counts = { }; return state; } ,P4_ZEROS: null ,p4_zero_array: function() { if(this.P4_ZEROS.length == 0) { var _g = 0; while(_g < 120) { var i = _g++; this.P4_ZEROS[i] = 0; } } return this.P4_ZEROS.slice(); } ,p4_initialise_state: function() { var board = this.p4_zero_array(); this.P4_CENTRALISING_WEIGHTS = this.p4_zero_array(); this.P4_BASE_PAWN_WEIGHTS = this.p4_zero_array(); this.P4_KNIGHT_WEIGHTS = this.p4_zero_array(); var _g = 0; while(_g < 120) { var i = _g++; var y = i / 10 | 0; var x = i % 10; var dx = Math.abs(x - 4.5); var dy = Math.abs(y - 5.5); this.P4_CENTRALISING_WEIGHTS[i] = Std["int"](6 - Math.pow((dx * dx + dy * dy) * 1.5,0.6)); this.P4_KNIGHT_WEIGHTS[i] = ((dx < 2?1:0) + (dy < 2?1:0) * 1.5 + (dx < 3?1:0) + (dy < 3?1:0) | 0) - 2; this.P4_BASE_PAWN_WEIGHTS[i] = Std.parseInt("000012347000".charAt(y)); if(y > 9 || y < 2 || x < 1 || x > 8) board[i] = 16; } var weights = []; var _g1 = 0; while(_g1 < 14) { var i1 = _g1++; weights[i1] = this.p4_zero_array(); } var state = new EnState(); state.board = board; state.taken = [[],[]]; state.weights = weights; state.history = []; this.p4_random_seed(state,this.P4_DEBUG != 0?1:Std["int"](new Date().getTime())); return state; } ,p4_new_game: function(isInversed) { if(isInversed == null) isInversed = false; return this.p4_fen2state(isInversed?this.P4_INITIAL_BOARD_BLACK_MOVE:this.P4_INITIAL_BOARD); } ,p4_interpret_movestring: function(state,str) { var FAIL = [0,0]; var algebraic_re = new EReg("^\\s*([RNBQK]?[a-h]?[1-8]?)[ :x-]*([a-h][1-8]?)(=[RNBQ])?[!?+#e.p]*\\s*$",""); var castle_re = new EReg("^\\s*([O0o]-[O0o](-[O0o])?)\\s*$",""); var position_re = new EReg("^[a-h][1-8]$",""); var s = null; var e = null; var q = null; var curEreg; var mathed = algebraic_re.match(str); curEreg = algebraic_re; if(mathed) { mathed = castle_re.match(str); curEreg = castle_re; if(mathed) { s = 25 + state.to_play * 70; if(curEreg.matched(2) != "") e = s - 2; else e = s + 2; } else return FAIL; } var src = curEreg.matched(1); var dest = curEreg.matched(2); var queen; if(curEreg == algebraic_re) queen = curEreg.matched(3); else queen = null; if(src == "" || src == null) { e = this.p4_destringify_point(dest); s = this.p4_find_source_point(state,e,"P" + dest.charAt(0)); } else if(new EReg("^[RNBQK]","").match(src)) { e = this.p4_destringify_point(dest); s = this.p4_find_source_point(state,e,src); } else if(position_re.match(src) && position_re.match(dest)) { s = this.p4_destringify_point(src); e = this.p4_destringify_point(dest); } else if(new EReg("^[a-h]$","").match(src)) { e = this.p4_destringify_point(dest); s = this.p4_find_source_point(state,e,"P" + src); } if(s == null || s == 0) return FAIL; if(queen != null) q = this.P4_PIECE_LUT[Std.parseInt(queen.charAt(1))]; return [s,e,q]; } ,p4_find_source_point: function(state,e,str) { var colour = state.to_play; var piece = Reflect.field(this.P4_PIECE_LUT,str.charAt(0)); piece |= colour; var s; var i; var row = null; var column = null; var _g1 = 1; var _g = str.length; while(_g1 < _g) { var i1 = _g1++; var c = str.charAt(i1); if(new EReg("[a-h]","").match(c)) column = HxOverrides.cca(str,i1) - 96; else if(new EReg("[1-8]","").match(c)) row = 1 + Std.parseInt(c); } var possibilities = []; this.p4_prepare(state); var moves = this.p4_parse(state,colour,state.enpassant,0); var _g11 = 0; var _g2 = moves.length; while(_g11 < _g2) { var i2 = _g11++; var mv = moves[i2]; if(e == mv[2]) { s = mv[1]; if(state.board[s] == piece && (column == null || column == s % 10) && (row == null || row == (s / 10 | 0))) { var change = this.p4_make_move(state,s,e,this.P4_QUEEN); if(!this.p4_check_check(state,colour)) possibilities.push(s); this.p4_unmake_move(state,change); } } } haxe_Log.trace("finding",{ fileName : "Engine.hx", lineNumber : 1749, className : "Engine", methodName : "p4_find_source_point", customParams : [str,"that goes to",e,"got",possibilities]}); if(possibilities.length == 0) return null; else if(possibilities.length > 1) haxe_Log.trace("p4_find_source_point seems to have failed",{ fileName : "Engine.hx", lineNumber : 1755, className : "Engine", methodName : "p4_find_source_point", customParams : [state,e,str,possibilities]}); return possibilities[0]; } ,p4_random_seed: function(state,seed) { seed &= -1; state.rng = []; state.rng[0] = -236298515; state.rng[1] = seed; state.rng[2] = seed; state.rng[3] = seed; var _g = 0; while(_g < 20) { var i = _g++; this.p4_random31(state); } } ,p4_random31: function(state) { var rng = state.rng; var b = rng[1]; var c = rng[2]; var e = rng[0] - (b << 27 | b >>> 5); rng[0] = b ^ (c << 17 | c >>> 15); rng[1] = c + rng[3] & -1; rng[2] = rng[3] + e & -1; rng[3] = e + rng[0] & -1; return rng[3] & 2147483647; } ,p4_random_int: function(state,top) { var mask = top; mask--; mask |= mask >>> 1; mask |= mask >>> 2; mask |= mask >>> 4; mask |= mask >>> 8; mask |= mask >>> 16; var r; do r = this.p4_random31(state) & mask; while(r >= top); return r; } ,__class__: Engine }; var FPSMeter = function(x,y,color) { if(color == null) color = 16711680; if(y == null) y = 10; if(x == null) x = 10; this.curDrawTime = 10; this.initDrawTime = 200; this.lastTime = 0; this.cacheCount = -1; openfl_display_Sprite.call(this); this.set_x(x); this.set_y(y); this.currentFPS = 0; this.cacheCount = 0; this.times = []; this.txt = new openfl_display_Bitmap(new openfl_display_BitmapData(50,20,true,0),1,true); this.txt.set_x(10); this.txt.set_y(10); this.addChild(this.txt); this.numericFont = Main.current.numericFontFps; }; $hxClasses["FPSMeter"] = FPSMeter; FPSMeter.__name__ = ["FPSMeter"]; FPSMeter.__super__ = openfl_display_Sprite; FPSMeter.prototype = $extend(openfl_display_Sprite.prototype,{ currentFPS: null ,cacheCount: null ,times: null ,lastTime: null ,txt: null ,numericFont: null ,initDrawTime: null ,curDrawTime: null ,this_onEnterFrame: function(event) { var t = openfl_Lib.getTimer(); var frameTime = t - this.lastTime; if(frameTime == 0) return; this.lastTime = t; var resFPS = 1000 / frameTime; if(this.cacheCount == -1) this.cacheCount = Math.round(resFPS); this.currentFPS = Math.round((resFPS + this.cacheCount * 7) / 8); if(this.currentFPS != this.cacheCount && this.get_visible()) { this.txt.bitmapData.fillRect(this.txt.bitmapData.rect,0); this.numericFont.drawTo(this.txt.bitmapData,Std.string(Math.round(this.currentFPS)),this.txt.bitmapData.width / 2,0,true); } this.cacheCount = Math.round(this.currentFPS); } ,update: function(frameTime) { var resFPS = 1000 / frameTime; if(this.cacheCount == -1) this.cacheCount = Math.round(resFPS); this.currentFPS = Math.round((resFPS + this.cacheCount * 3) / 4); this.curDrawTime -= frameTime; if(this.curDrawTime <= 0) { this.curDrawTime = this.initDrawTime; if(this.currentFPS != this.cacheCount && this.get_visible()) { this.txt.bitmapData.fillRect(this.txt.bitmapData.rect,0); this.numericFont.drawTo(this.txt.bitmapData,Std.string(Math.round(this.currentFPS)),this.txt.bitmapData.width / 2,0,true); } } this.cacheCount = Math.round(this.currentFPS); } ,__class__: FPSMeter }); var Menu = function() { this.initHeight = 1136; this.moveByResizeCallBack = null; this.moveThisOnResize = false; this.remakeThisOnResize = false; this.lastWasMouseUp = false; this.stopPropagation = true; this.isImagesFromAtlas = true; this.setedSnap = false; this.curID = 5555555; this.lastTime = -1; this.hasUpdateFunction = false; this.imgesRoot = "img/"; this.hitAlphaThereshold = 200; this.removedListeners = false; this.isSimpleHittest = true; openfl_display_Sprite.call(this); this.main = Main.current; this.sWidth = this.main.sWidth; this.sHeight = this.main.sHeight; this.graphicScale = Config.graphicScale; this.btnsArr = new haxe_ds_IntMap(); this.btnsFuntions = new haxe_ds_IntMap(); this.mcsArr = []; this.threeStateBtns = []; this.scrollContainers = []; this.textFields = []; this.hp = new openfl_geom_Point(); this.mHm = new openfl_geom_Matrix(); this.mainBatch = this.main.batch; this.addEventListener("click",$bind(this,this.btnClick)); this.addEventListener("touchEnd",$bind(this,this.btnClick)); this.addEventListener("enterFrame",$bind(this,this.resizeCheck)); }; $hxClasses["Menu"] = Menu; Menu.__name__ = ["Menu"]; Menu.replaceTxtWithStatic = function(source,search,replacement) { var ind = source.indexOf(search); if(ind == -1 || search == null || search == "null") return source; var resStr = source.substring(0,ind) + replacement + source.substring(ind + search.length,source.length); return resStr; }; Menu.getTextField = function(fontName,fontSize,fontColor,bold,align,x,y,width,height,shaddow,shaddowDist,shadAlpha,container,centerParentX,multiline,leading) { if(leading == null) leading = 0; if(multiline == null) multiline = false; if(centerParentX == null) centerParentX = false; if(shadAlpha == null) shadAlpha = 0.5; if(shaddowDist == null) shaddowDist = 3; if(shaddow == null) shaddow = true; if(height == null) height = 0; if(width == null) width = 0; if(y == null) y = 0; if(x == null) x = 0; if(align == null) align = "LEFT"; if(bold == null) bold = false; if(fontColor == null) fontColor = 0; if(fontSize == null) fontSize = 20; if(fontName == null) fontName = "Arial"; var mTF = new openfl_text_TextField(); mTF.set_gridFitType(1); mTF.set_embedFonts(true); mTF.mouseEnabled = mTF.set_selectable(false); var mAlign = null; switch(align) { case "CENTER": mAlign = 0; break; case "LEFT": mAlign = 3; break; case "RIGHT": mAlign = 4; break; } var mTFormat = new openfl_text_TextFormat(openfl_Assets.getFont(Reflect.field(Config.fontsShorts,fontName)).get_fontName(),fontSize | 0,fontColor,bold,false,false,null,null,mAlign,0,0,0,leading); mTF.set_defaultTextFormat(mTFormat); if(multiline) { mTF.set_multiline(true); mTF.set_wordWrap(true); } else mTF.set_multiline(false); if(width != 0) mTF.set_width(width); if(height != 0) mTF.set_height(height); mTF.set_x(x); mTF.set_y(y); mTF.set_text("Hola mundo"); var prt = container; if(prt != null && centerParentX) mTF.set_width(prt.get_width()); if(container != null) container.addChild(mTF); return mTF; }; Menu.__super__ = openfl_display_Sprite; Menu.prototype = $extend(openfl_display_Sprite.prototype,{ btnsArr: null ,btnsFuntions: null ,mcsArr: null ,threeStateBtns: null ,scrollContainers: null ,textFields: null ,isSimpleHittest: null ,removedListeners: null ,hitAlphaThereshold: null ,imgesRoot: null ,lastBm: null ,main: null ,sWidth: null ,sHeight: null ,graphicScale: null ,updateFunction: null ,hasUpdateFunction: null ,lastTime: null ,minUpdateTime: null ,curID: null ,level: null ,snapShot: null ,setedSnap: null ,fill: null ,hp: null ,mHm: null ,mainBatch: null ,isImagesFromAtlas: null ,stopPropagation: null ,allClickFunction: null ,lastWasMouseUp: null ,remakeThisOnResize: null ,moveThisOnResize: null ,moveByResizeCallBack: null ,initHeight: null ,resizeCheck: function(e) { if(this.parent == null || this.main.sWidth == this.sWidth && this.main.sHeight == this.sHeight) return; if(this.moveThisOnResize) this.moveByResize(); else if(this.remakeThisOnResize && (this.main.sWidth != this.sWidth || this.main.sHeight != this.sHeight)) { var remake = Type.createInstance(js_Boot.getClass(this),[]); this.parent.addChildAt(remake,this.parent.getChildIndex(this)); this.close(); Menu.wasRemake = true; return; } this.sWidth = this.main.sWidth; this.sHeight = this.main.sHeight; if(this.moveByResizeCallBack != null) this.moveByResizeCallBack(); } ,moveByResize: function() { if(this.main.sWidth != this.sWidth || this.main.sHeight != this.sHeight) { var difX = this.main.sWidth - this.sWidth; var _g = this; _g.set_x(_g.get_x() + difX / 2); var difY = this.main.sHeight - this.sHeight; var _g1 = this; _g1.set_y(_g1.get_y() + difY / 2); } } ,setSnapShot: function() { if(this.snapShot != null && this.snapShot.parent != null) this.snapShot.parent.removeChild(this.snapShot); this.snapShot = null; this.snapShot = new openfl_display_Bitmap(new openfl_display_BitmapData(Math.ceil(this.sWidth),Math.ceil(this.sHeight),true,0),1); this.mHm.identity(); var ms = this.main.get_scaleX(); this.main.set_scaleX(this.main.set_scaleY(1)); this.snapShot.bitmapData.draw(this,this.mHm); this.main.set_scaleX(this.main.set_scaleY(ms)); this.main.addChild(this.snapShot); this.set_visible(false); this.setedSnap = true; return this.snapShot; } ,removeSnapShot: function() { this.setedSnap = false; haxe_Timer.delay($bind(this,this.fullRemoveScreenShot),20); } ,fullRemoveScreenShot: function() { if(this.setedSnap) return; this.set_visible(true); if(this.snapShot != null && this.snapShot.parent != null) this.snapShot.parent.removeChild(this.snapShot); this.snapShot = null; } ,getFillOverlay: function(color,container) { if(color == null) color = -2013265920; if(this.main.overlayMaker != null) color = 0; else this.main.overlayMaker = this; if(this.fill != null) { this.fill.removeEventListener("click",$bind(this,this.stopEventForOverlay)); this.fill.removeEventListener("click",$bind(this,this.stopEventForOverlay)); } if(container == null) container = this; var spr = new openfl_display_Sprite(); var bm = new openfl_display_Bitmap(new openfl_display_BitmapData(50,50,true,color),1,true); spr.addChild(bm); spr.set_width(this.sWidth); spr.set_height(this.sHeight); container.addChild(spr); this.curID--; this.btnsArr.h[this.curID] = spr; this.lastBm = spr; this.fill = spr; this.fill.addEventListener("click",$bind(this,this.stopEventForOverlay)); this.fill.addEventListener("click",$bind(this,this.stopEventForOverlay)); return spr; } ,removeOverlay: function() { if(this.fill != null) { this.fill.removeEventListener("click",$bind(this,this.stopEventForOverlay)); this.fill.removeEventListener("click",$bind(this,this.stopEventForOverlay)); var bm = this.fill.getChildAt(0); if(bm != null) bm.bitmapData.dispose(); if(this.fill.parent != null) this.fill.parent.removeChild(this.fill); } } ,changeOverlayColor: function(color) { if(color == null) color = -2013265920; if(this.fill != null) { var bm = this.fill.getChildAt(0); bm.bitmapData.dispose(); bm.bitmapData = new openfl_display_BitmapData(50,50,true,color); } } ,stopEventForOverlay: function(e) { e.stopImmediatePropagation(); } ,getSprite: function() { var spr = new openfl_display_Sprite(); this.addChild(spr); this.curID--; this.btnsArr.h[this.curID] = spr; return spr; } ,getScrollContainer: function(scrollHeight,scrollWidth,doVerticalScroll,doHorScroll) { if(doHorScroll == null) doHorScroll = false; if(doVerticalScroll == null) doVerticalScroll = true; if(scrollWidth == null) scrollWidth = 0; if(scrollHeight == null) scrollHeight = 0; var scrCont = new ScrollContainer(scrollHeight,scrollWidth,doVerticalScroll,doHorScroll); this.addChild(scrCont); this.scrollContainers.push(scrCont); if(!this.hasUpdateFunction) this.addEventListener("enterFrame",$bind(this,this.updatePr)); return scrCont; } ,get_level: function() { return Config.currentLevel; } ,replaceTxtWith: function(source,search,replacement) { var ind = source.indexOf(search); if(ind == -1 || search == null || search == "null") return source; var resStr = source.substring(0,ind) + replacement + source.substring(ind + search.length,source.length); return resStr; } ,btnClick: function(e) { if(this.main.fullStop) return; if(this.allClickFunction != null) this.allClickFunction(); this.removeListeners(e); if(this.stopPropagation) e.stopImmediatePropagation(); if(!this.isSimpleHittest) { this.btnClickAlpha(e); return; } if(!this.get_visible() || this.hp == null) return; this.hp.x = e.stageX; this.hp.y = e.stageY; var dobjp; var cb; var $it0 = this.btnsFuntions.keys(); while( $it0.hasNext() ) { var i = $it0.next(); if(this.btnsArr.h.hasOwnProperty(i)) { var dObj = this.btnsArr.h[i]; if(dObj == null) continue; var glAlpha = dObj.get_alpha(); if(dObj.parent != null) glAlpha *= dObj.parent.get_alpha(); var vis = true; dobjp = dObj; while(dobjp.parent != null) { dobjp = dobjp.parent; if(!dobjp.get_visible()) { vis = false; break; } } if(vis && glAlpha > 0 && dObj.hitTestPoint(this.hp.x,this.hp.y)) { if(!js_Boot.__instanceof(dObj,ThreeStateBtn) || this.btnsArr.h[i].isActive) { cb = this.btnsFuntions.h[i]; if(!Reflect.isFunction(cb)) Reflect.callMethod(cb.callBack,cb.callBack,cb.params); else cb(); } return; } } } } ,btnClickAlpha: function(e) { if(!this.get_visible()) return; this.hp.x = e.stageX; this.hp.y = e.stageY; this.hp = this.globalToLocal(this.hp); var childX = 0; var childY = 0; var tbm; var cb; var $it0 = this.btnsFuntions.keys(); while( $it0.hasNext() ) { var i = $it0.next(); if(this.btnsArr.h.hasOwnProperty(i)) { if(Std["is"](this.btnsArr.h[i],openfl_display_Bitmap)) childX = 0; else childX = this.btnsArr.h[i].getChildAt(0).x; if(Std["is"](this.btnsArr.h[i],openfl_display_Bitmap)) childY = 0; else childY = this.btnsArr.h[i].getChildAt(0).y; if(Std["is"](this.btnsArr.h[i],openfl_display_Bitmap)) tbm = this.btnsArr.h[i]; else tbm = this.btnsArr.h[i].getChildAt(0); if(this.btnsArr.h[i].visible && this.btnsArr.h[i].alpha > 0 && (tbm.bitmapData.getPixel32(Std["int"](this.hp.x - this.btnsArr.h[i].x - childX),Std["int"](this.hp.y - this.btnsArr.h[i].y - childY)) >> 24 & 255) > this.hitAlphaThereshold) { if(!Std["is"](this.btnsArr.h[i],ThreeStateBtn) || this.btnsArr.h[i].isActive) { cb = this.btnsFuntions.h[i]; if(!Reflect.isFunction(cb)) Reflect.callMethod(cb.callBack,cb.callBack,cb.params); else cb(); } return; } } } } ,removeListeners: function(e) { if(!this.removedListeners) { if(e.type == "click" || e.type == "mouseDown" || e.type == "mouseMove" || e.type == "mouseUp") this.removeEventListener("touchEnd",$bind(this,this.btnClick)); else this.removeEventListener("click",$bind(this,this.btnClick)); this.removedListeners = true; } } ,getBitmapData: function(imgName,batch,dontCache) { if(dontCache == null) dontCache = false; if(this.isImagesFromAtlas || batch != null) { var batchImName = imgName; if(imgName.indexOf(".png") != -1 || imgName.indexOf(".jpg") != -1) batchImName = imgName.substring(0,imgName.length - 4); var drawBatch; if(batch != null) drawBatch = batch; else drawBatch = this.mainBatch; if(drawBatch.getImgId(batchImName) == -1) { var rArr = batchImName.split("/"); batchImName = rArr[rArr.length - 1]; } return drawBatch.getBitmapData(batchImName,dontCache); } else return openfl_Assets.getBitmapData(imgName); } ,getBimap: function(imgName,callBack,container,batch) { if(imgName.indexOf("/") == -1) imgName = this.imgesRoot + imgName; if(container == null) container = this; var bm; if(this.isImagesFromAtlas || batch != null) { if(batch == null) batch = this.mainBatch; var batchImName = imgName; if(imgName.indexOf(".png") != -1 || imgName.indexOf(".jpg") != -1) batchImName = imgName.substring(0,imgName.length - 4); if(batch.getImgId(batchImName) == -1) { var rArr = batchImName.split("/"); batchImName = rArr[rArr.length - 1]; } bm = new openfl_display_Bitmap(batch.getBitmapData(batchImName,true),1,true); } else bm = new openfl_display_Bitmap(openfl_Assets.getBitmapData(imgName),1,true); container.addChild(bm); this.curID--; this.btnsArr.h[this.curID] = bm; if(callBack != null) { var value = callBack; this.btnsFuntions.set(this.curID,value); } this.lastBm = bm; return bm; } ,addTwoStatesBtn: function(imgNameAct,imgNamePress,xPos,yPos,centerX,centerY,callBack,container,batch,inativeImg) { if(inativeImg == null) inativeImg = ""; if(centerY == null) centerY = false; if(centerX == null) centerX = false; if(yPos == null) yPos = 0; if(xPos == null) xPos = 0; if(this.isImagesFromAtlas || batch != null) { var imgNamePress1 = imgNamePress; if(imgNamePress1.indexOf(".png") != -1 || imgNamePress1.indexOf(".jpg") != -1) imgNamePress1 = imgNamePress1.substring(0,imgNamePress1.length - 4); var rArr = imgNamePress1.split("/"); imgNamePress1 = rArr[rArr.length - 1]; var drawBatch; if(batch != null) drawBatch = batch; else drawBatch = this.mainBatch; if(drawBatch.getImgId(imgNamePress1) == -1) imgNamePress = imgNameAct; } else if(!openfl_Assets.exists(imgNamePress)) imgNamePress = imgNameAct; var tsb = new ThreeStateBtn(new openfl_display_Bitmap(this.getBitmapData(imgNameAct,batch),1,true),new openfl_display_Bitmap(this.getBitmapData(imgNamePress,batch),1,true),new openfl_display_Bitmap(this.getBitmapData(inativeImg != ""?inativeImg:imgNameAct,batch),1,true)); tsb.set_x(xPos); tsb.set_y(yPos); if(container == null) container = this; if(container == null) { if(centerX) tsb.set_x(this.sWidth / 2 - tsb.get_width() / 2); if(centerY) tsb.set_y(this.sHeight / 2 - tsb.get_height() / 2); } else { if(centerX) tsb.set_x(container.get_width() / 2 - tsb.get_width() / 2); if(centerY) tsb.set_y(container.get_height() / 2 - tsb.get_height() / 2); } if(!this.hasUpdateFunction) this.addEventListener("enterFrame",$bind(this,this.updatePr)); container.addChild(tsb); this.curID--; this.btnsArr.h[this.curID] = tsb; if(callBack != null) { tsb.callBackId = this.curID; var value = callBack; this.btnsFuntions.set(this.curID,value); } this.threeStateBtns.push(tsb); return tsb; } ,addButton: function(imgName,xPos,yPos,centerX,centerY,callBack,container,batch) { if(centerY == null) centerY = false; if(centerX == null) centerX = false; if(yPos == null) yPos = 0; if(xPos == null) xPos = 0; var bm = this.getBimap(imgName,callBack,container,batch); bm.set_x(xPos); bm.set_y(yPos); if(container == null) { if(centerX) bm.set_x(this.sWidth / 2 - bm.get_width() / 2); if(centerY) bm.set_y(this.sHeight / 2 - bm.get_height() / 2); } else { if(centerX) bm.set_x(container.get_width() / 2 - bm.get_width() / 2); if(centerY) bm.set_y(container.get_height() / 2 - bm.get_height() / 2); } return bm; } ,addButtonAfter: function(imgName,afterDObj,callBack,xPosOrGap,yPosOrGap,keepAfterX,keepAfterY) { if(keepAfterY == null) keepAfterY = false; if(keepAfterX == null) keepAfterX = false; if(yPosOrGap == null) yPosOrGap = 0; if(xPosOrGap == null) xPosOrGap = 0; var bm = this.getBimap(imgName,callBack); if(keepAfterX) bm.set_x(afterDObj.get_x() + xPosOrGap); else bm.set_x(xPosOrGap); if(keepAfterY) bm.set_y(afterDObj.get_y() + afterDObj.get_height() + yPosOrGap); else bm.set_y(yPosOrGap); return bm; } ,addCenterdXButtonAfter: function(imgName,afterDObj,callBack,yGap) { if(yGap == null) yGap = 0; var bm = this.getBimap(imgName,callBack); bm.set_x(this.sWidth / 2 - bm.get_width() / 2); bm.set_y(afterDObj.get_y() + afterDObj.get_height() + yGap); return bm; } ,addAfterLastButton: function(imgName,callBack,centerX,yGap,xPos) { if(xPos == null) xPos = 0; if(yGap == null) yGap = 0; if(centerX == null) centerX = false; var lbm = this.lastBm; var bm = this.getBimap(imgName,callBack); if(centerX) bm.set_x(this.sWidth / 2 - bm.get_width() / 2); else bm.set_x(xPos); bm.set_y(lbm.get_y() + lbm.get_height() + yGap); return bm; } ,addBtnWithPivot: function(imgName,centerPivotX,centerPivotY,pivotX,pivotY,objX,objY,callBack,container,batch) { if(objY == null) objY = 0; if(objX == null) objX = 0; if(pivotY == null) pivotY = 0; if(pivotX == null) pivotX = 0; if(centerPivotY == null) centerPivotY = false; if(centerPivotX == null) centerPivotX = false; var spr = new openfl_display_Sprite(); if(imgName.indexOf("/") == -1) imgName = this.imgesRoot + imgName; if(container == null) container = this; var bm = new openfl_display_Bitmap(this.getBitmapData(imgName,batch != null?batch:this.mainBatch),1,true); container.addChild(spr); spr.addChild(bm); this.curID--; this.btnsArr.h[this.curID] = spr; if(callBack != null) { var value = callBack; this.btnsFuntions.set(this.curID,value); } this.lastBm = spr; if(centerPivotX) bm.set_x(-bm.get_width() / 2); if(centerPivotY) bm.set_y(-bm.get_height() / 2); if(pivotX != 0) bm.set_x(-pivotX); if(pivotY != 0) bm.set_y(-pivotY); spr.set_x(objX); spr.set_y(objY); return spr; } ,addTextField: function(fontName,fontSize,fontColor,bold,align,x,y,width,height,shaddow,shaddowDist,shadAlpha,container,centerParentX,multiline,leading,leftMargin,rightMargin,indent) { if(indent == null) indent = 0; if(rightMargin == null) rightMargin = 0; if(leftMargin == null) leftMargin = 0; if(leading == null) leading = 0; if(multiline == null) multiline = false; if(centerParentX == null) centerParentX = false; if(shadAlpha == null) shadAlpha = 0.5; if(shaddowDist == null) shaddowDist = 3; if(shaddow == null) shaddow = true; if(height == null) height = 0; if(width == null) width = 0; if(y == null) y = 0; if(x == null) x = 0; if(align == null) align = "LEFT"; if(bold == null) bold = false; if(fontColor == null) fontColor = 0; if(fontSize == null) fontSize = 20; if(fontName == null) fontName = "Arial"; var mTF = new openfl_text_TextField(); mTF.set_gridFitType(1); mTF.set_embedFonts(true); mTF.mouseEnabled = mTF.set_selectable(false); var mAlign = null; switch(align) { case "CENTER": mAlign = 0; break; case "LEFT": mAlign = 3; break; case "RIGHT": mAlign = 4; break; } var mTFormat = new openfl_text_TextFormat(openfl_Assets.getFont(Reflect.field(Config.fontsShorts,fontName)).get_fontName(),fontSize | 0,fontColor,bold,false,false,null,null,mAlign,leftMargin,rightMargin,0,leading); mTF.set_defaultTextFormat(mTFormat); if(multiline) { mTF.set_multiline(true); mTF.set_wordWrap(true); } else mTF.set_multiline(false); if(width != 0) mTF.set_width(width); if(height != 0) mTF.set_height(height); mTF.set_x(x); mTF.set_y(y); mTF.set_text(""); var prt; if(container != null) prt = container; else prt = this; if(centerParentX) mTF.set_width(prt.get_width()); if(container != null) container.addChild(mTF); else this.addChild(mTF); this.textFields.push(mTF); return mTF; } ,alignTextFields: function(textFields) { if(textFields == null) textFields = this.textFields; var tf; var abName = openfl_Assets.getFont(Reflect.field(Config.fontsShorts,"Aalgrs")).get_fontName(); var cName = openfl_Assets.getFont(Reflect.field(Config.fontsShorts,"AgfRoman")).get_fontName(); var lpbName = openfl_Assets.getFont(Reflect.field(Config.fontsShorts,"FrizQuBd")).get_fontName(); var _g1 = 0; var _g = textFields.length; while(_g1 < _g) { var i = _g1++; tf = textFields[i]; if(tf.get_defaultTextFormat().font == abName) { var _g2 = tf; _g2.set_y(_g2.get_y() + tf.get_defaultTextFormat().size * 0.2); } else if(tf.get_defaultTextFormat().font == cName) { var _g21 = tf; _g21.set_y(_g21.get_y() - tf.get_defaultTextFormat().size * 0.15); } else if(tf.get_defaultTextFormat().font == lpbName) { var _g22 = tf; _g22.set_y(_g22.get_y() - tf.get_defaultTextFormat().size * 0.16); } } } ,addMovieClip: function(prefix,frameRateCoef,x,y,loop,startDelay,loopDelay,container,batch,prefix3Signs) { if(prefix3Signs == null) prefix3Signs = false; if(loopDelay == null) loopDelay = 0; if(startDelay == null) startDelay = 0; if(loop == null) loop = true; if(y == null) y = 0; if(x == null) x = 0; if(frameRateCoef == null) frameRateCoef = 1; if(container == null) container = this; var mc = new MenuMC(prefix,frameRateCoef,loop,startDelay,loopDelay,this.isImagesFromAtlas?batch == null?this.mainBatch:batch:null,prefix3Signs); mc.set_x(x); mc.set_y(y); container.addChild(mc); this.mcsArr.push(mc); if(!this.hasUpdateFunction) this.addEventListener("enterFrame",$bind(this,this.updatePr)); return mc; } ,addThreeStateBtn: function(normal,pressed,inactive,x,y,offsets,callBack,container) { if(y == null) y = 0; if(x == null) x = 0; if(container == null) container = this; var btn = new ThreeStateBtn(normal,pressed,inactive,offsets); if(!this.hasUpdateFunction) this.addEventListener("enterFrame",$bind(this,this.updatePr)); container.addChild(btn); this.curID--; this.btnsArr.h[this.curID] = btn; if(callBack != null) { btn.callBackId = this.curID; var value = callBack; this.btnsFuntions.set(this.curID,value); } this.threeStateBtns.push(btn); btn.set_x(x); btn.set_y(y); return btn; } ,addButtonsInLine: function(btnsArr,initY,xGap,centerThemX) { if(centerThemX == null) centerThemX = false; if(xGap == null) xGap = 0; if(initY == null) initY = 0; var resArr = []; var obj; var bm; var lastX = 0; var lastWidth = 0; var _g1 = 0; var _g = btnsArr.length; while(_g1 < _g) { var i = _g1++; obj = btnsArr[i]; bm = this.getBimap(obj.id,obj.cb); bm.set_x(lastX + lastWidth + xGap); bm.set_y(initY); lastWidth = bm.get_width(); lastX = bm.get_x(); resArr.push(bm); } if(centerThemX) { var offset = this.sWidth / 2 - (resArr[resArr.length - 1].get_x() + resArr[resArr.length - 1].get_width()) / 2; var _g11 = 0; var _g2 = resArr.length; while(_g11 < _g2) { var i1 = _g11++; var _g21 = resArr[i1]; _g21.set_x(_g21.get_x() + offset); } } return resArr; } ,centerThis: function(centerX,centerY) { if(centerY == null) centerY = false; if(centerX == null) centerX = false; if(centerX) this.set_x(this.sWidth / 2 - this.get_width() / 2); if(centerY) this.set_y(this.sHeight / 2 - this.get_height() / 2); } ,setUpdateFuntion: function(callBack) { if(this.updateFunction == null && !this.hasUpdateFunction) { this.minUpdateTime = this.main.minUpdateTime; this.addEventListener("enterFrame",$bind(this,this.updatePr)); } this.updateFunction = callBack; } ,updatePr: function(e) { if(this.main == null) return; if(this.lastTime == -1) { this.lastTime = openfl_Lib.getTimer(); return; } var t = openfl_Lib.getTimer(); var frameTime = t - this.lastTime; if(frameTime >= this.minUpdateTime) this.lastTime = t; else return; var _g1 = 0; var _g = this.mcsArr.length; while(_g1 < _g) { var i = _g1++; this.mcsArr[i].update(frameTime); } var _g11 = 0; var _g2 = this.scrollContainers.length; while(_g11 < _g2) { var i1 = _g11++; this.scrollContainers[i1].update(frameTime); } this.updateThreeStateBtns(); if(this.updateFunction != null) this.updateFunction(frameTime); } ,updateThreeStateBtns: function() { if(this.threeStateBtns == null || this.threeStateBtns.length == 0) return; if(this.main.isMouseDown) { this.hp.x = openfl_Lib.current.stage.get_mouseX(); this.hp.y = openfl_Lib.current.stage.get_mouseY(); var tbm; var _g1 = 0; var _g = this.threeStateBtns.length; while(_g1 < _g) { var i = _g1++; if(this.threeStateBtns == null || this.threeStateBtns[i] == null) break; var rect = this.threeStateBtns[i].getBounds(this.stage); if(!this.isSimpleHittest || true) { if(this.threeStateBtns[i].get_visible() && this.threeStateBtns[i].get_alpha() > 0 && rect.contains(this.hp.x,this.hp.y)) this.threeStateBtns[i].press(); else this.threeStateBtns[i].unPress(); } else { this.hp = this.globalToLocal(this.hp); tbm = this.threeStateBtns[i].getChildAt(0); if(tbm.get_visible() && tbm.get_alpha() > 0 && (tbm.bitmapData.getPixel32(Std["int"](this.hp.x - this.threeStateBtns[i].get_x() - tbm.get_x()),Std["int"](this.hp.y - this.threeStateBtns[i].get_y() - tbm.get_y())) >> 24 & 255) > this.hitAlphaThereshold) this.threeStateBtns[i].press(); else this.threeStateBtns[i].unPress(); } } } else { var _g11 = 0; var _g2 = this.threeStateBtns.length; while(_g11 < _g2) { var i1 = _g11++; this.threeStateBtns[i1].unPress(); } } } ,close: function() { if(this.main.overlayMaker == this) this.main.overlayMaker = null; this.destroy(); } ,destroy: function() { this.removeEventListener("click",$bind(this,this.btnClick)); this.removeEventListener("touchEnd",$bind(this,this.btnClick)); this.removeEventListener("enterFrame",$bind(this,this.updatePr)); this.removeEventListener("enterFrame",$bind(this,this.resizeCheck)); this.moveByResizeCallBack = null; if(this.snapShot != null && this.snapShot.parent != null) this.snapShot.parent.removeChild(this.snapShot); this.snapShot = null; this.mainBatch = null; var dObj; if(this.btnsFuntions != null) { var $it0 = this.btnsFuntions.keys(); while( $it0.hasNext() ) { var i = $it0.next(); if(this.btnsArr.h.hasOwnProperty(i)) { if(Std["is"](this.btnsArr.h[i],openfl_display_DisplayObject)) { dObj = this.btnsArr.h[i]; if(dObj.parent != null) dObj.parent.removeChild(dObj); } } } } this.updateFunction = null; this.removeOverlay(); this.fill = null; this.btnsArr = null; this.btnsFuntions = null; this.textFields = null; while(this.get_numChildren() > 0) this.removeChildAt(0); this.hp = null; this.mHm = null; this.lastBm = null; this.main = null; if(this.mcsArr != null) { while(this.mcsArr.length > 0) this.mcsArr.pop().destroy(); this.mcsArr = null; } if(this.threeStateBtns != null) while(this.threeStateBtns.length > 0) this.threeStateBtns.pop().destroy(); this.threeStateBtns = null; if(this.scrollContainers != null) while(this.scrollContainers.length > 0) this.scrollContainers.pop().destroy(); this.scrollContainers = null; if(this.parent != null) this.parent.removeChild(this); } ,__class__: Menu ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{get_level:"get_level"}) }); var FinishScreen = function(isWhiteWinner,isDraw) { window.famobi_analytics.trackScreen("SCREEN_LEVELRESULT"); if(isDraw == null) isDraw = false; this.bgsArr = []; Menu.call(this); this.mainBatch = this.main.batch; this.main.paused = true; this.bgsSpr = this.getSprite(); this.createBgs(); var timeIcon = this.getBimap("fs_clock"); timeIcon.set_x(this.sWidth / 2 - timeIcon.get_width() / 2); timeIcon.set_y(this.sHeight / 1.9); var tfTime = this.addTextField("Aalgrs",50,14007173,false,"CENTER",0,this.sHeight / 1.9 + 65,this.sWidth); var totalTimeSecs = Math.floor(new Date().getTime() / 1000) - Desk.current.startTime; var hours = Math.floor(totalTimeSecs / 60 / 60); totalTimeSecs -= hours * 60 * 60; var mins = Math.floor(totalTimeSecs / 60); totalTimeSecs -= mins * 60; var _g = tfTime; _g.set_text(_g.get_text() + ((hours < 10?"0" + hours:hours + "") + ":")); var _g1 = tfTime; _g1.set_text(_g1.get_text() + ((mins < 10?"0" + mins:mins + "") + ":")); var _g2 = tfTime; _g2.set_text(_g2.get_text() + (totalTimeSecs < 10?"0" + totalTimeSecs:totalTimeSecs + "")); var pedestal = this.getSprite(); var pedestalBm = this.getBimap("win1",null,pedestal); var whiteChess = this.getBimap("set" + Desk.current.curThemeChess + "_9",null,pedestal); var blackChess = this.getBimap("set" + Desk.current.curThemeChess + "_10",null,pedestal); pedestalBm.set_y(whiteChess.get_height() - 4); if(isDraw) { whiteChess.set_x(149 - whiteChess.get_width()); blackChess.set_x(149); } else if(isWhiteWinner) { blackChess.set_y(37); blackChess.set_x(51 - blackChess.get_width() / 2); whiteChess.set_x(149 - whiteChess.get_width() / 2); } else { whiteChess.set_y(37); whiteChess.set_x(51 - whiteChess.get_width() / 2); blackChess.set_x(149 - blackChess.get_width() / 2); } pedestal.set_x(this.sWidth / 2 - pedestal.get_width() / 2); pedestal.set_y(timeIcon.get_y() - pedestal.get_height() - 30); this.mainMenuBtn = this.getBimap("home_copy",$bind(this,this.mainMenuClick)); this.mainMenuBtn.set_x(this.sWidth / 2 - this.mainMenuBtn.get_width() / 2); this.mainMenuBtn.set_y(this.sHeight - this.mainMenuBtn.get_height() - 30); this.mainMenuBtn.set_visible(false); this.onResize(); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); var showButton = function() { this.mainMenuBtn.set_visible(true); }.bind(this); setTimeout(function() { if(isDraw) { window.famobi_analytics.trackEvent("EVENT_LEVELFAIL", {levelName: Desk.current.levelName, reason: "draw"}).then(showButton, showButton); } else { if(isWhiteWinner && !Desk.current.inversedColors) { window.famobi_analytics.trackEvent("EVENT_LEVELSUCCESS", {levelName: Desk.current.levelName}).then(showButton, showButton); } else { window.famobi_analytics.trackEvent("EVENT_LEVELFAIL", {levelName: Desk.current.levelName, reason: "dead"}).then(showButton, showButton); } } }, 2000); }; $hxClasses["FinishScreen"] = FinishScreen; FinishScreen.__name__ = ["FinishScreen"]; FinishScreen.__super__ = Menu; FinishScreen.prototype = $extend(Menu.prototype,{ __fill: null ,mainMenuBtn: null ,bgsArr: null ,bgsSpr: null ,mainMenuClick: function() { this.main.addChild(new MainMenu()); this.close(); } ,onCl: function() { Main.current.newGame(); this.close(); } ,onResize: function() { this.createBgs(); this.bgsSpr.set_x(-this.get_x()); this.bgsSpr.set_y(-this.get_y()); this.mainMenuBtn.set_y(-this.get_y() + this.sHeight - this.mainMenuBtn.get_height() - 30); } ,createBgs: function() { var lastIndex = 0; var sizeX = 0; var bg; this.isImagesFromAtlas = false; while(sizeX < Main.current.sWidth) { if(this.bgsArr[lastIndex] != null) { bg = this.bgsArr[lastIndex]; bg.set_visible(true); } else { bg = this.getBimap("img/bg.jpg",null,this.bgsSpr); this.bgsArr.push(bg); } bg.set_x(sizeX); bg.set_y(0); bg.set_scaleX(bg.set_scaleY(Main.current.sHeight / bg.bitmapData.height)); sizeX += bg.get_width() - 2; lastIndex++; } this.isImagesFromAtlas = true; var _g1 = lastIndex; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].set_visible(false); } } ,getBtnWithText: function(text,callBack) { var spr = this.getSprite(); var bm = this.getBimap("TEXT_bg",callBack,spr); var tf = this.addTextField("Aalgrs",60,0,false,"CENTER",0,8,bm.get_width(),bm.get_height(),false,0,0,spr); tf.set_text(text); return spr; } ,__class__: FinishScreen }); var HxOverrides = function() { }; $hxClasses["HxOverrides"] = HxOverrides; HxOverrides.__name__ = ["HxOverrides"]; HxOverrides.strDate = function(s) { var _g = s.length; switch(_g) { case 8: var k = s.split(":"); var d = new Date(); d.setTime(0); d.setUTCHours(k[0]); d.setUTCMinutes(k[1]); d.setUTCSeconds(k[2]); return d; case 10: var k1 = s.split("-"); return new Date(k1[0],k1[1] - 1,k1[2],0,0,0); case 19: var k2 = s.split(" "); var y = k2[0].split("-"); var t = k2[1].split(":"); return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]); default: throw new js__$Boot_HaxeError("Invalid date format : " + s); } }; HxOverrides.cca = function(s,index) { var x = s.charCodeAt(index); if(x != x) return undefined; return x; }; HxOverrides.substr = function(s,pos,len) { if(pos != null && pos != 0 && len != null && len < 0) return ""; if(len == null) len = s.length; if(pos < 0) { pos = s.length + pos; if(pos < 0) pos = 0; } else if(len < 0) len = s.length + len - pos; return s.substr(pos,len); }; HxOverrides.indexOf = function(a,obj,i) { var len = a.length; if(i < 0) { i += len; if(i < 0) i = 0; } while(i < len) { if(a[i] === obj) return i; i++; } return -1; }; HxOverrides.remove = function(a,obj) { var i = HxOverrides.indexOf(a,obj,0); if(i == -1) return false; a.splice(i,1); return true; }; HxOverrides.iter = function(a) { return { cur : 0, arr : a, hasNext : function() { return this.cur < this.arr.length; }, next : function() { return this.arr[this.cur++]; }}; }; var InformWindow = function(text,isAskWindow,askCallBack,icons) { if(isAskWindow == null) isAskWindow = false; this.wasMainPaused = false; Menu.call(this); this.isAskWindow = isAskWindow; this.askCallBack = askCallBack; this.wasMainPaused = this.main.paused; this.main.paused = true; this.mainBatch = this.main.batch; this.__fill = this.getFillOverlay(); this.mainCont = this.getSprite(); var underlay = this.getBimap("plashka_A",null,this.mainCont); var btnsCont = this.getSprite(); this.mainCont.addChild(btnsCont); if(isAskWindow) { var yesBtn = this.getBimap("yes",$bind(this,this.yesClick),btnsCont); var noBtn = this.getBimap("no",$bind(this,this.noClick),btnsCont); yesBtn.set_x(underlay.get_width() / 2 - yesBtn.get_width() - 20); noBtn.set_x(underlay.get_width() / 2 + 20); } else { var yesBtn1 = this.getBimap("yes",$bind(this,this.yesClick),btnsCont); yesBtn1.set_x(underlay.get_width() / 2 - yesBtn1.get_width() / 2); } btnsCont.set_y(underlay.get_height() - btnsCont.get_height() - 20); if(text != "") { var tfWidth = underlay.get_width() - 50; var mainTF = this.addTextField("Aalgrs",40,0,false,"CENTER",(underlay.get_width() - tfWidth) / 2,25,tfWidth,underlay.get_height() - 100,false,0,0,this.mainCont,false,true); mainTF.set_text(text); } if(icons != null && icons.length > 0) { var iconsCont = this.getSprite(); this.mainCont.addChild(iconsCont); var bm; var curX = 0; var maxHeight = 0; var gapX = 1; var _g1 = 0; var _g = icons.length; while(_g1 < _g) { var i = _g1++; bm = this.getBimap(icons[i],null,iconsCont); bm.set_x(curX); curX += bm.get_width() + gapX; if(maxHeight < bm.get_height()) maxHeight = bm.get_height(); } var _g11 = 0; var _g2 = iconsCont.get_numChildren(); while(_g11 < _g2) { var i1 = _g11++; iconsCont.getChildAt(i1).set_y(maxHeight - iconsCont.getChildAt(i1).get_height() / 2); } iconsCont.set_x(underlay.get_width() / 2 - iconsCont.get_width() / 2); iconsCont.set_y(btnsCont.get_y() / 2 - iconsCont.get_height() / 2 - 10); } this.mainCont.set_x(this.sWidth / 2 - underlay.get_width() / 2); this.mainCont.set_y(this.sHeight / 2 - underlay.get_height() / 2); this.__fill.set_alpha(0); motion_Actuate.tween(this.__fill,0.3,{ alpha : 1}).ease(motion_easing_Linear.get_easeNone()); var wasY = this.mainCont.get_y(); this.mainCont.set_y(-this.get_y() - this.sHeight); motion_Actuate.tween(this.mainCont,0.3,{ y : wasY}).ease(motion_easing_Quad.get_easeOut()); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); }; $hxClasses["InformWindow"] = InformWindow; InformWindow.__name__ = ["InformWindow"]; InformWindow.__super__ = Menu; InformWindow.prototype = $extend(Menu.prototype,{ isAskWindow: null ,askCallBack: null ,mainCont: null ,__fill: null ,wasMainPaused: null ,onResize: function() { this.__fill.set_x(-this.get_x()); this.__fill.set_y(-this.get_y()); this.__fill.set_width(Main.current.sWidth); this.__fill.set_height(Main.current.sHeight); } ,yesClick: function() { this.main.paused = this.wasMainPaused; this.animateClose(); if(this.main.overlayMaker == this) this.main.overlayMaker = null; if(this.askCallBack != null) this.askCallBack(true); } ,noClick: function() { this.main.paused = this.wasMainPaused; this.animateClose(); if(this.main.overlayMaker == this) this.main.overlayMaker = null; if(this.askCallBack != null) this.askCallBack(false); } ,animateClose: function() { motion_Actuate.tween(this.__fill,0.25,{ alpha : 0.01}).ease(motion_easing_Linear.get_easeNone()); motion_Actuate.tween(this.mainCont,0.3,{ y : this.sHeight + this.mainCont.get_y()}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } ,__class__: InformWindow }); var IngameMenu = function() { this.lastTakens2Arr = []; this.lastTakens1Arr = []; this.takensNames = new haxe_ds_ObjectMap(); this.takensPool = new haxe_ds_StringMap(); this.portraitInitX = 0; this.landscapeInitY = 0; Menu.call(this); this.mainBatch = this.main.batch; this.higlitedBmd = this.getBitmapData("plashka1"); this.noHiglitBmd = this.getBitmapData("plashka2"); this.player1PanelCont = this.getSprite(); this.player2PanelCont = this.getSprite(); this.player1Panel = new openfl_display_Bitmap(this.noHiglitBmd,1,true); this.player2Panel = new openfl_display_Bitmap(this.noHiglitBmd,1,true); this.player1PanelCont.addChild(this.player1Panel); this.player2PanelCont.addChild(this.player2Panel); this.player1PanelCont.set_x(this.sWidth / 2); this.player2PanelCont.set_x(this.sWidth / 2); this.player1PanelCont.set_y(this.sHeight / 2 - 320. - 50); this.player2PanelCont.set_y(this.sHeight / 2 + 320. + 50); this.pcBmd = this.getBitmapData("comp"); this.playerBmd = this.getBitmapData("onePlaier1"); this.player1TypeIcon = this.getSprite(); this.player2TypeIcon = this.getSprite(); this.player1PanelCont.addChild(this.player1TypeIcon); this.player2PanelCont.addChild(this.player2TypeIcon); this.player1TypeIcon.set_x(50); this.player2TypeIcon.set_x(50); this.player1TypeIcon.set_y(this.player1Panel.get_height() / 2); this.player2TypeIcon.set_y(this.player1Panel.get_height() / 2); this.player1Icon = this.getBimap("onePlaier1",null,this.player1TypeIcon); this.player1Icon.set_x(-this.player1Icon.get_width() / 2); this.player1Icon.set_y(-this.player1Icon.get_height() / 2); this.player2Icon = this.getBimap("onePlaier1",null,this.player2TypeIcon); this.player2Icon.set_x(-this.player2Icon.get_width() / 2); this.player2Icon.set_y(-this.player2Icon.get_height() / 2); this.player1NumTxt = new NumFontFromBatch(this.mainBatch,"dig_"); this.player1NumTxt.set_text("0"); this.player1NumTxt.set_x(this.player1Icon.get_x() + this.player1Icon.get_width() - 8); this.player1NumTxt.set_y(this.player1Icon.get_y() + this.player1Icon.get_height() / 2 - this.player1NumTxt.get_height() / 2); this.player1TypeIcon.addChild(this.player1NumTxt); this.player2NumTxt = new NumFontFromBatch(this.mainBatch,"dig_"); this.player2NumTxt.set_text("0"); this.player2NumTxt.set_x(this.player2Icon.get_x() + this.player2Icon.get_width() - 8); this.player2NumTxt.set_y(this.player2Icon.get_y() + this.player2Icon.get_height() / 2 - this.player2NumTxt.get_height() / 2); this.player2TypeIcon.addChild(this.player2NumTxt); this.player1Takens = this.getSprite(); this.player2Takens = this.getSprite(); this.undoBtnCont = new openfl_display_Sprite(); this.menuBtnCont = new openfl_display_Sprite(); this.player1PanelCont.addChild(this.menuBtnCont); this.player2PanelCont.addChild(this.undoBtnCont); var undoBtn = this.getBimap("undo_1",$bind(this,this.undo),this.undoBtnCont); undoBtn.set_x(-undoBtn.get_width() / 2); undoBtn.set_y(-undoBtn.get_height() / 2); this.undoBtnCont.set_x(this.player2Panel.get_width() - undoBtn.get_width() / 2 - 15); this.undoBtnCont.set_y(this.player2Panel.get_height() / 2 - 2); var menuBtn = this.getBimap("menu_1",$bind(this,this.menuClick),this.menuBtnCont); menuBtn.set_x(-menuBtn.get_width() / 2); menuBtn.set_y(-menuBtn.get_height() / 2); this.menuBtnCont.set_x(this.player1Panel.get_width() - menuBtn.get_width() / 2 - 15); this.menuBtnCont.set_y(this.player1Panel.get_height() / 2 - 2); this.initSWidth = this.sWidth; this.initSHeight = this.sHeight; var _g1 = 0; var _g = this.player1PanelCont.get_numChildren(); while(_g1 < _g) { var i = _g1++; var _g2 = this.player1PanelCont.getChildAt(i); _g2.set_x(_g2.get_x() - this.player1Panel.get_width() / 2); var _g21 = this.player1PanelCont.getChildAt(i); _g21.set_y(_g21.get_y() - this.player1Panel.get_height() / 2); } var _g11 = 0; var _g3 = this.player2PanelCont.get_numChildren(); while(_g11 < _g3) { var i1 = _g11++; var _g22 = this.player2PanelCont.getChildAt(i1); _g22.set_x(_g22.get_x() - this.player1Panel.get_width() / 2); var _g23 = this.player2PanelCont.getChildAt(i1); _g23.set_y(_g23.get_y() - this.player1Panel.get_height() / 2); } this.portraitInitX = this.player1PanelCont.get_x(); this.landscapeInitY = this.sHeight / 2; this.onResize(); this.reset(); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); }; $hxClasses["IngameMenu"] = IngameMenu; IngameMenu.__name__ = ["IngameMenu"]; IngameMenu.__super__ = Menu; IngameMenu.prototype = $extend(Menu.prototype,{ player1PanelCont: null ,player2PanelCont: null ,player1Panel: null ,player2Panel: null ,player1TypeIcon: null ,player2TypeIcon: null ,player1Icon: null ,player2Icon: null ,player1NumTxt: null ,player2NumTxt: null ,pcBmd: null ,playerBmd: null ,higlitedBmd: null ,noHiglitBmd: null ,initSWidth: null ,initSHeight: null ,undoBtnCont: null ,menuBtnCont: null ,player1CastleChesses: null ,player2CastleChesses: null ,landscapeInitY: null ,portraitInitX: null ,takensPool: null ,takensNames: null ,player1Takens: null ,player2Takens: null ,lastTakens1Arr: null ,lastTakens2Arr: null ,getTakensGraphic: function(type) { var imName; imName = "set" + Desk.current.curThemeChess + "_" + (Desk.current.inversedColors?Desk.chessNamesMapInversed[type]:Desk.chessNamesMap[type]); if(this.takensPool.exists(imName) && this.takensPool.get(imName).length > 0) return this.takensPool.get(imName).pop(); else { var bm = this.getBimap(imName); this.takensNames.set(bm,imName); if(bm.parent != null) bm.parent.removeChild(bm); bm.set_scaleX(bm.set_scaleY(0.5)); return bm; } } ,sendToPoolTakensGraphic: function(bm) { if(bm.parent != null) bm.parent.removeChild(bm); if(!(this.takensNames.h.__keys__[bm.__id__] != null)) return; if(!(function($this) { var $r; var key = $this.takensNames.h[bm.__id__]; $r = $this.takensPool.exists(key); return $r; }(this))) { var key1 = this.takensNames.h[bm.__id__]; this.takensPool.set(key1,[]); } ((function($this) { var $r; var key2 = $this.takensNames.h[bm.__id__]; $r = $this.takensPool.get(key2); return $r; }(this))).push(bm); } ,updateTakensGraphic: function() { if(Desk.current.state == null) return; while(this.player1Takens.get_numChildren() > 0) this.sendToPoolTakensGraphic(this.player1Takens.removeChildAt(0)); while(this.player2Takens.get_numChildren() > 0) this.sendToPoolTakensGraphic(this.player2Takens.removeChildAt(0)); var initX; if(this.isLandscape) initX = 25; else initX = 170; var initY; if(this.isLandscape) initY = 85; else initY = 25; var curX = initX; var curY = initY; var stepX = 37; var stepY; stepY = 37 + (this.isLandscape?8:0); var numX; if(this.isLandscape) numX = 2; else numX = 8; var takens = Desk.current.state.taken[0]; var bm; var _g1 = 0; var _g = takens.length; while(_g1 < _g) { var i = _g1++; bm = this.getTakensGraphic(takens[i]); bm.set_x(curX); bm.set_y(curY); this.player2Takens.addChild(bm); if((i + 1) % numX == 0) { curY += stepY; curX = initX; } else curX += stepX; } curX = initX; curY = initY; takens = Desk.current.state.taken[1]; var _g11 = 0; var _g2 = takens.length; while(_g11 < _g2) { var i1 = _g11++; bm = this.getTakensGraphic(takens[i1]); bm.set_x(curX); bm.set_y(curY); this.player1Takens.addChild(bm); if((i1 + 1) % numX == 0) { curY += stepY; curX = initX; } else curX += stepX; } } ,reset: function() { this.undoBtnCont.set_visible(false); this.player1Panel.bitmapData = this.noHiglitBmd; this.player2Panel.bitmapData = this.noHiglitBmd; this.player1Panel.smoothing = this.player2Panel.smoothing = true; this.player1PanelCont.set_scaleY(1); this.player1PanelCont.set_scaleX(1); this.player1NumTxt.set_visible(true); this.player2NumTxt.set_visible(true); if((Desk.current.playersType[0] == "computer" || Desk.current.playersType[1] == "computer") && (Desk.current.playersType[0] == "human" || Desk.current.playersType[1] == "human")) { if(Desk.current.playersType[0] != "computer") this.player2Icon.bitmapData = this.playerBmd; else this.player2Icon.bitmapData = this.pcBmd; if(Desk.current.playersType[1] != "computer") this.player1Icon.bitmapData = this.playerBmd; else this.player1Icon.bitmapData = this.pcBmd; this.player1NumTxt.set_visible(false); this.player2NumTxt.set_visible(false); } else if(Desk.current.playersType[0] == "computer" && Desk.current.playersType[1] == "computer") { this.player2Icon.bitmapData = this.pcBmd; this.player1Icon.bitmapData = this.pcBmd; this.player1NumTxt.set_visible(false); this.player2NumTxt.set_visible(false); } else if(Desk.current.playersType[0] == "human" && Desk.current.playersType[1] == "human") { this.player1Icon.bitmapData = this.playerBmd; this.player2Icon.bitmapData = this.playerBmd; this.player1NumTxt.set_text("2"); this.player2NumTxt.set_text("1"); } this.updateTakensGraphic(); this.onResize(); } ,undo: function() { if(Desk.current.state.history.length > 0) { window.famobi_analytics.trackEvent("EVENT_CUSTOM", {event: "EVENT_UNDO"}); if(Desk.current.playersType[0] == "computer" || Desk.current.playersType[1] == "computer") { Desk.current.undoMoves(2); } else { Desk.current.undoMoves(1); } } } ,menuClick: function() { this.main.addChild(new PauseMenu()); } ,onMoveEnd: function() { if(Desk.current.state.to_play == 1) { this.player1Panel.bitmapData = this.higlitedBmd; this.player2Panel.bitmapData = this.noHiglitBmd; } else { this.player2Panel.bitmapData = this.higlitedBmd; this.player1Panel.bitmapData = this.noHiglitBmd; } this.undoBtnCont.set_visible(Desk.current.state.history.length > 0 && !Desk.current.hideHints); this.player1Panel.smoothing = this.player2Panel.smoothing = true; this.updateTakensGraphic(); } ,isLandscape: null ,onResize: function() { this.isLandscape = Main.current.sWidth > Main.current.sHeight; this.player1PanelCont.set_rotation(0); this.player1Takens.set_rotation(0); if(this.isLandscape) { this.menuBtnCont.set_rotation(-90); this.undoBtnCont.set_rotation(-90); this.player1PanelCont.set_rotation(90); this.player2PanelCont.set_rotation(90); this.player1PanelCont.set_y(this.landscapeInitY); this.player2PanelCont.set_y(this.landscapeInitY); var maxOffseX = 90; var resWidth = this.sWidth / 2 + 320. + this.player1Panel.get_height(); var offsetX; if(resWidth < this.sWidth) offsetX = Math.min(this.sWidth - resWidth,maxOffseX); else offsetX = 0; this.player2PanelCont.set_x(-this.get_x() + this.sWidth / 2 - 320. - this.player1Panel.get_height() / 2 - offsetX); this.player1PanelCont.set_x(-this.get_x() + this.sWidth / 2 + 320. + this.player1Panel.get_height() / 2 + offsetX); if(Desk.current.twoPlayersViewOption == 1 && Main.current.isMobileBrowser && Desk.current.playersType[0] == "human" && Desk.current.playersType[1] == "human") this.player1PanelCont.set_rotation(-90); if(this.player1PanelCont.get_rotation() != 90) { this.player1Takens.set_rotation(180); this.player1Takens.set_x(this.player1PanelCont.get_x() + this.player1Panel.get_height() / 2); this.player1Takens.set_y(this.player1PanelCont.get_y() + this.player1Panel.get_width() / 2); } else { this.player1Takens.set_x(this.player1PanelCont.get_x() - this.player1Panel.get_height() / 2); this.player1Takens.set_y(this.player1PanelCont.get_y() - this.player1Panel.get_width() / 2); } this.player2Takens.set_x(this.player2PanelCont.get_x() - this.player1Panel.get_height() / 2); this.player2Takens.set_y(this.player2PanelCont.get_y() - this.player1Panel.get_width() / 2); } else { if(Desk.current.twoPlayersViewOption == 1 && Main.current.isMobileBrowser && Desk.current.playersType[0] == "human" && Desk.current.playersType[1] == "human") this.player1PanelCont.set_rotation(180); this.menuBtnCont.set_rotation(0); this.undoBtnCont.set_rotation(0); this.player2PanelCont.set_rotation(0); this.player1PanelCont.set_x(this.portraitInitX); this.player2PanelCont.set_x(this.portraitInitX); if(640 + this.player1PanelCont.get_height() + 200 > Main.current.sHeight) { this.player1PanelCont.set_y(-this.get_y() + this.player1PanelCont.get_height() / 2); this.player2PanelCont.set_y(-this.get_y() + this.sHeight - this.player2PanelCont.get_height() / 2 + 4); } else { this.player1PanelCont.set_y(this.initSHeight / 2 - 320. - 100); this.player2PanelCont.set_y(this.initSHeight / 2 + 320. + 100); } this.player2Takens.set_x(this.player2PanelCont.get_x() - this.player1Panel.get_width() / 2); this.player2Takens.set_y(this.player2PanelCont.get_y() - this.player1Panel.get_height() / 2); if(this.player1PanelCont.get_rotation() != 0) { this.player1Takens.set_x(this.player1PanelCont.get_x() + this.player1Panel.get_width() / 2); this.player1Takens.set_y(this.player1PanelCont.get_y() + this.player1Panel.get_height() / 2); this.player1Takens.set_rotation(180); } else { this.player1Takens.set_x(this.player1PanelCont.get_x() - this.player1Panel.get_width() / 2); this.player1Takens.set_y(this.player1PanelCont.get_y() - this.player1Panel.get_height() / 2); } } this.player1TypeIcon.set_rotation(this.undoBtnCont.get_rotation()); this.player2TypeIcon.set_rotation(this.menuBtnCont.get_rotation()); this.updateTakensGraphic(); } ,__class__: IngameMenu }); var List = function() { this.length = 0; }; $hxClasses["List"] = List; List.__name__ = ["List"]; List.prototype = { h: null ,q: null ,length: null ,add: function(item) { var x = [item]; if(this.h == null) this.h = x; else this.q[1] = x; this.q = x; this.length++; } ,pop: function() { if(this.h == null) return null; var x = this.h[0]; this.h = this.h[1]; if(this.h == null) this.q = null; this.length--; return x; } ,iterator: function() { return new _$List_ListIterator(this.h); } ,__class__: List }; var _$List_ListIterator = function(head) { this.head = head; this.val = null; }; $hxClasses["_List.ListIterator"] = _$List_ListIterator; _$List_ListIterator.__name__ = ["_List","ListIterator"]; _$List_ListIterator.prototype = { head: null ,val: null ,hasNext: function() { return this.head != null; } ,next: function() { this.val = this.head[0]; this.head = this.head[1]; return this.val; } ,__class__: _$List_ListIterator }; var LocalSaves = function() { }; $hxClasses["LocalSaves"] = LocalSaves; LocalSaves.__name__ = ["LocalSaves"]; LocalSaves.so = null; LocalSaves.getVar = function(name) { if(LocalSaves.so == null) { LocalSaves.localPath = window.location.href; LocalSaves.localPath = LocalSaves.localPath.split("?")[0]; LocalSaves.so = openfl_net_SharedObject.getLocal(LocalSaves.storeName,LocalSaves.localPath); } return Reflect.field(LocalSaves.so.data,name); }; LocalSaves.setVar = function(name,value) { if(LocalSaves.so == null) { LocalSaves.localPath = window.location.href; LocalSaves.localPath = LocalSaves.localPath.split("?")[0]; LocalSaves.so = openfl_net_SharedObject.getLocal(LocalSaves.storeName,LocalSaves.localPath); } LocalSaves.so.data[name] = value; LocalSaves.so.flush(); }; LocalSaves.prototype = { __class__: LocalSaves }; var Localization = function() { }; $hxClasses["Localization"] = Localization; Localization.__name__ = ["Localization"]; Localization.__properties__ = {get_data:"get_data"} Localization.data = null; Localization.get_data = function() { if(Localization.data == null) { var locale = Localization.locale; if(locale == "en") locale += "GB"; else locale += locale.toUpperCase(); Localization.data = JSON.parse(openfl_Assets.getText("img/strings_" + locale + ".json")); } return Localization.data; }; Localization.getString = function(id,checkUndefined,searchId) { if(searchId == null) searchId = false; if(checkUndefined == null) checkUndefined = false; if(searchId) { var keys = Reflect.fields(Localization.get_data()); var _g1 = 0; var _g = keys.length; while(_g1 < _g) { var i = _g1++; if(keys[i].indexOf(id) != -1) { id = keys[i]; break; } } } var retValue = Reflect.field(Localization.get_data(),id); if(checkUndefined && (retValue == null || retValue == "")) retValue = Reflect.field(Localization.get_data(),id + "_undefined"); if(retValue == null) return ""; return retValue; }; var MainMenu = function() { window.famobi_analytics.trackScreen("SCREEN_HOME"); this.bgsArr = []; Menu.call(this); this.mainBatch = this.main.batch; this.bgsSpr = this.getSprite(); this.createBgs(); var btnsCont = this.getSprite(); var logo = this.getBimap("logo",null,btnsCont); logo.set_x(this.sWidth / 2 - logo.get_width() / 2); var curY = logo.get_height() + 100; var gapY = 107; var onePlayerBtn = this.getBimap("one_plaier",$bind(this,this.onePlayerClick),btnsCont); onePlayerBtn.set_x(this.sWidth / 2 - onePlayerBtn.get_width() / 2); onePlayerBtn.set_y(curY); var twoPlayerBtn = this.getBimap("2_plaiers",$bind(this,this.twoPlayerClick),btnsCont); twoPlayerBtn.set_y(curY += gapY); twoPlayerBtn.set_x(this.sWidth / 2 - twoPlayerBtn.get_width() / 2); var loadBtn = this.getBimap("load_a",$bind(this,this.load),btnsCont); loadBtn.set_y(curY += gapY); loadBtn.set_x(this.sWidth / 2 - loadBtn.get_width() - 20); var optionBtn = this.getBimap("MENU-002",$bind(this,this.optionClick),btnsCont); optionBtn.set_y(curY); optionBtn.set_x(this.sWidth / 2 + 20); this.isImagesFromAtlas = false; var moreGamesBtn = this.getBimap(window.famobi.getMoreGamesButtonImage(),function() { window.famobi.moreGamesLink(); },btnsCont); moreGamesBtn.set_scaleX(moreGamesBtn.set_scaleY(optionBtn.get_height() / moreGamesBtn.get_height())); moreGamesBtn.set_x(this.sWidth / 2 - moreGamesBtn.get_width() / 2); moreGamesBtn.set_y(curY += gapY); this.isImagesFromAtlas = true; btnsCont.set_y(this.sHeight / 2 - btnsCont.get_height() / 2); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); var wasY = this.get_y(); if(!MainMenu.isFirstInit) { this.set_y(this.get_y() + this.sHeight); } motion_Actuate.tween(this,0.3,{ y : wasY}).ease(motion_easing_Quad.get_easeOut()); MainMenu.isFirstInit = false; }; $hxClasses["MainMenu"] = MainMenu; MainMenu.__name__ = ["MainMenu"]; MainMenu.__super__ = Menu; MainMenu.prototype = $extend(Menu.prototype,{ bgsArr: null ,bgsSpr: null ,onePlayerClick: function() { this.main.addChild(new PlayMenu(true)); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } ,twoPlayerClick: function() { this.main.addChild(new PlayMenu(false)); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } ,load: function() { motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); Main.current.addChild(new SaveLoadWindow(true)); } ,optionClick: function() { motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); Main.current.addChild(new PauseMenu(true)); } ,onResize: function() { this.createBgs(); this.bgsSpr.set_x(-this.get_x() / this.get_scaleX()); this.bgsSpr.set_y(-this.get_y() / this.get_scaleY()); } ,createBgs: function() { var lastIndex = 0; var sizeX = 0; var bg; this.isImagesFromAtlas = false; while(sizeX < Main.current.sWidth) { if(this.bgsArr[lastIndex] != null) { bg = this.bgsArr[lastIndex]; bg.set_visible(true); } else { bg = this.getBimap("img/bg.jpg",null,this.bgsSpr); this.bgsArr.push(bg); } bg.set_x(sizeX); bg.set_y(0); bg.set_scaleX(bg.set_scaleY(Main.current.sHeight / bg.bitmapData.height)); sizeX += bg.get_width() - 2; lastIndex++; } this.isImagesFromAtlas = true; var _g1 = lastIndex; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].set_visible(false); } this.bgsSpr.set_scaleX(this.bgsSpr.set_scaleY(1 / this.get_scaleX())); } ,getBtnWithText: function(text,callBack) { var spr = this.getSprite(); var bm = this.getBimap("TEXT_bg",callBack,spr); var tf = this.addTextField("Aalgrs",60,0,false,"CENTER",0,8,bm.get_width(),bm.get_height(),false,0,0,spr); tf.set_text(text); return spr; } ,__class__: MainMenu }); Math.__name__ = ["Math"]; var openfl_display_Bitmap = function(bitmapData,pixelSnapping,smoothing) { if(smoothing == null) smoothing = false; openfl_display_DisplayObject.call(this); this.bitmapData = bitmapData; this.pixelSnapping = pixelSnapping; this.smoothing = smoothing; if(pixelSnapping == null) this.pixelSnapping = 1; }; $hxClasses["openfl.display.Bitmap"] = openfl_display_Bitmap; openfl_display_Bitmap.__name__ = ["openfl","display","Bitmap"]; openfl_display_Bitmap.__super__ = openfl_display_DisplayObject; openfl_display_Bitmap.prototype = $extend(openfl_display_DisplayObject.prototype,{ bitmapData: null ,pixelSnapping: null ,smoothing: null ,__image: null ,__getBounds: function(rect,matrix) { if(this.bitmapData != null) { var bounds = openfl_geom_Rectangle.__temp; bounds.setTo(0,0,this.bitmapData.width,this.bitmapData.height); bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); } } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask || this.bitmapData == null) return false; if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) return false; this.__getWorldTransform(); var px = this.__worldTransform.__transformInverseX(x,y); var py = this.__worldTransform.__transformInverseY(x,y); if(px > 0 && py > 0 && px <= this.bitmapData.width && py <= this.bitmapData.height) { if(stack != null && !interactiveOnly) stack.push(hitObject); return true; } return false; } ,__hitTestMask: function(x,y) { if(this.bitmapData == null) return false; this.__getWorldTransform(); var px = this.__worldTransform.__transformInverseX(x,y); var py = this.__worldTransform.__transformInverseY(x,y); if(px > 0 && py > 0 && px <= this.bitmapData.width && py <= this.bitmapData.height) return true; return false; } ,__renderCairo: function(renderSession) { openfl__$internal_renderer_cairo_CairoBitmap.render(this,renderSession); } ,__renderCairoMask: function(renderSession) { renderSession.cairo.rectangle(0,0,this.get_width(),this.get_height()); } ,__renderCanvas: function(renderSession) { openfl__$internal_renderer_canvas_CanvasBitmap.render(this,renderSession); } ,__renderCanvasMask: function(renderSession) { renderSession.context.rect(0,0,this.get_width(),this.get_height()); } ,__renderDOM: function(renderSession) { if(this.stage != null && this.__worldVisible && this.__renderable && this.bitmapData != null && this.bitmapData.__isValid) { if(this.bitmapData.image.buffer.__srcImage != null) openfl__$internal_renderer_dom_DOMBitmap.renderImage(this,renderSession); else openfl__$internal_renderer_dom_DOMBitmap.renderCanvas(this,renderSession); } else { if(this.__image != null) { renderSession.element.removeChild(this.__image); this.__image = null; this.__style = null; } if(this.__canvas != null) { renderSession.element.removeChild(this.__canvas); this.__canvas = null; this.__style = null; } } } ,__renderGL: function(renderSession) { if(this.__cacheAsBitmap) { this.__cacheGL(renderSession); return; } if(this.__scrollRect != null) renderSession.maskManager.pushRect(this.__scrollRect,this.__renderTransform); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.pushMask(this); if(!this.__renderable || this.__worldAlpha <= 0 || this.bitmapData == null || !this.bitmapData.__isValid) null; else renderSession.spriteBatch.renderBitmapData(this.bitmapData,this.smoothing,this.__renderTransform,this.__worldColorTransform,this.__worldAlpha,this.__blendMode,this.__shader,this.pixelSnapping); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.popMask(); if(this.__scrollRect != null) renderSession.maskManager.popRect(); } ,__updateMask: function(maskGraphics) { if(this.bitmapData == null) return; maskGraphics.__commands.overrideMatrix(this.__worldTransform); maskGraphics.beginFill(0); maskGraphics.drawRect(0,0,this.bitmapData.width,this.bitmapData.height); if(maskGraphics.__bounds == null) maskGraphics.__bounds = new openfl_geom_Rectangle(); this.__getBounds(maskGraphics.__bounds,openfl_geom_Matrix.__identity); openfl_display_DisplayObject.prototype.__updateMask.call(this,maskGraphics); } ,get_height: function() { if(this.bitmapData != null) return this.bitmapData.height * this.get_scaleY(); return 0; } ,set_height: function(value) { if(this.bitmapData != null) { if(value != this.bitmapData.height) this.set_scaleY(value / this.bitmapData.height); return value; } return 0; } ,get_width: function() { if(this.bitmapData != null) return this.bitmapData.width * this.get_scaleX(); return 0; } ,set_width: function(value) { if(this.bitmapData != null) { if(value != this.bitmapData.width) this.set_scaleX(value / this.bitmapData.width); return value; } return 0; } ,__class__: openfl_display_Bitmap }); var MenuMC = function(prefix,framesSpeed,loop,startDelay,loopDelay,batch,prefix3Signs) { if(prefix3Signs == null) prefix3Signs = false; if(loopDelay == null) loopDelay = 0; if(startDelay == null) startDelay = 0; if(loop == null) loop = true; if(framesSpeed == null) framesSpeed = 1; this.framesSpeed = 1; this.prefix = ""; this.curDelay = 0; this.loopDelay = 0; this.startDelay = 0; this.isPlaying = true; this.loop = true; this.totalFrames = 0; this.currentFrame = 0; this.framesSpeed = framesSpeed; this.prefix = prefix; this.loop = loop; this.startDelay = startDelay; this.loopDelay = loopDelay; this.batching = batch; this.bmdsArr = []; var zerosPrefix; if(prefix3Signs) zerosPrefix = "0"; else zerosPrefix = "00"; var tbmd = null; var imName; var batchImName = ""; var rArr; var _g = 0; while(_g < 100) { var i = _g++; imName = prefix + (i < 10?zerosPrefix + "0":zerosPrefix) + i + ".png"; if(this.batching == null) { if(openfl_Assets.exists(imName,"IMAGE")) tbmd = openfl_Assets.getBitmapData(imName); } else { batchImName = imName.substring(0,imName.length - 4); rArr = batchImName.split("/"); batchImName = rArr[rArr.length - 1]; if(this.batching.getImgId(batchImName) != -1) tbmd = this.batching.getBitmapData(batchImName); } if(tbmd != null) this.bmdsArr.push(tbmd); } while(this.bmdsArr[this.bmdsArr.length - 1] == tbmd && this.bmdsArr.length > 0) this.bmdsArr.pop(); this.bmdsArr.push(tbmd); this.totalFrames = this.bmdsArr.length; openfl_display_Bitmap.call(this,this.bmdsArr[0],1,true); if(startDelay != 0 && startDelay > 0) this.curDelay = startDelay; this.smoothing = true; }; $hxClasses["MenuMC"] = MenuMC; MenuMC.__name__ = ["MenuMC"]; MenuMC.__super__ = openfl_display_Bitmap; MenuMC.prototype = $extend(openfl_display_Bitmap.prototype,{ currentFrame: null ,totalFrames: null ,loop: null ,isPlaying: null ,startDelay: null ,loopDelay: null ,curDelay: null ,prefix: null ,framesSpeed: null ,batching: null ,bmdsArr: null ,play: function() { this.isPlaying = true; } ,stop: function() { this.isPlaying = false; } ,getWidth: function() { return this.bmdsArr[0].width; } ,getHeight: function() { return this.bmdsArr[0].height; } ,startFromFrame1: function() { this.currentFrame = 0; this.isPlaying = true; } ,gotoAndStop: function(frame) { this.isPlaying = false; this.bmdsArr[frame]; } ,update: function(frameTime) { if(!this.isPlaying || !this.get_visible() || this.get_alpha() == 0) return; if(this.curDelay > 0) this.curDelay -= frameTime; if(this.curDelay <= 0) this.curDelay = 0; else return; this.currentFrame += frameTime / 16.666666666666668 * this.framesSpeed; if(this.currentFrame >= this.totalFrames) { if(this.loop) { this.currentFrame = 0; if(this.loopDelay > 0) this.curDelay = this.loopDelay; this.bitmapData = this.bmdsArr[this.bmdsArr.length - 1]; return; } else this.isPlaying = false; } this.bitmapData = this.bmdsArr[Math.floor(this.currentFrame)]; this.smoothing = true; } ,destroy: function() { this.batching = null; while(this.bmdsArr.length > 0) this.bmdsArr.pop(); this.bmdsArr = null; if(this.parent != null) this.parent.removeChild(this); } ,__class__: MenuMC }); var MovieClipHX = function(data) { this.stopFrames = []; this.__isPlaying = true; this.name = ""; this.visible = true; this.rotation = 0; this.scaleY = 1; this.scaleX = 1; this.y = 0; this.x = 0; this.data = data; this.main = Main.current; this.__currentFrame = 0; this.__currentLabels = []; this.__totalFrames = Std["int"](data.framesData.totalFrames) - 1; var lastLabelName = ""; var _g1 = 0; var _g = data.labels.length; while(_g1 < _g) { var i = _g1++; var _g3 = 0; var _g2 = data.labels[i].length; while(_g3 < _g2) { var j = _g3++; if(lastLabelName == data.labels[i][j]) continue; lastLabelName = data.labels[i][j]; this.__currentLabels.push(new openfl_display_FrameLabel(data.labels[i][j],i)); } } this.childs = []; var _g11 = 0; var _g4 = this.get_totalFrames(); while(_g11 < _g4) { var i1 = _g11++; this.childs[i1] = []; } var mainBatch = null; var dObj; var frData; var _g12 = 0; var _g5 = data.framesData.frames.length; while(_g12 < _g5) { var i2 = _g12++; if(mainBatch == null) { var _g31 = 0; var _g21 = this.main.atlases.length; while(_g31 < _g21) { var j1 = _g31++; if(this.main.atlases[j1].getImgId(data.framesData.frames[i2].i) != -1) { mainBatch = this.main.atlases[j1]; break; } } } frData = data.framesData.frames[i2]; dObj = new SimpleDObj(mainBatch,frData.i,frData.a,frData.b,frData.c,frData.d,frData.tx,frData.ty); dObj.parent = this; this.childs[frData.f].push(dObj); } this.batchMatrix = new openfl_geom_Matrix(); this.main.movieClips.push(this); }; $hxClasses["MovieClipHX"] = MovieClipHX; MovieClipHX.__name__ = ["MovieClipHX"]; MovieClipHX.prototype = { batchMatrix: null ,childs: null ,x: null ,y: null ,scaleX: null ,scaleY: null ,rotation: null ,visible: null ,currentFrame: null ,currentFrameLabel: null ,currentLabel: null ,currentLabels: null ,totalFrames: null ,numChildren: null ,isPlaying: null ,name: null ,__currentFrame: null ,__currentFrameLabel: null ,__currentLabel: null ,__currentLabels: null ,__totalFrames: null ,__isPlaying: null ,data: null ,main: null ,stopFrames: null ,set_x: function(value) { this.x = value; this.updateMatrix(); return value; } ,set_y: function(value) { this.y = value; this.updateMatrix(); return value; } ,set_scaleX: function(value) { this.scaleX = value; this.updateMatrix(); return value; } ,set_scaleY: function(value) { this.scaleY = value; this.updateMatrix(); return value; } ,set_rotation: function(value) { this.rotation = value; this.updateMatrix(); return value; } ,set_visible: function(value) { if(this.visible == value) return value; this.visible = value; return value; } ,updateMatrix: function() { this.batchMatrix.identity(); this.batchMatrix.scale(this.scaleX,this.scaleY); this.batchMatrix.rotate(this.rotation); this.batchMatrix.translate(this.x,this.y); } ,addChild: function(child) { child.parent = this; this.childs[this.__currentFrame].push(child); return child; } ,removeChild: function(child) { if(child == null) return null; child.parent = null; var x = child; HxOverrides.remove(this.childs[this.__currentFrame],x); return child; } ,addChildAt: function(child,index) { child.parent = this; var pos = child; this.childs[this.__currentFrame].splice(pos,0,index); return child; } ,removeChildAt: function(index) { var child = this.childs[this.__currentFrame][index]; return this.removeChild(child); } ,getChildAt: function(index) { return this.childs[this.__currentFrame][index]; } ,gotoAndPlay: function(frame,scene) { var frNum = 0; if(typeof(frame) == "string") { var _g1 = 0; var _g = this.__currentLabels.length; while(_g1 < _g) { var i = _g1++; if(this.__currentLabels[i].get_name() == frame) { frNum = this.__currentLabels[i].get_frame(); break; } } } else frNum = Std["int"](frame) - 1; this.__currentFrame = frNum; this.__isPlaying = true; } ,gotoAndStop: function(frame,scene) { var frNum = 0; if(typeof(frame) == "string") { var _g1 = 0; var _g = this.__currentLabels.length; while(_g1 < _g) { var i = _g1++; if(this.__currentLabels[i].get_name() == frame) { frNum = this.__currentLabels[i].get_frame(); break; } } } else frNum = Std["int"](frame) - 1; this.__currentFrame = frNum; this.__isPlaying = false; } ,nextFrame: function() { this.__currentFrame++; } ,play: function() { this.__isPlaying = true; } ,prevFrame: function() { this.__currentFrame--; } ,stop: function() { this.__isPlaying = false; } ,update: function(changeFrame) { if(changeFrame == null) changeFrame = true; if(this.__isPlaying) { this.__currentFrameLabel = ""; var _g1 = 0; var _g = this.__currentLabels.length; while(_g1 < _g) { var i = _g1++; if(this.__currentLabels[i].get_frame() == this.__currentFrame) { this.__currentFrameLabel = this.__currentLabels[i].get_name(); this.__currentLabel = this.__currentLabels[i].get_name(); break; } } this.__currentFrame++; if(this.__currentFrame >= this.get_totalFrames()) this.__currentFrame = 0; var _g11 = 0; var _g2 = this.stopFrames.length; while(_g11 < _g2) { var i1 = _g11++; if(this.stopFrames[i1] == this.__currentFrame) this.__isPlaying = false; } } } ,frameHasLabelName: function(name) { var _g1 = 0; var _g = this.__currentLabels.length; while(_g1 < _g) { var i = _g1++; if(this.__currentLabels[i].get_frame() == this.__currentFrame && this.__currentLabels[i].get_name() == name) return true; } return false; } ,frameIsLabelName: function(name) { var thisFrameIsLabel = false; var prevFrameIsLabel = false; var _g1 = 0; var _g = this.__currentLabels.length; while(_g1 < _g) { var i = _g1++; if(!thisFrameIsLabel && this.__currentLabels[i].get_frame() == this.__currentFrame && this.__currentLabels[i].get_name() == name) thisFrameIsLabel = true; if(!prevFrameIsLabel && this.__currentLabels[i].get_frame() == this.__currentFrame - 1 && this.__currentLabels[i].get_name() == name) prevFrameIsLabel = true; if(thisFrameIsLabel && prevFrameIsLabel) break; } return thisFrameIsLabel && !prevFrameIsLabel; } ,get_currentFrame: function() { return this.__currentFrame + 1; } ,get_currentFrameLabel: function() { return this.__currentFrameLabel; } ,get_currentLabel: function() { return this.__currentLabel; } ,get_currentLabels: function() { return this.__currentLabels; } ,get_totalFrames: function() { return this.__totalFrames + 1; } ,get_numChildren: function() { return this.childs.length; } ,get_isPlaying: function() { return this.__isPlaying; } ,render: function() { if(!this.visible) return; var _g1 = 0; var _g = this.childs[this.__currentFrame].length; while(_g1 < _g) { var i = _g1++; this.childs[this.__currentFrame][i].render(); } } ,__class__: MovieClipHX ,__properties__: {get_isPlaying:"get_isPlaying",get_numChildren:"get_numChildren",get_totalFrames:"get_totalFrames",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame",set_visible:"set_visible",set_rotation:"set_rotation",set_scaleY:"set_scaleY",set_scaleX:"set_scaleX",set_y:"set_y",set_x:"set_x"} }; var SimpleDObj = function(batch,imName,ma,mb,mc,md,mtx,mty) { this.hm = new openfl_geom_Matrix(); this.batchId = 0; this.batch = batch; this.batchId = batch.getImgId(imName); this.matrix = new openfl_geom_Matrix(ma,mb,mc,md,mtx,mty); }; $hxClasses["SimpleDObj"] = SimpleDObj; SimpleDObj.__name__ = ["SimpleDObj"]; SimpleDObj.prototype = { batchId: null ,matrix: null ,batch: null ,hm: null ,parent: null ,render: function() { if(this.parent != null) { this.hm.a = this.matrix.a; this.hm.b = this.matrix.b; this.hm.c = this.matrix.c; this.hm.d = this.matrix.d; this.hm.tx = this.matrix.tx; this.hm.ty = this.matrix.ty; this.hm.concat(this.parent.batchMatrix); } else { this.hm.a = this.matrix.a; this.hm.b = this.matrix.b; this.hm.c = this.matrix.c; this.hm.d = this.matrix.d; this.hm.tx = this.matrix.tx; this.hm.ty = this.matrix.ty; } this.batch.addDraw(this.batchId,this.hm,1); } ,__class__: SimpleDObj }; var NMEPreloader = function() { openfl_display_Sprite.call(this); var backgroundColor = this.getBackgroundColor(); var r = backgroundColor >> 16 & 255; var g = backgroundColor >> 8 & 255; var b = backgroundColor & 255; var perceivedLuminosity = 0.299 * r + 0.587 * g + 0.114 * b; var color = 0; if(perceivedLuminosity < 70) color = 16777215; var x = 30; var height = 7; var y = this.getHeight() / 2 - height / 2; var width = this.getWidth() - x * 2; var padding = 2; this.outline = new openfl_display_Sprite(); this.outline.get_graphics().beginFill(color,0.07); this.outline.get_graphics().drawRect(0,0,width,height); this.outline.set_x(x); this.outline.set_y(y); this.addChild(this.outline); this.progress = new openfl_display_Sprite(); this.progress.get_graphics().beginFill(color,0.35); this.progress.get_graphics().drawRect(0,0,width - padding * 2,height - padding * 2); this.progress.set_x(x + padding); this.progress.set_y(y + padding); this.progress.set_scaleX(0); this.addChild(this.progress); }; $hxClasses["NMEPreloader"] = NMEPreloader; NMEPreloader.__name__ = ["NMEPreloader"]; NMEPreloader.__super__ = openfl_display_Sprite; NMEPreloader.prototype = $extend(openfl_display_Sprite.prototype,{ outline: null ,progress: null ,getBackgroundColor: function() { return 0; } ,getHeight: function() { var height = 0; if(height > 0) return height; else return openfl_Lib.current.stage.stageHeight; } ,getWidth: function() { var width = 0; if(width > 0) return width; else return openfl_Lib.current.stage.stageWidth; } ,onInit: function() { } ,onLoaded: function() { this.dispatchEvent(new openfl_events_Event("complete")); } ,onUpdate: function(bytesLoaded,bytesTotal) { var percentLoaded = bytesLoaded / bytesTotal; if(percentLoaded > 1) percentLoaded = 1; this.progress.set_scaleX(percentLoaded); } ,__class__: NMEPreloader }); var NumFontFromBatch = function(batch,prefix) { this.pool = []; this.displayObjects = []; this.widthToAlign = 0; this.gapX = 0; this.text = ""; this.align = "LEFT"; openfl_display_Sprite.call(this); this.batch = batch; this.prefix = prefix; }; $hxClasses["NumFontFromBatch"] = NumFontFromBatch; NumFontFromBatch.__name__ = ["NumFontFromBatch"]; NumFontFromBatch.__super__ = openfl_display_Sprite; NumFontFromBatch.prototype = $extend(openfl_display_Sprite.prototype,{ batch: null ,prefix: null ,align: null ,text: null ,gapX: null ,widthToAlign: null ,displayObjects: null ,pool: null ,set_text: function(value) { if(value == this.text) return value; this.text = value; this.updateText(); return value; } ,set_align: function(value) { if(value == this.align) return value; this.align = value; this.updateText(); return value; } ,set_gapX: function(value) { if(value == this.gapX) return value; this.gapX = value; this.updateText(); return value; } ,updateText: function() { var bm; while(this.displayObjects.length > 0) { bm = this.displayObjects.pop(); if(bm.parent != null) bm.parent.removeChild(bm); this.pool.push(bm); } var dObj; var curX = 0; var totWidth = 0; var sym; var ind; var imName; var _g1 = 0; var _g = this.text.length; while(_g1 < _g) { var i = _g1++; if(this.text.charAt(i) == ".") ind = 11; else ind = Std.parseInt(this.text.charAt(i)); imName = this.prefix + ind; if(this.pool.length > 0) { dObj = this.pool.pop(); dObj.bitmapData = this.batch.getBitmapData(imName,false); dObj.smoothing = true; } else dObj = new openfl_display_Bitmap(this.batch.getBitmapData(imName,false),1,true); this.displayObjects.push(dObj); this.addChild(dObj); dObj.set_x(curX); dObj.set_y(0); curX += dObj.get_width() + this.gapX; } totWidth = curX - this.gapX; var offsetX = 0; if(this.align == "LEFT") offsetX = 0; else if(this.align == "CENTER") offsetX = this.widthToAlign / 2 - totWidth / 2; else if(this.align == "RIGHT") offsetX = this.widthToAlign - totWidth; var _g11 = 0; var _g2 = this.displayObjects.length; while(_g11 < _g2) { var i1 = _g11++; var _g21 = this.displayObjects[i1]; _g21.set_x(_g21.get_x() + offsetX); } } ,destroy: function() { while(this.displayObjects.length > 0) this.displayObjects.pop(); while(this.pool.length > 0) this.pool.pop(); while(this.get_numChildren() > 0) this.removeChildAt(0); this.displayObjects = null; this.pool = null; this.batch = null; } ,__class__: NumFontFromBatch ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_gapX:"set_gapX",set_text:"set_text",set_align:"set_align"}) }); var NumericFont = function(fontImgName,symbolWidth) { this.img = openfl_Assets.getBitmapData("img/" + fontImgName + ".png"); this.symWidth = symbolWidth; this.hp = new openfl_geom_Point(); this.hct = new openfl_geom_ColorTransform(); this.hm = new openfl_geom_Matrix(); this.hr = new openfl_geom_Rectangle(0,0,this.symWidth,this.img.height); this.colorArray = new haxe_ds_IntMap(); }; $hxClasses["NumericFont"] = NumericFont; NumericFont.__name__ = ["NumericFont"]; NumericFont.prototype = { img: null ,colorArray: null ,symWidth: null ,hp: null ,hct: null ,hm: null ,hr: null ,drawTo: function(dest,text,x,y,centerX,centerY,color,alignRight) { if(alignRight == null) alignRight = false; if(color == null) color = 0; if(centerY == null) centerY = false; if(centerX == null) centerX = false; if(y == null) y = 0; if(x == null) x = 0; var symArr = text.split(""); var sourceBmd; if(centerX) this.hp.x = x - symArr.length * this.symWidth / 2; else this.hp.x = x; if(centerY) this.hp.y = y - this.img.height / 2; else this.hp.y = y; if(alignRight) this.hp.x = x - symArr.length * this.symWidth; if(color != 0) sourceBmd = this.getBmdColor(color); else sourceBmd = this.img; var ctx = dest.image.buffer.__srcContext; var sctx = sourceBmd.image.buffer.get_src(); var drawIndex; var _g1 = 0; var _g = symArr.length; while(_g1 < _g) { var i = _g1++; if(symArr[i] == "x") drawIndex = 10; else drawIndex = Std.parseInt(symArr[i]); this.hr.x = drawIndex * this.symWidth; ctx.drawImage(sctx,this.hr.x,this.hr.y,this.hr.width,this.hr.height,this.hp.x,this.hp.y,this.hr.width,this.hr.height); this.hp.x += this.symWidth; } } ,getBm: function(text) { var symArr = text.split(""); var bm = new openfl_display_Bitmap(new openfl_display_BitmapData(Math.ceil(this.symWidth * symArr.length),this.img.height,true,0),1,true); this.drawTo(bm.bitmapData,text); return bm; } ,drawTo1: function(dest,text,x,y,centerX,centerY,color,alignRight) { if(alignRight == null) alignRight = false; if(color == null) color = 0; if(centerY == null) centerY = false; if(centerX == null) centerX = false; if(y == null) y = 0; if(x == null) x = 0; var symArr = text.split(""); var sourceBmd; if(centerX) this.hp.x = x - symArr.length * this.symWidth / 2; else this.hp.x = x; if(centerY) this.hp.y = y - this.img.height / 2; else this.hp.y = y; if(alignRight) this.hp.x = x - symArr.length * this.symWidth; if(color != 0) sourceBmd = this.getBmdColor(color); else sourceBmd = this.img; var ctx = dest.image.buffer.__srcContext; var sctx = sourceBmd.image.buffer.get_src(); var drawIndex; var _g1 = 0; var _g = symArr.length; while(_g1 < _g) { var i = _g1++; drawIndex = Std.parseInt(symArr[i]); this.hr.x = drawIndex * this.symWidth; ctx.drawImage(sctx,this.hr.x,this.hr.y,this.hr.width,this.hr.height,this.hp.x,this.hp.y,this.hr.width,this.hr.height); this.hp.x += this.symWidth; } } ,getBmdColor: function(color) { if(this.colorArray.h.hasOwnProperty(color)) return this.colorArray.h[color]; var tbmd = new openfl_display_BitmapData(this.img.width,this.img.height,true,0); tbmd.copyPixels(this.img,this.img.rect,new openfl_geom_Point(),null,null,true); this.hct.set_color(color); tbmd.colorTransform(tbmd.rect,this.hct); this.colorArray.h[color] = tbmd; return tbmd; } ,getNumberBmd: function(num) { var tbmd = new openfl_display_BitmapData(this.symWidth | 0,this.img.height,true,0); this.hr.x = num * this.symWidth; this.hp.x = this.hp.y = 0; tbmd.copyPixels(this.img,this.hr,this.hp,null,null,true); return tbmd; } ,__class__: NumericFont }; var PauseMenu = function(fromMainMenu) { if(fromMainMenu == null) fromMainMenu = false; this.isFromMainMenu = false; if(fromMainMenu) { window.famobi_analytics.trackScreen("SCREEN_SETTINGS"); } else { window.famobi_analytics.trackScreen("SCREEN_PAUSE"); } this.initSwidth = 0; this.initSheight = 0; this.initChessesThemeScrollY = 0; this.initChessesThemeScrollX = 0; this.initMainThemeScrollY = 0; this.initMainThemeScrollX = 0; this.bgsArr = []; Menu.call(this); this.isFromMainMenu = fromMainMenu; this.mainBatch = this.main.batch; this.bgsSpr = this.getSprite(); this.createBgs(); this.mainCont = this.getSprite(); this.backBtn = this.getBimap("Back-001",$bind(this,this.backClick)); var botBtnsGapX = 40; this.backBtn.set_x(this.sWidth / 2 - this.backBtn.get_width() - botBtnsGapX / 2); if(this.isFromMainMenu) this.backBtn.set_x(this.sWidth / 2 - this.backBtn.get_width() / 2); this.backBtn.set_y(this.sHeight - this.backBtn.get_height() - 30); this.drawBtn = null; if(!this.isFromMainMenu) { this.mainMenuBtn = this.getBimap("home_copy",$bind(this,this.mainMenuClick)); this.mainMenuBtn.set_x(this.sWidth / 2 + botBtnsGapX / 2); this.mainMenuBtn.set_y(this.backBtn.get_y()); this.main.paused = true; this.drawBtn = this.getBimap("flag",$bind(this,this.drawClick),this.mainCont); this.drawBtn.set_x(this.sWidth / 2 - this.drawBtn.get_width() / 2); } this.sndBtn = this.getBimap("sound",$bind(this,this.soundClick),this.mainCont); this.sndBtnOff = this.getBimap("sounds_off",$bind(this,this.soundClick),this.mainCont); this.sndBtn.set_x(this.sndBtnOff.set_x(this.sWidth / 2 - this.sndBtn.get_width() / 2)); this.sndBtn.set_y(this.sndBtnOff.set_y(this.isFromMainMenu?40:this.drawBtn.get_y() + this.drawBtn.get_height() + 10)); this.updateSoundBtn(); this.saveBtn = null; if(!this.isFromMainMenu) { this.saveBtn = this.getBimap("save",$bind(this,this.saveClick),this.mainCont); this.saveBtn.set_x(this.sWidth / 2 - this.saveBtn.get_width() / 2); this.saveBtn.set_y(this.sndBtn.get_y() + this.sndBtn.get_height() + 10); } this.twoPlayersModeCont = new openfl_display_Sprite(); this.mainCont.addChild(this.twoPlayersModeCont); this.mode1 = this.addButton("plaier1",0,15,false,false,$bind(this,this.mode1Click),this.twoPlayersModeCont); this.mode2 = this.addButton("plaier2",this.mode1.get_x() + this.mode1.get_width() + 10,this.mode1.get_y(),false,false,$bind(this,this.mode2Click),this.twoPlayersModeCont); this.mode1.set_alpha(Desk.current.twoPlayersViewOption == 0?0.5:1); this.mode2.set_alpha(Desk.current.twoPlayersViewOption != 0?0.5:1); var contWidth = this.twoPlayersModeCont.get_width(); this.twoPlayersModeCont.set_x(this.sWidth / 2 - contWidth / 2); this.twoPlayersModeCont.set_y(this.sndBtn.get_y() + this.sndBtn.get_height() + 30); var bmdsArr; bmdsArr = []; var _g = 0; while(_g < 5) { var i = _g++; bmdsArr.push(this.getBitmapData("icon_chess_bg_" + (i + 1))); } this.mainThemeScroll = new ScrollWithImages(Desk.current.curTheme - 1,"Desk theme",bmdsArr); bmdsArr = []; var _g1 = 0; while(_g1 < 5) { var i1 = _g1++; bmdsArr.push(this.getBitmapData("icon_set" + (i1 + 1))); } this.chessesThemeScroll = new ScrollWithImages(Desk.current.curThemeChess - 1,"Chesses theme",bmdsArr); this.mainCont.addChild(this.mainThemeScroll); this.mainCont.addChild(this.chessesThemeScroll); this.mainThemeScroll.set_x(this.chessesThemeScroll.set_x(this.sWidth / 2 - this.mainThemeScroll.maxSize / 2)); this.mainThemeScroll.set_y(this.twoPlayersModeCont.get_y() + this.twoPlayersModeCont.get_height() + 30); this.chessesThemeScroll.set_y(this.mainThemeScroll.get_y() + this.mainThemeScroll.get_height() + 30); this.initMainThemeScrollX = this.mainThemeScroll.get_x(); this.initMainThemeScrollY = this.mainThemeScroll.get_y(); this.initChessesThemeScrollX = this.chessesThemeScroll.get_x(); this.initChessesThemeScrollY = this.chessesThemeScroll.get_y(); this.initSheight = this.sHeight; this.initSwidth = this.sWidth; this.onResize(); var wasY = this.get_y(); this.set_y(this.get_y() + this.sHeight); motion_Actuate.tween(this,0.3,{ y : wasY}).ease(motion_easing_Quad.get_easeOut()); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); }; $hxClasses["PauseMenu"] = PauseMenu; PauseMenu.__name__ = ["PauseMenu"]; PauseMenu.__super__ = Menu; PauseMenu.prototype = $extend(Menu.prototype,{ bgsArr: null ,bgsSpr: null ,backBtn: null ,mainMenuBtn: null ,mainThemeScroll: null ,chessesThemeScroll: null ,initMainThemeScrollX: null ,initMainThemeScrollY: null ,initChessesThemeScrollX: null ,initChessesThemeScrollY: null ,sndBtn: null ,sndBtnOff: null ,mainCont: null ,mode1: null ,mode2: null ,initSheight: null ,initSwidth: null ,drawBtn: null ,saveBtn: null ,twoPlayersModeCont: null ,difficVal: null ,isFromMainMenu: null ,mode1Click: function() { Desk.current.twoPlayersViewOption = 1; this.mode2.set_alpha(0.5); this.mode1.set_alpha(1); } ,mode2Click: function() { Desk.current.twoPlayersViewOption = 0; this.mode1.set_alpha(0.5); this.mode2.set_alpha(1); } ,saveClick: function() { motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); Main.current.addChild(new SaveLoadWindow(false)); if(!this.isFromMainMenu) { Desk.current.updateChesses(); Main.current.ingameMenu.onResize(); } } ,drawClick: function() { if(Desk.current.playersType[1] == "computer") { if(Desk.current.aiDrawResponce()) { this.main.paused = false; motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); Desk.current.showFinishScreen(false,true); } else { this.main.paused = false; Desk.current.onAiAskDrawResp(false); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } } else { this.main.paused = false; this.main.addChild(new InformWindow("",true,($_=Desk.current,$bind($_,$_.onAiAskDrawResp)),["flag_2","onePlaier","dig_" + (Desk.current.state.to_play + 1)])); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } if(!this.isFromMainMenu) { Desk.current.updateChesses(); Main.current.ingameMenu.onResize(); } } ,soundClick: function() { if(this.main.sounds.muted) this.main.unMute(); else this.main.mute(); window.famobi_analytics.trackEvent("EVENT_VOLUMECHANGE", {bgmVolume: this.main.sounds.muted ? 0 : 1, sfxVolume: this.main.sounds.muted ? 0 : 1}); this.updateSoundBtn(); } ,updateSoundBtn: function() { if(typeof window.famobi.audio == "undefined" || window.famobi.audio.hasControls()){ if(this.main.sounds.muted) { this.sndBtnOff.set_alpha(1); this.sndBtn.set_alpha(0); } else { this.sndBtnOff.set_alpha(0); this.sndBtn.set_alpha(1); } } else{ this.sndBtn.set_alpha(0); this.sndBtnOff.set_alpha(0); } } ,backClick: function() { if(!this.isFromMainMenu) { window.famobi_analytics.trackScreen("SCREEN_LEVEL"); this.main.paused = false; Desk.current.curTheme = this.mainThemeScroll.curIndex + 1; Desk.current.curThemeChess = this.chessesThemeScroll.curIndex + 1; Desk.current.updateTheme(); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } else { Desk.current.curTheme = this.mainThemeScroll.curIndex + 1; Desk.current.curThemeChess = this.chessesThemeScroll.curIndex + 1; Desk.current.updateTheme(); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); Main.current.addChild(new MainMenu()); } if(!this.isFromMainMenu) { Desk.current.updateChesses(); Main.current.ingameMenu.onResize(); } } ,mainMenuClick: function() { var _this = this; var mainMenuClickAction = function() { motion_Actuate.tween(_this,0.3,{ y : -_this.get_y() - _this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(_this,_this.close)); _this.main.addChild(new MainMenu()); if(!_this.isFromMainMenu) { Desk.current.updateChesses(); Main.current.ingameMenu.onResize(); } } window.famobi_analytics.trackEvent("EVENT_LEVELFAIL", {levelName: Desk.current.levelName, reason: "quit"}).then(mainMenuClickAction, mainMenuClickAction); } ,onResize: function() { this.createBgs(); this.bgsSpr.set_x(-this.get_x()); this.bgsSpr.set_y(-this.get_y()); if(Main.current.sHeight > Main.current.sWidth) { if(!this.isFromMainMenu) { this.drawBtn.set_x(this.initSwidth / 2 - this.drawBtn.get_width() / 2); this.sndBtn.set_x(this.initSwidth / 2 - this.sndBtn.get_width() / 2); this.sndBtnOff.set_x(this.sndBtn.get_x()); this.saveBtn.set_x(this.initSwidth / 2 - this.saveBtn.get_width() / 2); this.drawBtn.set_y(0); this.sndBtn.set_y(this.drawBtn.get_y() + this.drawBtn.get_height() + 10); this.sndBtnOff.set_y(this.sndBtn.get_y()); this.saveBtn.set_y(this.sndBtn.get_y() + this.sndBtn.get_height() + 10); this.twoPlayersModeCont.set_y(this.saveBtn.get_y() + this.saveBtn.get_height() + 15); } else { this.sndBtn.set_x(0); this.sndBtn.set_x(this.initSwidth / 2 - this.sndBtn.get_width() / 2); this.sndBtnOff.set_x(this.sndBtn.get_x()); this.sndBtnOff.set_y(this.sndBtn.get_y()); this.twoPlayersModeCont.set_y(this.sndBtn.get_y() + this.sndBtn.get_height() + 15); } this.mainThemeScroll.set_x(this.initMainThemeScrollX); this.mainThemeScroll.set_y(this.twoPlayersModeCont.get_y() + this.twoPlayersModeCont.get_height() + 30); this.chessesThemeScroll.set_x(this.initChessesThemeScrollX); this.chessesThemeScroll.set_y(this.mainThemeScroll.get_y() + this.mainThemeScroll.get_height() + 30); } else { if(!this.isFromMainMenu) { var btnsGapX = 15; this.drawBtn.set_y(this.sndBtn.set_y(this.sndBtnOff.set_y(this.saveBtn.set_y(0)))); this.drawBtn.set_x(this.initSwidth / 2 - this.drawBtn.get_width() - this.sndBtn.get_width() / 2 - btnsGapX); this.sndBtn.set_x(this.initSwidth / 2 - this.sndBtn.get_width() / 2); this.sndBtnOff.set_x(this.sndBtn.get_x()); this.saveBtn.set_x(this.initSwidth / 2 + this.sndBtn.get_width() / 2 + btnsGapX); } else { this.sndBtn.set_x(0); this.sndBtn.set_x(this.initSwidth / 2 - this.sndBtn.get_width() / 2); this.sndBtnOff.set_x(this.sndBtn.get_x()); this.sndBtnOff.set_y(this.sndBtn.get_y()); } this.twoPlayersModeCont.set_y(this.sndBtn.get_y() + this.sndBtn.get_height() + 15); this.mainThemeScroll.set_y(this.twoPlayersModeCont.get_y() + this.twoPlayersModeCont.get_height() + 30); this.chessesThemeScroll.set_y(this.mainThemeScroll.get_y() + this.mainThemeScroll.get_height() / 2 - this.chessesThemeScroll.get_height() / 2); this.mainThemeScroll.set_x(this.initSwidth / 2 - this.mainThemeScroll.maxSize / 2 - 180); this.chessesThemeScroll.set_x(this.initSwidth / 2 - this.chessesThemeScroll.maxSize / 2 + 180); } this.mainCont.set_y(this.initSheight / 2 - this.mainCont.get_height() / 2 - this.backBtn.get_height() / 2 - 30); this.backBtn.set_y(-this.get_y() + this.sHeight - this.backBtn.get_height() - 30); if(!this.isFromMainMenu) this.mainMenuBtn.set_y(this.backBtn.get_y()); } ,createBgs: function() { var lastIndex = 0; var sizeX = 0; var bg; this.isImagesFromAtlas = false; while(sizeX < Main.current.sWidth) { if(this.bgsArr[lastIndex] != null) { bg = this.bgsArr[lastIndex]; bg.set_visible(true); } else { bg = this.getBimap("img/bg.jpg",null,this.bgsSpr); this.bgsArr.push(bg); } bg.set_x(sizeX); bg.set_y(0); bg.set_scaleX(bg.set_scaleY(Main.current.sHeight / bg.bitmapData.height)); sizeX += bg.get_width() - 2; lastIndex++; } this.isImagesFromAtlas = true; var _g1 = lastIndex; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].set_visible(false); } } ,getBtnWithText: function(text,callBack) { var spr = this.getSprite(); var bm = this.getBimap("TEXT_bg",callBack,spr); var tf = this.addTextField("Aalgrs",60,0,false,"CENTER",0,8,bm.get_width(),bm.get_height(),false,0,0,spr); tf.set_text(text); return spr; } ,__class__: PauseMenu }); var PlayMenu = function(isOnePLayer) { if(isOnePLayer == null) isOnePLayer = false; if(isOnePLayer) { window.famobi_analytics.trackScreen("SCREEN_LEVELSELECT", "SCREEN_LEVELSELECT_ONEPLAYER"); } else { window.famobi_analytics.trackScreen("SCREEN_LEVELSELECT", "SCREEN_LEVELSELECT_TWOPLAYERS"); } this.curColorSelect = 1; this.bgsArr = []; Menu.call(this); this.isOnePLayer = isOnePLayer; Desk.current.playersType[0] = "human"; if(!isOnePLayer) Desk.current.playersType[1] = "human"; else Desk.current.playersType[1] = "computer"; this.mainBatch = this.main.batch; var contsGapY = 20; this.bgsSpr = this.getSprite(); this.createBgs(); this.mainCont = this.getSprite(); var botBtnsGapX = 40; this.playBtn = this.getBimap("play",$bind(this,this.playClick)); this.playBtn.set_x(this.sWidth / 2 + botBtnsGapX / 2); this.playBtn.set_y(this.sHeight - this.playBtn.get_height() - 50); this.backBtn = this.getBimap("Back-001",$bind(this,this.mainMenuClick)); this.backBtn.set_x(this.sWidth / 2 - this.backBtn.get_width() - botBtnsGapX / 2); this.backBtn.set_y(this.playBtn.get_y()); var difficultyIcon = this.getBimap("brain",null,this.mainCont); difficultyIcon.set_x(this.sWidth / 2 - difficultyIcon.get_width() / 2); this.upBtn = this.getBimap("arrowBot1_copy",$bind(this,this.minDiff),this.mainCont); this.dwBtn = this.getBimap("arrowUp1_copy",$bind(this,this.plusDiff),this.mainCont); var gapX = 27; this.upBtn.set_x(this.sWidth / 2 - this.upBtn.get_width() - gapX); this.dwBtn.set_x(this.sWidth / 2 + gapX + 7); this.upBtn.set_y(this.dwBtn.set_y(72)); this.upBtn.set_alpha((Desk.current.computerLevel==0)?0.5:1); this.dwBtn.set_alpha((Desk.current.computerLevel==6)?0.5:1); this.difficVal = new NumFontFromBatch(this.mainBatch,"digBright_"); this.difficVal.set_align("CENTER"); this.difficVal.widthToAlign = this.sWidth; this.difficVal.set_y(95); this.difficVal.set_text(Desk.current.computerLevel + ""); this.mainCont.addChild(this.difficVal); if(!isOnePLayer) this.upBtn.set_alpha(this.dwBtn.set_alpha(this.difficVal.set_alpha(difficultyIcon.set_alpha(0.5)))); Desk.current.inversedColors = false; var colorSelectCont = new openfl_display_Sprite(); this.mainCont.addChild(colorSelectCont); var colorBtnsY = 55; var btnsGapX = 10; this.randColorBtn = this.addButton("a1",0,colorBtnsY,false,false,$bind(this,this.randColorClick),colorSelectCont); this.whiteColorBtn = this.addButton("a2",this.randColorBtn.get_x() + this.randColorBtn.get_width() + btnsGapX,colorBtnsY,false,false,$bind(this,this.whiteColorClick),colorSelectCont); this.blackColorBtn = this.addButton("a3",this.whiteColorBtn.get_x() + this.whiteColorBtn.get_width() + btnsGapX,colorBtnsY,false,false,$bind(this,this.blackColorClick),colorSelectCont); if(isOnePLayer) this.randColorBtn.set_alpha(this.blackColorBtn.set_alpha(0.5)); else colorSelectCont.set_alpha(0.5); var contWidth = colorSelectCont.get_width(); colorSelectCont.set_x(this.sWidth / 2 - contWidth / 2); colorSelectCont.set_y(this.upBtn.get_y() + this.upBtn.get_height() + contsGapY); var separator = this.getBimap("separatorH",null,colorSelectCont); separator.set_x(contWidth / 2 - separator.get_width() / 2); separator.set_y(30); Desk.current.hideHints = false; var gameModeCont = new openfl_display_Sprite(); this.mainCont.addChild(gameModeCont); this.amatorModeBtn = this.addButton("plaier_a",0,20,false,false,$bind(this,this.amatorModeClick),gameModeCont); this.clearModeBtn = this.addButton("one_plaier",this.amatorModeBtn.get_x() + this.amatorModeBtn.get_width() + btnsGapX,this.amatorModeBtn.get_y(),false,false,$bind(this,this.clearModeClick),gameModeCont); separator = this.getBimap("separatorH",null,gameModeCont); separator.set_x(gameModeCont.get_width() / 2 - separator.get_width() / 2); separator.set_y(0); this.clearModeBtn.set_alpha(0.5); contWidth = gameModeCont.get_width(); gameModeCont.set_x(this.sWidth / 2 - contWidth / 2); gameModeCont.set_y(colorSelectCont.get_y() + colorSelectCont.get_height() + contsGapY + 30); this.mainCont.set_y(this.sHeight / 2 - this.mainCont.get_height() / 2 - this.playBtn.get_height() / 2 - 30); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); var wasY = this.get_y(); this.set_y(this.get_y() + this.sHeight); motion_Actuate.tween(this,0.3,{ y : wasY}).ease(motion_easing_Quad.get_easeOut()); }; $hxClasses["PlayMenu"] = PlayMenu; PlayMenu.__name__ = ["PlayMenu"]; PlayMenu.__super__ = Menu; PlayMenu.prototype = $extend(Menu.prototype,{ bgsArr: null ,bgsSpr: null ,playBtn: null ,backBtn: null ,difficVal: null ,mainCont: null ,isOnePLayer: null ,curColorSelect: null ,randColorBtn: null ,whiteColorBtn: null ,blackColorBtn: null ,amatorModeBtn: null ,clearModeBtn: null ,amatorModeClick: function() { Desk.current.hideHints = false; this.amatorModeBtn.set_alpha(1); this.clearModeBtn.set_alpha(0.5); } ,clearModeClick: function() { Desk.current.hideHints = true; this.amatorModeBtn.set_alpha(0.5); this.clearModeBtn.set_alpha(1); } ,randColorClick: function() { if(!this.isOnePLayer) return; Desk.current.inversedColors = Math.random() > 0.5; this.randColorBtn.set_alpha(1); this.whiteColorBtn.set_alpha(0.5); this.blackColorBtn.set_alpha(0.5); } ,whiteColorClick: function() { if(!this.isOnePLayer) return; Desk.current.inversedColors = false; this.randColorBtn.set_alpha(0.5); this.whiteColorBtn.set_alpha(1); this.blackColorBtn.set_alpha(0.5); } ,blackColorClick: function() { if(!this.isOnePLayer) return; Desk.current.inversedColors = true; this.randColorBtn.set_alpha(0.5); this.whiteColorBtn.set_alpha(0.5); this.blackColorBtn.set_alpha(1); } ,minDiff: function() { if(this.difficVal.get_alpha() < 1) return; Desk.current.computerLevel--; if(Desk.current.computerLevel < 0) Desk.current.computerLevel = 0; this.difficVal.set_text(Desk.current.computerLevel + ""); this.upBtn.set_alpha((Desk.current.computerLevel==0)?0.5:1); this.dwBtn.set_alpha((Desk.current.computerLevel==6)?0.5:1); } ,plusDiff: function() { if(this.difficVal.get_alpha() < 1) return; Desk.current.computerLevel++; if(Desk.current.computerLevel > 6) Desk.current.computerLevel = 6; this.difficVal.set_text(Desk.current.computerLevel + ""); this.upBtn.set_alpha((Desk.current.computerLevel==0)?0.5:1); this.dwBtn.set_alpha((Desk.current.computerLevel==6)?0.5:1); } ,playClick: function() { this.main.newGame(true); motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } ,mainMenuClick: function() { motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); this.main.addChild(new MainMenu()); } ,onResize: function() { this.createBgs(); this.bgsSpr.set_x(-this.get_x()); this.bgsSpr.set_y(-this.get_y()); this.playBtn.set_y(-this.get_y() + this.sHeight - this.playBtn.get_height() - 30); this.backBtn.set_y(this.playBtn.get_y()); } ,createBgs: function() { var lastIndex = 0; var sizeX = 0; var bg; this.isImagesFromAtlas = false; while(sizeX < Main.current.sWidth) { if(this.bgsArr[lastIndex] != null) { bg = this.bgsArr[lastIndex]; bg.set_visible(true); } else { bg = this.getBimap("img/bg.jpg",null,this.bgsSpr); this.bgsArr.push(bg); } bg.set_x(sizeX); bg.set_y(0); bg.set_scaleX(bg.set_scaleY(Main.current.sHeight / bg.bitmapData.height)); sizeX += bg.get_width() - 2; lastIndex++; } this.isImagesFromAtlas = true; var _g1 = lastIndex; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].set_visible(false); } } ,getBtnWithText: function(text,callBack) { var spr = this.getSprite(); var bm = this.getBimap("TEXT_bg",callBack,spr); var tf = this.addTextField("Aalgrs",60,0,false,"CENTER",0,8,bm.get_width(),bm.get_height(),false,0,0,spr); tf.set_text(text); return spr; } ,__class__: PlayMenu }); var openfl_display_BitmapData = function(width,height,transparent,fillColor) { if(fillColor == null) fillColor = -1; if(transparent == null) transparent = true; this.__usingPingPongTexture = false; this.transparent = transparent; if(width == null) width = 0; else width = width; if(height == null) height = 0; else height = height; if(width < 0) width = 0; else width = width; if(height < 0) height = 0; else height = height; this.width = width; this.height = height; this.rect = new openfl_geom_Rectangle(0,0,width,height); if(width > 0 && height > 0) { if(transparent) { if((fillColor & -16777216) == 0) fillColor = 0; } else fillColor = -16777216 | fillColor & 16777215; fillColor = fillColor << 8 | fillColor >> 24 & 255; this.image = new lime_graphics_Image(null,0,0,width,height,fillColor); this.image.set_transparent(transparent); this.__isValid = true; } this.__createUVs(); this.__worldTransform = new openfl_geom_Matrix(); this.__worldColorTransform = new openfl_geom_ColorTransform(); }; $hxClasses["openfl.display.BitmapData"] = openfl_display_BitmapData; openfl_display_BitmapData.__name__ = ["openfl","display","BitmapData"]; openfl_display_BitmapData.__interfaces__ = [openfl_display_IBitmapDrawable]; openfl_display_BitmapData.fromBase64 = function(base64,type,onload) { var bitmapData = new openfl_display_BitmapData(0,0,true); bitmapData.__fromBase64(base64,type,onload); return bitmapData; }; openfl_display_BitmapData.fromBytes = function(bytes,rawAlpha,onload) { var bitmapData = new openfl_display_BitmapData(0,0,true); bitmapData.__fromBytes(bytes,rawAlpha,onload); return bitmapData; }; openfl_display_BitmapData.fromCanvas = function(canvas,transparent) { if(transparent == null) transparent = true; if(canvas == null) return null; var bitmapData = new openfl_display_BitmapData(0,0,transparent); bitmapData.__fromImage(lime_graphics_Image.fromCanvas(canvas)); bitmapData.image.set_transparent(transparent); return bitmapData; }; openfl_display_BitmapData.fromFile = function(path,onload,onerror) { var bitmapData = new openfl_display_BitmapData(0,0,true); bitmapData.__fromFile(path,onload,onerror); return bitmapData; }; openfl_display_BitmapData.fromImage = function(image,transparent) { if(transparent == null) transparent = true; if(image == null || image.buffer == null) return null; var bitmapData = new openfl_display_BitmapData(0,0,transparent); bitmapData.__fromImage(image); bitmapData.image.set_transparent(transparent); return bitmapData; }; openfl_display_BitmapData.__asRenderTexture = function(width,height) { if(height == null) height = 0; if(width == null) width = 0; var b = new openfl_display_BitmapData(0,0); b.__resize(width,height); return b; }; openfl_display_BitmapData.prototype = { height: null ,image: null ,rect: null ,transparent: null ,width: null ,__worldTransform: null ,__worldColorTransform: null ,__cacheAsBitmap: null ,__blendMode: null ,__shader: null ,__buffer: null ,__isValid: null ,__surface: null ,__texture: null ,__textureImage: null ,__pingPongTexture: null ,__usingPingPongTexture: null ,__uvData: null ,applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) { if(!this.__isValid || sourceBitmapData == null || !sourceBitmapData.__isValid) return; lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this.image); lime_graphics_utils_ImageCanvasUtil.createImageData(this.image); lime_graphics_utils_ImageCanvasUtil.convertToCanvas(sourceBitmapData.image); lime_graphics_utils_ImageCanvasUtil.createImageData(sourceBitmapData.image); filter.__applyFilter(this.image.buffer.__srcImageData,sourceBitmapData.image.buffer.__srcImageData,sourceRect,destPoint); this.image.dirty = true; } ,clone: function() { if(!this.__isValid) return new openfl_display_BitmapData(this.width,this.height,this.transparent); else return openfl_display_BitmapData.fromImage(this.image.clone(),this.transparent); } ,colorTransform: function(rect,colorTransform) { if(!this.__isValid) return; this.image.colorTransform(rect.__toLimeRectangle(),colorTransform.__toLimeColorMatrix()); this.__usingPingPongTexture = false; } ,compare: function(otherBitmapData) { if(otherBitmapData == this) return 0; else if(otherBitmapData == null) return -1; else if(this.__isValid == false || otherBitmapData.__isValid == false) return -2; else if(this.width != otherBitmapData.width) return -3; else if(this.height != otherBitmapData.height) return -4; if(this.image != null && otherBitmapData.image != null && this.image.get_format() == otherBitmapData.image.get_format()) { var bytes = this.image.get_data(); var otherBytes = otherBitmapData.image.get_data(); var equal = true; var _g1 = 0; var _g = bytes.length; while(_g1 < _g) { var i = _g1++; if(bytes[i] != otherBytes[i]) { equal = false; break; } } if(equal) return 0; } var bitmapData = null; var foundDifference; var pixel; var otherPixel; var comparePixel; var r; var g; var b; var a; var _g11 = 0; var _g2 = this.height; while(_g11 < _g2) { var y = _g11++; var _g3 = 0; var _g21 = this.width; while(_g3 < _g21) { var x = _g3++; foundDifference = false; pixel = this.getPixel32(x,y); otherPixel = otherBitmapData.getPixel32(x,y); comparePixel = 0; if(pixel != otherPixel) { r = (pixel >> 16 & 255) - (otherPixel >> 16 & 255); g = (pixel >> 8 & 255) - (otherPixel >> 8 & 255); b = (pixel & 255) - (otherPixel & 255); if(r < 0) r *= -1; if(g < 0) g *= -1; if(b < 0) b *= -1; if(r == 0 && g == 0 && b == 0) { a = (pixel >> 24 & 255) - (otherPixel >> 24 & 255); if(a != 0) { comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | 16711680 | (comparePixel >> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; 255; comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | (comparePixel >> 16 & 255 & 255) << 16 | 65280 | comparePixel & 255 & 255; 255; comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | (comparePixel >> 16 & 255 & 255) << 16 | (comparePixel >> 8 & 255 & 255) << 8 | 255; 255; comparePixel = (a & 255) << 24 | (comparePixel >> 16 & 255 & 255) << 16 | (comparePixel >> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; a; foundDifference = true; } } else { comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | (r & 255) << 16 | (comparePixel >> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; r; comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | (comparePixel >> 16 & 255 & 255) << 16 | (g & 255) << 8 | comparePixel & 255 & 255; g; comparePixel = (comparePixel >> 24 & 255 & 255) << 24 | (comparePixel >> 16 & 255 & 255) << 16 | (comparePixel >> 8 & 255 & 255) << 8 | b & 255; b; comparePixel = -16777216 | (comparePixel >> 16 & 255 & 255) << 16 | (comparePixel >> 8 & 255 & 255) << 8 | comparePixel & 255 & 255; 255; foundDifference = true; } } if(foundDifference) { if(bitmapData == null) bitmapData = new openfl_display_BitmapData(this.width,this.height,this.transparent || otherBitmapData.transparent,0); bitmapData.setPixel32(x,y,comparePixel); } } } if(bitmapData == null) return 0; return bitmapData; } ,copyChannel: function(sourceBitmapData,sourceRect,destPoint,sourceChannel,destChannel) { if(!this.__isValid) return; var sourceChannel1; switch(sourceChannel) { case 1: sourceChannel1 = lime_graphics_ImageChannel.RED; break; case 2: sourceChannel1 = lime_graphics_ImageChannel.GREEN; break; case 4: sourceChannel1 = lime_graphics_ImageChannel.BLUE; break; case 8: sourceChannel1 = lime_graphics_ImageChannel.ALPHA; break; default: return; } var destChannel1; switch(destChannel) { case 1: destChannel1 = lime_graphics_ImageChannel.RED; break; case 2: destChannel1 = lime_graphics_ImageChannel.GREEN; break; case 4: destChannel1 = lime_graphics_ImageChannel.BLUE; break; case 8: destChannel1 = lime_graphics_ImageChannel.ALPHA; break; default: return; } this.image.copyChannel(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),sourceChannel1,destChannel1); this.__usingPingPongTexture = false; } ,copyPixels: function(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha) { if(mergeAlpha == null) mergeAlpha = false; if(!this.__isValid || sourceBitmapData == null) return; this.image.copyPixels(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null?alphaBitmapData.image:null,alphaPoint != null?alphaPoint.__toLimeVector2():null,mergeAlpha); this.__usingPingPongTexture = false; } ,dispose: function() { this.image = null; this.width = 0; this.height = 0; this.rect = null; this.__isValid = false; if(this.__texture != null) { var renderer = openfl_Lib.current.stage.__renderer; if(renderer != null) { var renderSession = renderer.renderSession; var gl = renderSession.gl; if(gl != null) { gl.deleteTexture(this.__texture); this.__texture = null; } } } if(this.__pingPongTexture != null) { this.__pingPongTexture.destroy(); this.__pingPongTexture = null; } } ,draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) { if(smoothing == null) smoothing = false; if(!this.__isValid) return; if(colorTransform != null) { var copy = new openfl_display_BitmapData(Reflect.getProperty(source,"width"),Reflect.getProperty(source,"height"),true,0); copy.draw(source); copy.colorTransform(copy.rect,colorTransform); source = copy; } lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this.image); lime_graphics_utils_ImageCanvasUtil.sync(this.image,true); var buffer = this.image.buffer; var renderSession = new openfl__$internal_renderer_RenderSession(); renderSession.context = buffer.__srcContext; renderSession.roundPixels = true; renderSession.maskManager = new openfl__$internal_renderer_canvas_CanvasMaskManager(renderSession); if(!smoothing) { buffer.__srcContext.mozImageSmoothingEnabled = false; buffer.__srcContext.msImageSmoothingEnabled = false; buffer.__srcContext.imageSmoothingEnabled = false; } if(clipRect != null) renderSession.maskManager.pushRect(clipRect,new openfl_geom_Matrix()); var matrixCache = source.__worldTransform; source.__updateTransforms(matrix != null?matrix:new openfl_geom_Matrix()); source.__updateChildren(false); source.__renderCanvas(renderSession); source.__updateTransforms(matrixCache); source.__updateChildren(true); if(!smoothing) { buffer.__srcContext.mozImageSmoothingEnabled = true; buffer.__srcContext.msImageSmoothingEnabled = true; buffer.__srcContext.imageSmoothingEnabled = true; } if(clipRect != null) renderSession.maskManager.popMask(); buffer.__srcContext.setTransform(1,0,0,1,0,0); buffer.__srcImageData = null; buffer.data = null; } ,encode: function(rect,compressor,byteArray) { if(!this.__isValid || rect == null) return byteArray = null; if(js_Boot.__instanceof(compressor,openfl_display_PNGEncoderOptions)) return byteArray = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(this.image.encode("png")); else if(js_Boot.__instanceof(compressor,openfl_display_JPEGEncoderOptions)) return byteArray = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(this.image.encode("jpg",(js_Boot.__cast(compressor , openfl_display_JPEGEncoderOptions)).quality)); return byteArray = null; } ,fillRect: function(rect,color) { if(!this.__isValid || rect == null) return; if(this.transparent && (color & -16777216) == 0) color = 0; this.image.fillRect(rect.__toLimeRectangle(),color,1); this.__usingPingPongTexture = false; } ,floodFill: function(x,y,color) { if(!this.__isValid) return; this.image.floodFill(x,y,color,1); this.__usingPingPongTexture = false; } ,generateFilterRect: function(sourceRect,filter) { return sourceRect.clone(); } ,getBuffer: function(gl) { if(this.__buffer == null) { var data = [this.width,this.height,0,1,1,0,this.height,0,0,1,this.width,0,0,1,0,0,0,0,0,0]; this.__buffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer); gl.bufferData(gl.ARRAY_BUFFER,(function($this) { var $r; var this1; if(data != null) this1 = new Float32Array(data); else this1 = null; $r = this1; return $r; }(this)),gl.STATIC_DRAW); gl.bindBuffer(gl.ARRAY_BUFFER,null); } return this.__buffer; } ,getColorBoundsRect: function(mask,color,findColor) { if(findColor == null) findColor = true; if(!this.__isValid) return new openfl_geom_Rectangle(0,0,this.width,this.height); if(!this.transparent || (mask >> 24 & 255) > 0) { var color1 = color; if((color1 >> 24 & 255) == 0) color1 = 0; } var rect = this.image.getColorBoundsRect(mask,color,findColor,1); return new openfl_geom_Rectangle(rect.x,rect.y,rect.width,rect.height); } ,getPixel: function(x,y) { if(!this.__isValid) return 0; return this.image.getPixel(x,y,1); } ,getPixel32: function(x,y) { if(!this.__isValid) return 0; return this.image.getPixel32(x,y,1); } ,getPixels: function(rect) { if(!this.__isValid) return null; if(rect == null) rect = this.rect; return openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(this.image.getPixels(rect.__toLimeRectangle(),1)); } ,getSurface: function() { if(!this.__isValid) return null; if(this.__surface == null) this.__surface = lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.fromImage(this.image); return this.__surface; } ,getTexture: function(gl) { if(!this.__isValid) return null; if(this.__usingPingPongTexture && this.__pingPongTexture != null) return this.__pingPongTexture.get_texture(); if(this.__texture == null) { this.__texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D,this.__texture); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST); this.image.dirty = true; } if(this.image != null && this.image.dirty) { var internalFormat; var format; if(this.__surface != null) lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$.flush(this.__surface); if(this.image.buffer.bitsPerPixel == 1) { internalFormat = gl.ALPHA; format = gl.ALPHA; } else { internalFormat = gl.RGBA; format = gl.RGBA; } gl.bindTexture(gl.TEXTURE_2D,this.__texture); var textureImage = this.image; if(!textureImage.get_premultiplied() && textureImage.get_transparent() || textureImage.get_format() != 0) { textureImage = textureImage.clone(); textureImage.set_format(0); textureImage.set_premultiplied(true); } gl.texImage2D(gl.TEXTURE_2D,0,internalFormat,this.width,this.height,0,format,gl.UNSIGNED_BYTE,textureImage.get_data()); gl.bindTexture(gl.TEXTURE_2D,null); this.image.dirty = false; } return this.__texture; } ,getVector: function(rect) { var pixels = this.getPixels(rect); var length = Std["int"](openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(pixels) / 4); var result; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(length); this1.data = this2; this1.length = length; this1.fixed = true; result = this1; var _g = 0; while(_g < length) { var i = _g++; var value = pixels.readUnsignedInt(); if(!result.fixed) { if(i >= result.length) result.length = i + 1; if(result.data.length < result.length) { var data; var this3; this3 = new Array(result.data.length + 10); data = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(result.data,0,data,0,result.data.length); result.data = data; } } result.data[i] = value; } return result; } ,histogram: function(hRect) { var rect; if(hRect != null) rect = hRect; else rect = new openfl_geom_Rectangle(0,0,this.width,this.height); var pixels = this.getPixels(rect); var result; var _g = []; var _g1 = 0; while(_g1 < 4) { var i = _g1++; _g.push((function($this) { var $r; var _g2 = []; { var _g3 = 0; while(_g3 < 256) { var j = _g3++; _g2.push(0); } } $r = _g2; return $r; }(this))); } result = _g; var _g21 = 0; var _g11 = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(pixels); while(_g21 < _g11) { var i1 = _g21++; ++result[i1 % 4][pixels.readUnsignedByte()]; } return result; } ,hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) { if(secondAlphaThreshold == null) secondAlphaThreshold = 1; if(!this.__isValid) return false; if(js_Boot.__instanceof(secondObject,openfl_display_Bitmap)) secondObject = (js_Boot.__cast(secondObject , openfl_display_Bitmap)).bitmapData; if(js_Boot.__instanceof(secondObject,openfl_geom_Point)) { var secondPoint = secondObject; var x = secondPoint.x - firstPoint.x | 0; var y = secondPoint.y - firstPoint.y | 0; if(this.rect.contains(x,y)) { var pixel = this.getPixel32(x,y); if((pixel >> 24 & 255) >= firstAlphaThreshold) return true; } } else if(js_Boot.__instanceof(secondObject,openfl_display_BitmapData)) { var secondBitmapData = secondObject; var x1; var y1; if(secondBitmapDataPoint == null) { x1 = 0; y1 = 0; } else { x1 = secondBitmapDataPoint.x - firstPoint.x | 0; y1 = secondBitmapDataPoint.y - firstPoint.y | 0; } if(this.rect.contains(x1,y1)) { var hitRect = openfl_geom_Rectangle.__temp; hitRect.setTo(x1,y1,Math.min(secondBitmapData.width,this.width - x1),Math.min(secondBitmapData.height,this.height - y1)); var pixels = this.getPixels(hitRect); hitRect.offset(-x1,-y1); var testPixels = secondBitmapData.getPixels(hitRect); var length = hitRect.width * hitRect.height | 0; var pixel1; var testPixel; var _g = 0; while(_g < length) { var i = _g++; pixel1 = pixels.readUnsignedInt(); testPixel = testPixels.readUnsignedInt(); if((pixel1 >> 24 & 255) >= firstAlphaThreshold && (testPixel >> 24 & 255) >= secondAlphaThreshold) return true; } return false; } } else if(js_Boot.__instanceof(secondObject,openfl_geom_Rectangle)) { var secondRectangle = openfl_geom_Rectangle.__temp; secondRectangle.copyFrom(secondObject); secondRectangle.offset(-firstPoint.x,-firstPoint.y); secondRectangle.__contract(0,0,this.width,this.height); if(secondRectangle.width > 0 && secondRectangle.height > 0) { var pixels1 = this.getPixels(secondRectangle); var length1 = Std["int"](openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(pixels1) / 4); var pixel2; var _g1 = 0; while(_g1 < length1) { var i1 = _g1++; pixel2 = pixels1.readUnsignedInt(); if((pixel2 >> 24 & 255) >= firstAlphaThreshold) return true; } } } return false; } ,lock: function() { } ,merge: function(sourceBitmapData,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(!this.__isValid || sourceBitmapData == null || !sourceBitmapData.__isValid || sourceRect == null || destPoint == null) return; this.image.merge(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); this.__usingPingPongTexture = false; } ,noise: function(randomSeed,low,high,channelOptions,grayScale) { if(grayScale == null) grayScale = false; if(channelOptions == null) channelOptions = 7; if(high == null) high = 255; if(low == null) low = 0; if(!this.__isValid) return; var rand; var func = function() { randomSeed = randomSeed * 1103515245 + 12345; return Std["int"](Math.abs(randomSeed / 65536)) % 32768; }; rand = func; rand(); var range = high - low; var data = new openfl_utils_ByteArrayData(0); var redChannel = (channelOptions & 1) == 1; var greenChannel = (channelOptions & 2) >> 1 == 1; var blueChannel = (channelOptions & 4) >> 2 == 1; var alphaChannel = (channelOptions & 8) >> 3 == 1; var _g1 = 0; var _g = this.height; while(_g1 < _g) { var y = _g1++; var _g3 = 0; var _g2 = this.width; while(_g3 < _g2) { var x = _g3++; var red = 0; var blue = 0; var green = 0; var alpha = 255; if(grayScale) { red = green = blue = low + rand() % range; alpha = 255; } else { if(redChannel) red = low + rand() % range; if(greenChannel) green = low + rand() % range; if(blueChannel) blue = low + rand() % range; if(alphaChannel) alpha = low + rand() % range; } var rgb = alpha; rgb = (rgb << 8) + red; rgb = (rgb << 8) + green; rgb = (rgb << 8) + blue; this.setPixel32(x,y,rgb); } } } ,paletteMap: function(sourceBitmapData,sourceRect,destPoint,redArray,greenArray,blueArray,alphaArray) { var sw = sourceRect.width | 0; var sh = sourceRect.height | 0; var pixels = this.getPixels(sourceRect); pixels.position = 0; var pixelValue; var r; var g; var b; var a; var color; var c1; var c2; var c3; var c4; var _g1 = 0; var _g = sh * sw; while(_g1 < _g) { var i = _g1++; pixelValue = pixels.readUnsignedInt(); if(alphaArray == null) c1 = pixelValue & -16777216; else c1 = alphaArray[pixelValue >> 24 & 255]; if(redArray == null) c2 = pixelValue & 16711680; else c2 = redArray[pixelValue >> 16 & 255]; if(greenArray == null) c3 = pixelValue & 65280; else c3 = greenArray[pixelValue >> 8 & 255]; if(blueArray == null) c4 = pixelValue & 255; else c4 = blueArray[pixelValue & 255]; a = (c1 >> 24 & 255) + (c2 >> 24 & 255) + (c3 >> 24 & 255) + (c4 >> 24 & 255); if(a > 255) a == 255; r = (c1 >> 16 & 255) + (c2 >> 16 & 255) + (c3 >> 16 & 255) + (c4 >> 16 & 255); if(r > 255) r == 255; g = (c1 >> 8 & 255) + (c2 >> 8 & 255) + (c3 >> 8 & 255) + (c4 >> 8 & 255); if(g > 255) g == 255; b = (c1 & 255) + (c2 & 255) + (c3 & 255) + (c4 & 255); if(b > 255) b == 255; color = a << 24 | r << 16 | g << 8 | b; pixels.position = i * 4; pixels.writeUnsignedInt(color); } pixels.position = 0; var destRect = new openfl_geom_Rectangle(destPoint.x,destPoint.y,sw,sh); this.setPixels(destRect,pixels); } ,perlinNoise: function(baseX,baseY,numOctaves,randomSeed,stitch,fractalNoise,channelOptions,grayScale,offsets) { if(grayScale == null) grayScale = false; if(channelOptions == null) channelOptions = 7; openfl_Lib.notImplemented("BitmapData.perlinNoise"); } ,scroll: function(x,y) { if(!this.__isValid) return; this.image.scroll(x,y); this.__usingPingPongTexture = false; } ,setPixel: function(x,y,color) { if(!this.__isValid) return; this.image.setPixel(x,y,color,1); this.__usingPingPongTexture = false; } ,setPixel32: function(x,y,color) { if(!this.__isValid) return; this.image.setPixel32(x,y,color,1); this.__usingPingPongTexture = false; } ,setPixels: function(rect,byteArray) { if(!this.__isValid || rect == null) return; this.image.setPixels(rect.__toLimeRectangle(),openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(byteArray),1); this.__usingPingPongTexture = false; } ,setVector: function(rect,inputVector) { var byteArray = new openfl_utils_ByteArrayData(0); openfl_utils__$ByteArray_ByteArray_$Impl_$.set_length(byteArray,inputVector.length * 4); var _g = 0; while(_g < inputVector.length) { var color = inputVector.data[_g]; ++_g; byteArray.writeUnsignedInt(color); } byteArray.position = 0; this.setPixels(rect,byteArray); } ,threshold: function(sourceBitmapData,sourceRect,destPoint,operation,threshold,color,mask,copySource) { if(copySource == null) copySource = false; if(mask == null) mask = -1; if(color == null) color = 0; if(sourceBitmapData == null || sourceRect == null || destPoint == null || sourceRect.x > sourceBitmapData.width || sourceRect.y > sourceBitmapData.height || destPoint.x > this.width || destPoint.y > this.height) return 0; return this.image.threshold(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),operation,threshold,color,mask,copySource,1); } ,unlock: function(changeRect) { } ,__createUVs: function(x0,y0,x1,y1,x2,y2,x3,y3) { if(y3 == null) y3 = 1; if(x3 == null) x3 = 0; if(y2 == null) y2 = 1; if(x2 == null) x2 = 1; if(y1 == null) y1 = 0; if(x1 == null) x1 = 1; if(y0 == null) y0 = 0; if(x0 == null) x0 = 0; if(this.__uvData == null) this.__uvData = new openfl_display_TextureUvs(); this.__uvData.x0 = x0; this.__uvData.y0 = y0; this.__uvData.x1 = x1; this.__uvData.y1 = y1; this.__uvData.x2 = x2; this.__uvData.y2 = y2; this.__uvData.x3 = x3; this.__uvData.y3 = y3; } ,__drawGL: function(renderSession,source,matrix,colorTransform,blendMode,clipRect,smoothing,drawSelf,clearBuffer,readPixels,powerOfTwo) { if(powerOfTwo == null) powerOfTwo = true; if(readPixels == null) readPixels = false; if(clearBuffer == null) clearBuffer = false; if(drawSelf == null) drawSelf = false; if(smoothing == null) smoothing = false; this.__pingPongTexture = openfl__$internal_renderer_opengl_GLBitmap.pushFramebuffer(renderSession,this.__pingPongTexture,this.rect,smoothing,this.transparent,clearBuffer,powerOfTwo); openfl__$internal_renderer_opengl_GLBitmap.drawBitmapDrawable(renderSession,drawSelf?this:null,source,matrix,colorTransform,blendMode,clipRect); openfl__$internal_renderer_opengl_GLBitmap.popFramebuffer(renderSession,readPixels?this.image:null); var uv = this.__pingPongTexture.get_renderTexture().__uvData; this.__createUVs(uv.x0,uv.y0,uv.x1,uv.y1,uv.x2,uv.y2,uv.x3,uv.y3); this.__isValid = true; this.__usingPingPongTexture = true; } ,__fromBase64: function(base64,type,onload) { var _g = this; lime_graphics_Image.fromBase64(base64,type,function(image) { _g.__fromImage(image); if(onload != null) onload(_g); }); } ,__fromBytes: function(bytes,rawAlpha,onload) { var _g = this; lime_graphics_Image.fromBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(bytes),function(image) { _g.__fromImage(image); if(rawAlpha != null) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); var data = image.buffer.data; var _g2 = 0; var _g1 = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(rawAlpha); while(_g2 < _g1) { var i = _g2++; var val = rawAlpha.readUnsignedByte(); data[i * 4 + 3] = val; } image.dirty = true; } if(onload != null) onload(_g); }); } ,__fromFile: function(path,onload,onerror) { var _g = this; lime_graphics_Image.fromFile(path,function(image) { _g.__fromImage(image); if(onload != null) onload(_g); },onerror); } ,__fromImage: function(image) { if(image != null && image.buffer != null) { this.image = image; this.width = image.width; this.height = image.height; this.rect = new openfl_geom_Rectangle(0,0,image.width,image.height); this.__isValid = true; } } ,__renderCairo: function(renderSession) { if(!this.__isValid) return; var cairo = renderSession.cairo; if(this.__worldTransform == null) this.__worldTransform = new openfl_geom_Matrix(); var transform = this.__worldTransform; if(renderSession.roundPixels) { var matrix = transform.__toMatrix3(); matrix.tx = Math.round(matrix.tx); matrix.ty = Math.round(matrix.ty); cairo.set_matrix(matrix); } else cairo.set_matrix(transform.__toMatrix3()); var surface = this.getSurface(); if(surface != null) { var pattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createForSurface(surface); if(cairo.get_antialias() == 1) lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_filter(pattern,3); else lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_filter(pattern,1); cairo.set_source(pattern); cairo.paint(); } } ,__renderCairoMask: function(renderSession) { } ,__renderCanvas: function(renderSession) { if(!this.__isValid) return; lime_graphics_utils_ImageCanvasUtil.sync(this.image,false); var context = renderSession.context; if(this.__worldTransform == null) this.__worldTransform = new openfl_geom_Matrix(); context.globalAlpha = 1; var transform = this.__worldTransform; if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); context.drawImage(this.image.get_src(),0,0); } ,__renderCanvasMask: function(renderSession) { } ,__renderGL: function(renderSession) { renderSession.spriteBatch.renderBitmapData(this,false,this.__worldTransform,this.__worldColorTransform,this.__worldColorTransform.alphaMultiplier,this.__blendMode,this.__shader); } ,__resize: function(width,height) { this.width = width; this.height = height; this.rect.width = width; this.rect.height = height; } ,__sync: function() { lime_graphics_utils_ImageCanvasUtil.sync(this.image,false); } ,__updateChildren: function(transformOnly) { } ,__updateMask: function(maskGraphics) { } ,__updateTransforms: function(overrideTransform) { if(overrideTransform == null) this.__worldTransform.identity(); else this.__worldTransform = overrideTransform; } ,__class__: openfl_display_BitmapData }; var SponsorLogo = function(width,height,transparent,fillRGBA,onload) { if(fillRGBA == null) fillRGBA = -1; if(transparent == null) transparent = true; openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA); if(SponsorLogo.preload != null) this.__fromImage(SponsorLogo.preload); else this.__fromBase64(haxe_Resource.getString(SponsorLogo.resourceName),SponsorLogo.resourceType,function(b) { if(SponsorLogo.preload == null) SponsorLogo.preload = b.image; if(onload != null) onload(b); }); }; $hxClasses["SponsorLogo"] = SponsorLogo; SponsorLogo.__name__ = ["SponsorLogo"]; SponsorLogo.preload = null; SponsorLogo.__super__ = openfl_display_BitmapData; SponsorLogo.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: SponsorLogo }); var GameLogo = function(width,height,transparent,fillRGBA,onload) { if(fillRGBA == null) fillRGBA = -1; if(transparent == null) transparent = true; openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA); if(GameLogo.preload != null) this.__fromImage(GameLogo.preload); else this.__fromBase64(haxe_Resource.getString(GameLogo.resourceName),GameLogo.resourceType,function(b) { if(GameLogo.preload == null) GameLogo.preload = b.image; if(onload != null) onload(b); }); }; $hxClasses["GameLogo"] = GameLogo; GameLogo.__name__ = ["GameLogo"]; GameLogo.preload = null; GameLogo.__super__ = openfl_display_BitmapData; GameLogo.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: GameLogo }); var LoadMeter = function(width,height,transparent,fillRGBA,onload) { if(fillRGBA == null) fillRGBA = -1; if(transparent == null) transparent = true; openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA); if(LoadMeter.preload != null) this.__fromImage(LoadMeter.preload); else this.__fromBase64(haxe_Resource.getString(LoadMeter.resourceName),LoadMeter.resourceType,function(b) { if(LoadMeter.preload == null) LoadMeter.preload = b.image; if(onload != null) onload(b); }); }; $hxClasses["LoadMeter"] = LoadMeter; LoadMeter.__name__ = ["LoadMeter"]; LoadMeter.preload = null; LoadMeter.__super__ = openfl_display_BitmapData; LoadMeter.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: LoadMeter }); var LoadBarContur = function(width,height,transparent,fillRGBA,onload) { if(fillRGBA == null) fillRGBA = -1; if(transparent == null) transparent = true; openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA); if(LoadBarContur.preload != null) this.__fromImage(LoadBarContur.preload); else this.__fromBase64(haxe_Resource.getString(LoadBarContur.resourceName),LoadBarContur.resourceType,function(b) { if(LoadBarContur.preload == null) LoadBarContur.preload = b.image; if(onload != null) onload(b); }); }; $hxClasses["LoadBarContur"] = LoadBarContur; LoadBarContur.__name__ = ["LoadBarContur"]; LoadBarContur.preload = null; LoadBarContur.__super__ = openfl_display_BitmapData; LoadBarContur.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: LoadBarContur }); var LoadBarFill = function(width,height,transparent,fillRGBA,onload) { if(fillRGBA == null) fillRGBA = -1; if(transparent == null) transparent = true; openfl_display_BitmapData.call(this,0,0,transparent,fillRGBA); if(LoadBarFill.preload != null) this.__fromImage(LoadBarFill.preload); else this.__fromBase64(haxe_Resource.getString(LoadBarFill.resourceName),LoadBarFill.resourceType,function(b) { if(LoadBarFill.preload == null) LoadBarFill.preload = b.image; if(onload != null) onload(b); }); }; $hxClasses["LoadBarFill"] = LoadBarFill; LoadBarFill.__name__ = ["LoadBarFill"]; LoadBarFill.preload = null; LoadBarFill.__super__ = openfl_display_BitmapData; LoadBarFill.prototype = $extend(openfl_display_BitmapData.prototype,{ __class__: LoadBarFill }); var Preloader = function() { window.famobi_analytics.trackScreen("SCREEN_SPLASH"); this.wasHeight = 0; this.wasWidth = 0; this.horseAng = 0; this._painted = false; this.inited = false; NMEPreloader.call(this); Preloader.instance = this; var isMobileBrowser = false; var evalString = ""; evalString += "/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Opera Mini/i.test(navigator.userAgent)"; isMobileBrowser = eval(evalString); if(!isMobileBrowser) eval("document.getElementById('openfl-content').style.overflow = 'hidden'"); this.mainCont = new openfl_display_Sprite(); this.addChild(this.mainCont); this.sponsorLogo = new openfl_display_Sprite(); this.sponsorBm = new openfl_display_Bitmap(new SponsorLogo(0,0),1,true); this.sponsorLogo.addChild(this.sponsorBm); this.gameLogo = new openfl_display_Bitmap(new GameLogo(0,0),1,true); this.barContur = new openfl_display_Bitmap(new LoadBarContur(0,0)); this.bar = new openfl_display_Bitmap(new LoadBarFill(0,0)); this.loadMetrCont = new openfl_display_Sprite(); this.loadMetr = new openfl_display_Bitmap(new LoadMeter(0,0),1,true); this.getChildAt(0).set_visible(false); this.getChildAt(1).set_visible(false); openfl_Lib.current.stage.addEventListener("resize",$bind(this,this.stage_onResize)); window.document.addEventListener("touchstart",function(e) { e.preventDefault(); },false); window.document.addEventListener("touchmove",function(e1) { e1.preventDefault(); },false); new Sounds(); }; $hxClasses["Preloader"] = Preloader; Preloader.__name__ = ["Preloader"]; Preloader.instance = null; Preloader.openMoreGames = function() { window.famobi.moreGamesLink(); }; Preloader.remove = function() { Preloader.instance.onLoadedRemove(); }; Preloader.__super__ = NMEPreloader; Preloader.prototype = $extend(NMEPreloader.prototype,{ mainCont: null ,sponsorBm: null ,sponsorLogo: null ,gameLogo: null ,loadMetr: null ,loadMetrCont: null ,barContur: null ,bar: null ,inited: null ,_painted: null ,overlay: null ,horseAng: null ,wasWidth: null ,wasHeight: null ,stage_onResize: function(e) { this.init(); } ,init: function() { this.set_x(0); this.set_y(0); this.wasWidth = openfl_Lib.current.stage.stageWidth; this.wasHeight = openfl_Lib.current.stage.stageHeight; this.mainCont.set_scaleX(this.mainCont.set_scaleY(1)); this.sponsorLogo.set_x(-this.sponsorLogo.get_width() / 2); if(!this.inited) this.mainCont.addChild(this.sponsorLogo); this.sponsorLogo.set_scaleY(0.1); var graphics = this.sponsorBm.__graphics; this.gameLogo.set_width(Math.min(this.gameLogo.bitmapData.width * 1.5,this.wasWidth * 0.9)); this.gameLogo.set_scaleY(this.gameLogo.get_scaleX()); this.gameLogo.set_x(-this.gameLogo.get_width() / 2); this.gameLogo.set_y(this.sponsorLogo.get_y() + this.sponsorLogo.get_height() + 60); if(!this.inited) this.mainCont.addChild(this.gameLogo); this.loadMetr.set_x(-this.loadMetr.get_width() / 2); this.loadMetr.set_y(-this.loadMetr.get_height()); if(!this.inited) this.loadMetrCont.addChild(this.loadMetr); this.loadMetrCont.set_x(-this.bar.get_width() / 2); this.loadMetrCont.set_y(this.gameLogo.get_y() + 170); if(!this.inited) this.mainCont.addChild(this.loadMetrCont); this.bar.set_x(-this.bar.bitmapData.width / 2); this.bar.set_y(this.loadMetrCont.get_y() + 5); this.barContur.set_x(this.bar.get_x() - 2); this.barContur.set_y(this.bar.get_y() - 2); if(!this.inited) this.mainCont.addChild(this.barContur); if(!this.inited) this.mainCont.addChild(this.bar); this.bar.set_width(1); this.set_x(this.wasWidth / 2); if(this.mainCont.get_height() > openfl_Lib.current.stage.stageHeight) { var s = openfl_Lib.current.stage.stageHeight / (this.mainCont.get_height() + 50); this.mainCont.set_scaleX(this.mainCont.set_scaleY(s)); } this.set_y(this.wasHeight / 2 - this.mainCont.get_height() / 2); if(this.overlay == null) { this.overlay = new openfl_display_Bitmap(new openfl_display_BitmapData(100,100,true,0)); this.addChildAt(this.overlay,0); } this.overlay.set_width(this.wasWidth); this.overlay.set_height(this.wasHeight); this.overlay.set_x(-this.get_x()); this.overlay.set_y(-this.get_y()); this.inited = true; } ,onUpdate: function(filesLoaded,filesTotal) { if(!this.inited && openfl_Lib.current.stage.stageWidth != 0 && openfl_Lib.current.stage.stageHeight != 0) this.init(); if(this.inited && (this.wasWidth != openfl_Lib.current.stage.stageWidth || this.wasHeight != openfl_Lib.current.stage.stageHeight)) this.init(); NMEPreloader.prototype.onUpdate.call(this,filesLoaded,filesTotal); this.bar.set_width(218 * filesLoaded / filesTotal); this.loadMetrCont.set_x(this.bar.get_x() + this.bar.get_width()); this.horseAng += 0.6; this.loadMetrCont.set_rotation(15 * Math.sin(this.horseAng)); } ,onLoaded: function() { NMEPreloader.prototype.onLoaded.call(this); } ,onLoadedRemove: function() { NMEPreloader.prototype.onLoaded.call(this); } ,__class__: Preloader }); var Reflect = function() { }; $hxClasses["Reflect"] = Reflect; Reflect.__name__ = ["Reflect"]; Reflect.hasField = function(o,field) { return Object.prototype.hasOwnProperty.call(o,field); }; Reflect.field = function(o,field) { try { return o[field]; } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; return null; } }; Reflect.setField = function(o,field,value) { o[field] = value; }; Reflect.getProperty = function(o,field) { var tmp; if(o == null) return null; else if(o.__properties__ && (tmp = o.__properties__["get_" + field])) return o[tmp](); else return o[field]; }; Reflect.setProperty = function(o,field,value) { var tmp; if(o.__properties__ && (tmp = o.__properties__["set_" + field])) o[tmp](value); else o[field] = value; }; Reflect.callMethod = function(o,func,args) { return func.apply(o,args); }; Reflect.fields = function(o) { var a = []; if(o != null) { var hasOwnProperty = Object.prototype.hasOwnProperty; for( var f in o ) { if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) a.push(f); } } return a; }; Reflect.isFunction = function(f) { return typeof(f) == "function" && !(f.__name__ || f.__ename__); }; Reflect.compareMethods = function(f1,f2) { if(f1 == f2) return true; if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) return false; return f1.scope == f2.scope && f1.method == f2.method && f1.method != null; }; Reflect.deleteField = function(o,field) { if(!Object.prototype.hasOwnProperty.call(o,field)) return false; delete(o[field]); return true; }; Reflect.makeVarArgs = function(f) { return function() { var a = Array.prototype.slice.call(arguments); return f(a); }; }; var SaveLoadWindow = function(isFromMainMenu) { if(isFromMainMenu == null) isFromMainMenu = false; window.famobi_analytics.trackScreen("SCREEN_OTHER", "SCREEN_SAVELOAD"); this.wasMDown = false; this.curSelection = 0; this.slots = []; this.highlights = []; this.isFromMainMenu = false; this.bgsArr = []; Menu.call(this); this.isFromMainMenu = isFromMainMenu; this.mainBatch = this.main.batch; this.bgsSpr = this.getSprite(); this.createBgs(); this.mainCont = this.getSprite(); var underlay = this.getBimap("plashka_Ba",null,this.mainCont); var stX = 17; var stY = 17; var curX = stX; var curY = stY; var highlight; var slot; var _g = 0; while(_g < 5) { var i = _g++; highlight = this.getBimap("plashka_Ba_1",null,this.mainCont); highlight.set_x(curX); highlight.set_y(curY); slot = new SaveSlot(true); this.mainCont.addChild(slot); slot.set_x(curX); slot.set_y(curY); curY += highlight.get_height() - 3; if(i != 0) highlight.set_visible(false); this.highlights.push(highlight); this.slots.push(slot); } this.saveBtn = this.getBimap("save",$bind(this,this.saveClick),this.mainCont); this.loadBtn = this.getBimap("load_a",$bind(this,this.loadClick),this.mainCont); var backBtn = this.getBimap("Back-001",$bind(this,this.backClick),this.mainCont); this.saveBtn.set_y(this.loadBtn.set_y(backBtn.set_y(underlay.get_height() - backBtn.get_height() - 40))); var btnsGapX = 30; var totBtnsWidth = this.saveBtn.get_width() * 3 + btnsGapX * 2; this.saveBtn.set_x(underlay.get_width() / 2 - totBtnsWidth / 2); this.loadBtn.set_x(underlay.get_width() / 2 - this.loadBtn.get_width() / 2); backBtn.set_x(underlay.get_width() / 2 + totBtnsWidth / 2 - backBtn.get_width()); if(isFromMainMenu) this.saveBtn.set_alpha(0.5); this.mainCont.set_x(this.sWidth / 2 - underlay.get_width() / 2); this.mainCont.set_y(this.sHeight / 2 - underlay.get_height() / 2); this.updateSlots(); this.set_curSelection(0); this.setUpdateFuntion($bind(this,this.update)); this.moveThisOnResize = true; this.moveByResizeCallBack = $bind(this,this.onResize); this.onResize(); var wasY = this.get_y(); this.set_y(this.get_y() + this.sHeight); motion_Actuate.tween(this,0.27,{ y : wasY}).ease(motion_easing_Quad.get_easeOut()); }; $hxClasses["SaveLoadWindow"] = SaveLoadWindow; SaveLoadWindow.__name__ = ["SaveLoadWindow"]; SaveLoadWindow.__super__ = Menu; SaveLoadWindow.prototype = $extend(Menu.prototype,{ bgsArr: null ,bgsSpr: null ,mainCont: null ,isFromMainMenu: null ,highlights: null ,slots: null ,curSelection: null ,loadBtn: null ,saveBtn: null ,set_curSelection: function(val) { this.curSelection = val; var _g1 = 0; var _g = this.highlights.length; while(_g1 < _g) { var i = _g1++; this.highlights[i].set_visible(i == val); } if(this.slots[val].isEmpty) this.loadBtn.set_alpha(0.5); else this.loadBtn.set_alpha(1); return this.curSelection; } ,wasMDown: null ,update: function(frameTime) { if(this.main.isMouseDown && !this.wasMDown) { var _g1 = 0; var _g = this.highlights.length; while(_g1 < _g) { var i = _g1++; if(this.highlights[i].getBounds(this.main).contains(this.main.get_mouseX(),this.main.get_mouseY())) { this.set_curSelection(i); break; } } } this.wasMDown = this.main.isMouseDown; } ,updateSlots: function() { var saves; if(LocalSaves.getVar("saves") != null) saves = LocalSaves.getVar("saves"); else saves = null; var data; if(saves == null) { var _g1 = 0; var _g = this.slots.length; while(_g1 < _g) { var i = _g1++; this.slots[i].init(true); } return; } var _g11 = 0; var _g2 = this.slots.length; while(_g11 < _g2) { var i1 = _g11++; var saveNameForStorage = saves[i1] + '#' + i1; if(saves[i1] != null) { data = JSON.parse(LocalSaves.getVar(saveNameForStorage)); var isTwoPlayers = data.playersType[0] == "human" && data.playersType[1] == "human"; this.slots[i1].init(false,isTwoPlayers,saves[i1]); } } if(this.slots[this.curSelection].isEmpty) this.loadBtn.set_alpha(0.5); else this.loadBtn.set_alpha(1); } ,saveClick: function() { if(this.saveBtn.get_alpha() < 1) return; Desk.current.saveGame(this.curSelection); this.updateSlots(); } ,loadClick: function() { if(this.slots[this.curSelection].isEmpty) return; Desk.current.loadSave(this.curSelection); this.main.paused = false; motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); } ,backClick: function() { motion_Actuate.tween(this,0.3,{ y : -this.get_y() - this.sHeight}).ease(motion_easing_Quad.get_easeOut()).onComplete($bind(this,this.close)); if(this.isFromMainMenu) Main.current.addChild(new MainMenu()); else Main.current.addChild(new PauseMenu(false)); } ,onResize: function() { this.createBgs(); this.bgsSpr.set_x(-this.get_x()); this.bgsSpr.set_y(-this.get_y()); } ,createBgs: function() { var lastIndex = 0; var sizeX = 0; var bg; this.isImagesFromAtlas = false; while(sizeX < Main.current.sWidth) { if(this.bgsArr[lastIndex] != null) { bg = this.bgsArr[lastIndex]; bg.set_visible(true); } else { bg = this.getBimap("img/bg.jpg",null,this.bgsSpr); this.bgsArr.push(bg); } bg.set_x(sizeX); bg.set_y(0); bg.set_scaleX(bg.set_scaleY(Main.current.sHeight / bg.bitmapData.height)); sizeX += bg.get_width() - 2; lastIndex++; } this.isImagesFromAtlas = true; var _g1 = lastIndex; var _g = this.bgsArr.length; while(_g1 < _g) { var i = _g1++; this.bgsArr[i].set_visible(false); } } ,__class__: SaveLoadWindow ,__properties__: $extend(Menu.prototype.__properties__,{set_curSelection:"set_curSelection"}) }); var SaveSlot = function(isEmpty,isTwoPlayers,slotName) { if(slotName == null) slotName = ""; if(isTwoPlayers == null) isTwoPlayers = false; this.isEmpty = false; this.slotName = ""; this.isTwoPlayers = false; Menu.call(this); this.isEmpty = isEmpty; this.isTwoPlayers = isTwoPlayers; this.slotName = slotName; this.mainBatch = this.main.batch; var slotRect = this.mainBatch.getImgRect("plashka_Ba_1"); this.icon = this.getBimap(isTwoPlayers?"a_b":"ai_1"); this.icon.set_x(30); this.icon.set_y(slotRect.height / 2 - this.icon.get_height() / 2); this.nameTF = new NumFontFromBatch(this.main.batch,"dig_"); this.nameTF.set_align("CENTER"); this.nameTF.widthToAlign = slotRect.width - 120; this.nameTF.set_x(120); this.nameTF.set_y(slotRect.height / 2 - this.nameTF.get_height() / 2 - 10); this.addChild(this.nameTF); if(slotName == "") this.nameTF.set_text("0"); else this.nameTF.set_text(slotName); if(isEmpty) { this.icon.set_visible(false); this.nameTF.set_visible(false); } }; $hxClasses["SaveSlot"] = SaveSlot; SaveSlot.__name__ = ["SaveSlot"]; SaveSlot.__super__ = Menu; SaveSlot.prototype = $extend(Menu.prototype,{ isTwoPlayers: null ,slotName: null ,isEmpty: null ,icon: null ,nameTF: null ,init: function(isEmpty,isTwoPlayers,slotName) { if(slotName == null) slotName = ""; if(isTwoPlayers == null) isTwoPlayers = false; this.isEmpty = isEmpty; this.isTwoPlayers = isTwoPlayers; this.slotName = slotName; if(isEmpty) { this.icon.set_visible(false); this.nameTF.set_visible(false); } else { this.icon.set_visible(true); this.nameTF.set_visible(true); this.nameTF.set_text(slotName); this.icon.bitmapData = this.getBitmapData(isTwoPlayers?"a_b":"ai_1"); this.icon.smoothing = true; } } ,__class__: SaveSlot }); var ScrollContainer = function(scrollHeight,scrollWidth,doSimpleVerticalScroll,doSimpleHorizontalScroll,fullActiveZone) { if(fullActiveZone == null) fullActiveZone = false; if(doSimpleHorizontalScroll == null) doSimpleHorizontalScroll = false; if(doSimpleVerticalScroll == null) doSimpleVerticalScroll = false; if(scrollWidth == null) scrollWidth = 0; if(scrollHeight == null) scrollHeight = 0; this.fullActiveZone = false; this.scrolled = false; this.verLineSize = 0; this.isVerLineScrolling = false; this.isVerScrollLine = false; this.speedY = 0; this.speedX = 0; this.isMDown = false; this.removedListeners = false; this.doSimpleHorizontalScroll = false; this.doSimpleVerticalScroll = false; this.fullActiveZone = fullActiveZone; this.scrollHeight = scrollHeight; this.scrollWidth = scrollWidth; this.doSimpleVerticalScroll = doSimpleVerticalScroll; this.doSimpleHorizontalScroll = doSimpleHorizontalScroll; openfl_display_Sprite.call(this); this.contSprite = new openfl_display_Sprite(); openfl_display_Sprite.prototype.addChild.call(this,this.contSprite); this.main = Main.current; this.set_scrollRect(new openfl_geom_Rectangle(0,0,scrollWidth > 0?scrollWidth:5000,scrollHeight > 0?scrollHeight:5000)); if(doSimpleVerticalScroll || doSimpleHorizontalScroll) { if(fullActiveZone) { openfl_Lib.current.stage.addEventListener("mouseDown",$bind(this,this.btnDown)); openfl_Lib.current.stage.addEventListener("touchBegin",$bind(this,this.btnDown)); } else { this.addEventListener("mouseDown",$bind(this,this.btnDown)); this.addEventListener("touchBegin",$bind(this,this.btnDown)); } openfl_Lib.current.stage.addEventListener("mouseMove",$bind(this,this.btnMove)); this.addEventListener("mouseMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.addEventListener("touchMove",$bind(this,this.btnMove)); this.addEventListener("touchMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.addEventListener("mouseUp",$bind(this,this.btnUp)); this.addEventListener("click",$bind(this,this.btnClick)); openfl_Lib.current.stage.addEventListener("touchEnd",$bind(this,this.btnUp)); } this.hp = new openfl_geom_Point(); }; $hxClasses["ScrollContainer"] = ScrollContainer; ScrollContainer.__name__ = ["ScrollContainer"]; ScrollContainer.__super__ = openfl_display_Sprite; ScrollContainer.prototype = $extend(openfl_display_Sprite.prototype,{ contSprite: null ,scrollHeight: null ,scrollWidth: null ,doSimpleVerticalScroll: null ,doSimpleHorizontalScroll: null ,removedListeners: null ,isMDown: null ,hp: null ,main: null ,speedX: null ,speedY: null ,scrollVerLine: null ,scrollVerElement: null ,isVerScrollLine: null ,isVerLineScrolling: null ,verLineSize: null ,scrolled: null ,fullActiveZone: null ,addScrollVerticalLine: function(scrollLine,scrollElement,xPos,yPos,elementOffsetX,elementOffseY) { if(elementOffseY == null) elementOffseY = 0; if(elementOffsetX == null) elementOffsetX = 0; if(yPos == null) yPos = 0; if(xPos == null) xPos = 0; this.scrollVerLine = scrollLine; this.scrollVerElement = scrollElement; openfl_display_Sprite.prototype.addChild.call(this,this.scrollVerLine); openfl_display_Sprite.prototype.addChild.call(this,this.scrollVerElement); scrollLine.set_x(xPos); scrollLine.set_y(yPos); this.scrollVerElement.set_x(xPos + (elementOffsetX != 0?elementOffsetX:scrollLine.get_width() / 2 - this.scrollVerElement.get_width() / 2)); this.scrollVerElement.set_y(yPos + elementOffseY); this.verLineSize = scrollLine.get_height() - this.scrollVerElement.get_height(); this.isVerScrollLine = true; } ,btnDown: function(e) { this.removeListeners(e); if(this.isMDown || this.isVerLineScrolling) return; e.stopImmediatePropagation(); if(this.scrollVerElement != null && this.scrollVerElement.hitTestPoint(e.stageX,e.stageY)) this.isVerLineScrolling = true; else this.isMDown = true; this.hp.x = this.main.get_mouseX(); this.hp.y = this.main.get_mouseY(); } ,btnMove: function(e) { if(this.isMDown) { if(this.doSimpleVerticalScroll) this.addVerticalScroll((this.main.get_mouseY() - this.hp.y) * this.get_scaleY()); if(this.doSimpleHorizontalScroll) this.addHorScroll((this.main.get_mouseX() - this.hp.x) * this.get_scaleX()); this.speedY = (this.speedY + (this.hp.y - this.main.get_mouseY()) * this.get_scaleY() * 4 / 60) / 2; this.speedX = (this.speedX + (this.hp.x - this.main.get_mouseX()) * this.get_scaleX() * 4 / 60) / 2; this.hp.x = this.main.get_mouseX(); this.hp.y = this.main.get_mouseY(); this.scrolled = true; if(this.isVerScrollLine && this.scrollHeight < this.contSprite.get_height()) this.scrollVerElement.set_y(this.scrollVerLine.get_y() - this.verLineSize / (this.contSprite.get_height() - this.scrollHeight) * this.contSprite.get_y()); } else if(this.isVerLineScrolling) { var _g = this.scrollVerElement; _g.set_y(_g.get_y() + (this.main.get_mouseY() - this.hp.y) * this.get_scaleY()); if(this.scrollVerElement.get_y() - this.scrollVerLine.get_y() < 0) this.scrollVerElement.set_y(this.scrollVerLine.get_y()); else if(this.scrollVerElement.get_y() - this.scrollVerLine.get_y() > this.verLineSize) this.scrollVerElement.set_y(this.scrollVerLine.get_y() + this.verLineSize); this.contSprite.set_y(-((this.contSprite.get_height() - this.scrollHeight) / this.verLineSize) * (this.scrollVerElement.get_y() - this.scrollVerLine.get_y())); this.hp.x = this.main.get_mouseX(); this.hp.y = this.main.get_mouseY(); } } ,btnUp: function(e) { if(this.isMDown) e.stopImmediatePropagation(); this.isVerLineScrolling = false; this.isMDown = false; if(Math.abs(this.speedX) * 60 < 2) this.speedX = 0; if(Math.abs(this.speedY) * 60 < 2) this.speedY = 0; } ,btnClick: function(e) { if(this.scrolled) e.stopImmediatePropagation(); this.scrolled = false; } ,removeListeners: function(e) { if(!this.removedListeners) { if(e.type == "mouseDown" || e.type == "mouseMove" || e.type == "mouseUp") { this.removeEventListener("touchBegin",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("touchBegin",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("touchMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.removeEventListener("touchEnd",$bind(this,this.btnUp)); } else { this.removeEventListener("mouseDown",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("mouseDown",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("mouseMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.removeEventListener("mouseUp",$bind(this,this.btnUp)); this.removeEventListener("click",$bind(this,this.btnClick)); } this.removedListeners = true; } } ,addVerticalScroll: function(num) { if(this.scrollHeight > this.contSprite.get_height()) return false; var _g = this.contSprite; _g.set_y(_g.get_y() + num); if(this.contSprite.get_y() > 0) { this.contSprite.set_y(0); return false; } else if(this.contSprite.get_height() + this.contSprite.get_y() < this.scrollHeight) { this.contSprite.set_y(this.scrollHeight - this.contSprite.get_height()); return false; } return true; } ,addHorScroll: function(num) { var _g = this.contSprite; _g.set_x(_g.get_x() + num); if(this.contSprite.get_x() > 0) { this.contSprite.set_x(0); return false; } else if(this.contSprite.get_width() + this.contSprite.get_x() < this.scrollWidth) { this.contSprite.set_x(this.scrollWidth - this.contSprite.get_width()); return false; } return true; } ,addChild: function(children) { return this.contSprite.addChild(children); } ,addChildAt: function(children,index) { return this.contSprite.addChildAt(children,index); } ,removeChild: function(child) { if(child.parent == this.contSprite) this.contSprite.removeChild(child); return child; } ,removeChildAt: function(index) { return this.contSprite.removeChildAt(index); } ,update: function(frameTime) { if(!this.isMDown && !this.isVerLineScrolling && (this.speedX != 0 || this.speedY != 0)) { var c = frameTime / 16.666666666666668; var resDumpSC = Math.pow(0.92,c); this.speedY *= resDumpSC; this.speedX *= resDumpSC; if(this.doSimpleVerticalScroll && !this.addVerticalScroll(-this.speedY * frameTime)) this.speedY = 0; if(this.doSimpleHorizontalScroll && !this.addHorScroll(-this.speedX * frameTime)) this.speedX = 0; if(Math.abs(this.speedY) * 60 <= 0.2) this.speedY = 0; if(Math.abs(this.speedX) * 60 <= 0.2) this.speedX = 0; if(this.isVerScrollLine) this.scrollVerElement.set_y(this.scrollVerLine.get_y() - this.verLineSize / (this.contSprite.get_height() - this.scrollHeight) * this.contSprite.get_y()); } if(this.isVerScrollLine) this.scrollVerElement.set_visible(this.contSprite.get_height() > this.scrollHeight?true:false); } ,destroy: function() { this.removeEventListener("touchBegin",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("touchBegin",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("touchMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.removeEventListener("touchEnd",$bind(this,this.btnUp)); this.removeEventListener("mouseDown",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("mouseDown",$bind(this,this.btnDown)); openfl_Lib.current.stage.removeEventListener("mouseMove",$bind(this,this.btnMove)); openfl_Lib.current.stage.removeEventListener("mouseUp",$bind(this,this.btnUp)); this.removeEventListener("click",$bind(this,this.btnClick)); this.main = null; if(this.contSprite != null && this.contSprite.parent != null) openfl_display_Sprite.prototype.removeChild.call(this,this.contSprite); this.contSprite = null; if(this.scrollVerLine != null && this.scrollVerLine.parent != null) openfl_display_Sprite.prototype.removeChild.call(this,this.scrollVerLine); this.scrollVerLine = null; if(this.scrollVerElement != null && this.scrollVerElement.parent != null) openfl_display_Sprite.prototype.removeChild.call(this,this.scrollVerElement); this.scrollVerElement = null; this.hp = null; } ,__class__: ScrollContainer }); var ScrollWithImages = function(curIndex,label,scrollBmdsArr) { this.maxSize = 500; Menu.call(this); this.scrollBmdsArr = scrollBmdsArr; this.curIndex = curIndex; this.mainBm = new openfl_display_Bitmap(scrollBmdsArr[curIndex],1,true); this.addChild(this.mainBm); this.mainBm.set_x(this.maxSize / 2 - this.mainBm.get_width() / 2); this.upBtn = this.getBimap("arrowBot1_copy",$bind(this,this.minDiff)); this.dwBtn = this.getBimap("arrowUp1_copy",$bind(this,this.plusDiff)); this.mainBm.set_y(0); var gapX = 5; var gapX1 = 10; this.upBtn.set_x(this.mainBm.get_x() - this.upBtn.get_width() - gapX); this.upBtn.set_y(this.mainBm.get_y() + this.mainBm.get_height() / 2 - this.upBtn.get_height() / 2); this.dwBtn.set_x(this.mainBm.get_x() + this.mainBm.get_width() + gapX1); this.dwBtn.set_y(this.upBtn.get_y()); this.upBtn.set_alpha((this.curIndex==0)?0.5:1); this.dwBtn.set_alpha((this.curIndex==this.scrollBmdsArr.length - 1)?0.5:1); }; $hxClasses["ScrollWithImages"] = ScrollWithImages; ScrollWithImages.__name__ = ["ScrollWithImages"]; ScrollWithImages.__super__ = Menu; ScrollWithImages.prototype = $extend(Menu.prototype,{ scrollBmdsArr: null ,mainBm: null ,curIndex: null ,maxSize: null ,minDiff: function() { this.curIndex--; if(this.curIndex < 0) this.curIndex = 0; this.mainBm.bitmapData = this.scrollBmdsArr[this.curIndex]; this.mainBm.smoothing = true; this.upBtn.set_alpha((this.curIndex==0)?0.5:1); this.dwBtn.set_alpha(1); } ,plusDiff: function() { this.curIndex++; if(this.curIndex > this.scrollBmdsArr.length - 1) this.curIndex = this.scrollBmdsArr.length - 1; this.mainBm.bitmapData = this.scrollBmdsArr[this.curIndex]; this.mainBm.smoothing = true; this.upBtn.set_alpha(1); this.dwBtn.set_alpha((this.curIndex==this.scrollBmdsArr.length - 1)?0.5:1); } ,__class__: ScrollWithImages }); var haxe_io_Bytes = function(data) { this.length = data.byteLength; this.b = new Uint8Array(data); this.b.bufferValue = data; data.hxBytes = this; data.bytes = this.b; }; $hxClasses["haxe.io.Bytes"] = haxe_io_Bytes; haxe_io_Bytes.__name__ = ["haxe","io","Bytes"]; haxe_io_Bytes.alloc = function(length) { return new haxe_io_Bytes(new ArrayBuffer(length)); }; haxe_io_Bytes.ofString = function(s) { var a = []; var i = 0; while(i < s.length) { var c = StringTools.fastCodeAt(s,i++); if(55296 <= c && c <= 56319) c = c - 55232 << 10 | StringTools.fastCodeAt(s,i++) & 1023; if(c <= 127) a.push(c); else if(c <= 2047) { a.push(192 | c >> 6); a.push(128 | c & 63); } else if(c <= 65535) { a.push(224 | c >> 12); a.push(128 | c >> 6 & 63); a.push(128 | c & 63); } else { a.push(240 | c >> 18); a.push(128 | c >> 12 & 63); a.push(128 | c >> 6 & 63); a.push(128 | c & 63); } } return new haxe_io_Bytes(new Uint8Array(a).buffer); }; haxe_io_Bytes.ofData = function(b) { var hb = b.hxBytes; if(hb != null) return hb; return new haxe_io_Bytes(b); }; haxe_io_Bytes.prototype = { length: null ,b: null ,data: null ,get: function(pos) { return this.b[pos]; } ,set: function(pos,v) { this.b[pos] = v & 255; } ,blit: function(pos,src,srcpos,len) { if(pos < 0 || srcpos < 0 || len < 0 || pos + len > this.length || srcpos + len > src.length) throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); if(srcpos == 0 && len == src.length) this.b.set(src.b,pos); else this.b.set(src.b.subarray(srcpos,srcpos + len),pos); } ,getDouble: function(pos) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); return this.data.getFloat64(pos,true); } ,getFloat: function(pos) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); return this.data.getFloat32(pos,true); } ,setDouble: function(pos,v) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); this.data.setFloat64(pos,v,true); } ,setFloat: function(pos,v) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); this.data.setFloat32(pos,v,true); } ,setUInt16: function(pos,v) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); this.data.setUint16(pos,v,true); } ,setInt32: function(pos,v) { if(this.data == null) this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); this.data.setInt32(pos,v,true); } ,getString: function(pos,len) { if(pos < 0 || len < 0 || pos + len > this.length) throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); var s = ""; var b = this.b; var fcc = String.fromCharCode; var i = pos; var max = pos + len; while(i < max) { var c = b[i++]; if(c < 128) { if(c == 0) break; s += fcc(c); } else if(c < 224) s += fcc((c & 63) << 6 | b[i++] & 127); else if(c < 240) { var c2 = b[i++]; s += fcc((c & 31) << 12 | (c2 & 127) << 6 | b[i++] & 127); } else { var c21 = b[i++]; var c3 = b[i++]; var u = (c & 15) << 18 | (c21 & 127) << 12 | (c3 & 127) << 6 | b[i++] & 127; s += fcc((u >> 10) + 55232); s += fcc(u & 1023 | 56320); } } return s; } ,toString: function() { return this.getString(0,this.length); } ,__class__: haxe_io_Bytes }; var openfl_utils_IDataOutput = function() { }; $hxClasses["openfl.utils.IDataOutput"] = openfl_utils_IDataOutput; openfl_utils_IDataOutput.__name__ = ["openfl","utils","IDataOutput"]; openfl_utils_IDataOutput.prototype = { get_endian: null ,set_endian: null ,objectEncoding: null ,writeBoolean: null ,writeByte: null ,writeBytes: null ,writeDouble: null ,writeFloat: null ,writeInt: null ,writeMultiByte: null ,writeShort: null ,writeUTF: null ,writeUTFBytes: null ,writeUnsignedInt: null ,__class__: openfl_utils_IDataOutput ,__properties__: {set_endian:"set_endian",get_endian:"get_endian"} }; var openfl_utils_IDataInput = function() { }; $hxClasses["openfl.utils.IDataInput"] = openfl_utils_IDataInput; openfl_utils_IDataInput.__name__ = ["openfl","utils","IDataInput"]; openfl_utils_IDataInput.prototype = { get_bytesAvailable: null ,get_endian: null ,set_endian: null ,objectEncoding: null ,readBoolean: null ,readByte: null ,readBytes: null ,readDouble: null ,readFloat: null ,readInt: null ,readMultiByte: null ,readShort: null ,readUnsignedByte: null ,readUnsignedInt: null ,readUnsignedShort: null ,readUTF: null ,readUTFBytes: null ,__class__: openfl_utils_IDataInput ,__properties__: {set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"} }; var openfl_utils_ByteArrayData = function(length) { if(length == null) length = 0; var bytes = haxe_io_Bytes.alloc(length); haxe_io_Bytes.call(this,bytes.b.buffer); this.__length = length; this.__endian = 0; this.position = 0; }; $hxClasses["openfl.utils.ByteArrayData"] = openfl_utils_ByteArrayData; openfl_utils_ByteArrayData.__name__ = ["openfl","utils","ByteArrayData"]; openfl_utils_ByteArrayData.__interfaces__ = [openfl_utils_IDataOutput,openfl_utils_IDataInput]; openfl_utils_ByteArrayData.fromBytes = function(bytes) { var result = new openfl_utils_ByteArrayData(); result.__fromBytes(bytes); return result; }; openfl_utils_ByteArrayData.__super__ = haxe_io_Bytes; openfl_utils_ByteArrayData.prototype = $extend(haxe_io_Bytes.prototype,{ objectEncoding: null ,position: null ,__endian: null ,__length: null ,clear: function() { this.__length = 0; this.position = 0; } ,compress: function(algorithm) { this.__length = this.length; this.position = this.__length; } ,deflate: function() { this.compress(0); } ,inflate: function() { this.uncompress(0); } ,readBoolean: function() { if(this.position < this.length) return this.get(this.position++) != 0; else { throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); return false; } } ,readByte: function() { var value = this.readUnsignedByte(); if((value & 128) != 0) return value - 256; else return value; } ,readBytes: function(bytes,offset,length) { if(length == null) length = 0; if(offset == null) offset = 0; if(length == 0) length = this.__length - this.position; if(this.position + length > this.__length) throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); if(bytes.__length < offset + length) bytes.__resize(offset + length); bytes.blit(offset,this,this.position,length); this.position += length; } ,readDouble: function() { if(this.position + 8 > this.__length) throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); this.position += 8; return this.getDouble(this.position - 8); } ,readFloat: function() { if(this.position + 4 > this.__length) throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); this.position += 4; return this.getFloat(this.position - 4); } ,readInt: function() { var ch1 = this.readUnsignedByte(); var ch2 = this.readUnsignedByte(); var ch3 = this.readUnsignedByte(); var ch4 = this.readUnsignedByte(); if(this.__endian == 1) return ch4 << 24 | ch3 << 16 | ch2 << 8 | ch1; else return ch1 << 24 | ch2 << 16 | ch3 << 8 | ch4; } ,readMultiByte: function(length,charSet) { return this.readUTFBytes(length); } ,readShort: function() { var ch1 = this.readUnsignedByte(); var ch2 = this.readUnsignedByte(); var value; if(this.__endian == 1) value = ch2 << 8 | ch1; else value = ch1 << 8 | ch2; if((value & 32768) != 0) return value - 65536; else return value; } ,readUnsignedByte: function() { if(this.position < this.__length) return this.get(this.position++); else { throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); return 0; } } ,readUnsignedInt: function() { var ch1 = this.readUnsignedByte(); var ch2 = this.readUnsignedByte(); var ch3 = this.readUnsignedByte(); var ch4 = this.readUnsignedByte(); if(this.__endian == 1) return ch4 << 24 | ch3 << 16 | ch2 << 8 | ch1; else return ch1 << 24 | ch2 << 16 | ch3 << 8 | ch4; } ,readUnsignedShort: function() { var ch1 = this.readUnsignedByte(); var ch2 = this.readUnsignedByte(); if(this.__endian == 1) return (ch2 << 8) + ch1; else return ch1 << 8 | ch2; } ,readUTF: function() { var bytesCount = this.readUnsignedShort(); return this.readUTFBytes(bytesCount); } ,readUTFBytes: function(length) { if(this.position + length > this.__length) throw new js__$Boot_HaxeError(new openfl_errors_EOFError()); this.position += length; return this.getString(this.position - length,length); } ,uncompress: function(algorithm) { this.__length = this.length; this.position = 0; } ,writeBoolean: function(value) { this.writeByte(value?1:0); } ,writeByte: function(value) { this.__resize(this.position + 1); this.set(this.position++,value & 255); } ,writeBytes: function(bytes,offset,length) { if(length == null) length = 0; if(offset == null) offset = 0; if(openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(bytes) == 0) return; if(length == 0) { var a = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(bytes); length = a - offset; } this.__resize(this.position + length); this.blit(this.position,bytes,offset,length); this.position = this.position + length; } ,writeDouble: function(value) { this.__resize(this.position + 8); this.setDouble(this.position,value); this.position += 8; } ,writeFloat: function(value) { this.__resize(this.position + 4); this.setFloat(this.position,value); this.position += 4; } ,writeInt: function(value) { this.__resize(this.position + 4); if(this.__endian == 1) { this.set(this.position++,value); this.set(this.position++,value >> 8); this.set(this.position++,value >> 16); this.set(this.position++,value >> 24); } else { this.set(this.position++,value >> 24); this.set(this.position++,value >> 16); this.set(this.position++,value >> 8); this.set(this.position++,value); } } ,writeMultiByte: function(value,charSet) { this.writeUTFBytes(value); } ,writeShort: function(value) { this.__resize(this.position + 2); if(this.__endian == 1) { this.set(this.position++,value); this.set(this.position++,value >> 8); } else { this.set(this.position++,value >> 8); this.set(this.position++,value); } } ,writeUnsignedInt: function(value) { this.writeInt(value); } ,writeUTF: function(value) { var bytes = haxe_io_Bytes.ofString(value); this.writeShort(bytes.length); this.writeBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(bytes)); } ,writeUTFBytes: function(value) { var bytes = haxe_io_Bytes.ofString(value); this.writeBytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(haxe_io_Bytes.ofString(value))); } ,__fromBytes: function(bytes) { this.b = bytes.b; this.length = bytes.length; this.data = bytes.data; this.__length = bytes.length; } ,__resize: function(size) { if(size > this.length) { var bytes = haxe_io_Bytes.alloc((size + 1) * 3 >> 1); bytes.blit(0,this,0,this.length); this.b = bytes.b; this.length = bytes.length; this.data = bytes.data; } if(this.__length < size) this.__length = size; } ,__setData: function(bytes) { this.b = bytes.b; this.length = bytes.length; this.data = bytes.data; } ,get_bytesAvailable: function() { return this.__length - this.position; } ,get_endian: function() { return this.__endian; } ,set_endian: function(value) { return this.__endian = value; } ,__class__: openfl_utils_ByteArrayData ,__properties__: {set_endian:"set_endian",get_endian:"get_endian",get_bytesAvailable:"get_bytesAvailable"} }); var SpriteJson = function(length) { if(length == null) length = 0; openfl_utils_ByteArrayData.call(this); var bytes = haxe_Resource.getBytes(SpriteJson.resourceName); this.__fromBytes(bytes); }; $hxClasses["SpriteJson"] = SpriteJson; SpriteJson.__name__ = ["SpriteJson"]; SpriteJson.__super__ = openfl_utils_ByteArrayData; SpriteJson.prototype = $extend(openfl_utils_ByteArrayData.prototype,{ __class__: SpriteJson }); var Sounds = function() { this.soundsAvailable = true; this.muted = false; this.playSoundsByAction = false; this.soundAssets = new haxe_ds_StringMap(); this.soundsToPlay = []; this.playingSounds = []; this.pausedSounds = []; eval("Howler.mobileAutoEnable = false;"); /* eval("getOS();"); var os = eval("userOS"); var osVer = eval("userOSver"); if(os == "iOS" && Std.parseFloat(osVer.charAt(0)) < 6) { this.soundsAvailable = false; this.muted = true; } if(os == "iOS") this.playSoundsByAction = false; */ this.loadSounds(); window.document.addEventListener("touchend",$bind(this,this.bodyClick)); if(LocalSaves.getVar("muted") == "true") this.muted = true; if(typeof window.famobi.audio !== "undefined") { this.muted = !window.famobi.audio.isEnabled(); } Sounds.current = this; }; $hxClasses["Sounds"] = Sounds; Sounds.__name__ = ["Sounds"]; Sounds.current = null; Sounds.prototype = { soundAssets: null ,ambientSound: null ,soundsToPlay: null ,playSoundsByAction: null ,playingSounds: null ,pausedSounds: null ,lastPlayData: null ,spriteMap: null ,muted: null ,soundsAvailable: null ,bodyClick: function(event) { window.document.removeEventListener("touchstart",$bind(this,this.bodyClick)); window.document.removeEventListener("touchend",$bind(this,this.bodyClick)); window.document.removeEventListener("click",$bind(this,this.bodyClick)); if(!this.soundsAvailable) return; if(this.playSoundsByAction && event != null) { if(event.type == "touchend" || event.type == "touchstart") { window.document.addEventListener("touchstart",$bind(this,this.sMMove)); window.document.addEventListener("touchmove",$bind(this,this.sMMove)); window.document.addEventListener("touchend",$bind(this,this.sMUp)); } else { window.document.addEventListener("mousedown",$bind(this,this.sMMove)); window.document.addEventListener("mousemove",$bind(this,this.sMMove)); window.document.addEventListener("mouseup",$bind(this,this.sMUp)); } } this.playSound("sprite","silence",false,false,false,"sound"); } ,loadSounds: function() { var sounds = []; sounds.push(JSON.parse(new SpriteJson().toString())); var s; var sn; var _g1 = 0; var _g = sounds.length; while(_g1 < _g) { var i = _g1++; sn = sounds[i]; s = this.getSound(sn.stream,false,false,false,sn.sprite); var key = sn.stream; var value = s; this.soundAssets.set(key,value); s = this.getSound(sn.stream,true,true,false,sn.sprite); var value1 = s; this.soundAssets.set(Std.string(sn.stream) + "_loop",value1); } } ,getSound: function(stream,buffer,loop,autoplay,sprite) { if(autoplay == null) autoplay = false; if(loop == null) loop = false; if(buffer == null) buffer = false; buffer = false; var spriteString = ""; if(sprite != null) { var wasAnElement = false; spriteString = ", sprite:{"; var spr = Reflect.fields(sprite); var _g = 0; while(_g < spr.length) { var i = spr[_g]; ++_g; spriteString += (wasAnElement?",":"") + (i == null?"null":"" + i) + ":[" + Reflect.field(sprite,i)[0] + "," + Reflect.field(sprite,i)[1] + "]"; wasAnElement = true; } spriteString += "}"; } this.spriteMap = sprite; var evalString; evalString = "new Howl({ " + " src: ['" + stream + ".ogg', '" + stream + ".m4a', '" + stream + ".mp3']" + spriteString + ", autoplay : " + (autoplay?"true":"false") + "," + " loop : " + (loop?"true":"false") + "," + " html5 : " + (buffer?"true":"false") + " }); "; var snd = eval(evalString); return snd; } ,sMMove: function() { var snd; var spr; var _g1 = 0; var _g = this.soundsToPlay.length; while(_g1 < _g) { var i = _g1++; snd = this.soundsToPlay[i].sound; spr = this.soundsToPlay[i].sprite; if(snd != null) snd.play(spr); } this.soundsToPlay = []; } ,sMUp: function() { var snd; var spr; var _g1 = 0; var _g = this.soundsToPlay.length; while(_g1 < _g) { var i = _g1++; snd = this.soundsToPlay[i].sound; spr = this.soundsToPlay[i].sprite; if(snd != null) snd.play(spr); } this.soundsToPlay = []; } ,playSound: function(soundName,spriteName,loop,sendToQuaryList,ignoreQuaryList,type) { if(type == null) type = "sound"; if(ignoreQuaryList == null) ignoreQuaryList = false; if(sendToQuaryList == null) sendToQuaryList = false; if(loop == null) loop = false; if(spriteName == null) spriteName = ""; if(!this.soundsAvailable || this.muted && !loop) return; var sound = this.soundAssets.get("snd/" + soundName + (loop?"_loop":"")); if(!this.playSoundsByAction || ignoreQuaryList) { var id = sound.play(spriteName); this.playingSounds.push({ sprite : spriteName, id : id, endTime : loop?-1:openfl_Lib.getTimer() + Reflect.field(this.spriteMap,spriteName)[1] + 50, sound : sound}); } else if(sendToQuaryList) this.soundsToPlay.push({ sound : sound, sprite : spriteName}); if(this.muted) sound.pause(); } ,stopSound: function(soundName,spriteName) { var i = 0; var time = openfl_Lib.getTimer(); while(i < this.playingSounds.length) if(this.playingSounds[i].sprite == spriteName) { this.playingSounds[i].sound.stop(this.playingSounds[i].id); var x = this.playingSounds[i]; HxOverrides.remove(this.playingSounds,x); } else if(this.playingSounds[i].endTime != -1 && time > this.playingSounds[i].endTime) { var x1 = this.playingSounds[i]; HxOverrides.remove(this.playingSounds,x1); } else i++; } ,pauseSound: function(soundName) { if(!this.soundsAvailable || this.muted) return; var sound = this.soundAssets.get("snd/" + soundName); sound.pause(); sound = this.soundAssets.get("snd/" + soundName + "_loop"); sound.pause(); } ,playAmbient: function(startImed) { if(startImed == null) startImed = false; if(!this.soundsAvailable || this.muted) return; if(this.ambientSound == null) { this.ambientSound = this.soundAssets.get("snd/ambient"); if(this.ambientSound != null) { this.ambientSound.loop(true); this.ambientSound.play("ambient"); } } else { this.ambientSound.loop(true); if(!this.playSoundsByAction || startImed) this.ambientSound.play("ambient"); else this.soundsToPlay.push({ sound : this.ambientSound, sprite : "ambient"}); } } ,pauseAmbient: function() { if(this.ambientSound == null) this.ambientSound = this.soundAssets.get("snd/ambient"); if(this.ambientSound != null) this.ambientSound.pause(); } ,stopAmbient: function() { if(this.ambientSound == null) this.ambientSound = this.soundAssets.get("snd/ambient"); if(this.ambientSound != null) this.ambientSound.stop(); } ,mute: function() { if(!this.soundsAvailable) return; this.muted = true; LocalSaves.setVar("muted","true"); var i = 0; while(i < this.playingSounds.length) { if(this.playingSounds[i].endTime == -1) this.playingSounds[i].sound.pause(); else { var x = this.playingSounds[i]; HxOverrides.remove(this.playingSounds,x); continue; } i++; } } ,unMute: function(startAmbient) { if(startAmbient == null) startAmbient = true; if(!this.soundsAvailable) return; this.muted = false; var i = 0; while(i < this.playingSounds.length) { if(this.playingSounds[i].endTime == -1) this.playingSounds[i].sound.play(); i++; } LocalSaves.setVar("muted","false"); } ,__class__: Sounds }; var Std = function() { }; $hxClasses["Std"] = Std; Std.__name__ = ["Std"]; Std["is"] = function(v,t) { return js_Boot.__instanceof(v,t); }; Std.string = function(s) { return js_Boot.__string_rec(s,""); }; Std["int"] = function(x) { return x | 0; }; Std.parseInt = function(x) { var v = parseInt(x,10); if(v == 0 && (HxOverrides.cca(x,1) == 120 || HxOverrides.cca(x,1) == 88)) v = parseInt(x); if(isNaN(v)) return null; return v; }; Std.parseFloat = function(x) { return parseFloat(x); }; Std.random = function(x) { if(x <= 0) return 0; else return Math.floor(Math.random() * x); }; var StringBuf = function() { this.b = ""; }; $hxClasses["StringBuf"] = StringBuf; StringBuf.__name__ = ["StringBuf"]; StringBuf.prototype = { b: null ,add: function(x) { this.b += Std.string(x); } ,addSub: function(s,pos,len) { if(len == null) this.b += HxOverrides.substr(s,pos,null); else this.b += HxOverrides.substr(s,pos,len); } ,__class__: StringBuf }; var StringTools = function() { }; $hxClasses["StringTools"] = StringTools; StringTools.__name__ = ["StringTools"]; StringTools.urlEncode = function(s) { return encodeURIComponent(s); }; StringTools.urlDecode = function(s) { return decodeURIComponent(s.split("+").join(" ")); }; StringTools.startsWith = function(s,start) { return s.length >= start.length && HxOverrides.substr(s,0,start.length) == start; }; StringTools.isSpace = function(s,pos) { var c = HxOverrides.cca(s,pos); return c > 8 && c < 14 || c == 32; }; StringTools.ltrim = function(s) { var l = s.length; var r = 0; while(r < l && StringTools.isSpace(s,r)) r++; if(r > 0) return HxOverrides.substr(s,r,l - r); else return s; }; StringTools.rtrim = function(s) { var l = s.length; var r = 0; while(r < l && StringTools.isSpace(s,l - r - 1)) r++; if(r > 0) return HxOverrides.substr(s,0,l - r); else return s; }; StringTools.trim = function(s) { return StringTools.ltrim(StringTools.rtrim(s)); }; StringTools.replace = function(s,sub,by) { return s.split(sub).join(by); }; StringTools.hex = function(n,digits) { var s = ""; var hexChars = "0123456789ABCDEF"; do { s = hexChars.charAt(n & 15) + s; n >>>= 4; } while(n > 0); if(digits != null) while(s.length < digits) s = "0" + s; return s; }; StringTools.fastCodeAt = function(s,index) { return s.charCodeAt(index); }; var TapToStartWindow = function() { Menu.call(this); this.sWidth = this.main.config.sWidth; this.sHeight = this.main.config.sHeight; this.allClickFunction = $bind(this,this.close); this.filll = this.getSprite(); this.filll.addChild(new openfl_display_Bitmap(new openfl_display_BitmapData(20,20,false,0))); this.filll.set_width(this.sWidth); this.filll.set_height(this.sHeight); this.tapToStartTxt = this.addTextField("Aalgrs",70 * Config.graphicScale,16777215,false,"CENTER",0,this.sHeight / 2 - 60,this.sWidth,200 * Config.graphicScale,true,2 * this.graphicScale,0.3,null,false,true,2 * this.graphicScale); this.tapToStartTxt.set_text(Localization.getString("tap_to_start_text")); this.close(); return; this.remakeThisOnResize = true; if(this.main != null) this.main.config.tapToStartWin = this; }; $hxClasses["TapToStartWindow"] = TapToStartWindow; TapToStartWindow.__name__ = ["TapToStartWindow"]; TapToStartWindow.__super__ = Menu; TapToStartWindow.prototype = $extend(Menu.prototype,{ tapToStartTxt: null ,filll: null ,onRes: function() { if(this.filll != null) { this.filll.set_width(this.sWidth); this.filll.set_height(this.sHeight); this.filll.set_x(-this.get_x()); this.filll.set_y(-this.get_y()); } this.set_x(0); this.tapToStartTxt.set_width(Main.current.config.sWidth); } ,upd: function(e) { this.set_x(0); this.set_y(0); this.tapToStartTxt.set_width(Main.current.config.sWidth); if(this.filll != null) { this.filll.set_width(this.sWidth); this.filll.set_height(this.sHeight); this.filll.set_x(-this.get_x()); this.filll.set_y(-this.get_y()); } } ,update: function(frameTime) { } ,cliick: function(e) { if(this.main != null) this.close(); } ,close: function() { this.removeEventListener("enterFrame",$bind(this,this.upd)); if(this.main == null) return; if(this.parent != null) this.parent.removeChild(this); Menu.prototype.close.call(this); } ,__class__: TapToStartWindow }); var ThreeStateBtn = function(normal,pressed,inactive,offsets) { this.callBackId = -1; this.isPressed = false; this.isActive = true; openfl_display_Sprite.call(this); if(js_Boot.__instanceof(normal,openfl_display_DisplayObject)) { this.normal = normal; if(normal.parent != null) normal.parent.removeChild(normal); } else this.normal = new openfl_display_Bitmap(openfl_Assets.getBitmapData(normal),1,true); if(js_Boot.__instanceof(pressed,openfl_display_DisplayObject)) { this.pressed = pressed; if(pressed.parent != null) pressed.parent.removeChild(pressed); } else this.pressed = new openfl_display_Bitmap(openfl_Assets.getBitmapData(pressed),1,true); if(js_Boot.__instanceof(inactive,openfl_display_DisplayObject)) { this.inactive = inactive; if(inactive.parent != null) inactive.parent.removeChild(inactive); } else this.inactive = new openfl_display_Bitmap(openfl_Assets.getBitmapData(inactive),1,true); this.normal.set_x(this.normal.set_y(this.pressed.set_x(this.pressed.set_y(this.inactive.set_x(this.inactive.set_y(0)))))); if(offsets != null) { if(offsets.x1 != null) this.normal.set_x(offsets.x1); if(offsets.y1 != null) this.normal.set_y(offsets.y1); if(offsets.x2 != null) this.pressed.set_x(offsets.x2); if(offsets.y2 != null) this.pressed.set_y(offsets.y2); if(offsets.x3 != null) this.inactive.set_x(offsets.x3); if(offsets.y4 != null) this.inactive.set_y(offsets.y3); } this.addChild(this.normal); }; $hxClasses["ThreeStateBtn"] = ThreeStateBtn; ThreeStateBtn.__name__ = ["ThreeStateBtn"]; ThreeStateBtn.__super__ = openfl_display_Sprite; ThreeStateBtn.prototype = $extend(openfl_display_Sprite.prototype,{ normal: null ,pressed: null ,inactive: null ,isActive: null ,isPressed: null ,callBackId: null ,set_isActive: function(value) { this.isActive = value; while(this.get_numChildren() > 0) this.removeChildAt(0); this.addChild(this.isPressed?this.pressed:this.normal); return this.isActive; } ,deativate: function() { this.set_isActive(false); while(this.get_numChildren() > 0) this.removeChildAt(0); this.addChild(this.inactive); } ,ativate: function() { this.set_isActive(true); while(this.get_numChildren() > 0) this.removeChildAt(0); this.addChild(this.isPressed?this.pressed:this.normal); } ,press: function() { if(this.isPressed) return; this.isPressed = true; if(this.inactive.parent == null) { while(this.get_numChildren() > 0) this.removeChildAt(0); this.addChild(this.pressed); } } ,unPress: function() { if(!this.isPressed) return; this.isPressed = false; if(this.inactive.parent == null) { while(this.get_numChildren() > 0) this.removeChildAt(0); this.addChild(this.normal); } } ,destroy: function() { while(this.get_numChildren() > 0) this.removeChildAt(0); this.normal = this.pressed = this.inactive = null; } ,__class__: ThreeStateBtn ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{set_isActive:"set_isActive"}) }); var ValueType = $hxClasses["ValueType"] = { __ename__ : ["ValueType"], __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] }; ValueType.TNull = ["TNull",0]; ValueType.TNull.toString = $estr; ValueType.TNull.__enum__ = ValueType; ValueType.TInt = ["TInt",1]; ValueType.TInt.toString = $estr; ValueType.TInt.__enum__ = ValueType; ValueType.TFloat = ["TFloat",2]; ValueType.TFloat.toString = $estr; ValueType.TFloat.__enum__ = ValueType; ValueType.TBool = ["TBool",3]; ValueType.TBool.toString = $estr; ValueType.TBool.__enum__ = ValueType; ValueType.TObject = ["TObject",4]; ValueType.TObject.toString = $estr; ValueType.TObject.__enum__ = ValueType; ValueType.TFunction = ["TFunction",5]; ValueType.TFunction.toString = $estr; ValueType.TFunction.__enum__ = ValueType; ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }; ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }; ValueType.TUnknown = ["TUnknown",8]; ValueType.TUnknown.toString = $estr; ValueType.TUnknown.__enum__ = ValueType; var Type = function() { }; $hxClasses["Type"] = Type; Type.__name__ = ["Type"]; Type.getSuperClass = function(c) { return c.__super__; }; Type.getClassName = function(c) { var a = c.__name__; if(a == null) return null; return a.join("."); }; Type.getEnumName = function(e) { var a = e.__ename__; return a.join("."); }; Type.resolveClass = function(name) { var cl = $hxClasses[name]; if(cl == null || !cl.__name__) return null; return cl; }; Type.resolveEnum = function(name) { var e = $hxClasses[name]; if(e == null || !e.__ename__) return null; return e; }; Type.createInstance = function(cl,args) { var _g = args.length; switch(_g) { case 0: return new cl(); case 1: return new cl(args[0]); case 2: return new cl(args[0],args[1]); case 3: return new cl(args[0],args[1],args[2]); case 4: return new cl(args[0],args[1],args[2],args[3]); case 5: return new cl(args[0],args[1],args[2],args[3],args[4]); case 6: return new cl(args[0],args[1],args[2],args[3],args[4],args[5]); case 7: return new cl(args[0],args[1],args[2],args[3],args[4],args[5],args[6]); case 8: return new cl(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]); default: throw new js__$Boot_HaxeError("Too many arguments"); } return null; }; Type.createEmptyInstance = function(cl) { function empty() {}; empty.prototype = cl.prototype; return new empty(); }; Type.createEnum = function(e,constr,params) { var f = Reflect.field(e,constr); if(f == null) throw new js__$Boot_HaxeError("No such constructor " + constr); if(Reflect.isFunction(f)) { if(params == null) throw new js__$Boot_HaxeError("Constructor " + constr + " need parameters"); return Reflect.callMethod(e,f,params); } if(params != null && params.length != 0) throw new js__$Boot_HaxeError("Constructor " + constr + " does not need parameters"); return f; }; Type.getInstanceFields = function(c) { var a = []; for(var i in c.prototype) a.push(i); HxOverrides.remove(a,"__class__"); HxOverrides.remove(a,"__properties__"); return a; }; Type.getClassFields = function(c) { var a = Reflect.fields(c); HxOverrides.remove(a,"__name__"); HxOverrides.remove(a,"__interfaces__"); HxOverrides.remove(a,"__properties__"); HxOverrides.remove(a,"__super__"); HxOverrides.remove(a,"__meta__"); HxOverrides.remove(a,"prototype"); return a; }; Type.getEnumConstructs = function(e) { var a = e.__constructs__; return a.slice(); }; Type["typeof"] = function(v) { var _g = typeof(v); switch(_g) { case "boolean": return ValueType.TBool; case "string": return ValueType.TClass(String); case "number": if(Math.ceil(v) == v % 2147483648.0) return ValueType.TInt; return ValueType.TFloat; case "object": if(v == null) return ValueType.TNull; var e = v.__enum__; if(e != null) return ValueType.TEnum(e); var c = js_Boot.getClass(v); if(c != null) return ValueType.TClass(c); return ValueType.TObject; case "function": if(v.__name__ || v.__ename__) return ValueType.TObject; return ValueType.TFunction; case "undefined": return ValueType.TNull; default: return ValueType.TUnknown; } }; Type.enumEq = function(a,b) { if(a == b) return true; try { if(a[0] != b[0]) return false; var _g1 = 2; var _g = a.length; while(_g1 < _g) { var i = _g1++; if(!Type.enumEq(a[i],b[i])) return false; } var e = a.__enum__; if(e != b.__enum__ || e == null) return false; } catch( e1 ) { haxe_CallStack.lastException = e1; if (e1 instanceof js__$Boot_HaxeError) e1 = e1.val; return false; } return true; }; var _$UInt_UInt_$Impl_$ = {}; $hxClasses["_UInt.UInt_Impl_"] = _$UInt_UInt_$Impl_$; _$UInt_UInt_$Impl_$.__name__ = ["_UInt","UInt_Impl_"]; _$UInt_UInt_$Impl_$.gt = function(a,b) { var aNeg = a < 0; var bNeg = b < 0; if(aNeg != bNeg) return aNeg; else return a > b; }; _$UInt_UInt_$Impl_$.toFloat = function(this1) { var $int = this1; if($int < 0) return 4294967296.0 + $int; else return $int + 0.0; }; var Xml = function(nodeType) { this.nodeType = nodeType; this.children = []; this.attributeMap = new haxe_ds_StringMap(); }; $hxClasses["Xml"] = Xml; Xml.__name__ = ["Xml"]; Xml.parse = function(str) { return haxe_xml_Parser.parse(str); }; Xml.createElement = function(name) { var xml = new Xml(Xml.Element); if(xml.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + xml.nodeType); xml.nodeName = name; return xml; }; Xml.createPCData = function(data) { var xml = new Xml(Xml.PCData); if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) throw new js__$Boot_HaxeError("Bad node type, unexpected " + xml.nodeType); xml.nodeValue = data; return xml; }; Xml.createCData = function(data) { var xml = new Xml(Xml.CData); if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) throw new js__$Boot_HaxeError("Bad node type, unexpected " + xml.nodeType); xml.nodeValue = data; return xml; }; Xml.createComment = function(data) { var xml = new Xml(Xml.Comment); if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) throw new js__$Boot_HaxeError("Bad node type, unexpected " + xml.nodeType); xml.nodeValue = data; return xml; }; Xml.createDocType = function(data) { var xml = new Xml(Xml.DocType); if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) throw new js__$Boot_HaxeError("Bad node type, unexpected " + xml.nodeType); xml.nodeValue = data; return xml; }; Xml.createProcessingInstruction = function(data) { var xml = new Xml(Xml.ProcessingInstruction); if(xml.nodeType == Xml.Document || xml.nodeType == Xml.Element) throw new js__$Boot_HaxeError("Bad node type, unexpected " + xml.nodeType); xml.nodeValue = data; return xml; }; Xml.createDocument = function() { return new Xml(Xml.Document); }; Xml.prototype = { nodeType: null ,nodeName: null ,nodeValue: null ,parent: null ,children: null ,attributeMap: null ,get: function(att) { if(this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + this.nodeType); return this.attributeMap.get(att); } ,set: function(att,value) { if(this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + this.nodeType); this.attributeMap.set(att,value); } ,exists: function(att) { if(this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + this.nodeType); return this.attributeMap.exists(att); } ,elementsNamed: function(name) { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element or Document but found " + this.nodeType); var ret; var _g = []; var _g1 = 0; var _g2 = this.children; while(_g1 < _g2.length) { var child = _g2[_g1]; ++_g1; if(child.nodeType == Xml.Element && (function($this) { var $r; if(child.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + child.nodeType); $r = child.nodeName; return $r; }(this)) == name) _g.push(child); } ret = _g; return HxOverrides.iter(ret); } ,firstElement: function() { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element or Document but found " + this.nodeType); var _g = 0; var _g1 = this.children; while(_g < _g1.length) { var child = _g1[_g]; ++_g; if(child.nodeType == Xml.Element) return child; } return null; } ,addChild: function(x) { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element or Document but found " + this.nodeType); if(x.parent != null) x.parent.removeChild(x); this.children.push(x); x.parent = this; } ,removeChild: function(x) { if(this.nodeType != Xml.Document && this.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element or Document but found " + this.nodeType); if(HxOverrides.remove(this.children,x)) { x.parent = null; return true; } return false; } ,__class__: Xml }; var haxe_StackItem = $hxClasses["haxe.StackItem"] = { __ename__ : ["haxe","StackItem"], __constructs__ : ["CFunction","Module","FilePos","Method","LocalFunction"] }; haxe_StackItem.CFunction = ["CFunction",0]; haxe_StackItem.CFunction.toString = $estr; haxe_StackItem.CFunction.__enum__ = haxe_StackItem; haxe_StackItem.Module = function(m) { var $x = ["Module",1,m]; $x.__enum__ = haxe_StackItem; $x.toString = $estr; return $x; }; haxe_StackItem.FilePos = function(s,file,line) { var $x = ["FilePos",2,s,file,line]; $x.__enum__ = haxe_StackItem; $x.toString = $estr; return $x; }; haxe_StackItem.Method = function(classname,method) { var $x = ["Method",3,classname,method]; $x.__enum__ = haxe_StackItem; $x.toString = $estr; return $x; }; haxe_StackItem.LocalFunction = function(v) { var $x = ["LocalFunction",4,v]; $x.__enum__ = haxe_StackItem; $x.toString = $estr; return $x; }; var haxe_CallStack = function() { }; $hxClasses["haxe.CallStack"] = haxe_CallStack; haxe_CallStack.__name__ = ["haxe","CallStack"]; haxe_CallStack.lastException = null; haxe_CallStack.getStack = function(e) { if(e == null) return []; var oldValue = Error.prepareStackTrace; Error.prepareStackTrace = function(error,callsites) { var stack = []; var _g = 0; while(_g < callsites.length) { var site = callsites[_g]; ++_g; if(haxe_CallStack.wrapCallSite != null) site = haxe_CallStack.wrapCallSite(site); var method = null; var fullName = site.getFunctionName(); if(fullName != null) { var idx = fullName.lastIndexOf("."); if(idx >= 0) { var className = HxOverrides.substr(fullName,0,idx); var methodName = HxOverrides.substr(fullName,idx + 1,null); method = haxe_StackItem.Method(className,methodName); } } stack.push(haxe_StackItem.FilePos(method,site.getFileName(),site.getLineNumber())); } return stack; }; var a = haxe_CallStack.makeStack(e.stack); Error.prepareStackTrace = oldValue; return a; }; haxe_CallStack.wrapCallSite = null; haxe_CallStack.callStack = function() { try { throw new Error(); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; var a = haxe_CallStack.getStack(e); a.shift(); return a; } }; haxe_CallStack.exceptionStack = function() { return haxe_CallStack.getStack(haxe_CallStack.lastException); }; haxe_CallStack.toString = function(stack) { var b = new StringBuf(); var _g = 0; while(_g < stack.length) { var s = stack[_g]; ++_g; b.b += "\nCalled from "; haxe_CallStack.itemToString(b,s); } return b.b; }; haxe_CallStack.itemToString = function(b,s) { switch(s[1]) { case 0: b.b += "a C function"; break; case 1: var m = s[2]; b.b += "module "; if(m == null) b.b += "null"; else b.b += "" + m; break; case 2: var line = s[4]; var file = s[3]; var s1 = s[2]; if(s1 != null) { haxe_CallStack.itemToString(b,s1); b.b += " ("; } if(file == null) b.b += "null"; else b.b += "" + file; b.b += " line "; if(line == null) b.b += "null"; else b.b += "" + line; if(s1 != null) b.b += ")"; break; case 3: var meth = s[3]; var cname = s[2]; if(cname == null) b.b += "null"; else b.b += "" + cname; b.b += "."; if(meth == null) b.b += "null"; else b.b += "" + meth; break; case 4: var n = s[2]; b.b += "local function #"; if(n == null) b.b += "null"; else b.b += "" + n; break; } }; haxe_CallStack.makeStack = function(s) { if(s == null) return []; else if(typeof(s) == "string") { var stack = s.split("\n"); if(stack[0] == "Error") stack.shift(); var m = []; var rie10 = new EReg("^ at ([A-Za-z0-9_. ]+) \\(([^)]+):([0-9]+):([0-9]+)\\)$",""); var _g = 0; while(_g < stack.length) { var line = stack[_g]; ++_g; if(rie10.match(line)) { var path = rie10.matched(1).split("."); var meth = path.pop(); var file = rie10.matched(2); var line1 = Std.parseInt(rie10.matched(3)); m.push(haxe_StackItem.FilePos(meth == "Anonymous function"?haxe_StackItem.LocalFunction():meth == "Global code"?null:haxe_StackItem.Method(path.join("."),meth),file,line1)); } else m.push(haxe_StackItem.Module(StringTools.trim(line))); } return m; } else return s; }; var haxe_IMap = function() { }; $hxClasses["haxe.IMap"] = haxe_IMap; haxe_IMap.__name__ = ["haxe","IMap"]; haxe_IMap.prototype = { exists: null ,remove: null ,iterator: null ,__class__: haxe_IMap }; var haxe__$Int64__$_$_$Int64 = function(high,low) { this.high = high; this.low = low; }; $hxClasses["haxe._Int64.___Int64"] = haxe__$Int64__$_$_$Int64; haxe__$Int64__$_$_$Int64.__name__ = ["haxe","_Int64","___Int64"]; haxe__$Int64__$_$_$Int64.prototype = { high: null ,low: null ,__class__: haxe__$Int64__$_$_$Int64 }; var haxe_Log = function() { }; $hxClasses["haxe.Log"] = haxe_Log; haxe_Log.__name__ = ["haxe","Log"]; haxe_Log.trace = function(v,infos) { js_Boot.__trace(v,infos); }; var haxe_Resource = function() { }; $hxClasses["haxe.Resource"] = haxe_Resource; haxe_Resource.__name__ = ["haxe","Resource"]; haxe_Resource.content = null; haxe_Resource.getString = function(name) { var _g = 0; var _g1 = haxe_Resource.content; while(_g < _g1.length) { var x = _g1[_g]; ++_g; if(x.name == name) { if(x.str != null) return x.str; var b = haxe_crypto_Base64.decode(x.data); return b.toString(); } } return null; }; haxe_Resource.getBytes = function(name) { var _g = 0; var _g1 = haxe_Resource.content; while(_g < _g1.length) { var x = _g1[_g]; ++_g; if(x.name == name) { if(x.str != null) return haxe_io_Bytes.ofString(x.str); return haxe_crypto_Base64.decode(x.data); } } return null; }; var haxe_Serializer = function() { this.buf = new StringBuf(); this.cache = []; this.useCache = haxe_Serializer.USE_CACHE; this.useEnumIndex = haxe_Serializer.USE_ENUM_INDEX; this.shash = new haxe_ds_StringMap(); this.scount = 0; }; $hxClasses["haxe.Serializer"] = haxe_Serializer; haxe_Serializer.__name__ = ["haxe","Serializer"]; haxe_Serializer.run = function(v) { var s = new haxe_Serializer(); s.serialize(v); return s.toString(); }; haxe_Serializer.prototype = { buf: null ,cache: null ,shash: null ,scount: null ,useCache: null ,useEnumIndex: null ,toString: function() { return this.buf.b; } ,serializeString: function(s) { var x = this.shash.get(s); if(x != null) { this.buf.b += "R"; if(x == null) this.buf.b += "null"; else this.buf.b += "" + x; return; } this.shash.set(s,this.scount++); this.buf.b += "y"; s = encodeURIComponent(s); if(s.length == null) this.buf.b += "null"; else this.buf.b += "" + s.length; this.buf.b += ":"; if(s == null) this.buf.b += "null"; else this.buf.b += "" + s; } ,serializeRef: function(v) { var vt = typeof(v); var _g1 = 0; var _g = this.cache.length; while(_g1 < _g) { var i = _g1++; var ci = this.cache[i]; if(typeof(ci) == vt && ci == v) { this.buf.b += "r"; if(i == null) this.buf.b += "null"; else this.buf.b += "" + i; return true; } } this.cache.push(v); return false; } ,serializeFields: function(v) { var _g = 0; var _g1 = Reflect.fields(v); while(_g < _g1.length) { var f = _g1[_g]; ++_g; this.serializeString(f); this.serialize(Reflect.field(v,f)); } this.buf.b += "g"; } ,serialize: function(v) { { var _g = Type["typeof"](v); switch(_g[1]) { case 0: this.buf.b += "n"; break; case 1: var v1 = v; if(v1 == 0) { this.buf.b += "z"; return; } this.buf.b += "i"; if(v1 == null) this.buf.b += "null"; else this.buf.b += "" + v1; break; case 2: var v2 = v; if(isNaN(v2)) this.buf.b += "k"; else if(!isFinite(v2)) if(v2 < 0) this.buf.b += "m"; else this.buf.b += "p"; else { this.buf.b += "d"; if(v2 == null) this.buf.b += "null"; else this.buf.b += "" + v2; } break; case 3: if(v) this.buf.b += "t"; else this.buf.b += "f"; break; case 6: var c = _g[2]; if(c == String) { this.serializeString(v); return; } if(this.useCache && this.serializeRef(v)) return; switch(c) { case Array: var ucount = 0; this.buf.b += "a"; var l = v.length; var _g1 = 0; while(_g1 < l) { var i = _g1++; if(v[i] == null) ucount++; else { if(ucount > 0) { if(ucount == 1) this.buf.b += "n"; else { this.buf.b += "u"; if(ucount == null) this.buf.b += "null"; else this.buf.b += "" + ucount; } ucount = 0; } this.serialize(v[i]); } } if(ucount > 0) { if(ucount == 1) this.buf.b += "n"; else { this.buf.b += "u"; if(ucount == null) this.buf.b += "null"; else this.buf.b += "" + ucount; } } this.buf.b += "h"; break; case List: this.buf.b += "l"; var v3 = v; var _g1_head = v3.h; var _g1_val = null; while(_g1_head != null) { var i1; _g1_val = _g1_head[0]; _g1_head = _g1_head[1]; i1 = _g1_val; this.serialize(i1); } this.buf.b += "h"; break; case Date: var d = v; this.buf.b += "v"; this.buf.add(d.getTime()); break; case haxe_ds_StringMap: this.buf.b += "b"; var v4 = v; var $it0 = v4.keys(); while( $it0.hasNext() ) { var k = $it0.next(); this.serializeString(k); this.serialize(__map_reserved[k] != null?v4.getReserved(k):v4.h[k]); } this.buf.b += "h"; break; case haxe_ds_IntMap: this.buf.b += "q"; var v5 = v; var $it1 = v5.keys(); while( $it1.hasNext() ) { var k1 = $it1.next(); this.buf.b += ":"; if(k1 == null) this.buf.b += "null"; else this.buf.b += "" + k1; this.serialize(v5.h[k1]); } this.buf.b += "h"; break; case haxe_ds_ObjectMap: this.buf.b += "M"; var v6 = v; var $it2 = v6.keys(); while( $it2.hasNext() ) { var k2 = $it2.next(); var id = Reflect.field(k2,"__id__"); Reflect.deleteField(k2,"__id__"); this.serialize(k2); k2.__id__ = id; this.serialize(v6.h[k2.__id__]); } this.buf.b += "h"; break; case haxe_io_Bytes: var v7 = v; var i2 = 0; var max = v7.length - 2; var charsBuf = new StringBuf(); var b64 = haxe_Serializer.BASE64; while(i2 < max) { var b1 = v7.get(i2++); var b2 = v7.get(i2++); var b3 = v7.get(i2++); charsBuf.add(b64.charAt(b1 >> 2)); charsBuf.add(b64.charAt((b1 << 4 | b2 >> 4) & 63)); charsBuf.add(b64.charAt((b2 << 2 | b3 >> 6) & 63)); charsBuf.add(b64.charAt(b3 & 63)); } if(i2 == max) { var b11 = v7.get(i2++); var b21 = v7.get(i2++); charsBuf.add(b64.charAt(b11 >> 2)); charsBuf.add(b64.charAt((b11 << 4 | b21 >> 4) & 63)); charsBuf.add(b64.charAt(b21 << 2 & 63)); } else if(i2 == max + 1) { var b12 = v7.get(i2++); charsBuf.add(b64.charAt(b12 >> 2)); charsBuf.add(b64.charAt(b12 << 4 & 63)); } var chars = charsBuf.b; this.buf.b += "s"; if(chars.length == null) this.buf.b += "null"; else this.buf.b += "" + chars.length; this.buf.b += ":"; if(chars == null) this.buf.b += "null"; else this.buf.b += "" + chars; break; default: if(this.useCache) this.cache.pop(); if(v.hxSerialize != null) { this.buf.b += "C"; this.serializeString(Type.getClassName(c)); if(this.useCache) this.cache.push(v); v.hxSerialize(this); this.buf.b += "g"; } else { this.buf.b += "c"; this.serializeString(Type.getClassName(c)); if(this.useCache) this.cache.push(v); this.serializeFields(v); } } break; case 4: if(js_Boot.__instanceof(v,Class)) { var className = Type.getClassName(v); this.buf.b += "A"; this.serializeString(className); } else if(js_Boot.__instanceof(v,Enum)) { this.buf.b += "B"; this.serializeString(Type.getEnumName(v)); } else { if(this.useCache && this.serializeRef(v)) return; this.buf.b += "o"; this.serializeFields(v); } break; case 7: var e = _g[2]; if(this.useCache) { if(this.serializeRef(v)) return; this.cache.pop(); } if(this.useEnumIndex) this.buf.b += "j"; else this.buf.b += "w"; this.serializeString(Type.getEnumName(e)); if(this.useEnumIndex) { this.buf.b += ":"; this.buf.b += Std.string(v[1]); } else this.serializeString(v[0]); this.buf.b += ":"; var l1 = v.length; this.buf.b += Std.string(l1 - 2); var _g11 = 2; while(_g11 < l1) { var i3 = _g11++; this.serialize(v[i3]); } if(this.useCache) this.cache.push(v); break; case 5: throw new js__$Boot_HaxeError("Cannot serialize function"); break; default: throw new js__$Boot_HaxeError("Cannot serialize " + Std.string(v)); } } } ,__class__: haxe_Serializer }; var haxe_Timer = function(time_ms) { var me = this; this.id = setInterval(function() { me.run(); },time_ms); }; $hxClasses["haxe.Timer"] = haxe_Timer; haxe_Timer.__name__ = ["haxe","Timer"]; haxe_Timer.delay = function(f,time_ms) { var t = new haxe_Timer(time_ms); t.run = function() { t.stop(); f(); }; return t; }; haxe_Timer.measure = function(f,pos) { var t0 = haxe_Timer.stamp(); var r = f(); haxe_Log.trace(haxe_Timer.stamp() - t0 + "s",pos); return r; }; haxe_Timer.stamp = function() { return new Date().getTime() / 1000; }; haxe_Timer.prototype = { id: null ,stop: function() { if(this.id == null) return; clearInterval(this.id); this.id = null; } ,run: function() { } ,__class__: haxe_Timer }; var haxe_Unserializer = function(buf) { this.buf = buf; this.length = buf.length; this.pos = 0; this.scache = []; this.cache = []; var r = haxe_Unserializer.DEFAULT_RESOLVER; if(r == null) { r = Type; haxe_Unserializer.DEFAULT_RESOLVER = r; } this.setResolver(r); }; $hxClasses["haxe.Unserializer"] = haxe_Unserializer; haxe_Unserializer.__name__ = ["haxe","Unserializer"]; haxe_Unserializer.initCodes = function() { var codes = []; var _g1 = 0; var _g = haxe_Unserializer.BASE64.length; while(_g1 < _g) { var i = _g1++; codes[haxe_Unserializer.BASE64.charCodeAt(i)] = i; } return codes; }; haxe_Unserializer.prototype = { buf: null ,pos: null ,length: null ,cache: null ,scache: null ,resolver: null ,setResolver: function(r) { if(r == null) this.resolver = { resolveClass : function(_) { return null; }, resolveEnum : function(_1) { return null; }}; else this.resolver = r; } ,get: function(p) { return this.buf.charCodeAt(p); } ,readDigits: function() { var k = 0; var s = false; var fpos = this.pos; while(true) { var c = this.buf.charCodeAt(this.pos); if(c != c) break; if(c == 45) { if(this.pos != fpos) break; s = true; this.pos++; continue; } if(c < 48 || c > 57) break; k = k * 10 + (c - 48); this.pos++; } if(s) k *= -1; return k; } ,readFloat: function() { var p1 = this.pos; while(true) { var c = this.buf.charCodeAt(this.pos); if(c >= 43 && c < 58 || c == 101 || c == 69) this.pos++; else break; } return Std.parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1)); } ,unserializeObject: function(o) { while(true) { if(this.pos >= this.length) throw new js__$Boot_HaxeError("Invalid object"); if(this.buf.charCodeAt(this.pos) == 103) break; var k = this.unserialize(); if(!(typeof(k) == "string")) throw new js__$Boot_HaxeError("Invalid object key"); var v = this.unserialize(); o[k] = v; } this.pos++; } ,unserializeEnum: function(edecl,tag) { if(this.get(this.pos++) != 58) throw new js__$Boot_HaxeError("Invalid enum format"); var nargs = this.readDigits(); if(nargs == 0) return Type.createEnum(edecl,tag); var args = []; while(nargs-- > 0) args.push(this.unserialize()); return Type.createEnum(edecl,tag,args); } ,unserialize: function() { var _g = this.get(this.pos++); switch(_g) { case 110: return null; case 116: return true; case 102: return false; case 122: return 0; case 105: return this.readDigits(); case 100: return this.readFloat(); case 121: var len = this.readDigits(); if(this.get(this.pos++) != 58 || this.length - this.pos < len) throw new js__$Boot_HaxeError("Invalid string length"); var s = HxOverrides.substr(this.buf,this.pos,len); this.pos += len; s = decodeURIComponent(s.split("+").join(" ")); this.scache.push(s); return s; case 107: return NaN; case 109: return -Infinity; case 112: return Infinity; case 97: var buf = this.buf; var a = []; this.cache.push(a); while(true) { var c = this.buf.charCodeAt(this.pos); if(c == 104) { this.pos++; break; } if(c == 117) { this.pos++; var n = this.readDigits(); a[a.length + n - 1] = null; } else a.push(this.unserialize()); } return a; case 111: var o = { }; this.cache.push(o); this.unserializeObject(o); return o; case 114: var n1 = this.readDigits(); if(n1 < 0 || n1 >= this.cache.length) throw new js__$Boot_HaxeError("Invalid reference"); return this.cache[n1]; case 82: var n2 = this.readDigits(); if(n2 < 0 || n2 >= this.scache.length) throw new js__$Boot_HaxeError("Invalid string reference"); return this.scache[n2]; case 120: throw new js__$Boot_HaxeError(this.unserialize()); break; case 99: var name = this.unserialize(); var cl = this.resolver.resolveClass(name); if(cl == null) throw new js__$Boot_HaxeError("Class not found " + name); var o1 = Type.createEmptyInstance(cl); this.cache.push(o1); this.unserializeObject(o1); return o1; case 119: var name1 = this.unserialize(); var edecl = this.resolver.resolveEnum(name1); if(edecl == null) throw new js__$Boot_HaxeError("Enum not found " + name1); var e = this.unserializeEnum(edecl,this.unserialize()); this.cache.push(e); return e; case 106: var name2 = this.unserialize(); var edecl1 = this.resolver.resolveEnum(name2); if(edecl1 == null) throw new js__$Boot_HaxeError("Enum not found " + name2); this.pos++; var index = this.readDigits(); var tag = Type.getEnumConstructs(edecl1)[index]; if(tag == null) throw new js__$Boot_HaxeError("Unknown enum index " + name2 + "@" + index); var e1 = this.unserializeEnum(edecl1,tag); this.cache.push(e1); return e1; case 108: var l = new List(); this.cache.push(l); var buf1 = this.buf; while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize()); this.pos++; return l; case 98: var h = new haxe_ds_StringMap(); this.cache.push(h); var buf2 = this.buf; while(this.buf.charCodeAt(this.pos) != 104) { var s1 = this.unserialize(); h.set(s1,this.unserialize()); } this.pos++; return h; case 113: var h1 = new haxe_ds_IntMap(); this.cache.push(h1); var buf3 = this.buf; var c1 = this.get(this.pos++); while(c1 == 58) { var i = this.readDigits(); h1.set(i,this.unserialize()); c1 = this.get(this.pos++); } if(c1 != 104) throw new js__$Boot_HaxeError("Invalid IntMap format"); return h1; case 77: var h2 = new haxe_ds_ObjectMap(); this.cache.push(h2); var buf4 = this.buf; while(this.buf.charCodeAt(this.pos) != 104) { var s2 = this.unserialize(); h2.set(s2,this.unserialize()); } this.pos++; return h2; case 118: var d; if(this.buf.charCodeAt(this.pos) >= 48 && this.buf.charCodeAt(this.pos) <= 57 && this.buf.charCodeAt(this.pos + 1) >= 48 && this.buf.charCodeAt(this.pos + 1) <= 57 && this.buf.charCodeAt(this.pos + 2) >= 48 && this.buf.charCodeAt(this.pos + 2) <= 57 && this.buf.charCodeAt(this.pos + 3) >= 48 && this.buf.charCodeAt(this.pos + 3) <= 57 && this.buf.charCodeAt(this.pos + 4) == 45) { var s3 = HxOverrides.substr(this.buf,this.pos,19); d = HxOverrides.strDate(s3); this.pos += 19; } else { var t = this.readFloat(); var d1 = new Date(); d1.setTime(t); d = d1; } this.cache.push(d); return d; case 115: var len1 = this.readDigits(); var buf5 = this.buf; if(this.get(this.pos++) != 58 || this.length - this.pos < len1) throw new js__$Boot_HaxeError("Invalid bytes length"); var codes = haxe_Unserializer.CODES; if(codes == null) { codes = haxe_Unserializer.initCodes(); haxe_Unserializer.CODES = codes; } var i1 = this.pos; var rest = len1 & 3; var size; size = (len1 >> 2) * 3 + (rest >= 2?rest - 1:0); var max = i1 + (len1 - rest); var bytes = haxe_io_Bytes.alloc(size); var bpos = 0; while(i1 < max) { var c11 = codes[StringTools.fastCodeAt(buf5,i1++)]; var c2 = codes[StringTools.fastCodeAt(buf5,i1++)]; bytes.set(bpos++,c11 << 2 | c2 >> 4); var c3 = codes[StringTools.fastCodeAt(buf5,i1++)]; bytes.set(bpos++,c2 << 4 | c3 >> 2); var c4 = codes[StringTools.fastCodeAt(buf5,i1++)]; bytes.set(bpos++,c3 << 6 | c4); } if(rest >= 2) { var c12 = codes[StringTools.fastCodeAt(buf5,i1++)]; var c21 = codes[StringTools.fastCodeAt(buf5,i1++)]; bytes.set(bpos++,c12 << 2 | c21 >> 4); if(rest == 3) { var c31 = codes[StringTools.fastCodeAt(buf5,i1++)]; bytes.set(bpos++,c21 << 4 | c31 >> 2); } } this.pos += len1; this.cache.push(bytes); return bytes; case 67: var name3 = this.unserialize(); var cl1 = this.resolver.resolveClass(name3); if(cl1 == null) throw new js__$Boot_HaxeError("Class not found " + name3); var o2 = Type.createEmptyInstance(cl1); this.cache.push(o2); o2.hxUnserialize(this); if(this.get(this.pos++) != 103) throw new js__$Boot_HaxeError("Invalid custom data"); return o2; case 65: var name4 = this.unserialize(); var cl2 = this.resolver.resolveClass(name4); if(cl2 == null) throw new js__$Boot_HaxeError("Class not found " + name4); return cl2; case 66: var name5 = this.unserialize(); var e2 = this.resolver.resolveEnum(name5); if(e2 == null) throw new js__$Boot_HaxeError("Enum not found " + name5); return e2; default: } this.pos--; throw new js__$Boot_HaxeError("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos); } ,__class__: haxe_Unserializer }; var haxe_crypto_Base64 = function() { }; $hxClasses["haxe.crypto.Base64"] = haxe_crypto_Base64; haxe_crypto_Base64.__name__ = ["haxe","crypto","Base64"]; haxe_crypto_Base64.decode = function(str,complement) { if(complement == null) complement = true; if(complement) while(HxOverrides.cca(str,str.length - 1) == 61) str = HxOverrides.substr(str,0,-1); return new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).decodeBytes(haxe_io_Bytes.ofString(str)); }; var haxe_crypto_BaseCode = function(base) { var len = base.length; var nbits = 1; while(len > 1 << nbits) nbits++; if(nbits > 8 || len != 1 << nbits) throw new js__$Boot_HaxeError("BaseCode : base length must be a power of two."); this.base = base; this.nbits = nbits; }; $hxClasses["haxe.crypto.BaseCode"] = haxe_crypto_BaseCode; haxe_crypto_BaseCode.__name__ = ["haxe","crypto","BaseCode"]; haxe_crypto_BaseCode.prototype = { base: null ,nbits: null ,tbl: null ,encodeBytes: function(b) { var nbits = this.nbits; var base = this.base; var size = b.length * 8 / nbits | 0; var out = haxe_io_Bytes.alloc(size + (b.length * 8 % nbits == 0?0:1)); var buf = 0; var curbits = 0; var mask = (1 << nbits) - 1; var pin = 0; var pout = 0; while(pout < size) { while(curbits < nbits) { curbits += 8; buf <<= 8; buf |= b.get(pin++); } curbits -= nbits; out.set(pout++,base.b[buf >> curbits & mask]); } if(curbits > 0) out.set(pout++,base.b[buf << nbits - curbits & mask]); return out; } ,initTable: function() { var tbl = []; var _g = 0; while(_g < 256) { var i = _g++; tbl[i] = -1; } var _g1 = 0; var _g2 = this.base.length; while(_g1 < _g2) { var i1 = _g1++; tbl[this.base.b[i1]] = i1; } this.tbl = tbl; } ,decodeBytes: function(b) { var nbits = this.nbits; var base = this.base; if(this.tbl == null) this.initTable(); var tbl = this.tbl; var size = b.length * nbits >> 3; var out = haxe_io_Bytes.alloc(size); var buf = 0; var curbits = 0; var pin = 0; var pout = 0; while(pout < size) { while(curbits < 8) { curbits += nbits; buf <<= nbits; var i = tbl[b.get(pin++)]; if(i == -1) throw new js__$Boot_HaxeError("BaseCode : invalid encoded char"); buf |= i; } curbits -= 8; out.set(pout++,buf >> curbits & 255); } return out; } ,__class__: haxe_crypto_BaseCode }; var haxe_crypto_Md5 = function() { }; $hxClasses["haxe.crypto.Md5"] = haxe_crypto_Md5; haxe_crypto_Md5.__name__ = ["haxe","crypto","Md5"]; haxe_crypto_Md5.encode = function(s) { var m = new haxe_crypto_Md5(); var h = m.doEncode(haxe_crypto_Md5.str2blks(s)); return m.hex(h); }; haxe_crypto_Md5.str2blks = function(str) { var nblk = (str.length + 8 >> 6) + 1; var blks = []; var blksSize = nblk * 16; var _g = 0; while(_g < blksSize) { var i1 = _g++; blks[i1] = 0; } var i = 0; while(i < str.length) { blks[i >> 2] |= HxOverrides.cca(str,i) << (str.length * 8 + i) % 4 * 8; i++; } blks[i >> 2] |= 128 << (str.length * 8 + i) % 4 * 8; var l = str.length * 8; var k = nblk * 16 - 2; blks[k] = l & 255; blks[k] |= (l >>> 8 & 255) << 8; blks[k] |= (l >>> 16 & 255) << 16; blks[k] |= (l >>> 24 & 255) << 24; return blks; }; haxe_crypto_Md5.prototype = { bitOR: function(a,b) { var lsb = a & 1 | b & 1; var msb31 = a >>> 1 | b >>> 1; return msb31 << 1 | lsb; } ,bitXOR: function(a,b) { var lsb = a & 1 ^ b & 1; var msb31 = a >>> 1 ^ b >>> 1; return msb31 << 1 | lsb; } ,bitAND: function(a,b) { var lsb = a & 1 & (b & 1); var msb31 = a >>> 1 & b >>> 1; return msb31 << 1 | lsb; } ,addme: function(x,y) { var lsw = (x & 65535) + (y & 65535); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return msw << 16 | lsw & 65535; } ,hex: function(a) { var str = ""; var hex_chr = "0123456789abcdef"; var _g = 0; while(_g < a.length) { var num = a[_g]; ++_g; var _g1 = 0; while(_g1 < 4) { var j = _g1++; str += hex_chr.charAt(num >> j * 8 + 4 & 15) + hex_chr.charAt(num >> j * 8 & 15); } } return str; } ,rol: function(num,cnt) { return num << cnt | num >>> 32 - cnt; } ,cmn: function(q,a,b,x,s,t) { return this.addme(this.rol(this.addme(this.addme(a,q),this.addme(x,t)),s),b); } ,ff: function(a,b,c,d,x,s,t) { return this.cmn(this.bitOR(this.bitAND(b,c),this.bitAND(~b,d)),a,b,x,s,t); } ,gg: function(a,b,c,d,x,s,t) { return this.cmn(this.bitOR(this.bitAND(b,d),this.bitAND(c,~d)),a,b,x,s,t); } ,hh: function(a,b,c,d,x,s,t) { return this.cmn(this.bitXOR(this.bitXOR(b,c),d),a,b,x,s,t); } ,ii: function(a,b,c,d,x,s,t) { return this.cmn(this.bitXOR(c,this.bitOR(b,~d)),a,b,x,s,t); } ,doEncode: function(x) { var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; var step; var i = 0; while(i < x.length) { var olda = a; var oldb = b; var oldc = c; var oldd = d; step = 0; a = this.ff(a,b,c,d,x[i],7,-680876936); d = this.ff(d,a,b,c,x[i + 1],12,-389564586); c = this.ff(c,d,a,b,x[i + 2],17,606105819); b = this.ff(b,c,d,a,x[i + 3],22,-1044525330); a = this.ff(a,b,c,d,x[i + 4],7,-176418897); d = this.ff(d,a,b,c,x[i + 5],12,1200080426); c = this.ff(c,d,a,b,x[i + 6],17,-1473231341); b = this.ff(b,c,d,a,x[i + 7],22,-45705983); a = this.ff(a,b,c,d,x[i + 8],7,1770035416); d = this.ff(d,a,b,c,x[i + 9],12,-1958414417); c = this.ff(c,d,a,b,x[i + 10],17,-42063); b = this.ff(b,c,d,a,x[i + 11],22,-1990404162); a = this.ff(a,b,c,d,x[i + 12],7,1804603682); d = this.ff(d,a,b,c,x[i + 13],12,-40341101); c = this.ff(c,d,a,b,x[i + 14],17,-1502002290); b = this.ff(b,c,d,a,x[i + 15],22,1236535329); a = this.gg(a,b,c,d,x[i + 1],5,-165796510); d = this.gg(d,a,b,c,x[i + 6],9,-1069501632); c = this.gg(c,d,a,b,x[i + 11],14,643717713); b = this.gg(b,c,d,a,x[i],20,-373897302); a = this.gg(a,b,c,d,x[i + 5],5,-701558691); d = this.gg(d,a,b,c,x[i + 10],9,38016083); c = this.gg(c,d,a,b,x[i + 15],14,-660478335); b = this.gg(b,c,d,a,x[i + 4],20,-405537848); a = this.gg(a,b,c,d,x[i + 9],5,568446438); d = this.gg(d,a,b,c,x[i + 14],9,-1019803690); c = this.gg(c,d,a,b,x[i + 3],14,-187363961); b = this.gg(b,c,d,a,x[i + 8],20,1163531501); a = this.gg(a,b,c,d,x[i + 13],5,-1444681467); d = this.gg(d,a,b,c,x[i + 2],9,-51403784); c = this.gg(c,d,a,b,x[i + 7],14,1735328473); b = this.gg(b,c,d,a,x[i + 12],20,-1926607734); a = this.hh(a,b,c,d,x[i + 5],4,-378558); d = this.hh(d,a,b,c,x[i + 8],11,-2022574463); c = this.hh(c,d,a,b,x[i + 11],16,1839030562); b = this.hh(b,c,d,a,x[i + 14],23,-35309556); a = this.hh(a,b,c,d,x[i + 1],4,-1530992060); d = this.hh(d,a,b,c,x[i + 4],11,1272893353); c = this.hh(c,d,a,b,x[i + 7],16,-155497632); b = this.hh(b,c,d,a,x[i + 10],23,-1094730640); a = this.hh(a,b,c,d,x[i + 13],4,681279174); d = this.hh(d,a,b,c,x[i],11,-358537222); c = this.hh(c,d,a,b,x[i + 3],16,-722521979); b = this.hh(b,c,d,a,x[i + 6],23,76029189); a = this.hh(a,b,c,d,x[i + 9],4,-640364487); d = this.hh(d,a,b,c,x[i + 12],11,-421815835); c = this.hh(c,d,a,b,x[i + 15],16,530742520); b = this.hh(b,c,d,a,x[i + 2],23,-995338651); a = this.ii(a,b,c,d,x[i],6,-198630844); d = this.ii(d,a,b,c,x[i + 7],10,1126891415); c = this.ii(c,d,a,b,x[i + 14],15,-1416354905); b = this.ii(b,c,d,a,x[i + 5],21,-57434055); a = this.ii(a,b,c,d,x[i + 12],6,1700485571); d = this.ii(d,a,b,c,x[i + 3],10,-1894986606); c = this.ii(c,d,a,b,x[i + 10],15,-1051523); b = this.ii(b,c,d,a,x[i + 1],21,-2054922799); a = this.ii(a,b,c,d,x[i + 8],6,1873313359); d = this.ii(d,a,b,c,x[i + 15],10,-30611744); c = this.ii(c,d,a,b,x[i + 6],15,-1560198380); b = this.ii(b,c,d,a,x[i + 13],21,1309151649); a = this.ii(a,b,c,d,x[i + 4],6,-145523070); d = this.ii(d,a,b,c,x[i + 11],10,-1120210379); c = this.ii(c,d,a,b,x[i + 2],15,718787259); b = this.ii(b,c,d,a,x[i + 9],21,-343485551); a = this.addme(a,olda); b = this.addme(b,oldb); c = this.addme(c,oldc); d = this.addme(d,oldd); i += 16; } return [a,b,c,d]; } ,__class__: haxe_crypto_Md5 }; var haxe_ds_IntMap = function() { this.h = { }; }; $hxClasses["haxe.ds.IntMap"] = haxe_ds_IntMap; haxe_ds_IntMap.__name__ = ["haxe","ds","IntMap"]; haxe_ds_IntMap.__interfaces__ = [haxe_IMap]; haxe_ds_IntMap.prototype = { h: null ,set: function(key,value) { this.h[key] = value; } ,exists: function(key) { return this.h.hasOwnProperty(key); } ,remove: function(key) { if(!this.h.hasOwnProperty(key)) return false; delete(this.h[key]); return true; } ,keys: function() { var a = []; for( var key in this.h ) { if(this.h.hasOwnProperty(key)) a.push(key | 0); } return HxOverrides.iter(a); } ,iterator: function() { return { ref : this.h, it : this.keys(), hasNext : function() { return this.it.hasNext(); }, next : function() { var i = this.it.next(); return this.ref[i]; }}; } ,__class__: haxe_ds_IntMap }; var haxe_ds_ObjectMap = function() { this.h = { }; this.h.__keys__ = { }; }; $hxClasses["haxe.ds.ObjectMap"] = haxe_ds_ObjectMap; haxe_ds_ObjectMap.__name__ = ["haxe","ds","ObjectMap"]; haxe_ds_ObjectMap.__interfaces__ = [haxe_IMap]; haxe_ds_ObjectMap.prototype = { h: null ,set: function(key,value) { var id = key.__id__ || (key.__id__ = ++haxe_ds_ObjectMap.count); this.h[id] = value; this.h.__keys__[id] = key; } ,get: function(key) { return this.h[key.__id__]; } ,exists: function(key) { return this.h.__keys__[key.__id__] != null; } ,remove: function(key) { var id = key.__id__; if(this.h.__keys__[id] == null) return false; delete(this.h[id]); delete(this.h.__keys__[id]); return true; } ,keys: function() { var a = []; for( var key in this.h.__keys__ ) { if(this.h.hasOwnProperty(key)) a.push(this.h.__keys__[key]); } return HxOverrides.iter(a); } ,iterator: function() { return { ref : this.h, it : this.keys(), hasNext : function() { return this.it.hasNext(); }, next : function() { var i = this.it.next(); return this.ref[i.__id__]; }}; } ,__class__: haxe_ds_ObjectMap }; var haxe_ds__$StringMap_StringMapIterator = function(map,keys) { this.map = map; this.keys = keys; this.index = 0; this.count = keys.length; }; $hxClasses["haxe.ds._StringMap.StringMapIterator"] = haxe_ds__$StringMap_StringMapIterator; haxe_ds__$StringMap_StringMapIterator.__name__ = ["haxe","ds","_StringMap","StringMapIterator"]; haxe_ds__$StringMap_StringMapIterator.prototype = { map: null ,keys: null ,index: null ,count: null ,hasNext: function() { return this.index < this.count; } ,next: function() { return this.map.get(this.keys[this.index++]); } ,__class__: haxe_ds__$StringMap_StringMapIterator }; var haxe_ds_StringMap = function() { this.h = { }; }; $hxClasses["haxe.ds.StringMap"] = haxe_ds_StringMap; haxe_ds_StringMap.__name__ = ["haxe","ds","StringMap"]; haxe_ds_StringMap.__interfaces__ = [haxe_IMap]; haxe_ds_StringMap.prototype = { h: null ,rh: null ,set: function(key,value) { if(__map_reserved[key] != null) this.setReserved(key,value); else this.h[key] = value; } ,get: function(key) { if(__map_reserved[key] != null) return this.getReserved(key); return this.h[key]; } ,exists: function(key) { if(__map_reserved[key] != null) return this.existsReserved(key); return this.h.hasOwnProperty(key); } ,setReserved: function(key,value) { if(this.rh == null) this.rh = { }; this.rh["$" + key] = value; } ,getReserved: function(key) { if(this.rh == null) return null; else return this.rh["$" + key]; } ,existsReserved: function(key) { if(this.rh == null) return false; return this.rh.hasOwnProperty("$" + key); } ,remove: function(key) { if(__map_reserved[key] != null) { key = "$" + key; if(this.rh == null || !this.rh.hasOwnProperty(key)) return false; delete(this.rh[key]); return true; } else { if(!this.h.hasOwnProperty(key)) return false; delete(this.h[key]); return true; } } ,keys: function() { var _this = this.arrayKeys(); return HxOverrides.iter(_this); } ,arrayKeys: function() { var out = []; for( var key in this.h ) { if(this.h.hasOwnProperty(key)) out.push(key); } if(this.rh != null) { for( var key in this.rh ) { if(key.charCodeAt(0) == 36) out.push(key.substr(1)); } } return out; } ,iterator: function() { return new haxe_ds__$StringMap_StringMapIterator(this,this.arrayKeys()); } ,__class__: haxe_ds_StringMap }; var haxe_ds__$Vector_Vector_$Impl_$ = {}; $hxClasses["haxe.ds._Vector.Vector_Impl_"] = haxe_ds__$Vector_Vector_$Impl_$; haxe_ds__$Vector_Vector_$Impl_$.__name__ = ["haxe","ds","_Vector","Vector_Impl_"]; haxe_ds__$Vector_Vector_$Impl_$.blit = function(src,srcPos,dest,destPos,len) { var _g = 0; while(_g < len) { var i = _g++; dest[destPos + i] = src[srcPos + i]; } }; haxe_ds__$Vector_Vector_$Impl_$.toArray = function(this1) { var a = []; var len = this1.length; var _g = 0; while(_g < len) { var i = _g++; a[i] = this1[i]; } return a; }; var haxe_io_Eof = function() { }; $hxClasses["haxe.io.Eof"] = haxe_io_Eof; haxe_io_Eof.__name__ = ["haxe","io","Eof"]; haxe_io_Eof.prototype = { toString: function() { return "Eof"; } ,__class__: haxe_io_Eof }; var haxe_io_Error = $hxClasses["haxe.io.Error"] = { __ename__ : ["haxe","io","Error"], __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"] }; haxe_io_Error.Blocked = ["Blocked",0]; haxe_io_Error.Blocked.toString = $estr; haxe_io_Error.Blocked.__enum__ = haxe_io_Error; haxe_io_Error.Overflow = ["Overflow",1]; haxe_io_Error.Overflow.toString = $estr; haxe_io_Error.Overflow.__enum__ = haxe_io_Error; haxe_io_Error.OutsideBounds = ["OutsideBounds",2]; haxe_io_Error.OutsideBounds.toString = $estr; haxe_io_Error.OutsideBounds.__enum__ = haxe_io_Error; haxe_io_Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = haxe_io_Error; $x.toString = $estr; return $x; }; var haxe_io_FPHelper = function() { }; $hxClasses["haxe.io.FPHelper"] = haxe_io_FPHelper; haxe_io_FPHelper.__name__ = ["haxe","io","FPHelper"]; haxe_io_FPHelper.i32ToFloat = function(i) { var sign = 1 - (i >>> 31 << 1); var exp = i >>> 23 & 255; var sig = i & 8388607; if(sig == 0 && exp == 0) return 0.0; return sign * (1 + Math.pow(2,-23) * sig) * Math.pow(2,exp - 127); }; haxe_io_FPHelper.floatToI32 = function(f) { if(f == 0) return 0; var af; if(f < 0) af = -f; else af = f; var exp = Math.floor(Math.log(af) / 0.6931471805599453); if(exp < -127) exp = -127; else if(exp > 128) exp = 128; var sig = Math.round((af / Math.pow(2,exp) - 1) * 8388608) & 8388607; return (f < 0?-2147483648:0) | exp + 127 << 23 | sig; }; haxe_io_FPHelper.i64ToDouble = function(low,high) { var sign = 1 - (high >>> 31 << 1); var exp = (high >> 20 & 2047) - 1023; var sig = (high & 1048575) * 4294967296. + (low >>> 31) * 2147483648. + (low & 2147483647); if(sig == 0 && exp == -1023) return 0.0; return sign * (1.0 + Math.pow(2,-52) * sig) * Math.pow(2,exp); }; haxe_io_FPHelper.doubleToI64 = function(v) { var i64 = haxe_io_FPHelper.i64tmp; if(v == 0) { i64.low = 0; i64.high = 0; } else { var av; if(v < 0) av = -v; else av = v; var exp = Math.floor(Math.log(av) / 0.6931471805599453); var sig; var v1 = (av / Math.pow(2,exp) - 1) * 4503599627370496.; sig = Math.round(v1); var sig_l = sig | 0; var sig_h = sig / 4294967296.0 | 0; i64.low = sig_l; i64.high = (v < 0?-2147483648:0) | exp + 1023 << 20 | sig_h; } return i64; }; var haxe_io_Path = function(path) { switch(path) { case ".":case "..": this.dir = path; this.file = ""; return; } var c1 = path.lastIndexOf("/"); var c2 = path.lastIndexOf("\\"); if(c1 < c2) { this.dir = HxOverrides.substr(path,0,c2); path = HxOverrides.substr(path,c2 + 1,null); this.backslash = true; } else if(c2 < c1) { this.dir = HxOverrides.substr(path,0,c1); path = HxOverrides.substr(path,c1 + 1,null); } else this.dir = null; var cp = path.lastIndexOf("."); if(cp != -1) { this.ext = HxOverrides.substr(path,cp + 1,null); this.file = HxOverrides.substr(path,0,cp); } else { this.ext = null; this.file = path; } }; $hxClasses["haxe.io.Path"] = haxe_io_Path; haxe_io_Path.__name__ = ["haxe","io","Path"]; haxe_io_Path.withoutExtension = function(path) { var s = new haxe_io_Path(path); s.ext = null; return s.toString(); }; haxe_io_Path.prototype = { dir: null ,file: null ,ext: null ,backslash: null ,toString: function() { return (this.dir == null?"":this.dir + (this.backslash?"\\":"/")) + this.file + (this.ext == null?"":"." + this.ext); } ,__class__: haxe_io_Path }; var haxe_xml_Parser = function() { }; $hxClasses["haxe.xml.Parser"] = haxe_xml_Parser; haxe_xml_Parser.__name__ = ["haxe","xml","Parser"]; haxe_xml_Parser.parse = function(str,strict) { if(strict == null) strict = false; var doc = Xml.createDocument(); haxe_xml_Parser.doParse(str,strict,0,doc); return doc; }; haxe_xml_Parser.doParse = function(str,strict,p,parent) { if(p == null) p = 0; var xml = null; var state = 1; var next = 1; var aname = null; var start = 0; var nsubs = 0; var nbrackets = 0; var c = str.charCodeAt(p); var buf = new StringBuf(); var escapeNext = 1; var attrValQuote = -1; while(!(c != c)) { switch(state) { case 0: switch(c) { case 10:case 13:case 9:case 32: break; default: state = next; continue; } break; case 1: switch(c) { case 60: state = 0; next = 2; break; default: start = p; state = 13; continue; } break; case 13: if(c == 60) { buf.addSub(str,start,p - start); var child = Xml.createPCData(buf.b); buf = new StringBuf(); parent.addChild(child); nsubs++; state = 0; next = 2; } else if(c == 38) { buf.addSub(str,start,p - start); state = 18; escapeNext = 13; start = p + 1; } break; case 17: if(c == 93 && str.charCodeAt(p + 1) == 93 && str.charCodeAt(p + 2) == 62) { var child1 = Xml.createCData(HxOverrides.substr(str,start,p - start)); parent.addChild(child1); nsubs++; p += 2; state = 1; } break; case 2: switch(c) { case 33: if(str.charCodeAt(p + 1) == 91) { p += 2; if(HxOverrides.substr(str,p,6).toUpperCase() != "CDATA[") throw new js__$Boot_HaxeError("Expected <![CDATA["); p += 5; state = 17; start = p + 1; } else if(str.charCodeAt(p + 1) == 68 || str.charCodeAt(p + 1) == 100) { if(HxOverrides.substr(str,p + 2,6).toUpperCase() != "OCTYPE") throw new js__$Boot_HaxeError("Expected <!DOCTYPE"); p += 8; state = 16; start = p + 1; } else if(str.charCodeAt(p + 1) != 45 || str.charCodeAt(p + 2) != 45) throw new js__$Boot_HaxeError("Expected <!--"); else { p += 2; state = 15; start = p + 1; } break; case 63: state = 14; start = p; break; case 47: if(parent == null) throw new js__$Boot_HaxeError("Expected node name"); start = p + 1; state = 0; next = 10; break; default: state = 3; start = p; continue; } break; case 3: if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) { if(p == start) throw new js__$Boot_HaxeError("Expected node name"); xml = Xml.createElement(HxOverrides.substr(str,start,p - start)); parent.addChild(xml); nsubs++; state = 0; next = 4; continue; } break; case 4: switch(c) { case 47: state = 11; break; case 62: state = 9; break; default: state = 5; start = p; continue; } break; case 5: if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) { var tmp; if(start == p) throw new js__$Boot_HaxeError("Expected attribute name"); tmp = HxOverrides.substr(str,start,p - start); aname = tmp; if(xml.exists(aname)) throw new js__$Boot_HaxeError("Duplicate attribute"); state = 0; next = 6; continue; } break; case 6: switch(c) { case 61: state = 0; next = 7; break; default: throw new js__$Boot_HaxeError("Expected ="); } break; case 7: switch(c) { case 34:case 39: buf = new StringBuf(); state = 8; start = p + 1; attrValQuote = c; break; default: throw new js__$Boot_HaxeError("Expected \""); } break; case 8: switch(c) { case 38: buf.addSub(str,start,p - start); state = 18; escapeNext = 8; start = p + 1; break; case 62: if(strict) throw new js__$Boot_HaxeError("Invalid unescaped " + String.fromCharCode(c) + " in attribute value"); else if(c == attrValQuote) { buf.addSub(str,start,p - start); var val = buf.b; buf = new StringBuf(); xml.set(aname,val); state = 0; next = 4; } break; case 60: if(strict) throw new js__$Boot_HaxeError("Invalid unescaped " + String.fromCharCode(c) + " in attribute value"); else if(c == attrValQuote) { buf.addSub(str,start,p - start); var val1 = buf.b; buf = new StringBuf(); xml.set(aname,val1); state = 0; next = 4; } break; default: if(c == attrValQuote) { buf.addSub(str,start,p - start); var val2 = buf.b; buf = new StringBuf(); xml.set(aname,val2); state = 0; next = 4; } } break; case 9: p = haxe_xml_Parser.doParse(str,strict,p,xml); start = p; state = 1; break; case 11: switch(c) { case 62: state = 1; break; default: throw new js__$Boot_HaxeError("Expected >"); } break; case 12: switch(c) { case 62: if(nsubs == 0) parent.addChild(Xml.createPCData("")); return p; default: throw new js__$Boot_HaxeError("Expected >"); } break; case 10: if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45)) { if(start == p) throw new js__$Boot_HaxeError("Expected node name"); var v = HxOverrides.substr(str,start,p - start); if(v != (function($this) { var $r; if(parent.nodeType != Xml.Element) throw new js__$Boot_HaxeError("Bad node type, expected Element but found " + parent.nodeType); $r = parent.nodeName; return $r; }(this))) throw new js__$Boot_HaxeError("Expected </" + (function($this) { var $r; if(parent.nodeType != Xml.Element) throw "Bad node type, expected Element but found " + parent.nodeType; $r = parent.nodeName; return $r; }(this)) + ">"); state = 0; next = 12; continue; } break; case 15: if(c == 45 && str.charCodeAt(p + 1) == 45 && str.charCodeAt(p + 2) == 62) { var xml1 = Xml.createComment(HxOverrides.substr(str,start,p - start)); parent.addChild(xml1); nsubs++; p += 2; state = 1; } break; case 16: if(c == 91) nbrackets++; else if(c == 93) nbrackets--; else if(c == 62 && nbrackets == 0) { var xml2 = Xml.createDocType(HxOverrides.substr(str,start,p - start)); parent.addChild(xml2); nsubs++; state = 1; } break; case 14: if(c == 63 && str.charCodeAt(p + 1) == 62) { p++; var str1 = HxOverrides.substr(str,start + 1,p - start - 2); var xml3 = Xml.createProcessingInstruction(str1); parent.addChild(xml3); nsubs++; state = 1; } break; case 18: if(c == 59) { var s = HxOverrides.substr(str,start,p - start); if(s.charCodeAt(0) == 35) { var c1; if(s.charCodeAt(1) == 120) c1 = Std.parseInt("0" + HxOverrides.substr(s,1,s.length - 1)); else c1 = Std.parseInt(HxOverrides.substr(s,1,s.length - 1)); buf.b += String.fromCharCode(c1); } else if(!haxe_xml_Parser.escapes.exists(s)) { if(strict) throw new js__$Boot_HaxeError("Undefined entity: " + s); buf.b += Std.string("&" + s + ";"); } else buf.add(haxe_xml_Parser.escapes.get(s)); start = p + 1; state = escapeNext; } else if(!(c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c == 58 || c == 46 || c == 95 || c == 45) && c != 35) { if(strict) throw new js__$Boot_HaxeError("Invalid character in entity: " + String.fromCharCode(c)); buf.b += "&"; buf.addSub(str,start,p - start); p--; start = p + 1; state = escapeNext; } break; } c = StringTools.fastCodeAt(str,++p); } if(state == 1) { start = p; state = 13; } if(state == 13) { if(p != start || nsubs == 0) { buf.addSub(str,start,p - start); var xml4 = Xml.createPCData(buf.b); parent.addChild(xml4); nsubs++; } return p; } if(!strict && state == 18 && escapeNext == 13) { buf.b += "&"; buf.addSub(str,start,p - start); var xml5 = Xml.createPCData(buf.b); parent.addChild(xml5); nsubs++; return p; } throw new js__$Boot_HaxeError("Unexpected end"); }; var js__$Boot_HaxeError = function(val) { Error.call(this); this.val = val; this.message = String(val); if(Error.captureStackTrace) Error.captureStackTrace(this,js__$Boot_HaxeError); }; $hxClasses["js._Boot.HaxeError"] = js__$Boot_HaxeError; js__$Boot_HaxeError.__name__ = ["js","_Boot","HaxeError"]; js__$Boot_HaxeError.__super__ = Error; js__$Boot_HaxeError.prototype = $extend(Error.prototype,{ val: null ,__class__: js__$Boot_HaxeError }); var js_Boot = function() { }; $hxClasses["js.Boot"] = js_Boot; js_Boot.__name__ = ["js","Boot"]; js_Boot.__unhtml = function(s) { return s.split("&").join("&").split("<").join("<").split(">").join(">"); }; js_Boot.__trace = function(v,i) { return false; var msg; if(i != null) msg = i.fileName + ":" + i.lineNumber + ": "; else msg = ""; msg += js_Boot.__string_rec(v,""); if(i != null && i.customParams != null) { var _g = 0; var _g1 = i.customParams; while(_g < _g1.length) { var v1 = _g1[_g]; ++_g; msg += "," + js_Boot.__string_rec(v1,""); } } var d; if(typeof(document) != "undefined" && (d = document.getElementById("haxe:trace")) != null) d.innerHTML += js_Boot.__unhtml(msg) + "<br/>"; else if(typeof console != "undefined" && console.log != null) console.log(msg); }; js_Boot.getClass = function(o) { if((o instanceof Array) && o.__enum__ == null) return Array; else { var cl = o.__class__; if(cl != null) return cl; var name = js_Boot.__nativeClassName(o); if(name != null) return js_Boot.__resolveNativeClass(name); return null; } }; js_Boot.__string_rec = function(o,s) { if(o == null) return "null"; if(s.length >= 5) return "<...>"; var t = typeof(o); if(t == "function" && (o.__name__ || o.__ename__)) t = "object"; switch(t) { case "object": if(o instanceof Array) { if(o.__enum__) { if(o.length == 2) return o[0]; var str2 = o[0] + "("; s += "\t"; var _g1 = 2; var _g = o.length; while(_g1 < _g) { var i1 = _g1++; if(i1 != 2) str2 += "," + js_Boot.__string_rec(o[i1],s); else str2 += js_Boot.__string_rec(o[i1],s); } return str2 + ")"; } var l = o.length; var i; var str1 = "["; s += "\t"; var _g2 = 0; while(_g2 < l) { var i2 = _g2++; str1 += (i2 > 0?",":"") + js_Boot.__string_rec(o[i2],s); } str1 += "]"; return str1; } var tostr; try { tostr = o.toString; } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; return "???"; } if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") { var s2 = o.toString(); if(s2 != "[object Object]") return s2; } var k = null; var str = "{\n"; s += "\t"; var hasp = o.hasOwnProperty != null; for( var k in o ) { if(hasp && !o.hasOwnProperty(k)) { continue; } if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") { continue; } if(str.length != 2) str += ", \n"; str += s + k + " : " + js_Boot.__string_rec(o[k],s); } s = s.substring(1); str += "\n" + s + "}"; return str; case "function": return "<function>"; case "string": return o; default: return String(o); } }; js_Boot.__interfLoop = function(cc,cl) { if(cc == null) return false; if(cc == cl) return true; var intf = cc.__interfaces__; if(intf != null) { var _g1 = 0; var _g = intf.length; while(_g1 < _g) { var i = _g1++; var i1 = intf[i]; if(i1 == cl || js_Boot.__interfLoop(i1,cl)) return true; } } return js_Boot.__interfLoop(cc.__super__,cl); }; js_Boot.__instanceof = function(o,cl) { if(cl == null) return false; switch(cl) { case Int: return (o|0) === o; case Float: return typeof(o) == "number"; case Bool: return typeof(o) == "boolean"; case String: return typeof(o) == "string"; case Array: return (o instanceof Array) && o.__enum__ == null; case Dynamic: return true; default: if(o != null) { if(typeof(cl) == "function") { if(o instanceof cl) return true; if(js_Boot.__interfLoop(js_Boot.getClass(o),cl)) return true; } else if(typeof(cl) == "object" && js_Boot.__isNativeObj(cl)) { if(o instanceof cl) return true; } } else return false; if(cl == Class && o.__name__ != null) return true; if(cl == Enum && o.__ename__ != null) return true; return o.__enum__ == cl; } }; js_Boot.__cast = function(o,t) { if(js_Boot.__instanceof(o,t)) return o; else throw new js__$Boot_HaxeError("Cannot cast " + Std.string(o) + " to " + Std.string(t)); }; js_Boot.__nativeClassName = function(o) { var name = js_Boot.__toStr.call(o).slice(8,-1); if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") return null; return name; }; js_Boot.__isNativeObj = function(o) { return js_Boot.__nativeClassName(o) != null; }; js_Boot.__resolveNativeClass = function(name) { return $global[name]; }; var js_Browser = function() { }; $hxClasses["js.Browser"] = js_Browser; js_Browser.__name__ = ["js","Browser"]; js_Browser.getLocalStorage = function() { try { var s = window.famobi.localStorage; s.getItem(""); return s; } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; return null; } }; js_Browser.alert = function(v) { window.alert(js_Boot.__string_rec(v,"")); }; var js_Lib = function() { }; $hxClasses["js.Lib"] = js_Lib; js_Lib.__name__ = ["js","Lib"]; js_Lib["eval"] = function(code) { return eval(code); }; var js_html_compat_ArrayBuffer = function(a) { if((a instanceof Array) && a.__enum__ == null) { this.a = a; this.byteLength = a.length; } else { var len = a; this.a = []; var _g = 0; while(_g < len) { var i = _g++; this.a[i] = 0; } this.byteLength = len; } }; $hxClasses["js.html.compat.ArrayBuffer"] = js_html_compat_ArrayBuffer; js_html_compat_ArrayBuffer.__name__ = ["js","html","compat","ArrayBuffer"]; js_html_compat_ArrayBuffer.sliceImpl = function(begin,end) { var u = new Uint8Array(this,begin,end == null?null:end - begin); var result = new ArrayBuffer(u.byteLength); var resultArray = new Uint8Array(result); resultArray.set(u); return result; }; js_html_compat_ArrayBuffer.prototype = { byteLength: null ,a: null ,slice: function(begin,end) { return new js_html_compat_ArrayBuffer(this.a.slice(begin,end)); } ,__class__: js_html_compat_ArrayBuffer }; var js_html_compat_DataView = function(buffer,byteOffset,byteLength) { this.buf = buffer; if(byteOffset == null) this.offset = 0; else this.offset = byteOffset; if(byteLength == null) this.length = buffer.byteLength - this.offset; else this.length = byteLength; if(this.offset < 0 || this.length < 0 || this.offset + this.length > buffer.byteLength) throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); }; $hxClasses["js.html.compat.DataView"] = js_html_compat_DataView; js_html_compat_DataView.__name__ = ["js","html","compat","DataView"]; js_html_compat_DataView.prototype = { buf: null ,offset: null ,length: null ,getInt8: function(byteOffset) { var v = this.buf.a[this.offset + byteOffset]; if(v >= 128) return v - 256; else return v; } ,getUint8: function(byteOffset) { return this.buf.a[this.offset + byteOffset]; } ,getInt16: function(byteOffset,littleEndian) { var v = this.getUint16(byteOffset,littleEndian); if(v >= 32768) return v - 65536; else return v; } ,getUint16: function(byteOffset,littleEndian) { if(littleEndian) return this.buf.a[this.offset + byteOffset] | this.buf.a[this.offset + byteOffset + 1] << 8; else return this.buf.a[this.offset + byteOffset] << 8 | this.buf.a[this.offset + byteOffset + 1]; } ,getInt32: function(byteOffset,littleEndian) { var p = this.offset + byteOffset; var a = this.buf.a[p++]; var b = this.buf.a[p++]; var c = this.buf.a[p++]; var d = this.buf.a[p++]; if(littleEndian) return a | b << 8 | c << 16 | d << 24; else return d | c << 8 | b << 16 | a << 24; } ,getUint32: function(byteOffset,littleEndian) { var v = this.getInt32(byteOffset,littleEndian); if(v < 0) return v + 4294967296.; else return v; } ,getFloat32: function(byteOffset,littleEndian) { return haxe_io_FPHelper.i32ToFloat(this.getInt32(byteOffset,littleEndian)); } ,getFloat64: function(byteOffset,littleEndian) { var a = this.getInt32(byteOffset,littleEndian); var b = this.getInt32(byteOffset + 4,littleEndian); return haxe_io_FPHelper.i64ToDouble(littleEndian?a:b,littleEndian?b:a); } ,setInt8: function(byteOffset,value) { if(value < 0) this.buf.a[byteOffset + this.offset] = value + 128 & 255; else this.buf.a[byteOffset + this.offset] = value & 255; } ,setUint8: function(byteOffset,value) { this.buf.a[byteOffset + this.offset] = value & 255; } ,setInt16: function(byteOffset,value,littleEndian) { this.setUint16(byteOffset,value < 0?value + 65536:value,littleEndian); } ,setUint16: function(byteOffset,value,littleEndian) { var p = byteOffset + this.offset; if(littleEndian) { this.buf.a[p] = value & 255; this.buf.a[p++] = value >> 8 & 255; } else { this.buf.a[p++] = value >> 8 & 255; this.buf.a[p] = value & 255; } } ,setInt32: function(byteOffset,value,littleEndian) { this.setUint32(byteOffset,value,littleEndian); } ,setUint32: function(byteOffset,value,littleEndian) { var p = byteOffset + this.offset; if(littleEndian) { this.buf.a[p++] = value & 255; this.buf.a[p++] = value >> 8 & 255; this.buf.a[p++] = value >> 16 & 255; this.buf.a[p++] = value >>> 24; } else { this.buf.a[p++] = value >>> 24; this.buf.a[p++] = value >> 16 & 255; this.buf.a[p++] = value >> 8 & 255; this.buf.a[p++] = value & 255; } } ,setFloat32: function(byteOffset,value,littleEndian) { this.setUint32(byteOffset,haxe_io_FPHelper.floatToI32(value),littleEndian); } ,setFloat64: function(byteOffset,value,littleEndian) { var i64 = haxe_io_FPHelper.doubleToI64(value); if(littleEndian) { this.setUint32(byteOffset,i64.low); this.setUint32(byteOffset,i64.high); } else { this.setUint32(byteOffset,i64.high); this.setUint32(byteOffset,i64.low); } } ,__class__: js_html_compat_DataView }; var js_html_compat_Uint8Array = function() { }; $hxClasses["js.html.compat.Uint8Array"] = js_html_compat_Uint8Array; js_html_compat_Uint8Array.__name__ = ["js","html","compat","Uint8Array"]; js_html_compat_Uint8Array._new = function(arg1,offset,length) { var arr; if(typeof(arg1) == "number") { arr = []; var _g = 0; while(_g < arg1) { var i = _g++; arr[i] = 0; } arr.byteLength = arr.length; arr.byteOffset = 0; arr.buffer = new js_html_compat_ArrayBuffer(arr); } else if(js_Boot.__instanceof(arg1,js_html_compat_ArrayBuffer)) { var buffer = arg1; if(offset == null) offset = 0; if(length == null) length = buffer.byteLength - offset; if(offset == 0) arr = buffer.a; else arr = buffer.a.slice(offset,offset + length); arr.byteLength = arr.length; arr.byteOffset = offset; arr.buffer = buffer; } else if((arg1 instanceof Array) && arg1.__enum__ == null) { arr = arg1.slice(); arr.byteLength = arr.length; arr.byteOffset = 0; arr.buffer = new js_html_compat_ArrayBuffer(arr); } else throw new js__$Boot_HaxeError("TODO " + Std.string(arg1)); arr.subarray = js_html_compat_Uint8Array._subarray; arr.set = js_html_compat_Uint8Array._set; return arr; }; js_html_compat_Uint8Array._set = function(arg,offset) { var t = this; if(js_Boot.__instanceof(arg.buffer,js_html_compat_ArrayBuffer)) { var a = arg; if(arg.byteLength + offset > t.byteLength) throw new js__$Boot_HaxeError("set() outside of range"); var _g1 = 0; var _g = arg.byteLength; while(_g1 < _g) { var i = _g1++; t[i + offset] = a[i]; } } else if((arg instanceof Array) && arg.__enum__ == null) { var a1 = arg; if(a1.length + offset > t.byteLength) throw new js__$Boot_HaxeError("set() outside of range"); var _g11 = 0; var _g2 = a1.length; while(_g11 < _g2) { var i1 = _g11++; t[i1 + offset] = a1[i1]; } } else throw new js__$Boot_HaxeError("TODO"); }; js_html_compat_Uint8Array._subarray = function(start,end) { var t = this; var a = js_html_compat_Uint8Array._new(t.slice(start,end)); a.byteOffset = start; return a; }; var lime_AssetCache = function() { this.enabled = false; this.audio = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.image = new haxe_ds_StringMap(); this.version = ""; }; $hxClasses["lime.AssetCache"] = lime_AssetCache; lime_AssetCache.__name__ = ["lime","AssetCache"]; lime_AssetCache.prototype = { audio: null ,enabled: null ,image: null ,font: null ,version: null ,clear: function(prefix) { if(prefix == null) { this.audio = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.image = new haxe_ds_StringMap(); } else { var keys = this.audio.keys(); while( keys.hasNext() ) { var key = keys.next(); if(StringTools.startsWith(key,prefix)) this.audio.remove(key); } var keys1 = this.font.keys(); while( keys1.hasNext() ) { var key1 = keys1.next(); if(StringTools.startsWith(key1,prefix)) this.font.remove(key1); } var keys2 = this.image.keys(); while( keys2.hasNext() ) { var key2 = keys2.next(); if(StringTools.startsWith(key2,prefix)) this.image.remove(key2); } } } ,__class__: lime_AssetCache }; var lime_app_Event_$Void_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Void_Void"] = lime_app_Event_$Void_$Void; lime_app_Event_$Void_$Void.__name__ = ["lime","app","Event_Void_Void"]; lime_app_Event_$Void_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function() { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Void_$Void }; var lime_Assets = function() { }; $hxClasses["lime.Assets"] = lime_Assets; lime_Assets.__name__ = ["lime","Assets"]; lime_Assets.exists = function(id,type) { lime_Assets.initialize(); if(type == null) type = "BINARY"; var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) return library.exists(symbolName,type); return false; }; lime_Assets.getAudioBuffer = function(id,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); if(useCache && lime_Assets.cache.enabled && lime_Assets.cache.audio.exists(id)) { var audio = lime_Assets.cache.audio.get(id); if(lime_Assets.isValidAudio(audio)) return audio; } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"SOUND")) { if(library.isLocal(symbolName,"SOUND")) { var audio1 = library.getAudioBuffer(symbolName); if(useCache && lime_Assets.cache.enabled) lime_Assets.cache.audio.set(id,audio1); return audio1; } else haxe_Log.trace("[Assets] Audio asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 122, className : "lime.Assets", methodName : "getAudioBuffer"}); } else haxe_Log.trace("[Assets] There is no audio asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 128, className : "lime.Assets", methodName : "getAudioBuffer"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 134, className : "lime.Assets", methodName : "getAudioBuffer"}); return null; }; lime_Assets.getBytes = function(id) { lime_Assets.initialize(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"BINARY")) { if(library.isLocal(symbolName,"BINARY")) return library.getBytes(symbolName); else haxe_Log.trace("[Assets] String or Bytes asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 171, className : "lime.Assets", methodName : "getBytes"}); } else haxe_Log.trace("[Assets] There is no String or Bytes asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 177, className : "lime.Assets", methodName : "getBytes"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 183, className : "lime.Assets", methodName : "getBytes"}); return null; }; lime_Assets.getFont = function(id,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); if(useCache && lime_Assets.cache.enabled && lime_Assets.cache.font.exists(id)) return lime_Assets.cache.font.get(id); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"FONT")) { if(library.isLocal(symbolName,"FONT")) { var font = library.getFont(symbolName); if(useCache && lime_Assets.cache.enabled) lime_Assets.cache.font.set(id,font); return font; } else haxe_Log.trace("[Assets] Font asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 234, className : "lime.Assets", methodName : "getFont"}); } else haxe_Log.trace("[Assets] There is no Font asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 240, className : "lime.Assets", methodName : "getFont"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 246, className : "lime.Assets", methodName : "getFont"}); return null; }; lime_Assets.getImage = function(id,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); if(useCache && lime_Assets.cache.enabled && lime_Assets.cache.image.exists(id)) { var image = lime_Assets.cache.image.get(id); if(lime_Assets.isValidImage(image)) return image; } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"IMAGE")) { if(library.isLocal(symbolName,"IMAGE")) { var image1 = library.getImage(symbolName); if(useCache && lime_Assets.cache.enabled) lime_Assets.cache.image.set(id,image1); return image1; } else haxe_Log.trace("[Assets] Image asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 304, className : "lime.Assets", methodName : "getImage"}); } else haxe_Log.trace("[Assets] There is no Image asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 310, className : "lime.Assets", methodName : "getImage"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 316, className : "lime.Assets", methodName : "getImage"}); return null; }; lime_Assets.getLibrary = function(name) { if(name == null || name == "") name = "default"; return lime_Assets.libraries.get(name); }; lime_Assets.getPath = function(id) { lime_Assets.initialize(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,null)) return library.getPath(symbolName); else haxe_Log.trace("[Assets] There is no asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 364, className : "lime.Assets", methodName : "getPath"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 370, className : "lime.Assets", methodName : "getPath"}); return null; }; lime_Assets.getText = function(id) { lime_Assets.initialize(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"TEXT")) { if(library.isLocal(symbolName,"TEXT")) return library.getText(symbolName); else haxe_Log.trace("[Assets] String asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 407, className : "lime.Assets", methodName : "getText"}); } else haxe_Log.trace("[Assets] There is no String asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 413, className : "lime.Assets", methodName : "getText"}); } else haxe_Log.trace("[Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 419, className : "lime.Assets", methodName : "getText"}); return null; }; lime_Assets.initialize = function() { if(!lime_Assets.initialized) { lime_Assets.registerLibrary("default",new DefaultAssetLibrary()); lime_Assets.initialized = true; } }; lime_Assets.isLocal = function(id,type,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); if(useCache && lime_Assets.cache.enabled) { if(type == "IMAGE" || type == null) { if(lime_Assets.cache.image.exists(id)) return true; } if(type == "FONT" || type == null) { if(lime_Assets.cache.font.exists(id)) return true; } if(type == "SOUND" || type == "MUSIC" || type == null) { if(lime_Assets.cache.audio.exists(id)) return true; } } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) return library.isLocal(symbolName,type); return false; }; lime_Assets.isValidAudio = function(buffer) { return buffer != null; }; lime_Assets.isValidImage = function(buffer) { return true; }; lime_Assets.list = function(type) { lime_Assets.initialize(); var items = []; var $it0 = lime_Assets.libraries.iterator(); while( $it0.hasNext() ) { var library = $it0.next(); var libraryItems = library.list(type); if(libraryItems != null) items = items.concat(libraryItems); } return items; }; lime_Assets.loadAudioBuffer = function(id,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); var promise = new lime_app_Promise(); if(useCache && lime_Assets.cache.enabled && lime_Assets.cache.audio.exists(id)) { var audio = lime_Assets.cache.audio.get(id); if(lime_Assets.isValidAudio(audio)) { promise.complete(audio); return promise.future; } } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"SOUND")) { var future = library.loadAudioBuffer(symbolName); if(useCache && lime_Assets.cache.enabled) future.onComplete(function(audio1) { lime_Assets.cache.audio.set(id,audio1); }); promise.completeWith(future); } else promise.error("[Assets] There is no audio asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; lime_Assets.loadBytes = function(id) { lime_Assets.initialize(); var promise = new lime_app_Promise(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"BINARY")) promise.completeWith(library.loadBytes(symbolName)); else promise.error("[Assets] There is no String or Bytes asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; lime_Assets.loadFont = function(id) { lime_Assets.initialize(); var promise = new lime_app_Promise(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"FONT")) promise.completeWith(library.loadFont(symbolName)); else promise.error("[Assets] There is no Font asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; lime_Assets.loadImage = function(id,useCache) { if(useCache == null) useCache = true; lime_Assets.initialize(); var promise = new lime_app_Promise(); if(useCache && lime_Assets.cache.enabled && lime_Assets.cache.image.exists(id)) { var image = lime_Assets.cache.image.get(id); if(lime_Assets.isValidImage(image)) { promise.complete(image); return promise.future; } } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"IMAGE")) { var future = library.loadImage(symbolName); if(useCache && lime_Assets.cache.enabled) future.onComplete(function(image1) { lime_Assets.cache.image.set(id,image1); }); promise.completeWith(future); } else promise.error("[Assets] There is no Image asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; lime_Assets.loadLibrary = function(name) { lime_Assets.initialize(); var promise = new lime_app_Promise(); var data = lime_Assets.getText("libraries/" + name + ".json"); if(data != null && data != "") { var info = JSON.parse(data); var library = Type.createInstance(Type.resolveClass(info.type),info.args); lime_Assets.libraries.set(name,library); library.onChange.add(($_=lime_Assets.onChange,$bind($_,$_.dispatch))); promise.completeWith(library.load()); } else promise.error("[Assets] There is no asset library named \"" + name + "\""); return promise.future; }; lime_Assets.loadText = function(id) { lime_Assets.initialize(); var promise = new lime_app_Promise(); var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = lime_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"TEXT")) promise.completeWith(library.loadText(symbolName)); else promise.error("[Assets] There is no String asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; lime_Assets.registerLibrary = function(name,library) { if(lime_Assets.libraries.exists(name)) { if(lime_Assets.libraries.get(name) == library) return; else lime_Assets.unloadLibrary(name); } if(library != null) library.onChange.add(lime_Assets.library_onChange); lime_Assets.libraries.set(name,library); }; lime_Assets.unloadLibrary = function(name) { lime_Assets.initialize(); var library = lime_Assets.libraries.get(name); if(library != null) { lime_Assets.cache.clear(name + ":"); library.onChange.remove(lime_Assets.library_onChange); library.unload(); } lime_Assets.libraries.remove(name); }; lime_Assets.library_onChange = function() { lime_Assets.cache.clear(); lime_Assets.onChange.dispatch(); }; var lime__$backend_html5_HTML5Application = function(parent) { this.gameDeviceCache = new haxe_ds_IntMap(); this.parent = parent; this.currentUpdate = 0; this.lastUpdate = 0; this.nextUpdate = 0; this.framePeriod = -1; lime_audio_AudioManager.init(); }; $hxClasses["lime._backend.html5.HTML5Application"] = lime__$backend_html5_HTML5Application; lime__$backend_html5_HTML5Application.__name__ = ["lime","_backend","html5","HTML5Application"]; lime__$backend_html5_HTML5Application.prototype = { gameDeviceCache: null ,currentUpdate: null ,deltaTime: null ,framePeriod: null ,lastUpdate: null ,nextUpdate: null ,parent: null ,convertKeyCode: function(keyCode) { if(keyCode >= 65 && keyCode <= 90) return keyCode + 32; switch(keyCode) { case 16: return 1073742049; case 17: return 1073742048; case 18: return 1073742050; case 20: return 1073741881; case 144: return 1073741907; case 37: return 1073741904; case 38: return 1073741906; case 39: return 1073741903; case 40: return 1073741905; case 45: return 1073741897; case 46: return 127; case 36: return 1073741898; case 35: return 1073741901; case 33: return 1073741899; case 34: return 1073741902; case 112: return 1073741882; case 113: return 1073741883; case 114: return 1073741884; case 115: return 1073741885; case 116: return 1073741886; case 117: return 1073741887; case 118: return 1073741888; case 119: return 1073741889; case 120: return 1073741890; case 121: return 1073741891; case 122: return 1073741892; case 123: return 1073741893; case 124: return 1073741928; case 125: return 1073741929; case 126: return 1073741930; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; } return keyCode; } ,create: function(config) { } ,exec: function() { window.addEventListener("keydown",$bind(this,this.handleKeyEvent),false); window.addEventListener("keyup",$bind(this,this.handleKeyEvent),false); window.addEventListener("focus",$bind(this,this.handleWindowEvent),false); window.addEventListener("blur",$bind(this,this.handleWindowEvent),false); window.addEventListener("resize",$bind(this,this.handleWindowEvent),false); window.addEventListener("beforeunload",$bind(this,this.handleWindowEvent),false); if (!CanvasRenderingContext2D.prototype.isPointInStroke) { CanvasRenderingContext2D.prototype.isPointInStroke = function (path, x, y) { return false; }; } var lastTime = 0; var vendors = ['ms', 'moz', 'webkit', 'o']; for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame']; window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame']; } if (!window.requestAnimationFrame) window.requestAnimationFrame = function(callback, element) { var currTime = new Date().getTime(); var timeToCall = Math.max(0, 16 - (currTime - lastTime)); var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }; if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function(id) { clearTimeout(id); }; window.requestAnimFrame = window.requestAnimationFrame; ; this.lastUpdate = new Date().getTime(); this.handleApplicationEvent(); return 0; } ,exit: function() { } ,getFrameRate: function() { if(this.framePeriod < 0) return 60; else if(this.framePeriod == 1000) return 0; else return 1000 / this.framePeriod; } ,handleApplicationEvent: function(__) { this.updateGameDevices(); this.currentUpdate = new Date().getTime(); if(this.currentUpdate >= this.nextUpdate) { this.deltaTime = this.currentUpdate - this.lastUpdate; this.parent.onUpdate.dispatch(this.deltaTime | 0); if(this.parent.renderers[0] != null) { this.parent.renderers[0].onRender.dispatch(); this.parent.renderers[0].flip(); } if(this.framePeriod < 0) { this.nextUpdate = this.currentUpdate; this.nextUpdate = this.currentUpdate; } else this.nextUpdate = this.currentUpdate + this.framePeriod; this.lastUpdate = this.currentUpdate; } window.requestAnimationFrame($bind(this,this.handleApplicationEvent)); } ,handleKeyEvent: function(event) { if(this.parent.windows[0] != null) { var keyCode = this.convertKeyCode(event.keyCode != null?event.keyCode:event.which); var modifier; modifier = (event.shiftKey?3:0) | (event.ctrlKey?192:0) | (event.altKey?768:0) | (event.metaKey?3072:0); if(event.type == "keydown") { this.parent.windows[0].onKeyDown.dispatch(keyCode,modifier); if(this.parent.windows[0].onKeyDown.canceled) event.preventDefault(); } else { this.parent.windows[0].onKeyUp.dispatch(keyCode,modifier); if(this.parent.windows[0].onKeyUp.canceled) event.preventDefault(); } } } ,handleWindowEvent: function(event) { if(this.parent.windows[0] != null) { var _g = event.type; switch(_g) { case "focus": this.parent.windows[0].onFocusIn.dispatch(); this.parent.windows[0].onActivate.dispatch(); break; case "blur": this.parent.windows[0].onFocusOut.dispatch(); this.parent.windows[0].onDeactivate.dispatch(); break; case "resize": var cacheWidth = this.parent.windows[0].__width; var cacheHeight = this.parent.windows[0].__height; this.parent.windows[0].backend.handleResize(); if(this.parent.windows[0].__width != cacheWidth || this.parent.windows[0].__height != cacheHeight) this.parent.windows[0].onResize.dispatch(this.parent.windows[0].__width,this.parent.windows[0].__height); break; case "beforeunload": this.parent.windows[0].onClose.dispatch(); break; } } } ,setFrameRate: function(value) { if(value >= 60) this.framePeriod = -1; else if(value > 0) this.framePeriod = 1000 / value; else this.framePeriod = 1000; return value; } ,updateGameDevices: function() { var devices = lime_ui_Joystick.__getDeviceData(); if(devices == null) return; var id; var gamepad; var joystick; var data; var cache; var _g1 = 0; var _g = devices.length; while(_g1 < _g) { var i = _g1++; id = i; data = devices[id]; if(data == null) continue; if(!this.gameDeviceCache.h.hasOwnProperty(id)) { cache = new lime__$backend_html5_GameDeviceData(); cache.id = id; cache.connected = data.connected; var _g3 = 0; var _g2 = data.buttons.length; while(_g3 < _g2) { var i1 = _g3++; cache.buttons.push(data.buttons[i1].value); } var _g31 = 0; var _g21 = data.axes.length; while(_g31 < _g21) { var i2 = _g31++; cache.axes.push(data.axes[i2]); } if(data.mapping == "standard") cache.isGamepad = true; this.gameDeviceCache.h[id] = cache; if(data.connected) { lime_ui_Joystick.__connect(id); if(cache.isGamepad) lime_ui_Gamepad.__connect(id); } } cache = this.gameDeviceCache.h[id]; joystick = lime_ui_Joystick.devices.h[id]; gamepad = lime_ui_Gamepad.devices.h[id]; if(data.connected) { var button; var value; var _g32 = 0; var _g22 = data.buttons.length; while(_g32 < _g22) { var i3 = _g32++; value = data.buttons[i3].value; if(value != cache.buttons[i3]) { if(i3 == 6) { joystick.onAxisMove.dispatch(data.axes.length,value); if(gamepad != null) gamepad.onAxisMove.dispatch(4,value); } else if(i3 == 7) { joystick.onAxisMove.dispatch(data.axes.length + 1,value); if(gamepad != null) gamepad.onAxisMove.dispatch(5,value); } else { if(value > 0) joystick.onButtonDown.dispatch(i3); else joystick.onButtonUp.dispatch(i3); if(gamepad != null) { switch(i3) { case 0: button = 0; break; case 1: button = 1; break; case 2: button = 2; break; case 3: button = 3; break; case 4: button = 9; break; case 5: button = 10; break; case 8: button = 4; break; case 9: button = 6; break; case 10: button = 7; break; case 11: button = 8; break; case 12: button = 11; break; case 13: button = 12; break; case 14: button = 13; break; case 15: button = 14; break; case 16: button = 5; break; default: continue; } if(value > 0) gamepad.onButtonDown.dispatch(button); else gamepad.onButtonUp.dispatch(button); } } cache.buttons[i3] = value; } } var _g33 = 0; var _g23 = data.axes.length; while(_g33 < _g23) { var i4 = _g33++; if(data.axes[i4] != cache.axes[i4]) { joystick.onAxisMove.dispatch(i4,data.axes[i4]); if(gamepad != null) gamepad.onAxisMove.dispatch(i4,data.axes[i4]); cache.axes[i4] = data.axes[i4]; } } } else if(cache.connected) { cache.connected = false; lime_ui_Joystick.__disconnect(id); lime_ui_Gamepad.__disconnect(id); } } } ,__class__: lime__$backend_html5_HTML5Application }; var lime__$backend_html5_GameDeviceData = function() { this.connected = true; this.buttons = []; this.axes = []; }; $hxClasses["lime._backend.html5.GameDeviceData"] = lime__$backend_html5_GameDeviceData; lime__$backend_html5_GameDeviceData.__name__ = ["lime","_backend","html5","GameDeviceData"]; lime__$backend_html5_GameDeviceData.prototype = { connected: null ,id: null ,isGamepad: null ,buttons: null ,axes: null ,__class__: lime__$backend_html5_GameDeviceData }; var lime__$backend_html5_HTML5Mouse = function() { }; $hxClasses["lime._backend.html5.HTML5Mouse"] = lime__$backend_html5_HTML5Mouse; lime__$backend_html5_HTML5Mouse.__name__ = ["lime","_backend","html5","HTML5Mouse"]; lime__$backend_html5_HTML5Mouse.__cursor = null; lime__$backend_html5_HTML5Mouse.__hidden = null; lime__$backend_html5_HTML5Mouse.hide = function() { if(!lime__$backend_html5_HTML5Mouse.__hidden) { lime__$backend_html5_HTML5Mouse.__hidden = true; var _g = 0; var _g1 = lime_app_Application.current.windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; $window.backend.element.style.cursor = "none"; } } }; lime__$backend_html5_HTML5Mouse.show = function() { if(lime__$backend_html5_HTML5Mouse.__hidden) { lime__$backend_html5_HTML5Mouse.__hidden = false; var cacheValue = lime__$backend_html5_HTML5Mouse.__cursor; lime__$backend_html5_HTML5Mouse.__cursor = null; lime__$backend_html5_HTML5Mouse.set_cursor(cacheValue); } }; lime__$backend_html5_HTML5Mouse.warp = function(x,y,window) { }; lime__$backend_html5_HTML5Mouse.get_cursor = function() { if(lime__$backend_html5_HTML5Mouse.__cursor == null) return lime_ui_MouseCursor.DEFAULT; return lime__$backend_html5_HTML5Mouse.__cursor; }; lime__$backend_html5_HTML5Mouse.set_cursor = function(value) { if(lime__$backend_html5_HTML5Mouse.__cursor != value) { if(!lime__$backend_html5_HTML5Mouse.__hidden) { var _g = 0; var _g1 = lime_app_Application.current.windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; switch(value[1]) { case 0: $window.backend.element.style.cursor = "default"; break; case 1: $window.backend.element.style.cursor = "crosshair"; break; case 3: $window.backend.element.style.cursor = "move"; break; case 4: $window.backend.element.style.cursor = "pointer"; break; case 5: $window.backend.element.style.cursor = "nesw-resize"; break; case 6: $window.backend.element.style.cursor = "ns-resize"; break; case 7: $window.backend.element.style.cursor = "nwse-resize"; break; case 8: $window.backend.element.style.cursor = "ew-resize"; break; case 9: $window.backend.element.style.cursor = "text"; break; case 10: $window.backend.element.style.cursor = "wait"; break; case 11: $window.backend.element.style.cursor = "wait"; break; default: $window.backend.element.style.cursor = "auto"; } } } lime__$backend_html5_HTML5Mouse.__cursor = value; } return lime__$backend_html5_HTML5Mouse.__cursor; }; lime__$backend_html5_HTML5Mouse.get_lock = function() { return false; }; lime__$backend_html5_HTML5Mouse.set_lock = function(value) { return value; }; var lime__$backend_html5_HTML5Renderer = function(parent) { this.parent = parent; }; $hxClasses["lime._backend.html5.HTML5Renderer"] = lime__$backend_html5_HTML5Renderer; lime__$backend_html5_HTML5Renderer.__name__ = ["lime","_backend","html5","HTML5Renderer"]; lime__$backend_html5_HTML5Renderer.prototype = { parent: null ,create: function() { this.createContext(); { var _g = this.parent.context; switch(_g[1]) { case 0: this.parent.window.backend.canvas.addEventListener("webglcontextlost",$bind(this,this.handleEvent),false); this.parent.window.backend.canvas.addEventListener("webglcontextrestored",$bind(this,this.handleEvent),false); break; default: } } } ,createContext: function() { if(this.parent.window.backend.div != null) { this.parent.context = lime_graphics_RenderContext.DOM(this.parent.window.backend.div); this.parent.type = lime_graphics_RendererType.DOM; } else if(this.parent.window.backend.canvas != null) { var webgl = null; if(webgl == null) { this.parent.context = lime_graphics_RenderContext.CANVAS(this.parent.window.backend.canvas.getContext("2d")); this.parent.type = lime_graphics_RendererType.CANVAS; } else { lime_graphics_opengl_GL.context = webgl; this.parent.context = lime_graphics_RenderContext.OPENGL(lime_graphics_opengl_GL.context); this.parent.type = lime_graphics_RendererType.OPENGL; } } } ,flip: function() { } ,handleEvent: function(event) { var _g = event.type; switch(_g) { case "webglcontextlost": event.preventDefault(); this.parent.context = null; this.parent.onContextLost.dispatch(); break; case "webglcontextrestored": this.createContext(); this.parent.onContextRestored.dispatch(this.parent.context); break; default: } } ,readPixels: function(rect) { if(this.parent.window.backend.canvas != null) { if(rect == null) rect = new lime_math_Rectangle(0,0,this.parent.window.backend.canvas.width,this.parent.window.backend.canvas.height); else rect.__contract(0,0,this.parent.window.backend.canvas.width,this.parent.window.backend.canvas.height); if(rect.width > 0 && rect.height > 0) { var canvas = window.document.createElement("canvas"); canvas.width = rect.width | 0; canvas.height = rect.height | 0; var context = canvas.getContext("2d"); context.drawImage(this.parent.window.backend.canvas,-rect.x,-rect.y); return lime_graphics_Image.fromCanvas(canvas); } } return null; } ,render: function() { } ,__class__: lime__$backend_html5_HTML5Renderer }; var lime__$backend_html5_HTML5Window = function(parent) { this.unusedTouchesPool = new List(); this.currentTouches = new haxe_ds_IntMap(); this.parent = parent; if(parent.config != null && Object.prototype.hasOwnProperty.call(parent.config,"element")) this.element = parent.config.element; }; $hxClasses["lime._backend.html5.HTML5Window"] = lime__$backend_html5_HTML5Window; lime__$backend_html5_HTML5Window.__name__ = ["lime","_backend","html5","HTML5Window"]; lime__$backend_html5_HTML5Window.textInput = null; lime__$backend_html5_HTML5Window.prototype = { canvas: null ,div: null ,element: null ,currentTouches: null ,enableTextEvents: null ,parent: null ,primaryTouch: null ,setHeight: null ,setWidth: null ,unusedTouchesPool: null ,alert: function(message,title) { if(message != null) js_Browser.alert(message); } ,close: function() { this.parent.application.removeWindow(this.parent); } ,create: function(application) { this.setWidth = this.parent.__width; this.setHeight = this.parent.__height; this.parent.id = lime__$backend_html5_HTML5Window.windowID++; if(js_Boot.__instanceof(this.element,HTMLCanvasElement)) this.canvas = this.element; else this.canvas = window.document.createElement("canvas"); if(this.canvas != null) { var style = this.canvas.style; style.setProperty("-webkit-transform","translateZ(0)",null); style.setProperty("transform","translateZ(0)",null); } else if(this.div != null) { var style1 = this.div.style; style1.setProperty("-webkit-transform","translate3D(0,0,0)",null); style1.setProperty("transform","translate3D(0,0,0)",null); style1.position = "relative"; style1.overflow = "hidden"; style1.setProperty("-webkit-user-select","none",null); style1.setProperty("-moz-user-select","none",null); style1.setProperty("-ms-user-select","none",null); style1.setProperty("-o-user-select","none",null); } if(this.parent.__width == 0 && this.parent.__height == 0) { if(this.element != null) { this.parent.set_width(this.element.clientWidth); this.parent.set_height(this.element.clientHeight); } else { this.parent.set_width(window.innerWidth); this.parent.set_height(window.innerHeight); } this.parent.set_fullscreen(true); } if(this.canvas != null) { this.canvas.width = this.parent.__width; this.canvas.height = this.parent.__height; } else { this.div.style.width = this.parent.__width + "px"; this.div.style.height = this.parent.__height + "px"; } this.handleResize(); if(this.element != null) { if(this.canvas != null) { if(this.element != this.canvas) this.element.appendChild(this.canvas); } else this.element.appendChild(this.div); var events = ["mousedown","mouseenter","mouseleave","mousemove","mouseup","wheel"]; var _g = 0; while(_g < events.length) { var event = events[_g]; ++_g; this.element.addEventListener(event,$bind(this,this.handleMouseEvent),true); } window.document.addEventListener("dragstart",function(e) { if(e.target.nodeName.toLowerCase() == "img") { e.preventDefault(); return false; } return true; },false); this.element.addEventListener("touchstart",$bind(this,this.handleTouchEvent),true); this.element.addEventListener("touchmove",$bind(this,this.handleTouchEvent),true); this.element.addEventListener("touchend",$bind(this,this.handleTouchEvent),true); this.element.addEventListener("gamepadconnected",$bind(this,this.handleGamepadEvent),true); this.element.addEventListener("gamepaddisconnected",$bind(this,this.handleGamepadEvent),true); } } ,focus: function() { } ,getDisplay: function() { return lime_system_System.getDisplay(0); } ,getEnableTextEvents: function() { return this.enableTextEvents; } ,handleFocusEvent: function(event) { if(this.enableTextEvents) haxe_Timer.delay(function() { lime__$backend_html5_HTML5Window.textInput.focus(); },20); } ,handleGamepadEvent: function(event) { var _g = event.type; switch(_g) { case "gamepadconnected": lime_ui_Joystick.__connect(event.gamepad.index); if(event.gamepad.mapping == "standard") lime_ui_Gamepad.__connect(event.gamepad.index); break; case "gamepaddisconnected": lime_ui_Joystick.__disconnect(event.gamepad.index); lime_ui_Gamepad.__disconnect(event.gamepad.index); break; default: } } ,handleInputEvent: function(event) { if(lime__$backend_html5_HTML5Window.textInput.value != "") { this.parent.onTextInput.dispatch(lime__$backend_html5_HTML5Window.textInput.value); lime__$backend_html5_HTML5Window.textInput.value = ""; } } ,handleMouseEvent: function(event) { var x = 0.0; var y = 0.0; if(event.type != "wheel") { if(this.element != null) { if(this.canvas != null) { var rect = this.canvas.getBoundingClientRect(); x = (event.clientX - rect.left) * (this.parent.__width / rect.width); y = (event.clientY - rect.top) * (this.parent.__height / rect.height); } else if(this.div != null) { var rect1 = this.div.getBoundingClientRect(); x = event.clientX - rect1.left; y = event.clientY - rect1.top; } else { var rect2 = this.element.getBoundingClientRect(); x = (event.clientX - rect2.left) * (this.parent.__width / rect2.width); y = (event.clientY - rect2.top) * (this.parent.__height / rect2.height); } } else { x = event.clientX; y = event.clientY; } var _g = event.type; switch(_g) { case "mousedown": this.parent.onMouseDown.dispatch(x,y,event.button); break; case "mouseenter": this.parent.onEnter.dispatch(); break; case "mouseleave": this.parent.onLeave.dispatch(); break; case "mouseup": this.parent.onMouseUp.dispatch(x,y,event.button); break; case "mousemove": this.parent.onMouseMove.dispatch(x,y); break; default: } } else this.parent.onMouseWheel.dispatch(event.deltaX,-event.deltaY); } ,handleResize: function() { var stretch = this.parent.__fullscreen || this.setWidth == 0 && this.setHeight == 0; if(this.element != null && (this.div == null || this.div != null && stretch)) { if(stretch) { if(this.parent.__width != this.element.clientWidth || this.parent.__height != this.element.clientHeight) { this.parent.set_width(this.element.clientWidth); this.parent.set_height(this.element.clientHeight); if(this.canvas != null) { if(this.element != this.canvas) { this.canvas.width = this.element.clientWidth; this.canvas.height = this.element.clientHeight; } } else { this.div.style.width = this.element.clientWidth + "px"; this.div.style.height = this.element.clientHeight + "px"; } } } else { var scaleX = this.element.clientWidth / this.setWidth; var scaleY = this.element.clientHeight / this.setHeight; var currentRatio = scaleX / scaleY; var targetRatio = Math.min(scaleX,scaleY); if(this.canvas != null) { if(this.element != this.canvas) { this.canvas.style.width = this.setWidth * targetRatio + "px"; this.canvas.style.height = this.setHeight * targetRatio + "px"; this.canvas.style.marginLeft = (this.element.clientWidth - this.setWidth * targetRatio) / 2 + "px"; this.canvas.style.marginTop = (this.element.clientHeight - this.setHeight * targetRatio) / 2 + "px"; } } else { this.div.style.width = this.setWidth * targetRatio + "px"; this.div.style.height = this.setHeight * targetRatio + "px"; this.div.style.marginLeft = (this.element.clientWidth - this.setWidth * targetRatio) / 2 + "px"; this.div.style.marginTop = (this.element.clientHeight - this.setHeight * targetRatio) / 2 + "px"; } } } } ,handleTouchEvent: function(event) { event.preventDefault(); var rect = null; if(this.element != null) { if(this.canvas != null) rect = this.canvas.getBoundingClientRect(); else if(this.div != null) rect = this.div.getBoundingClientRect(); else rect = this.element.getBoundingClientRect(); } var windowWidth = this.setWidth; var windowHeight = this.setHeight; if(windowWidth == 0 || windowHeight == 0) { if(rect != null) { windowWidth = rect.width; windowHeight = rect.height; } else { windowWidth = 1; windowHeight = 1; } } var _g = 0; var _g1 = event.changedTouches; while(_g < _g1.length) { var data = _g1[_g]; ++_g; var x = 0.0; var y = 0.0; if(rect != null) { x = (data.clientX - rect.left) * (windowWidth / rect.width); y = (data.clientY - rect.top) * (windowHeight / rect.height); } else { x = data.clientX; y = data.clientY; } var _g2 = event.type; switch(_g2) { case "touchstart": var touch = this.unusedTouchesPool.pop(); if(touch == null) touch = new lime_ui_Touch(x / windowWidth,y / windowHeight,data.identifier,0,0,data.force,this.parent.id); else { touch.x = x / windowWidth; touch.y = y / windowHeight; touch.id = data.identifier; touch.dx = 0; touch.dy = 0; touch.pressure = data.force; touch.device = this.parent.id; } this.currentTouches.h[data.identifier] = touch; lime_ui_Touch.onStart.dispatch(touch); if(this.primaryTouch == null) this.primaryTouch = touch; if(touch == this.primaryTouch) this.parent.onMouseDown.dispatch(x,y,0); break; case "touchend": var touch1 = this.currentTouches.h[data.identifier]; if(touch1 != null) { var cacheX = touch1.x; var cacheY = touch1.y; touch1.x = x / windowWidth; touch1.y = y / windowHeight; touch1.dx = touch1.x - cacheX; touch1.dy = touch1.y - cacheY; touch1.pressure = data.force; lime_ui_Touch.onEnd.dispatch(touch1); this.currentTouches.remove(data.identifier); this.unusedTouchesPool.add(touch1); if(touch1 == this.primaryTouch) { this.parent.onMouseUp.dispatch(x,y,0); this.primaryTouch = null; } } break; case "touchmove": var touch2 = this.currentTouches.h[data.identifier]; if(touch2 != null) { var cacheX1 = touch2.x; var cacheY1 = touch2.y; touch2.x = x / windowWidth; touch2.y = y / windowHeight; touch2.dx = touch2.x - cacheX1; touch2.dy = touch2.y - cacheY1; touch2.pressure = data.force; lime_ui_Touch.onMove.dispatch(touch2); if(touch2 == this.primaryTouch) this.parent.onMouseMove.dispatch(x,y); } break; default: } } } ,move: function(x,y) { } ,resize: function(width,height) { } ,setBorderless: function(value) { return value; } ,setEnableTextEvents: function(value) { if(value) { if(lime__$backend_html5_HTML5Window.textInput == null) { lime__$backend_html5_HTML5Window.textInput = window.document.createElement("input"); lime__$backend_html5_HTML5Window.textInput.type = "text"; lime__$backend_html5_HTML5Window.textInput.style.position = "absolute"; lime__$backend_html5_HTML5Window.textInput.style.opacity = "0"; lime__$backend_html5_HTML5Window.textInput.style.color = "transparent"; lime__$backend_html5_HTML5Window.textInput.value = ""; lime__$backend_html5_HTML5Window.textInput.autocapitalize = "off"; lime__$backend_html5_HTML5Window.textInput.autocorrect = "off"; lime__$backend_html5_HTML5Window.textInput.autocomplete = "off"; lime__$backend_html5_HTML5Window.textInput.style.left = "0px"; lime__$backend_html5_HTML5Window.textInput.style.top = "50%"; if(new EReg("(iPad|iPhone|iPod).*OS 8_","gi").match(window.navigator.userAgent)) { lime__$backend_html5_HTML5Window.textInput.style.fontSize = "0px"; lime__$backend_html5_HTML5Window.textInput.style.width = "0px"; lime__$backend_html5_HTML5Window.textInput.style.height = "0px"; } else { lime__$backend_html5_HTML5Window.textInput.style.width = "1px"; lime__$backend_html5_HTML5Window.textInput.style.height = "1px"; } lime__$backend_html5_HTML5Window.textInput.style.pointerEvents = "none"; lime__$backend_html5_HTML5Window.textInput.style.zIndex = "-10000000"; window.document.body.appendChild(lime__$backend_html5_HTML5Window.textInput); } if(!this.enableTextEvents) { lime__$backend_html5_HTML5Window.textInput.addEventListener("input",$bind(this,this.handleInputEvent),true); lime__$backend_html5_HTML5Window.textInput.addEventListener("blur",$bind(this,this.handleFocusEvent),true); } lime__$backend_html5_HTML5Window.textInput.focus(); } else if(lime__$backend_html5_HTML5Window.textInput != null) { lime__$backend_html5_HTML5Window.textInput.removeEventListener("input",$bind(this,this.handleInputEvent),true); lime__$backend_html5_HTML5Window.textInput.removeEventListener("blur",$bind(this,this.handleFocusEvent),true); lime__$backend_html5_HTML5Window.textInput.blur(); } return this.enableTextEvents = value; } ,setFullscreen: function(value) { return false; } ,setIcon: function(image) { } ,setMaximized: function(value) { return false; } ,setMinimized: function(value) { return false; } ,setResizable: function(value) { return value; } ,setTitle: function(value) { return value; } ,__class__: lime__$backend_html5_HTML5Window }; var lime_app_IModule = function() { }; $hxClasses["lime.app.IModule"] = lime_app_IModule; lime_app_IModule.__name__ = ["lime","app","IModule"]; lime_app_IModule.prototype = { onGamepadAxisMove: null ,onGamepadButtonDown: null ,onGamepadButtonUp: null ,onGamepadConnect: null ,onGamepadDisconnect: null ,onJoystickAxisMove: null ,onJoystickButtonDown: null ,onJoystickButtonUp: null ,onJoystickConnect: null ,onJoystickDisconnect: null ,onJoystickHatMove: null ,onJoystickTrackballMove: null ,onKeyDown: null ,onKeyUp: null ,onModuleExit: null ,onMouseDown: null ,onMouseMove: null ,onMouseMoveRelative: null ,onMouseUp: null ,onMouseWheel: null ,onPreloadComplete: null ,onPreloadProgress: null ,onRenderContextLost: null ,onRenderContextRestored: null ,onTextEdit: null ,onTextInput: null ,onTouchEnd: null ,onTouchMove: null ,onTouchStart: null ,onWindowActivate: null ,onWindowClose: null ,onWindowCreate: null ,onWindowDeactivate: null ,onWindowDropFile: null ,onWindowEnter: null ,onWindowFocusIn: null ,onWindowFocusOut: null ,onWindowFullscreen: null ,onWindowLeave: null ,onWindowMove: null ,onWindowMinimize: null ,onWindowResize: null ,onWindowRestore: null ,render: null ,update: null ,__class__: lime_app_IModule }; var lime_app_Module = function() { this.onExit = new lime_app_Event_$Int_$Void(); }; $hxClasses["lime.app.Module"] = lime_app_Module; lime_app_Module.__name__ = ["lime","app","Module"]; lime_app_Module.__interfaces__ = [lime_app_IModule]; lime_app_Module.prototype = { onExit: null ,onGamepadAxisMove: function(gamepad,axis,value) { } ,onGamepadButtonDown: function(gamepad,button) { } ,onGamepadButtonUp: function(gamepad,button) { } ,onGamepadConnect: function(gamepad) { haxe_Log.trace("onGamepadConnect (module)",{ fileName : "Module.hx", lineNumber : 64, className : "lime.app.Module", methodName : "onGamepadConnect"}); } ,onGamepadDisconnect: function(gamepad) { } ,onJoystickAxisMove: function(joystick,axis,value) { } ,onJoystickButtonDown: function(joystick,button) { } ,onJoystickButtonUp: function(joystick,button) { } ,onJoystickConnect: function(joystick) { } ,onJoystickDisconnect: function(joystick) { } ,onJoystickHatMove: function(joystick,hat,position) { } ,onJoystickTrackballMove: function(joystick,trackball,value) { } ,onKeyDown: function(window,keyCode,modifier) { } ,onKeyUp: function(window,keyCode,modifier) { } ,onModuleExit: function(code) { } ,onMouseDown: function(window,x,y,button) { } ,onMouseMove: function(window,x,y) { } ,onMouseMoveRelative: function(window,x,y) { } ,onMouseUp: function(window,x,y,button) { } ,onMouseWheel: function(window,deltaX,deltaY) { } ,onPreloadComplete: function() { } ,onPreloadProgress: function(loaded,total) { } ,onRenderContextLost: function(renderer) { } ,onRenderContextRestored: function(renderer,context) { } ,onTextEdit: function(window,text,start,length) { } ,onTextInput: function(window,text) { } ,onTouchEnd: function(touch) { } ,onTouchMove: function(touch) { } ,onTouchStart: function(touch) { } ,onWindowActivate: function(window) { } ,onWindowClose: function(window) { } ,onWindowCreate: function(window) { } ,onWindowDeactivate: function(window) { } ,onWindowDropFile: function(window,file) { } ,onWindowEnter: function(window) { } ,onWindowFocusIn: function(window) { } ,onWindowFocusOut: function(window) { } ,onWindowFullscreen: function(window) { } ,onWindowLeave: function(window) { } ,onWindowMove: function(window,x,y) { } ,onWindowMinimize: function(window) { } ,onWindowResize: function(window,width,height) { } ,onWindowRestore: function(window) { } ,render: function(renderer) { } ,update: function(deltaTime) { } ,__class__: lime_app_Module }; var lime_app_Application = function() { this.onUpdate = new lime_app_Event_$Int_$Void(); lime_app_Module.call(this); if(lime_app_Application.current == null) lime_app_Application.current = this; this.modules = []; this.renderers = []; this.windows = []; this.windowByID = new haxe_ds_IntMap(); this.backend = new lime__$backend_html5_HTML5Application(this); this.onExit.add($bind(this,this.onModuleExit)); this.onUpdate.add($bind(this,this.update)); lime_ui_Gamepad.onConnect.add($bind(this,this.__onGamepadConnect)); lime_ui_Joystick.onConnect.add($bind(this,this.__onJoystickConnect)); lime_ui_Touch.onStart.add($bind(this,this.onTouchStart)); lime_ui_Touch.onMove.add($bind(this,this.onTouchMove)); lime_ui_Touch.onEnd.add($bind(this,this.onTouchEnd)); }; $hxClasses["lime.app.Application"] = lime_app_Application; lime_app_Application.__name__ = ["lime","app","Application"]; lime_app_Application.current = null; lime_app_Application.__super__ = lime_app_Module; lime_app_Application.prototype = $extend(lime_app_Module.prototype,{ config: null ,modules: null ,preloader: null ,onUpdate: null ,renderer: null ,renderers: null ,window: null ,windows: null ,backend: null ,windowByID: null ,addModule: function(module) { this.modules.push(module); if(this.windows.length > 0) { var _g = 0; var _g1 = this.windows; while(_g < _g1.length) { var $window = _g1[_g]; ++_g; module.onWindowCreate($window); } if(this.preloader == null || this.preloader.complete) module.onPreloadComplete(); } } ,addRenderer: function(renderer) { renderer.onRender.add((function(f,a1) { return function() { f(a1); }; })($bind(this,this.render),renderer)); renderer.onContextLost.add((function(f1,a11) { return function() { f1(a11); }; })($bind(this,this.onRenderContextLost),renderer)); renderer.onContextRestored.add((function(f2,a12) { return function(a2) { f2(a12,a2); }; })($bind(this,this.onRenderContextRestored),renderer)); this.renderers.push(renderer); } ,create: function(config) { this.config = config; this.backend.create(config); if(config != null) { if(Object.prototype.hasOwnProperty.call(config,"fps")) this.backend.setFrameRate(config.fps); if(Object.prototype.hasOwnProperty.call(config,"windows")) { var _g = 0; var _g1 = config.windows; while(_g < _g1.length) { var windowConfig = _g1[_g]; ++_g; var $window = new lime_ui_Window(windowConfig); this.createWindow($window); break; } } if(this.preloader == null || this.preloader.complete) this.onPreloadComplete(); } } ,createWindow: function(window) { window.onActivate.add((function(f,a1) { return function() { f(a1); }; })($bind(this,this.onWindowActivate),window)); window.onClose.add((function(f1,a11) { return function() { f1(a11); }; })($bind(this,this.onWindowClose),window)); window.onCreate.add((function(f2,a12) { return function() { f2(a12); }; })($bind(this,this.onWindowCreate),window)); window.onDeactivate.add((function(f3,a13) { return function() { f3(a13); }; })($bind(this,this.onWindowDeactivate),window)); window.onDropFile.add((function(f4,a14) { return function(a2) { f4(a14,a2); }; })($bind(this,this.onWindowDropFile),window)); window.onEnter.add((function(f5,a15) { return function() { f5(a15); }; })($bind(this,this.onWindowEnter),window)); window.onFocusIn.add((function(f6,a16) { return function() { f6(a16); }; })($bind(this,this.onWindowFocusIn),window)); window.onFocusOut.add((function(f7,a17) { return function() { f7(a17); }; })($bind(this,this.onWindowFocusOut),window)); window.onFullscreen.add((function(f8,a18) { return function() { f8(a18); }; })($bind(this,this.onWindowFullscreen),window)); window.onKeyDown.add((function(f9,a19) { return function(a21,a3) { f9(a19,a21,a3); }; })($bind(this,this.onKeyDown),window)); window.onKeyUp.add((function(f10,a110) { return function(a22,a31) { f10(a110,a22,a31); }; })($bind(this,this.onKeyUp),window)); window.onLeave.add((function(f11,a111) { return function() { f11(a111); }; })($bind(this,this.onWindowLeave),window)); window.onMinimize.add((function(f12,a112) { return function() { f12(a112); }; })($bind(this,this.onWindowMinimize),window)); window.onMouseDown.add((function(f13,a113) { return function(x,y,a23) { f13(a113,x,y,a23); }; })($bind(this,this.onMouseDown),window)); window.onMouseMove.add((function(f14,a114) { return function(x1,y1) { f14(a114,x1,y1); }; })($bind(this,this.onMouseMove),window)); window.onMouseMoveRelative.add((function(f15,a115) { return function(x2,y2) { f15(a115,x2,y2); }; })($bind(this,this.onMouseMoveRelative),window)); window.onMouseUp.add((function(f16,a116) { return function(x3,y3,a24) { f16(a116,x3,y3,a24); }; })($bind(this,this.onMouseUp),window)); window.onMouseWheel.add((function(f17,a117) { return function(a25,a32) { f17(a117,a25,a32); }; })($bind(this,this.onMouseWheel),window)); window.onMove.add((function(f18,a118) { return function(x4,y4) { f18(a118,x4,y4); }; })($bind(this,this.onWindowMove),window)); window.onResize.add((function(f19,a119) { return function(a26,a33) { f19(a119,a26,a33); }; })($bind(this,this.onWindowResize),window)); window.onRestore.add((function(f20,a120) { return function() { f20(a120); }; })($bind(this,this.onWindowRestore),window)); window.onTextEdit.add((function(f21,a121) { return function(a27,a34,a4) { f21(a121,a27,a34,a4); }; })($bind(this,this.onTextEdit),window)); window.onTextInput.add((function(f22,a122) { return function(a28) { f22(a122,a28); }; })($bind(this,this.onTextInput),window)); if(window.renderer == null) { var renderer = new lime_graphics_Renderer(window); this.addRenderer(renderer); } window.create(this); this.windows.push(window); this.windowByID.h[window.id] = window; window.onCreate.dispatch(); } ,exec: function() { lime_app_Application.current = this; return this.backend.exec(); } ,onGamepadAxisMove: function(gamepad,axis,value) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onGamepadAxisMove(gamepad,axis,value); } } ,onGamepadButtonDown: function(gamepad,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onGamepadButtonDown(gamepad,button); } } ,onGamepadButtonUp: function(gamepad,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onGamepadButtonUp(gamepad,button); } } ,onGamepadConnect: function(gamepad) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onGamepadConnect(gamepad); } } ,onGamepadDisconnect: function(gamepad) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onGamepadDisconnect(gamepad); } } ,onJoystickAxisMove: function(joystick,axis,value) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickAxisMove(joystick,axis,value); } } ,onJoystickButtonDown: function(joystick,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickButtonDown(joystick,button); } } ,onJoystickButtonUp: function(joystick,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickButtonUp(joystick,button); } } ,onJoystickConnect: function(joystick) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickConnect(joystick); } } ,onJoystickDisconnect: function(joystick) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickDisconnect(joystick); } } ,onJoystickHatMove: function(joystick,hat,position) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickHatMove(joystick,hat,position); } } ,onJoystickTrackballMove: function(joystick,trackball,value) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onJoystickTrackballMove(joystick,trackball,value); } } ,onKeyDown: function(window,keyCode,modifier) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onKeyDown(window,keyCode,modifier); } } ,onKeyUp: function(window,keyCode,modifier) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onKeyUp(window,keyCode,modifier); } } ,onModuleExit: function(code) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onModuleExit(code); } this.backend.exit(); } ,onMouseDown: function(window,x,y,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onMouseDown(window,x,y,button); } } ,onMouseMove: function(window,x,y) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onMouseMove(window,x,y); } } ,onMouseMoveRelative: function(window,x,y) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onMouseMoveRelative(window,x,y); } } ,onMouseUp: function(window,x,y,button) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onMouseUp(window,x,y,button); } } ,onMouseWheel: function(window,deltaX,deltaY) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onMouseWheel(window,deltaX,deltaY); } } ,onPreloadComplete: function() { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onPreloadComplete(); } } ,onPreloadProgress: function(loaded,total) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onPreloadProgress(loaded,total); } } ,onRenderContextLost: function(renderer) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onRenderContextLost(renderer); } } ,onRenderContextRestored: function(renderer,context) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onRenderContextRestored(renderer,context); } } ,onTextEdit: function(window,text,start,length) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onTextEdit(window,text,start,length); } } ,onTextInput: function(window,text) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onTextInput(window,text); } } ,onTouchEnd: function(touch) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onTouchEnd(touch); } } ,onTouchMove: function(touch) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onTouchMove(touch); } } ,onTouchStart: function(touch) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onTouchStart(touch); } } ,onWindowActivate: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowActivate(window); } } ,onWindowClose: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowClose(window); } this.removeWindow(window); } ,onWindowCreate: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowCreate(window); } } ,onWindowDeactivate: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowDeactivate(window); } } ,onWindowDropFile: function(window,file) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowDropFile(window,file); } } ,onWindowEnter: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowEnter(window); } } ,onWindowFocusIn: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowFocusIn(window); } } ,onWindowFocusOut: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowFocusOut(window); } } ,onWindowFullscreen: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowFullscreen(window); } } ,onWindowLeave: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowLeave(window); } } ,onWindowMinimize: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowMinimize(window); } } ,onWindowMove: function(window,x,y) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowMove(window,x,y); } } ,onWindowResize: function(window,width,height) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowResize(window,width,height); } } ,onWindowRestore: function(window) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.onWindowRestore(window); } } ,removeModule: function(module) { if(module != null) { module.onModuleExit(0); HxOverrides.remove(this.modules,module); } } ,removeRenderer: function(renderer) { if(renderer != null && HxOverrides.indexOf(this.renderers,renderer,0) > -1) HxOverrides.remove(this.renderers,renderer); } ,removeWindow: function(window) { if(window != null && this.windowByID.h.hasOwnProperty(window.id)) { HxOverrides.remove(this.windows,window); this.windowByID.remove(window.id); window.close(); if(this.windows[0] == window) this.window = null; } } ,render: function(renderer) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.render(renderer); } } ,setPreloader: function(preloader) { if(this.preloader != null) { this.preloader.onProgress.remove($bind(this,this.onPreloadProgress)); this.preloader.onComplete.remove($bind(this,this.onPreloadComplete)); } this.preloader = preloader; if(preloader.complete) this.onPreloadComplete(); else { preloader.onProgress.add($bind(this,this.onPreloadProgress)); preloader.onComplete.add($bind(this,this.onPreloadComplete)); } } ,update: function(deltaTime) { var _g = 0; var _g1 = this.modules; while(_g < _g1.length) { var module = _g1[_g]; ++_g; module.update(deltaTime); } } ,__onGamepadConnect: function(gamepad) { this.onGamepadConnect(gamepad); gamepad.onAxisMove.add((function(f,a1) { return function(a2,a3) { f(a1,a2,a3); }; })($bind(this,this.onGamepadAxisMove),gamepad)); gamepad.onButtonDown.add((function(f1,a11) { return function(a21) { f1(a11,a21); }; })($bind(this,this.onGamepadButtonDown),gamepad)); gamepad.onButtonUp.add((function(f2,a12) { return function(a22) { f2(a12,a22); }; })($bind(this,this.onGamepadButtonUp),gamepad)); gamepad.onDisconnect.add((function(f3,a13) { return function() { f3(a13); }; })($bind(this,this.onGamepadDisconnect),gamepad)); } ,__onJoystickConnect: function(joystick) { this.onJoystickConnect(joystick); joystick.onAxisMove.add((function(f,a1) { return function(a2,a3) { f(a1,a2,a3); }; })($bind(this,this.onJoystickAxisMove),joystick)); joystick.onButtonDown.add((function(f1,a11) { return function(a21) { f1(a11,a21); }; })($bind(this,this.onJoystickButtonDown),joystick)); joystick.onButtonUp.add((function(f2,a12) { return function(a22) { f2(a12,a22); }; })($bind(this,this.onJoystickButtonUp),joystick)); joystick.onDisconnect.add((function(f3,a13) { return function() { f3(a13); }; })($bind(this,this.onJoystickDisconnect),joystick)); joystick.onHatMove.add((function(f4,a14) { return function(a23,a31) { f4(a14,a23,a31); }; })($bind(this,this.onJoystickHatMove),joystick)); joystick.onTrackballMove.add((function(f5,a15) { return function(a24,a32) { f5(a15,a24,a32); }; })($bind(this,this.onJoystickTrackballMove),joystick)); } ,get_frameRate: function() { return this.backend.getFrameRate(); } ,set_frameRate: function(value) { return this.backend.setFrameRate(value); } ,get_renderer: function() { return this.renderers[0]; } ,get_window: function() { return this.windows[0]; } ,__class__: lime_app_Application ,__properties__: {get_window:"get_window",get_renderer:"get_renderer",set_frameRate:"set_frameRate",get_frameRate:"get_frameRate"} }); var lime_app_Event = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event"] = lime_app_Event; lime_app_Event.__name__ = ["lime","app","Event"]; lime_app_Event.prototype = { canceled: null ,__listeners: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,dispatch: null ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__class__: lime_app_Event }; var lime_app_Event_$Dynamic_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Dynamic_Void"] = lime_app_Event_$Dynamic_$Void; lime_app_Event_$Dynamic_$Void.__name__ = ["lime","app","Event_Dynamic_Void"]; lime_app_Event_$Dynamic_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Dynamic_$Void }; var lime_app_Event_$Float_$Float_$Int_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Float_Float_Int_Void"] = lime_app_Event_$Float_$Float_$Int_$Void; lime_app_Event_$Float_$Float_$Int_$Void.__name__ = ["lime","app","Event_Float_Float_Int_Void"]; lime_app_Event_$Float_$Float_$Int_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1,a2) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1,a2); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Float_$Float_$Int_$Void }; var lime_app_Event_$Float_$Float_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Float_Float_Void"] = lime_app_Event_$Float_$Float_$Void; lime_app_Event_$Float_$Float_$Void.__name__ = ["lime","app","Event_Float_Float_Void"]; lime_app_Event_$Float_$Float_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Float_$Float_$Void }; var lime_app_Event_$Int_$Float_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Int_Float_Void"] = lime_app_Event_$Int_$Float_$Void; lime_app_Event_$Int_$Float_$Void.__name__ = ["lime","app","Event_Int_Float_Void"]; lime_app_Event_$Int_$Float_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Int_$Float_$Void }; var lime_app_Event_$Int_$Int_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Int_Int_Void"] = lime_app_Event_$Int_$Int_$Void; lime_app_Event_$Int_$Int_$Void.__name__ = ["lime","app","Event_Int_Int_Void"]; lime_app_Event_$Int_$Int_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Int_$Int_$Void }; var lime_app_Event_$Int_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Int_Void"] = lime_app_Event_$Int_$Void; lime_app_Event_$Int_$Void.__name__ = ["lime","app","Event_Int_Void"]; lime_app_Event_$Int_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Int_$Void }; var lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_Int_lime_ui_JoystickHatPosition_Void"] = lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void; lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void.__name__ = ["lime","app","Event_Int_lime_ui_JoystickHatPosition_Void"]; lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void }; var lime_app_Event_$String_$Int_$Int_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_String_Int_Int_Void"] = lime_app_Event_$String_$Int_$Int_$Void; lime_app_Event_$String_$Int_$Int_$Void.__name__ = ["lime","app","Event_String_Int_Int_Void"]; lime_app_Event_$String_$Int_$Int_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1,a2) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1,a2); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$String_$Int_$Int_$Void }; var lime_app_Event_$String_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_String_Void"] = lime_app_Event_$String_$Void; lime_app_Event_$String_$Void.__name__ = ["lime","app","Event_String_Void"]; lime_app_Event_$String_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$String_$Void }; var lime_app_Event_$lime_$graphics_$RenderContext_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_graphics_RenderContext_Void"] = lime_app_Event_$lime_$graphics_$RenderContext_$Void; lime_app_Event_$lime_$graphics_$RenderContext_$Void.__name__ = ["lime","app","Event_lime_graphics_RenderContext_Void"]; lime_app_Event_$lime_$graphics_$RenderContext_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$graphics_$RenderContext_$Void }; var lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_GamepadAxis_Float_Void"] = lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void; lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void.__name__ = ["lime","app","Event_lime_ui_GamepadAxis_Float_Void"]; lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void }; var lime_app_Event_$lime_$ui_$GamepadButton_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_GamepadButton_Void"] = lime_app_Event_$lime_$ui_$GamepadButton_$Void; lime_app_Event_$lime_$ui_$GamepadButton_$Void.__name__ = ["lime","app","Event_lime_ui_GamepadButton_Void"]; lime_app_Event_$lime_$ui_$GamepadButton_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$GamepadButton_$Void }; var lime_app_Event_$lime_$ui_$Gamepad_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_Gamepad_Void"] = lime_app_Event_$lime_$ui_$Gamepad_$Void; lime_app_Event_$lime_$ui_$Gamepad_$Void.__name__ = ["lime","app","Event_lime_ui_Gamepad_Void"]; lime_app_Event_$lime_$ui_$Gamepad_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$Gamepad_$Void }; var lime_app_Event_$lime_$ui_$Joystick_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_Joystick_Void"] = lime_app_Event_$lime_$ui_$Joystick_$Void; lime_app_Event_$lime_$ui_$Joystick_$Void.__name__ = ["lime","app","Event_lime_ui_Joystick_Void"]; lime_app_Event_$lime_$ui_$Joystick_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$Joystick_$Void }; var lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"] = lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void; lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void.__name__ = ["lime","app","Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"]; lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a,a1) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a,a1); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void }; var lime_app_Event_$lime_$ui_$Touch_$Void = function() { this.canceled = false; this.__listeners = []; this.__priorities = []; this.__repeat = []; }; $hxClasses["lime.app.Event_lime_ui_Touch_Void"] = lime_app_Event_$lime_$ui_$Touch_$Void; lime_app_Event_$lime_$ui_$Touch_$Void.__name__ = ["lime","app","Event_lime_ui_Touch_Void"]; lime_app_Event_$lime_$ui_$Touch_$Void.prototype = { canceled: null ,__repeat: null ,__priorities: null ,add: function(listener,once,priority) { if(priority == null) priority = 0; if(once == null) once = false; var _g1 = 0; var _g = this.__priorities.length; while(_g1 < _g) { var i = _g1++; if(priority > this.__priorities[i]) { this.__listeners.splice(i,0,listener); this.__priorities.splice(i,0,priority); this.__repeat.splice(i,0,!once); return; } } this.__listeners.push(listener); this.__priorities.push(priority); this.__repeat.push(!once); } ,cancel: function() { this.canceled = true; } ,has: function(listener) { var _g = 0; var _g1 = this.__listeners; while(_g < _g1.length) { var l = _g1[_g]; ++_g; if(Reflect.compareMethods(l,listener)) return true; } return false; } ,remove: function(listener) { var i = this.__listeners.length; while(--i >= 0) if(Reflect.compareMethods(this.__listeners[i],listener)) { this.__listeners.splice(i,1); this.__priorities.splice(i,1); this.__repeat.splice(i,1); } } ,__listeners: null ,dispatch: function(a) { this.canceled = false; var listeners = this.__listeners; var repeat = this.__repeat; var i = 0; while(i < listeners.length) { listeners[i](a); if(!repeat[i]) this.remove(listeners[i]); else i++; if(this.canceled) break; } } ,__class__: lime_app_Event_$lime_$ui_$Touch_$Void }; var lime_app_Future = function(work) { if(work != null) { if(lime_app_Future.__threadPool == null) { lime_app_Future.__threadPool = new lime_system_ThreadPool(); lime_app_Future.__threadPool.doWork.add(lime_app_Future.threadPool_doWork); lime_app_Future.__threadPool.onComplete.add(lime_app_Future.threadPool_onComplete); lime_app_Future.__threadPool.onError.add(lime_app_Future.threadPool_onError); } var promise = new lime_app_Promise(); promise.future = this; lime_app_Future.__threadPool.queue({ promise : promise, work : work}); } }; $hxClasses["lime.app.Future"] = lime_app_Future; lime_app_Future.__name__ = ["lime","app","Future"]; lime_app_Future.__threadPool = null; lime_app_Future.threadPool_doWork = function(state) { try { var result = state.work(); lime_app_Future.__threadPool.sendComplete({ promise : state.promise, result : result}); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; lime_app_Future.__threadPool.sendError({ promise : state.promise, error : e}); } }; lime_app_Future.threadPool_onComplete = function(state) { state.promise.complete(state.result); }; lime_app_Future.threadPool_onError = function(state) { state.promise.error(state.error); }; lime_app_Future.prototype = { isCompleted: null ,value: null ,__completed: null ,__completeListeners: null ,__errored: null ,__errorListeners: null ,__errorMessage: null ,__progressListeners: null ,onComplete: function(listener) { if(listener != null) { if(this.__completed) listener(this.value); else if(!this.__errored) { if(this.__completeListeners == null) this.__completeListeners = []; this.__completeListeners.push(listener); } } return this; } ,onError: function(listener) { if(listener != null) { if(this.__errored) listener(this.__errorMessage); else if(!this.__completed) { if(this.__errorListeners == null) this.__errorListeners = []; this.__errorListeners.push(listener); } } return this; } ,onProgress: function(listener) { if(listener != null) { if(this.__progressListeners == null) this.__progressListeners = []; this.__progressListeners.push(listener); } return this; } ,then: function(next) { if(this.__completed) return next(this.value); else if(this.__errored) { var future = new lime_app_Future(); future.onError(this.__errorMessage); return future; } else { var promise = new lime_app_Promise(); this.onError($bind(promise,promise.error)); this.onProgress($bind(promise,promise.progress)); this.onComplete(function(val) { var future1 = next(val); future1.onError($bind(promise,promise.error)); future1.onComplete($bind(promise,promise.complete)); }); return promise.future; } } ,get_isCompleted: function() { return this.__completed || this.__errored; } ,__class__: lime_app_Future ,__properties__: {get_isCompleted:"get_isCompleted"} }; var lime_app_Preloader = function() { this.total = 0; this.loaded = 0; this.onProgress = new lime_app_Event_$Int_$Int_$Void(); this.onComplete = new lime_app_Event_$Void_$Void(); this.onProgress.add($bind(this,this.update)); }; $hxClasses["lime.app.Preloader"] = lime_app_Preloader; lime_app_Preloader.__name__ = ["lime","app","Preloader"]; lime_app_Preloader.prototype = { complete: null ,onComplete: null ,onProgress: null ,loaded: null ,total: null ,create: function(config) { } ,load: function(urls,types) { var url = null; var cacheVersion = lime_Assets.cache.version; var _g1 = 0; var _g = urls.length; while(_g1 < _g) { var i = _g1++; url = urls[i]; var _g2 = types[i]; switch(_g2) { case "IMAGE": if(!lime_app_Preloader.images.exists(url)) { var image = new Image(); lime_app_Preloader.images.set(url,image); image.onload = $bind(this,this.image_onLoad); image.src = url + "?" + cacheVersion; this.total++; } break; case "BINARY": if(!lime_app_Preloader.loaders.exists(url)) { var loader = new lime_net_HTTPRequest(); lime_app_Preloader.loaders.set(url,loader); this.total++; } break; case "TEXT": if(!lime_app_Preloader.loaders.exists(url)) { var loader1 = new lime_net_HTTPRequest(); lime_app_Preloader.loaders.set(url,loader1); this.total++; } break; case "FONT": this.total++; this.loadFont(url); break; default: } } var $it0 = lime_app_Preloader.loaders.keys(); while( $it0.hasNext() ) { var url1 = $it0.next(); var loader2 = lime_app_Preloader.loaders.get(url1); var future = loader2.load(url1 + "?" + cacheVersion); future.onComplete($bind(this,this.loader_onComplete)); } if(this.total == 0) this.start(); } ,loadFont: function(font) { var _g = this; if(window.document.fonts && ($_=window.document.fonts,$bind($_,$_.load))) window.document.fonts.load("1em '" + font + "'").then(function(_) { _g.loaded++; _g.onProgress.dispatch(_g.loaded,_g.total); if(_g.loaded == _g.total) _g.start(); }); else { var node = window.document.createElement("span"); node.innerHTML = "giItT1WQy@!-/#"; var style = node.style; style.position = "absolute"; style.left = "-10000px"; style.top = "-10000px"; style.fontSize = "300px"; style.fontFamily = "sans-serif"; style.fontVariant = "normal"; style.fontStyle = "normal"; style.fontWeight = "normal"; style.letterSpacing = "0"; window.document.body.appendChild(node); var width = node.offsetWidth; style.fontFamily = "'" + font + "', sans-serif"; var interval = null; var found = false; var checkFont = function() { if(node.offsetWidth != width) { if(!found) { found = true; return false; } _g.loaded++; if(interval != null) window.clearInterval(interval); node.parentNode.removeChild(node); node = null; _g.onProgress.dispatch(_g.loaded,_g.total); if(_g.loaded == _g.total) _g.start(); return true; } return false; }; if(!checkFont()) interval = window.setInterval(checkFont,50); } } ,start: function() { this.complete = true; this.onComplete.dispatch(); } ,update: function(loaded,total) { } ,image_onLoad: function(_) { this.loaded++; this.onProgress.dispatch(this.loaded,this.total); if(this.loaded == this.total) this.start(); } ,loader_onComplete: function(_) { this.loaded++; this.onProgress.dispatch(this.loaded,this.total); if(this.loaded == this.total) this.start(); } ,__class__: lime_app_Preloader }; var lime_app_Promise = function() { this.future = new lime_app_Future(); }; $hxClasses["lime.app.Promise"] = lime_app_Promise; lime_app_Promise.__name__ = ["lime","app","Promise"]; lime_app_Promise.prototype = { future: null ,isCompleted: null ,complete: function(data) { if(!this.future.__errored) { this.future.__completed = true; this.future.value = data; if(this.future.__completeListeners != null) { var _g = 0; var _g1 = this.future.__completeListeners; while(_g < _g1.length) { var listener = _g1[_g]; ++_g; listener(data); } this.future.__completeListeners = null; } } return this; } ,completeWith: function(future) { future.onComplete($bind(this,this.complete)); future.onError($bind(this,this.error)); future.onProgress($bind(this,this.progress)); return this; } ,error: function(msg) { if(!this.future.__completed) { this.future.__errored = true; this.future.__errorMessage = msg; if(this.future.__errorListeners != null) { var _g = 0; var _g1 = this.future.__errorListeners; while(_g < _g1.length) { var listener = _g1[_g]; ++_g; listener(msg); } this.future.__errorListeners = null; } } return this; } ,progress: function(progress) { if(!this.future.__errored && !this.future.__completed) { if(this.future.__progressListeners != null) { var _g = 0; var _g1 = this.future.__progressListeners; while(_g < _g1.length) { var listener = _g1[_g]; ++_g; listener(progress); } } } return this; } ,get_isCompleted: function() { return this.future.get_isCompleted(); } ,__class__: lime_app_Promise ,__properties__: {get_isCompleted:"get_isCompleted"} }; var lime_audio_ALAudioContext = function() { this.EXPONENT_DISTANCE_CLAMPED = 53254; this.EXPONENT_DISTANCE = 53253; this.LINEAR_DISTANCE_CLAMPED = 53252; this.LINEAR_DISTANCE = 53251; this.INVERSE_DISTANCE_CLAMPED = 53250; this.INVERSE_DISTANCE = 53249; this.DISTANCE_MODEL = 53248; this.DOPPLER_VELOCITY = 49153; this.SPEED_OF_SOUND = 49155; this.DOPPLER_FACTOR = 49152; this.EXTENSIONS = 45060; this.RENDERER = 45059; this.VERSION = 45058; this.VENDOR = 45057; this.OUT_OF_MEMORY = 40965; this.INVALID_OPERATION = 40964; this.INVALID_VALUE = 40963; this.INVALID_ENUM = 40962; this.INVALID_NAME = 40961; this.NO_ERROR = 0; this.SIZE = 8196; this.CHANNELS = 8195; this.BITS = 8194; this.FREQUENCY = 8193; this.FORMAT_STEREO16 = 4355; this.FORMAT_STEREO8 = 4354; this.FORMAT_MONO16 = 4353; this.FORMAT_MONO8 = 4352; this.UNDETERMINED = 4144; this.STREAMING = 4137; this.STATIC = 4136; this.SOURCE_TYPE = 4135; this.BYTE_OFFSET = 4134; this.SAMPLE_OFFSET = 4133; this.SEC_OFFSET = 4132; this.MAX_DISTANCE = 4131; this.CONE_OUTER_GAIN = 4130; this.ROLLOFF_FACTOR = 4129; this.REFERENCE_DISTANCE = 4128; this.BUFFERS_PROCESSED = 4118; this.BUFFERS_QUEUED = 4117; this.STOPPED = 4116; this.PAUSED = 4115; this.PLAYING = 4114; this.INITIAL = 4113; this.SOURCE_STATE = 4112; this.ORIENTATION = 4111; this.MAX_GAIN = 4110; this.MIN_GAIN = 4109; this.GAIN = 4106; this.BUFFER = 4105; this.LOOPING = 4103; this.VELOCITY = 4102; this.DIRECTION = 4101; this.POSITION = 4100; this.PITCH = 4099; this.CONE_OUTER_ANGLE = 4098; this.CONE_INNER_ANGLE = 4097; this.SOURCE_RELATIVE = 514; this.TRUE = 1; this.FALSE = 0; this.NONE = 0; }; $hxClasses["lime.audio.ALAudioContext"] = lime_audio_ALAudioContext; lime_audio_ALAudioContext.__name__ = ["lime","audio","ALAudioContext"]; lime_audio_ALAudioContext.prototype = { NONE: null ,FALSE: null ,TRUE: null ,SOURCE_RELATIVE: null ,CONE_INNER_ANGLE: null ,CONE_OUTER_ANGLE: null ,PITCH: null ,POSITION: null ,DIRECTION: null ,VELOCITY: null ,LOOPING: null ,BUFFER: null ,GAIN: null ,MIN_GAIN: null ,MAX_GAIN: null ,ORIENTATION: null ,SOURCE_STATE: null ,INITIAL: null ,PLAYING: null ,PAUSED: null ,STOPPED: null ,BUFFERS_QUEUED: null ,BUFFERS_PROCESSED: null ,REFERENCE_DISTANCE: null ,ROLLOFF_FACTOR: null ,CONE_OUTER_GAIN: null ,MAX_DISTANCE: null ,SEC_OFFSET: null ,SAMPLE_OFFSET: null ,BYTE_OFFSET: null ,SOURCE_TYPE: null ,STATIC: null ,STREAMING: null ,UNDETERMINED: null ,FORMAT_MONO8: null ,FORMAT_MONO16: null ,FORMAT_STEREO8: null ,FORMAT_STEREO16: null ,FREQUENCY: null ,BITS: null ,CHANNELS: null ,SIZE: null ,NO_ERROR: null ,INVALID_NAME: null ,INVALID_ENUM: null ,INVALID_VALUE: null ,INVALID_OPERATION: null ,OUT_OF_MEMORY: null ,VENDOR: null ,VERSION: null ,RENDERER: null ,EXTENSIONS: null ,DOPPLER_FACTOR: null ,SPEED_OF_SOUND: null ,DOPPLER_VELOCITY: null ,DISTANCE_MODEL: null ,INVERSE_DISTANCE: null ,INVERSE_DISTANCE_CLAMPED: null ,LINEAR_DISTANCE: null ,LINEAR_DISTANCE_CLAMPED: null ,EXPONENT_DISTANCE: null ,EXPONENT_DISTANCE_CLAMPED: null ,bufferData: function(buffer,format,data,size,freq) { lime_audio_openal_AL.bufferData(buffer,format,data,size,freq); } ,buffer3f: function(buffer,param,value1,value2,value3) { lime_audio_openal_AL.buffer3f(buffer,param,value1,value2,value3); } ,buffer3i: function(buffer,param,value1,value2,value3) { lime_audio_openal_AL.buffer3i(buffer,param,value1,value2,value3); } ,bufferf: function(buffer,param,value) { lime_audio_openal_AL.bufferf(buffer,param,value); } ,bufferfv: function(buffer,param,values) { lime_audio_openal_AL.bufferfv(buffer,param,values); } ,bufferi: function(buffer,param,value) { lime_audio_openal_AL.bufferi(buffer,param,value); } ,bufferiv: function(buffer,param,values) { lime_audio_openal_AL.bufferiv(buffer,param,values); } ,deleteBuffer: function(buffer) { lime_audio_openal_AL.deleteBuffer(buffer); } ,deleteBuffers: function(buffers) { lime_audio_openal_AL.deleteBuffers(buffers); } ,deleteSource: function(source) { lime_audio_openal_AL.deleteSource(source); } ,deleteSources: function(sources) { lime_audio_openal_AL.deleteSources(sources); } ,disable: function(capability) { lime_audio_openal_AL.disable(capability); } ,distanceModel: function(distanceModel) { lime_audio_openal_AL.distanceModel(distanceModel); } ,dopplerFactor: function(value) { lime_audio_openal_AL.dopplerFactor(value); } ,dopplerVelocity: function(value) { lime_audio_openal_AL.dopplerVelocity(value); } ,enable: function(capability) { lime_audio_openal_AL.enable(capability); } ,genSource: function() { return lime_audio_openal_AL.genSource(); } ,genSources: function(n) { return lime_audio_openal_AL.genSources(n); } ,genBuffer: function() { return lime_audio_openal_AL.genBuffer(); } ,genBuffers: function(n) { return lime_audio_openal_AL.genBuffers(n); } ,getBoolean: function(param) { return lime_audio_openal_AL.getBoolean(param); } ,getBooleanv: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getBooleanv(param,count); } ,getBuffer3f: function(buffer,param) { return lime_audio_openal_AL.getBuffer3f(buffer,param); } ,getBuffer3i: function(buffer,param) { return lime_audio_openal_AL.getBuffer3i(buffer,param); } ,getBufferf: function(buffer,param) { return lime_audio_openal_AL.getBufferf(buffer,param); } ,getBufferfv: function(buffer,param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getBufferfv(buffer,param,count); } ,getBufferi: function(buffer,param) { return lime_audio_openal_AL.getBufferi(buffer,param); } ,getBufferiv: function(buffer,param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getBufferiv(buffer,param,count); } ,getDouble: function(param) { return lime_audio_openal_AL.getDouble(param); } ,getDoublev: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getDoublev(param,count); } ,getEnumValue: function(ename) { return lime_audio_openal_AL.getEnumValue(ename); } ,getError: function() { return lime_audio_openal_AL.getError(); } ,getErrorString: function() { return lime_audio_openal_AL.getErrorString(); } ,getFloat: function(param) { return lime_audio_openal_AL.getFloat(param); } ,getFloatv: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getFloatv(param,count); } ,getInteger: function(param) { return lime_audio_openal_AL.getInteger(param); } ,getIntegerv: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getIntegerv(param,count); } ,getListener3f: function(param) { return lime_audio_openal_AL.getListener3f(param); } ,getListener3i: function(param) { return lime_audio_openal_AL.getListener3i(param); } ,getListenerf: function(param) { return lime_audio_openal_AL.getListenerf(param); } ,getListenerfv: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getListenerfv(param,count); } ,getListeneri: function(param) { return lime_audio_openal_AL.getListeneri(param); } ,getListeneriv: function(param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getListeneriv(param,count); } ,getProcAddress: function(fname) { return lime_audio_openal_AL.getProcAddress(fname); } ,getSource3f: function(source,param) { return lime_audio_openal_AL.getSource3f(source,param); } ,getSourcef: function(source,param) { return lime_audio_openal_AL.getSourcef(source,param); } ,getSource3i: function(source,param) { return lime_audio_openal_AL.getSource3i(source,param); } ,getSourcefv: function(source,param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getSourcefv(source,param); } ,getSourcei: function(source,param) { return lime_audio_openal_AL.getSourcei(source,param); } ,getSourceiv: function(source,param,count) { if(count == null) count = 1; return lime_audio_openal_AL.getSourceiv(source,param,count); } ,getString: function(param) { return lime_audio_openal_AL.getString(param); } ,isBuffer: function(buffer) { return lime_audio_openal_AL.isBuffer(buffer); } ,isEnabled: function(capability) { return lime_audio_openal_AL.isEnabled(capability); } ,isExtensionPresent: function(extname) { return lime_audio_openal_AL.isExtensionPresent(extname); } ,isSource: function(source) { return lime_audio_openal_AL.isSource(source); } ,listener3f: function(param,value1,value2,value3) { lime_audio_openal_AL.listener3f(param,value1,value2,value3); } ,listener3i: function(param,value1,value2,value3) { lime_audio_openal_AL.listener3i(param,value1,value2,value3); } ,listenerf: function(param,value) { lime_audio_openal_AL.listenerf(param,value); } ,listenerfv: function(param,values) { lime_audio_openal_AL.listenerfv(param,values); } ,listeneri: function(param,value) { lime_audio_openal_AL.listeneri(param,value); } ,listeneriv: function(param,values) { lime_audio_openal_AL.listeneriv(param,values); } ,source3f: function(source,param,value1,value2,value3) { lime_audio_openal_AL.source3f(source,param,value1,value2,value3); } ,source3i: function(source,param,value1,value2,value3) { lime_audio_openal_AL.source3i(source,param,value1,value2,value3); } ,sourcef: function(source,param,value) { lime_audio_openal_AL.sourcef(source,param,value); } ,sourcefv: function(source,param,values) { lime_audio_openal_AL.sourcefv(source,param,values); } ,sourcei: function(source,param,value) { lime_audio_openal_AL.sourcei(source,param,value); } ,sourceiv: function(source,param,values) { lime_audio_openal_AL.sourceiv(source,param,values); } ,sourcePlay: function(source) { lime_audio_openal_AL.sourcePlay(source); } ,sourcePlayv: function(sources) { lime_audio_openal_AL.sourcePlayv(sources); } ,sourceStop: function(source) { lime_audio_openal_AL.sourceStop(source); } ,sourceStopv: function(sources) { lime_audio_openal_AL.sourceStopv(sources); } ,sourceRewind: function(source) { lime_audio_openal_AL.sourceRewind(source); } ,sourceRewindv: function(sources) { lime_audio_openal_AL.sourceRewindv(sources); } ,sourcePause: function(source) { lime_audio_openal_AL.sourcePause(source); } ,sourcePausev: function(sources) { lime_audio_openal_AL.sourcePausev(sources); } ,sourceQueueBuffer: function(source,buffer) { lime_audio_openal_AL.sourceQueueBuffer(source,buffer); } ,sourceQueueBuffers: function(source,nb,buffers) { lime_audio_openal_AL.sourceQueueBuffers(source,nb,buffers); } ,sourceUnqueueBuffer: function(source) { return lime_audio_openal_AL.sourceUnqueueBuffer(source); } ,sourceUnqueueBuffers: function(source,nb) { return lime_audio_openal_AL.sourceUnqueueBuffers(source,nb); } ,speedOfSound: function(value) { lime_audio_openal_AL.speedOfSound(value); } ,__class__: lime_audio_ALAudioContext }; var lime_audio_ALCAudioContext = function() { this.ALL_DEVICES_SPECIFIER = 4115; this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; this.ENUMERATE_ALL_EXT = 1; this.EXTENSIONS = 4102; this.DEVICE_SPECIFIER = 4101; this.DEFAULT_DEVICE_SPECIFIER = 4100; this.ALL_ATTRIBUTES = 4099; this.ATTRIBUTES_SIZE = 4098; this.OUT_OF_MEMORY = 40965; this.INVALID_VALUE = 40964; this.INVALID_ENUM = 40963; this.INVALID_CONTEXT = 40962; this.INVALID_DEVICE = 40961; this.NO_ERROR = 0; this.STEREO_SOURCES = 4113; this.MONO_SOURCES = 4112; this.SYNC = 4105; this.REFRESH = 4104; this.FREQUENCY = 4103; this.TRUE = 1; this.FALSE = 0; }; $hxClasses["lime.audio.ALCAudioContext"] = lime_audio_ALCAudioContext; lime_audio_ALCAudioContext.__name__ = ["lime","audio","ALCAudioContext"]; lime_audio_ALCAudioContext.prototype = { FALSE: null ,TRUE: null ,FREQUENCY: null ,REFRESH: null ,SYNC: null ,MONO_SOURCES: null ,STEREO_SOURCES: null ,NO_ERROR: null ,INVALID_DEVICE: null ,INVALID_CONTEXT: null ,INVALID_ENUM: null ,INVALID_VALUE: null ,OUT_OF_MEMORY: null ,ATTRIBUTES_SIZE: null ,ALL_ATTRIBUTES: null ,DEFAULT_DEVICE_SPECIFIER: null ,DEVICE_SPECIFIER: null ,EXTENSIONS: null ,ENUMERATE_ALL_EXT: null ,DEFAULT_ALL_DEVICES_SPECIFIER: null ,ALL_DEVICES_SPECIFIER: null ,closeDevice: function(device) { return lime_audio_openal_ALC.closeDevice(device); } ,createContext: function(device,attrlist) { return lime_audio_openal_ALC.createContext(device,attrlist); } ,destroyContext: function(context) { lime_audio_openal_ALC.destroyContext(context); } ,getContextsDevice: function(context) { return lime_audio_openal_ALC.getContextsDevice(context); } ,getCurrentContext: function() { return lime_audio_openal_ALC.getCurrentContext(); } ,getError: function(device) { return lime_audio_openal_ALC.getError(device); } ,getErrorString: function(device) { return lime_audio_openal_ALC.getErrorString(device); } ,getIntegerv: function(device,param,count) { if(count == null) count = 1; return lime_audio_openal_ALC.getIntegerv(device,param,count); } ,getString: function(device,param) { return lime_audio_openal_ALC.getString(device,param); } ,makeContextCurrent: function(context) { return lime_audio_openal_ALC.makeContextCurrent(context); } ,openDevice: function(deviceName) { return lime_audio_openal_ALC.openDevice(deviceName); } ,processContext: function(context) { lime_audio_openal_ALC.processContext(context); } ,suspendContext: function(context) { lime_audio_openal_ALC.suspendContext(context); } ,__class__: lime_audio_ALCAudioContext }; var lime_audio_AudioBuffer = function() { this.id = 0; }; $hxClasses["lime.audio.AudioBuffer"] = lime_audio_AudioBuffer; lime_audio_AudioBuffer.__name__ = ["lime","audio","AudioBuffer"]; lime_audio_AudioBuffer.fromBytes = function(bytes) { return null; }; lime_audio_AudioBuffer.fromFile = function(path) { return null; }; lime_audio_AudioBuffer.fromURL = function(url,handler) { if(url != null && url.indexOf("http://") == -1 && url.indexOf("https://") == -1) handler(lime_audio_AudioBuffer.fromFile(url)); else { } }; lime_audio_AudioBuffer.prototype = { bitsPerSample: null ,channels: null ,data: null ,id: null ,sampleRate: null ,src: null ,dispose: function() { } ,__class__: lime_audio_AudioBuffer }; var lime_audio_AudioContext = $hxClasses["lime.audio.AudioContext"] = { __ename__ : ["lime","audio","AudioContext"], __constructs__ : ["OPENAL","HTML5","WEB","FLASH","CUSTOM"] }; lime_audio_AudioContext.OPENAL = function(alc,al) { var $x = ["OPENAL",0,alc,al]; $x.__enum__ = lime_audio_AudioContext; $x.toString = $estr; return $x; }; lime_audio_AudioContext.HTML5 = function(context) { var $x = ["HTML5",1,context]; $x.__enum__ = lime_audio_AudioContext; $x.toString = $estr; return $x; }; lime_audio_AudioContext.WEB = function(context) { var $x = ["WEB",2,context]; $x.__enum__ = lime_audio_AudioContext; $x.toString = $estr; return $x; }; lime_audio_AudioContext.FLASH = function(context) { var $x = ["FLASH",3,context]; $x.__enum__ = lime_audio_AudioContext; $x.toString = $estr; return $x; }; lime_audio_AudioContext.CUSTOM = function(data) { var $x = ["CUSTOM",4,data]; $x.__enum__ = lime_audio_AudioContext; $x.toString = $estr; return $x; }; var lime_audio_AudioManager = function() { }; $hxClasses["lime.audio.AudioManager"] = lime_audio_AudioManager; lime_audio_AudioManager.__name__ = ["lime","audio","AudioManager"]; lime_audio_AudioManager.context = null; lime_audio_AudioManager.init = function(context) { if(lime_audio_AudioManager.context == null) { if(context == null) try { window.AudioContext = window.AudioContext || window.webkitAudioContext;; lime_audio_AudioManager.context = lime_audio_AudioContext.WEB(new AudioContext ()); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; lime_audio_AudioManager.context = lime_audio_AudioContext.HTML5(new lime_audio_HTML5AudioContext()); } else lime_audio_AudioManager.context = context; } }; lime_audio_AudioManager.resume = function() { if(lime_audio_AudioManager.context != null) { var _g = lime_audio_AudioManager.context; switch(_g[1]) { case 0: var al = _g[3]; var alc = _g[2]; alc.processContext(alc.getCurrentContext()); break; default: } } }; lime_audio_AudioManager.shutdown = function() { if(lime_audio_AudioManager.context != null) { var _g = lime_audio_AudioManager.context; switch(_g[1]) { case 0: var al = _g[3]; var alc = _g[2]; var currentContext = alc.getCurrentContext(); if(currentContext != null) { var device = alc.getContextsDevice(currentContext); alc.makeContextCurrent(null); alc.destroyContext(currentContext); alc.closeDevice(device); } break; default: } } }; lime_audio_AudioManager.suspend = function() { if(lime_audio_AudioManager.context != null) { var _g = lime_audio_AudioManager.context; switch(_g[1]) { case 0: var al = _g[3]; var alc = _g[2]; alc.suspendContext(alc.getCurrentContext()); break; default: } } }; var lime_audio_AudioSource = function(buffer,offset,length,loops) { if(loops == null) loops = 0; if(offset == null) offset = 0; this.onComplete = new lime_app_Event_$Void_$Void(); this.buffer = buffer; this.offset = offset; if(length != null && length != 0) this.set_length(length); this.set_loops(loops); this.id = 0; if(buffer != null) this.init(); }; $hxClasses["lime.audio.AudioSource"] = lime_audio_AudioSource; lime_audio_AudioSource.__name__ = ["lime","audio","AudioSource"]; lime_audio_AudioSource.prototype = { onComplete: null ,buffer: null ,offset: null ,id: null ,playing: null ,pauseTime: null ,__length: null ,__loops: null ,dispose: function() { { var _g = lime_audio_AudioManager.context; switch(_g[1]) { case 0: var al = _g[3]; var alc = _g[2]; if(this.id != 0) al.deleteSource(this.id); break; default: } } } ,init: function() { { var _g = lime_audio_AudioManager.context; switch(_g[1]) { case 0: var al = _g[3]; var alc = _g[2]; if(this.buffer.id == 0) { this.buffer.id = al.genBuffer(); var format = 0; if(this.buffer.channels == 1) { if(this.buffer.bitsPerSample == 8) format = al.FORMAT_MONO8; else if(this.buffer.bitsPerSample == 16) format = al.FORMAT_MONO16; } else if(this.buffer.channels == 2) { if(this.buffer.bitsPerSample == 8) format = al.FORMAT_STEREO8; else if(this.buffer.bitsPerSample == 16) format = al.FORMAT_STEREO16; } al.bufferData(this.buffer.id,format,this.buffer.data,this.buffer.data.length,this.buffer.sampleRate); } this.id = al.genSource(); al.sourcei(this.id,al.BUFFER,this.buffer.id); break; default: } } } ,play: function() { } ,pause: function() { } ,stop: function() { } ,timer_onRun: function() { } ,get_currentTime: function() { return 0; } ,set_currentTime: function(value) { return this.pauseTime = value; } ,get_gain: function() { return 1; } ,set_gain: function(value) { return 1; } ,get_length: function() { if(this.__length != null) return this.__length; return 0; } ,set_length: function(value) { return this.__length = value; } ,get_loops: function() { return this.__loops; } ,set_loops: function(loops) { return this.__loops = loops; } ,__class__: lime_audio_AudioSource ,__properties__: {set_loops:"set_loops",get_loops:"get_loops",set_length:"set_length",get_length:"get_length",set_gain:"set_gain",get_gain:"get_gain",set_currentTime:"set_currentTime",get_currentTime:"get_currentTime"} }; var lime_audio_FlashAudioContext = function() { }; $hxClasses["lime.audio.FlashAudioContext"] = lime_audio_FlashAudioContext; lime_audio_FlashAudioContext.__name__ = ["lime","audio","FlashAudioContext"]; lime_audio_FlashAudioContext.prototype = { createBuffer: function(stream,context) { return null; } ,getBytesLoaded: function(buffer) { return 0; } ,getBytesTotal: function(buffer) { return 0; } ,getID3: function(buffer) { return null; } ,getIsBuffering: function(buffer) { return false; } ,getIsURLInaccessible: function(buffer) { return false; } ,getLength: function(buffer) { return 0; } ,getURL: function(buffer) { return null; } ,close: function(buffer) { } ,extract: function(buffer,target,length,startPosition) { if(startPosition == null) startPosition = -1; return 0; } ,load: function(buffer,stream,context) { } ,loadCompressedDataFromByteArray: function(buffer,bytes,bytesLength) { } ,loadPCMFromByteArray: function(buffer,bytes,samples,format,stereo,sampleRate) { if(sampleRate == null) sampleRate = 44100; if(stereo == null) stereo = true; } ,play: function(buffer,startTime,loops,sndTransform) { if(loops == null) loops = 0; if(startTime == null) startTime = 0; return null; } ,__class__: lime_audio_FlashAudioContext }; var lime_audio_HTML5AudioContext = function() { this.NETWORK_NO_SOURCE = 3; this.NETWORK_LOADING = 2; this.NETWORK_IDLE = 1; this.NETWORK_EMPTY = 0; this.HAVE_NOTHING = 0; this.HAVE_METADATA = 1; this.HAVE_FUTURE_DATA = 3; this.HAVE_ENOUGH_DATA = 4; this.HAVE_CURRENT_DATA = 2; }; $hxClasses["lime.audio.HTML5AudioContext"] = lime_audio_HTML5AudioContext; lime_audio_HTML5AudioContext.__name__ = ["lime","audio","HTML5AudioContext"]; lime_audio_HTML5AudioContext.prototype = { HAVE_CURRENT_DATA: null ,HAVE_ENOUGH_DATA: null ,HAVE_FUTURE_DATA: null ,HAVE_METADATA: null ,HAVE_NOTHING: null ,NETWORK_EMPTY: null ,NETWORK_IDLE: null ,NETWORK_LOADING: null ,NETWORK_NO_SOURCE: null ,canPlayType: function(buffer,type) { if(buffer.src != null) return buffer.src.canPlayType(type); return null; } ,createBuffer: function(urlString) { var buffer = new lime_audio_AudioBuffer(); buffer.src = new Audio(); buffer.src.src = urlString; return buffer; } ,getAutoplay: function(buffer) { if(buffer.src != null) return buffer.src.autoplay; return false; } ,getBuffered: function(buffer) { if(buffer.src != null) return buffer.src.buffered; return null; } ,getCurrentSrc: function(buffer) { if(buffer.src != null) return buffer.src.currentSrc; return null; } ,getCurrentTime: function(buffer) { if(buffer.src != null) return buffer.src.currentTime; return 0; } ,getDefaultPlaybackRate: function(buffer) { if(buffer.src != null) return buffer.src.defaultPlaybackRate; return 1; } ,getDuration: function(buffer) { if(buffer.src != null) return buffer.src.duration; return 0; } ,getEnded: function(buffer) { if(buffer.src != null) return buffer.src.ended; return false; } ,getError: function(buffer) { if(buffer.src != null) return buffer.src.error; return null; } ,getLoop: function(buffer) { if(buffer.src != null) return buffer.src.loop; return false; } ,getMuted: function(buffer) { if(buffer.src != null) return buffer.src.muted; return false; } ,getNetworkState: function(buffer) { if(buffer.src != null) return buffer.src.networkState; return 0; } ,getPaused: function(buffer) { if(buffer.src != null) return buffer.src.paused; return false; } ,getPlaybackRate: function(buffer) { if(buffer.src != null) return buffer.src.playbackRate; return 1; } ,getPlayed: function(buffer) { if(buffer.src != null) return buffer.src.played; return null; } ,getPreload: function(buffer) { if(buffer.src != null) return buffer.src.preload; return null; } ,getReadyState: function(buffer) { if(buffer.src != null) return buffer.src.readyState; return 0; } ,getSeekable: function(buffer) { if(buffer.src != null) return buffer.src.seekable; return null; } ,getSeeking: function(buffer) { if(buffer.src != null) return buffer.src.seeking; return false; } ,getSrc: function(buffer) { if(buffer.src != null) return buffer.src.src; return null; } ,getStartTime: function(buffer) { if(buffer.src != null) return buffer.src.playbackRate; return 0; } ,getVolume: function(buffer) { if(buffer.src != null) return buffer.src.volume; return 1; } ,load: function(buffer) { if(buffer.src != null) return buffer.src.load(); } ,pause: function(buffer) { if(buffer.src != null) return buffer.src.pause(); } ,play: function(buffer) { if(buffer.src != null) return buffer.src.play(); } ,setAutoplay: function(buffer,value) { if(buffer.src != null) buffer.src.autoplay = value; } ,setCurrentTime: function(buffer,value) { if(buffer.src != null) buffer.src.currentTime = value; } ,setDefaultPlaybackRate: function(buffer,value) { if(buffer.src != null) buffer.src.defaultPlaybackRate = value; } ,setLoop: function(buffer,value) { if(buffer.src != null) buffer.src.loop = value; } ,setMuted: function(buffer,value) { if(buffer.src != null) buffer.src.muted = value; } ,setPlaybackRate: function(buffer,value) { if(buffer.src != null) buffer.src.playbackRate = value; } ,setPreload: function(buffer,value) { if(buffer.src != null) buffer.src.preload = value; } ,setSrc: function(buffer,value) { if(buffer.src != null) buffer.src.src = value; } ,setVolume: function(buffer,value) { if(buffer.src != null) buffer.src.volume = value; } ,__class__: lime_audio_HTML5AudioContext }; var lime_audio_openal_AL = function() { }; $hxClasses["lime.audio.openal.AL"] = lime_audio_openal_AL; lime_audio_openal_AL.__name__ = ["lime","audio","openal","AL"]; lime_audio_openal_AL.bufferData = function(buffer,format,data,size,freq) { }; lime_audio_openal_AL.buffer3f = function(buffer,param,value1,value2,value3) { }; lime_audio_openal_AL.buffer3i = function(buffer,param,value1,value2,value3) { }; lime_audio_openal_AL.bufferf = function(buffer,param,value) { }; lime_audio_openal_AL.bufferfv = function(buffer,param,values) { }; lime_audio_openal_AL.bufferi = function(buffer,param,value) { }; lime_audio_openal_AL.bufferiv = function(buffer,param,values) { }; lime_audio_openal_AL.deleteBuffer = function(buffer) { }; lime_audio_openal_AL.deleteBuffers = function(buffers) { }; lime_audio_openal_AL.deleteSource = function(source) { }; lime_audio_openal_AL.deleteSources = function(sources) { }; lime_audio_openal_AL.disable = function(capability) { }; lime_audio_openal_AL.distanceModel = function(distanceModel) { }; lime_audio_openal_AL.dopplerFactor = function(value) { }; lime_audio_openal_AL.dopplerVelocity = function(value) { }; lime_audio_openal_AL.enable = function(capability) { }; lime_audio_openal_AL.genSource = function() { return 0; }; lime_audio_openal_AL.genSources = function(n) { return null; }; lime_audio_openal_AL.genBuffer = function() { return 0; }; lime_audio_openal_AL.genBuffers = function(n) { return null; }; lime_audio_openal_AL.getBoolean = function(param) { return false; }; lime_audio_openal_AL.getBooleanv = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getBuffer3f = function(buffer,param) { return null; }; lime_audio_openal_AL.getBuffer3i = function(buffer,param) { return null; }; lime_audio_openal_AL.getBufferf = function(buffer,param) { return 0; }; lime_audio_openal_AL.getBufferfv = function(buffer,param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getBufferi = function(buffer,param) { return 0; }; lime_audio_openal_AL.getBufferiv = function(buffer,param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getDouble = function(param) { return 0; }; lime_audio_openal_AL.getDoublev = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getEnumValue = function(ename) { return 0; }; lime_audio_openal_AL.getError = function() { return 0; }; lime_audio_openal_AL.getErrorString = function() { var _g = lime_audio_openal_AL.getError(); switch(_g) { case 40961: return "INVALID_NAME: Invalid parameter name"; case 40962: return "INVALID_ENUM: Invalid enum value"; case 40963: return "INVALID_VALUE: Invalid parameter value"; case 40964: return "INVALID_OPERATION: Illegal operation or call"; case 40965: return "OUT_OF_MEMORY: OpenAL has run out of memory"; default: return ""; } }; lime_audio_openal_AL.getFloat = function(param) { return 0; }; lime_audio_openal_AL.getFloatv = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getInteger = function(param) { return 0; }; lime_audio_openal_AL.getIntegerv = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getListener3f = function(param) { return null; }; lime_audio_openal_AL.getListener3i = function(param) { return null; }; lime_audio_openal_AL.getListenerf = function(param) { return 0; }; lime_audio_openal_AL.getListenerfv = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getListeneri = function(param) { return 0; }; lime_audio_openal_AL.getListeneriv = function(param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getProcAddress = function(fname) { return null; }; lime_audio_openal_AL.getSource3f = function(source,param) { return null; }; lime_audio_openal_AL.getSourcef = function(source,param) { return 0; }; lime_audio_openal_AL.getSource3i = function(source,param) { return null; }; lime_audio_openal_AL.getSourcefv = function(source,param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getSourcei = function(source,param) { return 0; }; lime_audio_openal_AL.getSourceiv = function(source,param,count) { if(count == null) count = 1; return null; }; lime_audio_openal_AL.getString = function(param) { return null; }; lime_audio_openal_AL.isBuffer = function(buffer) { return false; }; lime_audio_openal_AL.isEnabled = function(capability) { return false; }; lime_audio_openal_AL.isExtensionPresent = function(extname) { return false; }; lime_audio_openal_AL.isSource = function(source) { return false; }; lime_audio_openal_AL.listener3f = function(param,value1,value2,value3) { }; lime_audio_openal_AL.listener3i = function(param,value1,value2,value3) { }; lime_audio_openal_AL.listenerf = function(param,value) { }; lime_audio_openal_AL.listenerfv = function(param,values) { }; lime_audio_openal_AL.listeneri = function(param,value) { }; lime_audio_openal_AL.listeneriv = function(param,values) { }; lime_audio_openal_AL.source3f = function(source,param,value1,value2,value3) { }; lime_audio_openal_AL.source3i = function(source,param,value1,value2,value3) { }; lime_audio_openal_AL.sourcef = function(source,param,value) { }; lime_audio_openal_AL.sourcefv = function(source,param,values) { }; lime_audio_openal_AL.sourcei = function(source,param,value) { }; lime_audio_openal_AL.sourceiv = function(source,param,values) { }; lime_audio_openal_AL.sourcePlay = function(source) { }; lime_audio_openal_AL.sourcePlayv = function(sources) { }; lime_audio_openal_AL.sourceStop = function(source) { }; lime_audio_openal_AL.sourceStopv = function(sources) { }; lime_audio_openal_AL.sourceRewind = function(source) { }; lime_audio_openal_AL.sourceRewindv = function(sources) { }; lime_audio_openal_AL.sourcePause = function(source) { }; lime_audio_openal_AL.sourcePausev = function(sources) { }; lime_audio_openal_AL.sourceQueueBuffer = function(source,buffer) { }; lime_audio_openal_AL.sourceQueueBuffers = function(source,nb,buffers) { }; lime_audio_openal_AL.sourceUnqueueBuffer = function(source) { return 0; }; lime_audio_openal_AL.sourceUnqueueBuffers = function(source,nb) { return null; }; lime_audio_openal_AL.speedOfSound = function(value) { }; var lime_audio_openal_ALC = function() { }; $hxClasses["lime.audio.openal.ALC"] = lime_audio_openal_ALC; lime_audio_openal_ALC.__name__ = ["lime","audio","openal","ALC"]; lime_audio_openal_ALC.closeDevice = function(device) { return false; }; lime_audio_openal_ALC.createContext = function(device,attrlist) { return null; }; lime_audio_openal_ALC.destroyContext = function(context) { }; lime_audio_openal_ALC.getContextsDevice = function(context) { return null; }; lime_audio_openal_ALC.getCurrentContext = function() { return null; }; lime_audio_openal_ALC.getError = function(device) { return 0; }; lime_audio_openal_ALC.getErrorString = function(device) { var _g = lime_audio_openal_ALC.getError(device); switch(_g) { case 40961: return "INVALID_DEVICE: Invalid device (or no device?)"; case 40962: return "INVALID_CONTEXT: Invalid context (or no context?)"; case 40963: return "INVALID_ENUM: Invalid enum value"; case 40964: return "INVALID_VALUE: Invalid param value"; case 40965: return "OUT_OF_MEMORY: OpenAL has run out of memory"; default: return ""; } }; lime_audio_openal_ALC.getIntegerv = function(device,param,size) { return null; }; lime_audio_openal_ALC.getString = function(device,param) { return null; }; lime_audio_openal_ALC.makeContextCurrent = function(context) { return false; }; lime_audio_openal_ALC.openDevice = function(deviceName) { return null; }; lime_audio_openal_ALC.processContext = function(context) { }; lime_audio_openal_ALC.suspendContext = function(context) { }; var lime_audio_openal__$ALContext_ALContext_$Impl_$ = {}; $hxClasses["lime.audio.openal._ALContext.ALContext_Impl_"] = lime_audio_openal__$ALContext_ALContext_$Impl_$; lime_audio_openal__$ALContext_ALContext_$Impl_$.__name__ = ["lime","audio","openal","_ALContext","ALContext_Impl_"]; lime_audio_openal__$ALContext_ALContext_$Impl_$._new = function(handle) { return handle; }; var lime_audio_openal__$ALDevice_ALDevice_$Impl_$ = {}; $hxClasses["lime.audio.openal._ALDevice.ALDevice_Impl_"] = lime_audio_openal__$ALDevice_ALDevice_$Impl_$; lime_audio_openal__$ALDevice_ALDevice_$Impl_$.__name__ = ["lime","audio","openal","_ALDevice","ALDevice_Impl_"]; lime_audio_openal__$ALDevice_ALDevice_$Impl_$._new = function(handle) { return handle; }; var lime_graphics_ConsoleRenderContext = function() { }; $hxClasses["lime.graphics.ConsoleRenderContext"] = lime_graphics_ConsoleRenderContext; lime_graphics_ConsoleRenderContext.__name__ = ["lime","graphics","ConsoleRenderContext"]; lime_graphics_ConsoleRenderContext.prototype = { createIndexBuffer: function(indices,count) { return new lime_graphics_console_IndexBuffer(); } ,createVertexBuffer: function(decl,count) { return new lime_graphics_console_VertexBuffer(); } ,lookupShader: function(name) { return new lime_graphics_console_Shader(); } ,clear: function(r,g,b,a,depth,stencil) { if(stencil == null) stencil = 0; if(depth == null) depth = 1.0; } ,bindShader: function(shader) { } ,setViewport: function(x,y,width,height,nearPlane,farPlane) { if(farPlane == null) farPlane = 1.0; if(nearPlane == null) nearPlane = 0.0; } ,setVertexShaderConstantF: function(startRegister,vec4,vec4count) { } ,setVertexSource: function(vb) { } ,setIndexSource: function(ib) { } ,draw: function(primitive,startVertex,primitiveCount) { } ,drawIndexed: function(primitive,vertexCount,startIndex,primitiveCount) { } ,get_width: function() { return 0; } ,get_height: function() { return 0; } ,__class__: lime_graphics_ConsoleRenderContext ,__properties__: {get_height:"get_height",get_width:"get_width"} }; var lime_graphics_FlashRenderContext = function() { }; $hxClasses["lime.graphics.FlashRenderContext"] = lime_graphics_FlashRenderContext; lime_graphics_FlashRenderContext.__name__ = ["lime","graphics","FlashRenderContext"]; lime_graphics_FlashRenderContext.prototype = { accessibilityImplementation: null ,accessibilityProperties: null ,alpha: null ,blendMode: null ,blendShader: null ,buttonMode: null ,cacheAsBitmap: null ,contextMenu: null ,doubleClickEnabled: null ,dropTarget: null ,filters: null ,focusRect: null ,graphics: null ,height: null ,hitArea: null ,loaderInfo: null ,mask: null ,mouseChildren: null ,mouseEnabled: null ,mouseX: null ,mouseY: null ,name: null ,needsSoftKeyboard: null ,numChildren: null ,opaqueBackground: null ,parent: null ,root: null ,rotation: null ,rotationX: null ,rotationY: null ,rotationZ: null ,scale9Grid: null ,scaleX: null ,scaleY: null ,scaleZ: null ,scrollRect: null ,softKeyboardInputAreaOfInterest: null ,soundTransform: null ,stage: null ,tabChildren: null ,tabEnabled: null ,tabIndex: null ,textSnapshot: null ,transform: null ,useHandCursor: null ,visible: null ,width: null ,x: null ,y: null ,z: null ,addChild: function(child) { return null; } ,addChildAt: function(child,index) { return null; } ,addEventListener: function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) useWeakReference = false; if(priority == null) priority = 0; if(useCapture == null) useCapture = false; } ,areInaccessibleObjectsUnderPoint: function(point) { return false; } ,contains: function(child) { return false; } ,dispatchEvent: function(event) { return false; } ,getBounds: function(targetCoordinateSpace) { return null; } ,getChildAt: function(index) { return null; } ,getChildByName: function(name) { return null; } ,getChildIndex: function(child) { return 0; } ,getObjectsUnderPoint: function(point) { return null; } ,getRect: function(targetCoordinateSpace) { return null; } ,globalToLocal: function(point) { return null; } ,globalToLocal3D: function(point) { return null; } ,hasEventListener: function(type) { return false; } ,hitTestObject: function(obj) { return false; } ,hitTestPoint: function(x,y,shapeFlag) { if(shapeFlag == null) shapeFlag = false; return false; } ,local3DToGlobal: function(point3d) { return null; } ,localToGlobal: function(point) { return null; } ,removeChild: function(child) { return null; } ,removeChildAt: function(index) { return null; } ,removeChildren: function(beginIndex,endIndex) { if(endIndex == null) endIndex = 2147483647; if(beginIndex == null) beginIndex = 0; } ,removeEventListener: function(type,listener,useCapture) { if(useCapture == null) useCapture = false; } ,requestSoftKeyboard: function() { return false; } ,setChildIndex: function(child,index) { } ,startDrag: function(lockCenter,bounds) { if(lockCenter == null) lockCenter = false; } ,startTouchDrag: function(touchPointID,lockCenter,bounds) { if(lockCenter == null) lockCenter = false; } ,stopAllMovieClips: function() { } ,stopDrag: function() { } ,stopTouchDrag: function(touchPointID) { } ,swapChildren: function(child1,child2) { } ,swapChildrenAt: function(index1,index2) { } ,toString: function() { return null; } ,willTrigger: function(type) { return false; } ,__class__: lime_graphics_FlashRenderContext }; var lime_graphics_Image = function(buffer,offsetX,offsetY,width,height,color,type) { if(height == null) height = -1; if(width == null) width = -1; if(offsetY == null) offsetY = 0; if(offsetX == null) offsetX = 0; this.offsetX = offsetX; this.offsetY = offsetY; this.width = width; this.height = height; if(type == null) { if(lime_app_Application.current != null && lime_app_Application.current.renderers[0] != null) { var _g = lime_app_Application.current.renderers[0].context; switch(_g[1]) { case 2:case 1: this.type = lime_graphics_ImageType.CANVAS; break; case 3: this.type = lime_graphics_ImageType.FLASH; break; default: this.type = lime_graphics_ImageType.DATA; } } else this.type = lime_graphics_ImageType.DATA; } else this.type = type; if(buffer == null) { if(width > 0 && height > 0) { var _g1 = this.type; switch(_g1[1]) { case 0: this.buffer = new lime_graphics_ImageBuffer(null,width,height); lime_graphics_utils_ImageCanvasUtil.createCanvas(this,width,height); if(color != null) this.fillRect(new lime_math_Rectangle(0,0,width,height),color); break; case 1: this.buffer = new lime_graphics_ImageBuffer((function($this) { var $r; var elements = width * height * 4; var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; $r = this1; return $r; }(this)),width,height); if(color != null) this.fillRect(new lime_math_Rectangle(0,0,width,height),color); break; case 2: break; default: } } } else this.__fromImageBuffer(buffer); }; $hxClasses["lime.graphics.Image"] = lime_graphics_Image; lime_graphics_Image.__name__ = ["lime","graphics","Image"]; lime_graphics_Image.__base64Encoder = null; lime_graphics_Image.fromBase64 = function(base64,type,onload) { if(base64 == null) return null; var image = new lime_graphics_Image(); image.__fromBase64(base64,type,onload); return image; }; lime_graphics_Image.fromBitmapData = function(bitmapData) { if(bitmapData == null) return null; return bitmapData.image; }; lime_graphics_Image.fromBytes = function(bytes,onload) { if(bytes == null) return null; var image = new lime_graphics_Image(); image.__fromBytes(bytes,onload); return image; }; lime_graphics_Image.fromCanvas = function(canvas) { if(canvas == null) return null; var buffer = new lime_graphics_ImageBuffer(null,canvas.width,canvas.height); buffer.set_src(canvas); return new lime_graphics_Image(buffer); }; lime_graphics_Image.fromFile = function(path,onload,onerror) { var image = new lime_graphics_Image(); image.__fromFile(path,onload,onerror); return image; }; lime_graphics_Image.fromImageElement = function(image) { if(image == null) return null; var buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); buffer.set_src(image); return new lime_graphics_Image(buffer); }; lime_graphics_Image.__base64Encode = function(bytes) { var extension; var _g = bytes.length % 3; switch(_g) { case 1: extension = "=="; break; case 2: extension = "="; break; default: extension = ""; } if(lime_graphics_Image.__base64Encoder == null) lime_graphics_Image.__base64Encoder = new haxe_crypto_BaseCode(haxe_io_Bytes.ofString(lime_graphics_Image.__base64Chars)); return lime_graphics_Image.__base64Encoder.encodeBytes(bytes).toString() + extension; }; lime_graphics_Image.__isJPG = function(bytes) { return bytes.b[0] == 255 && bytes.b[1] == 216; }; lime_graphics_Image.__isPNG = function(bytes) { return bytes.b[0] == 137 && bytes.b[1] == 80 && bytes.b[2] == 78 && bytes.b[3] == 71 && bytes.b[4] == 13 && bytes.b[5] == 10 && bytes.b[6] == 26 && bytes.b[7] == 10; }; lime_graphics_Image.__isGIF = function(bytes) { if(bytes.b[0] == 71 && bytes.b[1] == 73 && bytes.b[2] == 70 && bytes.b[3] == 56) { var b = bytes.b[4]; return (b == 55 || b == 57) && bytes.b[5] == 97; } return false; }; lime_graphics_Image.prototype = { buffer: null ,dirty: null ,height: null ,offsetX: null ,offsetY: null ,rect: null ,type: null ,width: null ,x: null ,y: null ,clone: function() { if(this.buffer != null) { if(this.type == lime_graphics_ImageType.CANVAS && this.buffer.__srcImage == null) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this); lime_graphics_utils_ImageCanvasUtil.sync(this,true); } var image = new lime_graphics_Image(this.buffer.clone(),this.offsetX,this.offsetY,this.width,this.height,null,this.type); image.dirty = this.dirty; return image; } else return new lime_graphics_Image(null,this.offsetX,this.offsetY,this.width,this.height,null,this.type); } ,colorTransform: function(rect,colorMatrix) { rect = this.__clipRect(rect); if(this.buffer == null || rect == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.colorTransform(this,rect,colorMatrix); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.colorTransform(this,rect,colorMatrix); break; case 2: rect.offset(this.offsetX,this.offsetY); this.buffer.__srcBitmapData.colorTransform(rect.__toFlashRectangle(),lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__toFlashColorTransform(colorMatrix)); break; default: } } ,copyChannel: function(sourceImage,sourceRect,destPoint,sourceChannel,destChannel) { sourceRect = this.__clipRect(sourceRect); if(this.buffer == null || sourceRect == null) return; if(destChannel == lime_graphics_ImageChannel.ALPHA && !this.get_transparent()) return; if(sourceRect.width <= 0 || sourceRect.height <= 0) return; if(sourceRect.x + sourceRect.width > sourceImage.width) sourceRect.width = sourceImage.width - sourceRect.x; if(sourceRect.y + sourceRect.height > sourceImage.height) sourceRect.height = sourceImage.height - sourceRect.y; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); break; case 2: var srcChannel; switch(sourceChannel[1]) { case 0: srcChannel = 1; break; case 1: srcChannel = 2; break; case 2: srcChannel = 4; break; case 3: srcChannel = 8; break; } var dstChannel; switch(destChannel[1]) { case 0: dstChannel = 1; break; case 1: dstChannel = 2; break; case 2: dstChannel = 4; break; case 3: dstChannel = 8; break; } sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY); destPoint.offset(this.offsetX,this.offsetY); this.buffer.__srcBitmapData.copyChannel(sourceImage.buffer.get_src(),sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),srcChannel,dstChannel); break; default: } } ,copyPixels: function(sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) { if(mergeAlpha == null) mergeAlpha = false; if(this.buffer == null || sourceImage == null) return; if(sourceRect.width <= 0 || sourceRect.height <= 0) return; if(this.width <= 0 || this.height <= 0) return; if(sourceRect.x + sourceRect.width > sourceImage.width) sourceRect.width = sourceImage.width - sourceRect.x; if(sourceRect.y + sourceRect.height > sourceImage.height) sourceRect.height = sourceImage.height - sourceRect.y; if(sourceRect.x < 0) { sourceRect.width += sourceRect.x; sourceRect.x = 0; } if(sourceRect.y < 0) { sourceRect.height += sourceRect.y; sourceRect.y = 0; } if(destPoint.x + sourceRect.width > this.width) sourceRect.width = this.width - destPoint.x; if(destPoint.y + sourceRect.height > this.height) sourceRect.height = this.height - destPoint.y; if(destPoint.x < 0) { sourceRect.width += destPoint.x; sourceRect.x = -destPoint.x; destPoint.x = 0; } if(destPoint.y < 0) { sourceRect.height += destPoint.y; sourceRect.y = -destPoint.y; destPoint.y = 0; } var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this); lime_graphics_utils_ImageCanvasUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageCanvasUtil.convertToData(sourceImage); lime_graphics_utils_ImageDataUtil.copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha); break; case 2: sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY); destPoint.offset(this.offsetX,this.offsetY); if(alphaImage != null && alphaPoint != null) alphaPoint.offset(alphaImage.offsetX,alphaImage.offsetY); this.buffer.__srcBitmapData.copyPixels(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),alphaImage != null?alphaImage.buffer.get_src():null,alphaPoint != null?alphaPoint.__toFlashPoint():null,mergeAlpha); break; default: } } ,encode: function(format,quality) { if(quality == null) quality = 90; if(format == null) format = "png"; switch(format) { case "png": return lime_graphics_format_PNG.encode(this); case "jpg":case "jpeg": return lime_graphics_format_JPEG.encode(this,quality); case "bmp": return lime_graphics_format_BMP.encode(this); default: } return null; } ,fillRect: function(rect,color,format) { rect = this.__clipRect(rect); if(this.buffer == null || rect == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.fillRect(this,rect,color,format); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); if(this.buffer.data.length == 0) return; lime_graphics_utils_ImageDataUtil.fillRect(this,rect,color,format); break; case 2: rect.offset(this.offsetX,this.offsetY); var argb; if(format != null) switch(format) { case 1: argb = color; break; case 2: { var bgra = color; var argb1 = 0; argb1 = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; argb = argb1; } break; default: { var rgba = color; var argb2 = 0; argb2 = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; argb = argb2; } } else { var rgba1 = color; var argb3 = 0; argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >> 24 & 255 & 255) << 16 | (rgba1 >> 16 & 255 & 255) << 8 | rgba1 >> 8 & 255 & 255; argb = argb3; } this.buffer.__srcBitmapData.fillRect(rect.__toFlashRectangle(),argb); break; default: } } ,floodFill: function(x,y,color,format) { if(this.buffer == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.floodFill(this,x,y,color,format); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.floodFill(this,x,y,color,format); break; case 2: var argb; if(format != null) switch(format) { case 1: argb = color; break; case 2: { var bgra = color; var argb1 = 0; argb1 = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; argb = argb1; } break; default: { var rgba = color; var argb2 = 0; argb2 = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; argb = argb2; } } else { var rgba1 = color; var argb3 = 0; argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >> 24 & 255 & 255) << 16 | (rgba1 >> 16 & 255 & 255) << 8 | rgba1 >> 8 & 255 & 255; argb = argb3; } this.buffer.__srcBitmapData.floodFill(x + this.offsetX,y + this.offsetY,argb); break; default: } } ,getColorBoundsRect: function(mask,color,findColor,format) { if(findColor == null) findColor = true; if(this.buffer == null) return null; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.convertToData(this); return lime_graphics_utils_ImageDataUtil.getColorBoundsRect(this,mask,color,findColor,format); case 1: return lime_graphics_utils_ImageDataUtil.getColorBoundsRect(this,mask,color,findColor,format); case 2: var rect = this.buffer.__srcBitmapData.getColorBoundsRect(mask,color,findColor); return new lime_math_Rectangle(rect.x,rect.y,rect.width,rect.height); default: return null; } } ,getPixel: function(x,y,format) { if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return 0; var _g = this.type; switch(_g[1]) { case 0: return lime_graphics_utils_ImageCanvasUtil.getPixel(this,x,y,format); case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); return lime_graphics_utils_ImageDataUtil.getPixel(this,x,y,format); case 2: var color = this.buffer.__srcBitmapData.getPixel(x + this.offsetX,y + this.offsetY); if(format != null) switch(format) { case 1: return color; case 2: var bgra; { var bgra1 = 0; bgra1 = (color & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color >> 16 & 255 & 255) << 8 | color >> 24 & 255 & 255; bgra = bgra1; } return bgra; default: var rgba; { var rgba1 = 0; rgba1 = (color >> 16 & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >> 24 & 255 & 255; rgba = rgba1; } return rgba; } else { var rgba2; { var rgba3 = 0; rgba3 = (color >> 16 & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >> 24 & 255 & 255; rgba2 = rgba3; } return rgba2; } break; default: return 0; } } ,getPixel32: function(x,y,format) { if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return 0; var _g = this.type; switch(_g[1]) { case 0: return lime_graphics_utils_ImageCanvasUtil.getPixel32(this,x,y,format); case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); return lime_graphics_utils_ImageDataUtil.getPixel32(this,x,y,format); case 2: var color = this.buffer.__srcBitmapData.getPixel32(x + this.offsetX,y + this.offsetY); if(format != null) switch(format) { case 1: return color; case 2: var bgra; { var bgra1 = 0; bgra1 = (color & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color >> 16 & 255 & 255) << 8 | color >> 24 & 255 & 255; bgra = bgra1; } return bgra; default: var rgba; { var rgba1 = 0; rgba1 = (color >> 16 & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >> 24 & 255 & 255; rgba = rgba1; } return rgba; } else { var rgba2; { var rgba3 = 0; rgba3 = (color >> 16 & 255 & 255) << 24 | (color >> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >> 24 & 255 & 255; rgba2 = rgba3; } return rgba2; } break; default: return 0; } } ,getPixels: function(rect,format) { if(this.buffer == null) return null; var _g = this.type; switch(_g[1]) { case 0: return lime_graphics_utils_ImageCanvasUtil.getPixels(this,rect,format); case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); return lime_graphics_utils_ImageDataUtil.getPixels(this,rect,format); case 2: return null; default: return null; } } ,merge: function(sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(this.buffer == null || sourceImage == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this); lime_graphics_utils_ImageCanvasUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageCanvasUtil.convertToData(sourceImage); lime_graphics_utils_ImageDataUtil.merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); break; case 2: sourceRect.offset(this.offsetX,this.offsetY); this.buffer.__srcBitmapData.merge(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); break; default: return null; } } ,resize: function(newWidth,newHeight) { var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.resize(this,newWidth,newHeight); break; case 1: lime_graphics_utils_ImageDataUtil.resize(this,newWidth,newHeight); break; case 2: break; default: } this.buffer.width = newWidth; this.buffer.height = newHeight; this.offsetX = 0; this.offsetY = 0; this.width = newWidth; this.height = newHeight; } ,scroll: function(x,y) { if(this.buffer == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.scroll(this,x,y); break; case 1: this.copyPixels(this,this.get_rect(),new lime_math_Vector2(x,y)); break; case 2: this.buffer.__srcBitmapData.scroll(x + this.offsetX,y + this.offsetX); break; default: } } ,setPixel: function(x,y,color,format) { if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.setPixel(this,x,y,color,format); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.setPixel(this,x,y,color,format); break; case 2: var argb; if(format != null) switch(format) { case 1: argb = color; break; case 2: { var bgra = color; var argb1 = 0; argb1 = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; argb = argb1; } break; default: { var rgba = color; var argb2 = 0; argb2 = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; argb = argb2; } } else { var rgba1 = color; var argb3 = 0; argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >> 24 & 255 & 255) << 16 | (rgba1 >> 16 & 255 & 255) << 8 | rgba1 >> 8 & 255 & 255; argb = argb3; } this.buffer.__srcBitmapData.setPixel(x + this.offsetX,y + this.offsetX,argb); break; default: } } ,setPixel32: function(x,y,color,format) { if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.setPixel32(this,x,y,color,format); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.setPixel32(this,x,y,color,format); break; case 2: var argb; if(format != null) switch(format) { case 1: argb = color; break; case 2: { var bgra = color; var argb1 = 0; argb1 = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; argb = argb1; } break; default: { var rgba = color; var argb2 = 0; argb2 = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; argb = argb2; } } else { var rgba1 = color; var argb3 = 0; argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >> 24 & 255 & 255) << 16 | (rgba1 >> 16 & 255 & 255) << 8 | rgba1 >> 8 & 255 & 255; argb = argb3; } this.buffer.__srcBitmapData.setPixel32(x + this.offsetX,y + this.offsetY,argb); break; default: } } ,setPixels: function(rect,bytes,format) { rect = this.__clipRect(rect); if(this.buffer == null || rect == null) return; var _g = this.type; switch(_g[1]) { case 0: lime_graphics_utils_ImageCanvasUtil.setPixels(this,rect,bytes,format); break; case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.setPixels(this,rect,bytes,format); break; case 2: break; default: } } ,threshold: function(sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format) { if(copySource == null) copySource = false; if(mask == null) mask = -1; if(color == null) color = 0; if(this.buffer == null || sourceImage == null || sourceRect == null) return 0; var _g = this.type; switch(_g[1]) { case 0:case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); return lime_graphics_utils_ImageDataUtil.threshold(this,sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format); case 2: var _color; if(format != null) switch(format) { case 1: _color = color; break; case 2: { var bgra = color; var argb = 0; argb = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; _color = argb; } break; default: { var rgba = color; var argb1 = 0; argb1 = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; _color = argb1; } } else { var rgba1 = color; var argb2 = 0; argb2 = (rgba1 & 255 & 255) << 24 | (rgba1 >> 24 & 255 & 255) << 16 | (rgba1 >> 16 & 255 & 255) << 8 | rgba1 >> 8 & 255 & 255; _color = argb2; } var _mask; if(format != null) switch(format) { case 1: _mask = mask; break; case 2: { var bgra1 = mask; var argb3 = 0; argb3 = (bgra1 & 255 & 255) << 24 | (bgra1 >> 8 & 255 & 255) << 16 | (bgra1 >> 16 & 255 & 255) << 8 | bgra1 >> 24 & 255 & 255; _mask = argb3; } break; default: { var rgba2 = mask; var argb4 = 0; argb4 = (rgba2 & 255 & 255) << 24 | (rgba2 >> 24 & 255 & 255) << 16 | (rgba2 >> 16 & 255 & 255) << 8 | rgba2 >> 8 & 255 & 255; _mask = argb4; } } else { var rgba3 = mask; var argb5 = 0; argb5 = (rgba3 & 255 & 255) << 24 | (rgba3 >> 24 & 255 & 255) << 16 | (rgba3 >> 16 & 255 & 255) << 8 | rgba3 >> 8 & 255 & 255; _mask = argb5; } sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY); destPoint.offset(this.offsetX,this.offsetY); return this.buffer.__srcBitmapData.threshold(sourceImage.buffer.get_src(),sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),operation,threshold,_color,_mask,copySource); default: } return 0; } ,__clipRect: function(r) { if(r == null) return null; if(r.x < 0) { r.width -= -r.x; r.x = 0; if(r.x + r.width <= 0) return null; } if(r.y < 0) { r.height -= -r.y; r.y = 0; if(r.y + r.height <= 0) return null; } if(r.x + r.width >= this.width) { r.width -= r.x + r.width - this.width; if(r.width <= 0) return null; } if(r.y + r.height >= this.height) { r.height -= r.y + r.height - this.height; if(r.height <= 0) return null; } return r; } ,__fromBase64: function(base64,type,onload) { var _g = this; var image = new Image(); var image_onLoaded = function(event) { _g.buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); _g.buffer.__srcImage = image; _g.offsetX = 0; _g.offsetY = 0; _g.width = _g.buffer.width; _g.height = _g.buffer.height; if(onload != null) onload(_g); }; image.addEventListener("load",image_onLoaded,false); image.src = "data:" + type + ";base64," + base64; } ,__fromBytes: function(bytes,onload) { var type = ""; if(lime_graphics_Image.__isPNG(bytes)) type = "image/png"; else if(lime_graphics_Image.__isJPG(bytes)) type = "image/jpeg"; else if(lime_graphics_Image.__isGIF(bytes)) type = "image/gif"; else throw new js__$Boot_HaxeError("Image tried to read PNG/JPG Bytes, but found an invalid header."); this.__fromBase64(lime_graphics_Image.__base64Encode(bytes),type,onload); } ,__fromFile: function(path,onload,onerror) { var _g = this; var image = new Image(); var a; var _this = window.document; a = _this.createElement("a"); a.href = path; if(a.hostname != lime_graphics_Image.__origin_hostname || a.port != lime_graphics_Image.__origin_port || a.protocol != lime_graphics_Image.__origin_protocol) { } image.onload = function(_) { _g.buffer = new lime_graphics_ImageBuffer(null,image.width,image.height); _g.buffer.__srcImage = image; _g.width = image.width; _g.height = image.height; if(onload != null) onload(_g); }; image.onerror = function(_1) { if(onerror != null) onerror(); }; image.src = path; if(image.complete) { } } ,__fromImageBuffer: function(buffer) { this.buffer = buffer; if(buffer != null) { if(this.width == -1) this.width = buffer.width; if(this.height == -1) this.height = buffer.height; } } ,get_data: function() { if(this.buffer.data == null && this.buffer.width > 0 && this.buffer.height > 0) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this); lime_graphics_utils_ImageCanvasUtil.sync(this,false); lime_graphics_utils_ImageCanvasUtil.createImageData(this); } return this.buffer.data; } ,set_data: function(value) { return this.buffer.data = value; } ,get_format: function() { return this.buffer.format; } ,set_format: function(value) { if(this.buffer.format != value) { var _g = this.type; switch(_g[1]) { case 1: lime_graphics_utils_ImageDataUtil.setFormat(this,value); break; default: } } return this.buffer.format = value; } ,get_powerOfTwo: function() { return this.buffer.width != 0 && (this.buffer.width & ~this.buffer.width + 1) == this.buffer.width && (this.buffer.height != 0 && (this.buffer.height & ~this.buffer.height + 1) == this.buffer.height); } ,set_powerOfTwo: function(value) { if(value != this.get_powerOfTwo()) { var newWidth = 1; var newHeight = 1; while(newWidth < this.buffer.width) newWidth <<= 1; while(newHeight < this.buffer.height) newHeight <<= 1; var _g = this.type; switch(_g[1]) { case 0: break; case 1: lime_graphics_utils_ImageDataUtil.resizeBuffer(this,newWidth,newHeight); break; case 2: break; default: } } return value; } ,get_premultiplied: function() { return this.buffer.premultiplied; } ,set_premultiplied: function(value) { if(value && !this.buffer.premultiplied) { var _g = this.type; switch(_g[1]) { case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.multiplyAlpha(this); break; default: } } else if(!value && this.buffer.premultiplied) { var _g1 = this.type; switch(_g1[1]) { case 1: lime_graphics_utils_ImageCanvasUtil.convertToData(this); lime_graphics_utils_ImageDataUtil.unmultiplyAlpha(this); break; default: } } return value; } ,get_rect: function() { return new lime_math_Rectangle(0,0,this.width,this.height); } ,get_src: function() { if(this.buffer.__srcCanvas == null) lime_graphics_utils_ImageCanvasUtil.convertToCanvas(this); return this.buffer.get_src(); } ,set_src: function(value) { return this.buffer.set_src(value); } ,get_transparent: function() { if(this.buffer == null) return false; return this.buffer.transparent; } ,set_transparent: function(value) { if(this.buffer == null) return false; return this.buffer.transparent = value; } ,__class__: lime_graphics_Image ,__properties__: {set_transparent:"set_transparent",get_transparent:"get_transparent",set_src:"set_src",get_src:"get_src",get_rect:"get_rect",set_premultiplied:"set_premultiplied",get_premultiplied:"get_premultiplied",set_powerOfTwo:"set_powerOfTwo",get_powerOfTwo:"get_powerOfTwo",set_format:"set_format",get_format:"get_format",set_data:"set_data",get_data:"get_data"} }; var lime_graphics_ImageBuffer = function(data,width,height,bitsPerPixel,format) { if(bitsPerPixel == null) bitsPerPixel = 32; if(height == null) height = 0; if(width == null) width = 0; this.data = data; this.width = width; this.height = height; this.bitsPerPixel = bitsPerPixel; if(format == null) this.format = 0; else this.format = format; this.transparent = true; }; $hxClasses["lime.graphics.ImageBuffer"] = lime_graphics_ImageBuffer; lime_graphics_ImageBuffer.__name__ = ["lime","graphics","ImageBuffer"]; lime_graphics_ImageBuffer.prototype = { bitsPerPixel: null ,data: null ,format: null ,height: null ,premultiplied: null ,transparent: null ,width: null ,__srcBitmapData: null ,__srcCanvas: null ,__srcContext: null ,__srcCustom: null ,__srcImage: null ,__srcImageData: null ,clone: function() { var buffer = new lime_graphics_ImageBuffer(this.data,this.width,this.height,this.bitsPerPixel); if(this.data != null) { var elements = this.data.byteLength; var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; buffer.data = this1; var copy; var view = this.data; var this2; if(view != null) this2 = new Uint8Array(view); else this2 = null; copy = this2; buffer.data.set(copy); } else if(this.__srcImageData != null) { buffer.__srcCanvas = window.document.createElement("canvas"); buffer.__srcContext = buffer.__srcCanvas.getContext("2d"); buffer.__srcCanvas.width = this.__srcImageData.width; buffer.__srcCanvas.height = this.__srcImageData.height; buffer.__srcImageData = buffer.__srcContext.createImageData(this.__srcImageData.width,this.__srcImageData.height); var copy1 = new Uint8ClampedArray(this.__srcImageData.data); buffer.__srcImageData.data.set(copy1); } else if(this.__srcCanvas != null) { buffer.__srcCanvas = window.document.createElement("canvas"); buffer.__srcContext = buffer.__srcCanvas.getContext("2d"); buffer.__srcCanvas.width = this.__srcCanvas.width; buffer.__srcCanvas.height = this.__srcCanvas.height; buffer.__srcContext.drawImage(this.__srcCanvas,0,0); } else buffer.__srcImage = this.__srcImage; buffer.bitsPerPixel = this.bitsPerPixel; buffer.format = this.format; buffer.premultiplied = this.premultiplied; buffer.transparent = this.transparent; return buffer; } ,get_src: function() { if(this.__srcImage != null) return this.__srcImage; return this.__srcCanvas; } ,set_src: function(value) { if(js_Boot.__instanceof(value,Image)) this.__srcImage = value; else if(js_Boot.__instanceof(value,HTMLCanvasElement)) { this.__srcCanvas = value; this.__srcContext = this.__srcCanvas.getContext("2d"); } return value; } ,get_stride: function() { return this.width * 4; } ,__class__: lime_graphics_ImageBuffer ,__properties__: {get_stride:"get_stride",set_src:"set_src",get_src:"get_src"} }; var lime_graphics_ImageChannel = $hxClasses["lime.graphics.ImageChannel"] = { __ename__ : ["lime","graphics","ImageChannel"], __constructs__ : ["RED","GREEN","BLUE","ALPHA"] }; lime_graphics_ImageChannel.RED = ["RED",0]; lime_graphics_ImageChannel.RED.toString = $estr; lime_graphics_ImageChannel.RED.__enum__ = lime_graphics_ImageChannel; lime_graphics_ImageChannel.GREEN = ["GREEN",1]; lime_graphics_ImageChannel.GREEN.toString = $estr; lime_graphics_ImageChannel.GREEN.__enum__ = lime_graphics_ImageChannel; lime_graphics_ImageChannel.BLUE = ["BLUE",2]; lime_graphics_ImageChannel.BLUE.toString = $estr; lime_graphics_ImageChannel.BLUE.__enum__ = lime_graphics_ImageChannel; lime_graphics_ImageChannel.ALPHA = ["ALPHA",3]; lime_graphics_ImageChannel.ALPHA.toString = $estr; lime_graphics_ImageChannel.ALPHA.__enum__ = lime_graphics_ImageChannel; var lime_graphics_ImageType = $hxClasses["lime.graphics.ImageType"] = { __ename__ : ["lime","graphics","ImageType"], __constructs__ : ["CANVAS","DATA","FLASH","CUSTOM"] }; lime_graphics_ImageType.CANVAS = ["CANVAS",0]; lime_graphics_ImageType.CANVAS.toString = $estr; lime_graphics_ImageType.CANVAS.__enum__ = lime_graphics_ImageType; lime_graphics_ImageType.DATA = ["DATA",1]; lime_graphics_ImageType.DATA.toString = $estr; lime_graphics_ImageType.DATA.__enum__ = lime_graphics_ImageType; lime_graphics_ImageType.FLASH = ["FLASH",2]; lime_graphics_ImageType.FLASH.toString = $estr; lime_graphics_ImageType.FLASH.__enum__ = lime_graphics_ImageType; lime_graphics_ImageType.CUSTOM = ["CUSTOM",3]; lime_graphics_ImageType.CUSTOM.toString = $estr; lime_graphics_ImageType.CUSTOM.__enum__ = lime_graphics_ImageType; var lime_graphics_RenderContext = $hxClasses["lime.graphics.RenderContext"] = { __ename__ : ["lime","graphics","RenderContext"], __constructs__ : ["OPENGL","CANVAS","DOM","FLASH","CAIRO","CONSOLE","CUSTOM","NONE"] }; lime_graphics_RenderContext.OPENGL = function(gl) { var $x = ["OPENGL",0,gl]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.CANVAS = function(context) { var $x = ["CANVAS",1,context]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.DOM = function(element) { var $x = ["DOM",2,element]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.FLASH = function(stage) { var $x = ["FLASH",3,stage]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.CAIRO = function(cairo) { var $x = ["CAIRO",4,cairo]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.CONSOLE = function(context) { var $x = ["CONSOLE",5,context]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.CUSTOM = function(data) { var $x = ["CUSTOM",6,data]; $x.__enum__ = lime_graphics_RenderContext; $x.toString = $estr; return $x; }; lime_graphics_RenderContext.NONE = ["NONE",7]; lime_graphics_RenderContext.NONE.toString = $estr; lime_graphics_RenderContext.NONE.__enum__ = lime_graphics_RenderContext; var lime_graphics_Renderer = function(window) { this.onRender = new lime_app_Event_$Void_$Void(); this.onContextRestored = new lime_app_Event_$lime_$graphics_$RenderContext_$Void(); this.onContextLost = new lime_app_Event_$Void_$Void(); this.window = window; this.backend = new lime__$backend_html5_HTML5Renderer(this); this.window.renderer = this; }; $hxClasses["lime.graphics.Renderer"] = lime_graphics_Renderer; lime_graphics_Renderer.__name__ = ["lime","graphics","Renderer"]; lime_graphics_Renderer.prototype = { context: null ,onContextLost: null ,onContextRestored: null ,onRender: null ,type: null ,window: null ,backend: null ,create: function() { this.backend.create(); } ,flip: function() { this.backend.flip(); } ,readPixels: function(rect) { return this.backend.readPixels(rect); } ,render: function() { this.backend.render(); } ,__class__: lime_graphics_Renderer }; var lime_graphics_RendererType = $hxClasses["lime.graphics.RendererType"] = { __ename__ : ["lime","graphics","RendererType"], __constructs__ : ["OPENGL","CANVAS","DOM","FLASH","CAIRO","CONSOLE","CUSTOM"] }; lime_graphics_RendererType.OPENGL = ["OPENGL",0]; lime_graphics_RendererType.OPENGL.toString = $estr; lime_graphics_RendererType.OPENGL.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.CANVAS = ["CANVAS",1]; lime_graphics_RendererType.CANVAS.toString = $estr; lime_graphics_RendererType.CANVAS.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.DOM = ["DOM",2]; lime_graphics_RendererType.DOM.toString = $estr; lime_graphics_RendererType.DOM.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.FLASH = ["FLASH",3]; lime_graphics_RendererType.FLASH.toString = $estr; lime_graphics_RendererType.FLASH.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.CAIRO = ["CAIRO",4]; lime_graphics_RendererType.CAIRO.toString = $estr; lime_graphics_RendererType.CAIRO.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.CONSOLE = ["CONSOLE",5]; lime_graphics_RendererType.CONSOLE.toString = $estr; lime_graphics_RendererType.CONSOLE.__enum__ = lime_graphics_RendererType; lime_graphics_RendererType.CUSTOM = ["CUSTOM",6]; lime_graphics_RendererType.CUSTOM.toString = $estr; lime_graphics_RendererType.CUSTOM.__enum__ = lime_graphics_RendererType; var lime_graphics_cairo_Cairo = function(surface) { if(surface != null) { } }; $hxClasses["lime.graphics.cairo.Cairo"] = lime_graphics_cairo_Cairo; lime_graphics_cairo_Cairo.__name__ = ["lime","graphics","cairo","Cairo"]; lime_graphics_cairo_Cairo.__properties__ = {get_versionString:"get_versionString",get_version:"get_version"} lime_graphics_cairo_Cairo.version = null; lime_graphics_cairo_Cairo.versionString = null; lime_graphics_cairo_Cairo.get_version = function() { return 0; }; lime_graphics_cairo_Cairo.get_versionString = function() { return ""; }; lime_graphics_cairo_Cairo.prototype = { target: null ,userData: null ,handle: null ,arc: function(xc,yc,radius,angle1,angle2) { } ,arcNegative: function(xc,yc,radius,angle1,angle2) { } ,clip: function() { } ,clipExtents: function(x1,y1,x2,y2) { } ,clipPreserve: function() { } ,closePath: function() { } ,copyPage: function() { } ,curveTo: function(x1,y1,x2,y2,x3,y3) { } ,fill: function() { } ,fillExtents: function(x1,y1,x2,y2) { } ,fillPreserve: function() { } ,identityMatrix: function() { } ,inClip: function(x,y) { return false; } ,inFill: function(x,y) { return false; } ,inStroke: function(x,y) { return false; } ,lineTo: function(x,y) { } ,moveTo: function(x,y) { } ,mask: function(pattern) { } ,maskSurface: function(surface,x,y) { } ,newPath: function() { } ,paint: function() { } ,paintWithAlpha: function(alpha) { } ,popGroup: function() { return null; } ,popGroupToSource: function() { } ,pushGroup: function() { } ,pushGroupWithContent: function(content) { } ,recreate: function(surface) { } ,rectangle: function(x,y,width,height) { } ,relCurveTo: function(dx1,dy1,dx2,dy2,dx3,dy3) { } ,relLineTo: function(dx,dy) { } ,relMoveTo: function(dx,dy) { } ,resetClip: function() { } ,restore: function() { } ,save: function() { } ,setFontSize: function(size) { } ,setSourceRGB: function(r,g,b) { } ,setSourceRGBA: function(r,g,b,a) { } ,setSourceSurface: function(surface,x,y) { } ,showPage: function() { } ,showText: function(utf8) { } ,status: function() { return 0; } ,stroke: function() { } ,strokeExtents: function(x1,y1,x2,y2) { } ,strokePreserve: function() { } ,transform: function(matrix) { } ,rotate: function(amount) { } ,scale: function(x,y) { } ,translate: function(x,y) { } ,get_antialias: function() { return 0; } ,set_antialias: function(value) { return value; } ,get_currentPoint: function() { return null; } ,get_dash: function() { return []; } ,set_dash: function(value) { return value; } ,get_dashCount: function() { return 0; } ,get_fillRule: function() { return 0; } ,set_fillRule: function(value) { return value; } ,get_fontFace: function() { return 0; } ,set_fontFace: function(value) { return value; } ,get_fontOptions: function() { return null; } ,set_fontOptions: function(value) { return value; } ,get_groupTarget: function() { return 0; } ,get_hasCurrentPoint: function() { return false; } ,get_lineCap: function() { return 0; } ,set_lineCap: function(value) { return value; } ,get_lineJoin: function() { return 0; } ,set_lineJoin: function(value) { return value; } ,get_lineWidth: function() { return 0; } ,set_lineWidth: function(value) { return value; } ,get_matrix: function() { return null; } ,set_matrix: function(value) { return value; } ,get_miterLimit: function() { return 0; } ,set_miterLimit: function(value) { return value; } ,get_operator: function() { return 0; } ,set_operator: function(value) { return value; } ,get_source: function() { return 0; } ,set_source: function(value) { return value; } ,get_target: function() { return 0; } ,get_tolerance: function() { return 0; } ,set_tolerance: function(value) { return value; } ,__class__: lime_graphics_cairo_Cairo ,__properties__: {set_tolerance:"set_tolerance",get_tolerance:"get_tolerance",get_target:"get_target",set_source:"set_source",get_source:"get_source",set_operator:"set_operator",get_operator:"get_operator",set_miterLimit:"set_miterLimit",get_miterLimit:"get_miterLimit",set_matrix:"set_matrix",get_matrix:"get_matrix",set_lineWidth:"set_lineWidth",get_lineWidth:"get_lineWidth",set_lineJoin:"set_lineJoin",get_lineJoin:"get_lineJoin",set_lineCap:"set_lineCap",get_lineCap:"get_lineCap",get_hasCurrentPoint:"get_hasCurrentPoint",get_groupTarget:"get_groupTarget",set_fontOptions:"set_fontOptions",get_fontOptions:"get_fontOptions",set_fontFace:"set_fontFace",get_fontFace:"get_fontFace",set_fillRule:"set_fillRule",get_fillRule:"get_fillRule",get_dashCount:"get_dashCount",set_dash:"set_dash",get_dash:"get_dash",get_currentPoint:"get_currentPoint",set_antialias:"set_antialias",get_antialias:"get_antialias"} }; var lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoFTFontFace.CairoFTFontFace_Impl_"] = lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$; lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoFTFontFace","CairoFTFontFace_Impl_"]; lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$._new = function() { return 0; }; lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$.create = function(face,loadFlags) { return 0; }; var lime_graphics_cairo__$CairoFontFace_CairoFontFace_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoFontFace.CairoFontFace_Impl_"] = lime_graphics_cairo__$CairoFontFace_CairoFontFace_$Impl_$; lime_graphics_cairo__$CairoFontFace_CairoFontFace_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoFontFace","CairoFontFace_Impl_"]; lime_graphics_cairo__$CairoFontFace_CairoFontFace_$Impl_$._new = function() { return null; }; lime_graphics_cairo__$CairoFontFace_CairoFontFace_$Impl_$.status = function(this1) { return 0; }; var lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoFontOptions.CairoFontOptions_Impl_"] = lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoFontOptions","CairoFontOptions_Impl_"]; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.__properties__ = {set_subpixelOrder:"set_subpixelOrder",get_subpixelOrder:"get_subpixelOrder",set_hintStyle:"set_hintStyle",get_hintStyle:"get_hintStyle",set_hintMetrics:"set_hintMetrics",get_hintMetrics:"get_hintMetrics",set_antialias:"set_antialias",get_antialias:"get_antialias"} lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$._new = function() { return null; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.get_antialias = function(this1) { return 0; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.set_antialias = function(this1,value) { return value; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.get_hintMetrics = function(this1) { return 0; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.set_hintMetrics = function(this1,value) { return value; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.get_hintStyle = function(this1) { return 0; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.set_hintStyle = function(this1,value) { return value; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.get_subpixelOrder = function(this1) { return 0; }; lime_graphics_cairo__$CairoFontOptions_CairoFontOptions_$Impl_$.set_subpixelOrder = function(this1,value) { return value; }; var lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoImageSurface.CairoImageSurface_Impl_"] = lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoImageSurface","CairoImageSurface_Impl_"]; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.__properties__ = {get_width:"get_width",get_stride:"get_stride",get_height:"get_height",get_format:"get_format",get_data:"get_data"} lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$._new = function(format,width,height) { return 0; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.create = function(data,format,width,height,stride) { return 0; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.fromImage = function(image) { return null; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.get_data = function(this1) { return null; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.get_format = function(this1) { return 0; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.get_height = function(this1) { return 0; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.get_stride = function(this1) { return 0; }; lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$.get_width = function(this1) { return 0; }; var lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoPattern.CairoPattern_Impl_"] = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoPattern","CairoPattern_Impl_"]; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.__properties__ = {set_matrix:"set_matrix",get_matrix:"get_matrix",set_filter:"set_filter",get_filter:"get_filter",set_extend:"set_extend",get_extend:"get_extend",get_colorStopCount:"get_colorStopCount"} lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$._new = function(handle) { return handle; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.addColorStopRGB = function(this1,offset,r,g,b) { }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.addColorStopRGBA = function(this1,offset,r,g,b,a) { }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createForSurface = function(surface) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createLinear = function(x0,y0,x1,y1) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRadial = function(cx0,cy0,radius0,cx1,cy1,radius1) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRGB = function(r,g,b) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRGBA = function(r,g,b,a) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.get_colorStopCount = function(this1) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.get_extend = function(this1) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_extend = function(this1,value) { return value; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.get_filter = function(this1) { return 0; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_filter = function(this1,value) { return value; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.get_matrix = function(this1) { return null; }; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_matrix = function(this1,value) { return value; }; var lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$ = {}; $hxClasses["lime.graphics.cairo._CairoSurface.CairoSurface_Impl_"] = lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$; lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$.__name__ = ["lime","graphics","cairo","_CairoSurface","CairoSurface_Impl_"]; lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$.flush = function(this1) { }; var lime_graphics_console_IndexBuffer = function() { }; $hxClasses["lime.graphics.console.IndexBuffer"] = lime_graphics_console_IndexBuffer; lime_graphics_console_IndexBuffer.__name__ = ["lime","graphics","console","IndexBuffer"]; lime_graphics_console_IndexBuffer.prototype = { __class__: lime_graphics_console_IndexBuffer }; var lime_graphics_console_Primitive = $hxClasses["lime.graphics.console.Primitive"] = { __ename__ : ["lime","graphics","console","Primitive"], __constructs__ : ["Point","Line","LineStrip","Triangle","TriangleStrip"] }; lime_graphics_console_Primitive.Point = ["Point",0]; lime_graphics_console_Primitive.Point.toString = $estr; lime_graphics_console_Primitive.Point.__enum__ = lime_graphics_console_Primitive; lime_graphics_console_Primitive.Line = ["Line",1]; lime_graphics_console_Primitive.Line.toString = $estr; lime_graphics_console_Primitive.Line.__enum__ = lime_graphics_console_Primitive; lime_graphics_console_Primitive.LineStrip = ["LineStrip",2]; lime_graphics_console_Primitive.LineStrip.toString = $estr; lime_graphics_console_Primitive.LineStrip.__enum__ = lime_graphics_console_Primitive; lime_graphics_console_Primitive.Triangle = ["Triangle",3]; lime_graphics_console_Primitive.Triangle.toString = $estr; lime_graphics_console_Primitive.Triangle.__enum__ = lime_graphics_console_Primitive; lime_graphics_console_Primitive.TriangleStrip = ["TriangleStrip",4]; lime_graphics_console_Primitive.TriangleStrip.toString = $estr; lime_graphics_console_Primitive.TriangleStrip.__enum__ = lime_graphics_console_Primitive; var lime_graphics_console_Shader = function() { }; $hxClasses["lime.graphics.console.Shader"] = lime_graphics_console_Shader; lime_graphics_console_Shader.__name__ = ["lime","graphics","console","Shader"]; lime_graphics_console_Shader.prototype = { __class__: lime_graphics_console_Shader }; var lime_graphics_console_VertexBuffer = function() { }; $hxClasses["lime.graphics.console.VertexBuffer"] = lime_graphics_console_VertexBuffer; lime_graphics_console_VertexBuffer.__name__ = ["lime","graphics","console","VertexBuffer"]; lime_graphics_console_VertexBuffer.prototype = { lock: function() { return new lime_graphics_console_VertexOutput(); } ,unlock: function() { } ,__class__: lime_graphics_console_VertexBuffer }; var lime_graphics_console_VertexOutput = function() { }; $hxClasses["lime.graphics.console.VertexOutput"] = lime_graphics_console_VertexOutput; lime_graphics_console_VertexOutput.__name__ = ["lime","graphics","console","VertexOutput"]; lime_graphics_console_VertexOutput.prototype = { vec2: function(x,y) { } ,vec3: function(x,y,z) { } ,color: function(r,g,b,a) { } ,__class__: lime_graphics_console_VertexOutput }; var lime_graphics_format_BMP = function() { }; $hxClasses["lime.graphics.format.BMP"] = lime_graphics_format_BMP; lime_graphics_format_BMP.__name__ = ["lime","graphics","format","BMP"]; lime_graphics_format_BMP.encode = function(image,type) { if(image.get_premultiplied() || image.get_format() != 0) { image = image.clone(); image.set_premultiplied(false); image.set_format(0); } if(type == null) type = lime_graphics_format_BMPType.RGB; var fileHeaderLength = 14; var infoHeaderLength = 40; var pixelValuesLength = image.width * image.height * 4; if(type != null) switch(type[1]) { case 1: infoHeaderLength = 108; break; case 2: fileHeaderLength = 0; pixelValuesLength += image.width * image.height; break; case 0: pixelValuesLength = image.width * 3 + image.width * 3 % 4 + image.height * 3 + image.height * 3; break; default: } else { } var data = haxe_io_Bytes.alloc(fileHeaderLength + infoHeaderLength + pixelValuesLength); var position = 0; if(fileHeaderLength > 0) { data.set(position++,66); data.set(position++,77); data.setInt32(position,data.length); position += 4; data.setUInt16(position,0); position += 2; data.setUInt16(position,0); position += 2; data.setInt32(position,fileHeaderLength + infoHeaderLength); position += 4; } data.setInt32(position,infoHeaderLength); position += 4; data.setInt32(position,image.width); position += 4; data.setInt32(position,type == lime_graphics_format_BMPType.ICO?image.height * 2:image.height); position += 4; data.setUInt16(position,1); position += 2; data.setUInt16(position,type == lime_graphics_format_BMPType.RGB?24:32); position += 2; data.setInt32(position,type == lime_graphics_format_BMPType.BITFIELD?3:0); position += 4; data.setInt32(position,pixelValuesLength); position += 4; data.setInt32(position,11824); position += 4; data.setInt32(position,11824); position += 4; data.setInt32(position,0); position += 4; data.setInt32(position,0); position += 4; if(type == lime_graphics_format_BMPType.BITFIELD) { data.setInt32(position,16711680); position += 4; data.setInt32(position,65280); position += 4; data.setInt32(position,255); position += 4; data.setInt32(position,-16777216); position += 4; data.set(position++,32); data.set(position++,110); data.set(position++,105); data.set(position++,87); var _g = 0; while(_g < 48) { var i = _g++; data.set(position++,0); } } var pixels = image.getPixels(new lime_math_Rectangle(0,0,image.width,image.height),1); var readPosition = 0; var a; var r; var g; var b; if(type != null) switch(type[1]) { case 1: var _g1 = 0; var _g2 = image.height; while(_g1 < _g2) { var y = _g1++; readPosition = (image.height - 1 - y) * 4 * image.width; var _g3 = 0; var _g21 = image.width; while(_g3 < _g21) { var x = _g3++; a = pixels.get(readPosition++); r = pixels.get(readPosition++); g = pixels.get(readPosition++); b = pixels.get(readPosition++); data.set(position++,b); data.set(position++,g); data.set(position++,r); data.set(position++,a); } } break; case 2: var andMask = haxe_io_Bytes.alloc(image.width * image.height); var maskPosition = 0; var _g11 = 0; var _g4 = image.height; while(_g11 < _g4) { var y1 = _g11++; readPosition = (image.height - 1 - y1) * 4 * image.width; var _g31 = 0; var _g22 = image.width; while(_g31 < _g22) { var x1 = _g31++; a = pixels.get(readPosition++); r = pixels.get(readPosition++); g = pixels.get(readPosition++); b = pixels.get(readPosition++); data.set(position++,b); data.set(position++,g); data.set(position++,r); data.set(position++,a); andMask.set(maskPosition++,0); } } data.blit(position,andMask,0,image.width * image.height); break; case 0: var _g12 = 0; var _g5 = image.height; while(_g12 < _g5) { var y2 = _g12++; readPosition = (image.height - 1 - y2) * 4 * image.width; var _g32 = 0; var _g23 = image.width; while(_g32 < _g23) { var x2 = _g32++; a = pixels.get(readPosition++); r = pixels.get(readPosition++); g = pixels.get(readPosition++); b = pixels.get(readPosition++); data.set(position++,b); data.set(position++,g); data.set(position++,r); } var _g33 = 0; var _g24 = image.width * 3 % 4; while(_g33 < _g24) { var i1 = _g33++; data.set(position++,0); } } break; default: } else { } return data; }; var lime_graphics_format_BMPType = $hxClasses["lime.graphics.format.BMPType"] = { __ename__ : ["lime","graphics","format","BMPType"], __constructs__ : ["RGB","BITFIELD","ICO"] }; lime_graphics_format_BMPType.RGB = ["RGB",0]; lime_graphics_format_BMPType.RGB.toString = $estr; lime_graphics_format_BMPType.RGB.__enum__ = lime_graphics_format_BMPType; lime_graphics_format_BMPType.BITFIELD = ["BITFIELD",1]; lime_graphics_format_BMPType.BITFIELD.toString = $estr; lime_graphics_format_BMPType.BITFIELD.__enum__ = lime_graphics_format_BMPType; lime_graphics_format_BMPType.ICO = ["ICO",2]; lime_graphics_format_BMPType.ICO.toString = $estr; lime_graphics_format_BMPType.ICO.__enum__ = lime_graphics_format_BMPType; var lime_graphics_format_JPEG = function() { }; $hxClasses["lime.graphics.format.JPEG"] = lime_graphics_format_JPEG; lime_graphics_format_JPEG.__name__ = ["lime","graphics","format","JPEG"]; lime_graphics_format_JPEG.decodeBytes = function(bytes,decodeData) { if(decodeData == null) decodeData = true; return null; }; lime_graphics_format_JPEG.decodeFile = function(path,decodeData) { if(decodeData == null) decodeData = true; return null; }; lime_graphics_format_JPEG.encode = function(image,quality) { if(image.get_premultiplied() || image.get_format() != 0) { image = image.clone(); image.set_premultiplied(false); image.set_format(0); } lime_graphics_utils_ImageCanvasUtil.sync(image,false); if(image.buffer.__srcCanvas != null) { var data = image.buffer.__srcCanvas.toDataURL("image/jpeg",quality / 100); var buffer = window.atob(data.split(";base64,")[1]); var bytes = haxe_io_Bytes.alloc(buffer.length); var _g1 = 0; var _g = buffer.length; while(_g1 < _g) { var i = _g1++; bytes.set(i,HxOverrides.cca(buffer,i)); } return bytes; } return null; }; var lime_graphics_format_PNG = function() { }; $hxClasses["lime.graphics.format.PNG"] = lime_graphics_format_PNG; lime_graphics_format_PNG.__name__ = ["lime","graphics","format","PNG"]; lime_graphics_format_PNG.decodeBytes = function(bytes,decodeData) { if(decodeData == null) decodeData = true; return null; }; lime_graphics_format_PNG.decodeFile = function(path,decodeData) { if(decodeData == null) decodeData = true; return null; }; lime_graphics_format_PNG.encode = function(image) { if(image.get_premultiplied() || image.get_format() != 0) { image = image.clone(); image.set_premultiplied(false); image.set_format(0); } return null; }; var lime_graphics_opengl_GL = function() { }; $hxClasses["lime.graphics.opengl.GL"] = lime_graphics_opengl_GL; lime_graphics_opengl_GL.__name__ = ["lime","graphics","opengl","GL"]; lime_graphics_opengl_GL.__properties__ = {get_version:"get_version"} lime_graphics_opengl_GL.version = null; lime_graphics_opengl_GL.context = null; lime_graphics_opengl_GL.activeTexture = function(texture) { lime_graphics_opengl_GL.context.activeTexture(texture); }; lime_graphics_opengl_GL.attachShader = function(program,shader) { lime_graphics_opengl_GL.context.attachShader(program,shader); }; lime_graphics_opengl_GL.bindAttribLocation = function(program,index,name) { lime_graphics_opengl_GL.context.bindAttribLocation(program,index,name); }; lime_graphics_opengl_GL.bindBuffer = function(target,buffer) { lime_graphics_opengl_GL.context.bindBuffer(target,buffer); }; lime_graphics_opengl_GL.bindFramebuffer = function(target,framebuffer) { lime_graphics_opengl_GL.context.bindFramebuffer(target,framebuffer); }; lime_graphics_opengl_GL.bindRenderbuffer = function(target,renderbuffer) { lime_graphics_opengl_GL.context.bindRenderbuffer(target,renderbuffer); }; lime_graphics_opengl_GL.bindTexture = function(target,texture) { lime_graphics_opengl_GL.context.bindTexture(target,texture); }; lime_graphics_opengl_GL.blendColor = function(red,green,blue,alpha) { lime_graphics_opengl_GL.context.blendColor(red,green,blue,alpha); }; lime_graphics_opengl_GL.blendEquation = function(mode) { lime_graphics_opengl_GL.context.blendEquation(mode); }; lime_graphics_opengl_GL.blendEquationSeparate = function(modeRGB,modeAlpha) { lime_graphics_opengl_GL.context.blendEquationSeparate(modeRGB,modeAlpha); }; lime_graphics_opengl_GL.blendFunc = function(sfactor,dfactor) { lime_graphics_opengl_GL.context.blendFunc(sfactor,dfactor); }; lime_graphics_opengl_GL.blendFuncSeparate = function(srcRGB,dstRGB,srcAlpha,dstAlpha) { lime_graphics_opengl_GL.context.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha); }; lime_graphics_opengl_GL.bufferData = function(target,data,usage) { lime_graphics_opengl_GL.context.bufferData(target,data,usage); }; lime_graphics_opengl_GL.bufferSubData = function(target,offset,data) { lime_graphics_opengl_GL.context.bufferSubData(target,offset,data); }; lime_graphics_opengl_GL.checkFramebufferStatus = function(target) { return lime_graphics_opengl_GL.context.checkFramebufferStatus(target); }; lime_graphics_opengl_GL.clear = function(mask) { lime_graphics_opengl_GL.context.clear(mask); }; lime_graphics_opengl_GL.clearColor = function(red,green,blue,alpha) { lime_graphics_opengl_GL.context.clearColor(red,green,blue,alpha); }; lime_graphics_opengl_GL.clearDepth = function(depth) { lime_graphics_opengl_GL.context.clearDepth(depth); }; lime_graphics_opengl_GL.clearStencil = function(s) { lime_graphics_opengl_GL.context.clearStencil(s); }; lime_graphics_opengl_GL.colorMask = function(red,green,blue,alpha) { lime_graphics_opengl_GL.context.colorMask(red,green,blue,alpha); }; lime_graphics_opengl_GL.compileShader = function(shader) { lime_graphics_opengl_GL.context.compileShader(shader); }; lime_graphics_opengl_GL.compressedTexImage2D = function(target,level,internalformat,width,height,border,data) { lime_graphics_opengl_GL.context.compressedTexImage2D(target,level,internalformat,width,height,border,data); }; lime_graphics_opengl_GL.compressedTexSubImage2D = function(target,level,xoffset,yoffset,width,height,format,data) { lime_graphics_opengl_GL.context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,data); }; lime_graphics_opengl_GL.copyTexImage2D = function(target,level,internalformat,x,y,width,height,border) { lime_graphics_opengl_GL.context.copyTexImage2D(target,level,internalformat,x,y,width,height,border); }; lime_graphics_opengl_GL.copyTexSubImage2D = function(target,level,xoffset,yoffset,x,y,width,height) { lime_graphics_opengl_GL.context.copyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height); }; lime_graphics_opengl_GL.createBuffer = function() { return lime_graphics_opengl_GL.context.createBuffer(); }; lime_graphics_opengl_GL.createFramebuffer = function() { return lime_graphics_opengl_GL.context.createFramebuffer(); }; lime_graphics_opengl_GL.createProgram = function() { return lime_graphics_opengl_GL.context.createProgram(); }; lime_graphics_opengl_GL.createRenderbuffer = function() { return lime_graphics_opengl_GL.context.createRenderbuffer(); }; lime_graphics_opengl_GL.createShader = function(type) { return lime_graphics_opengl_GL.context.createShader(type); }; lime_graphics_opengl_GL.createTexture = function() { return lime_graphics_opengl_GL.context.createTexture(); }; lime_graphics_opengl_GL.cullFace = function(mode) { lime_graphics_opengl_GL.context.cullFace(mode); }; lime_graphics_opengl_GL.deleteBuffer = function(buffer) { lime_graphics_opengl_GL.context.deleteBuffer(buffer); }; lime_graphics_opengl_GL.deleteFramebuffer = function(framebuffer) { lime_graphics_opengl_GL.context.deleteFramebuffer(framebuffer); }; lime_graphics_opengl_GL.deleteProgram = function(program) { lime_graphics_opengl_GL.context.deleteProgram(program); }; lime_graphics_opengl_GL.deleteRenderbuffer = function(renderbuffer) { lime_graphics_opengl_GL.context.deleteRenderbuffer(renderbuffer); }; lime_graphics_opengl_GL.deleteShader = function(shader) { lime_graphics_opengl_GL.context.deleteShader(shader); }; lime_graphics_opengl_GL.deleteTexture = function(texture) { lime_graphics_opengl_GL.context.deleteTexture(texture); }; lime_graphics_opengl_GL.depthFunc = function(func) { lime_graphics_opengl_GL.context.depthFunc(func); }; lime_graphics_opengl_GL.depthMask = function(flag) { lime_graphics_opengl_GL.context.depthMask(flag); }; lime_graphics_opengl_GL.depthRange = function(zNear,zFar) { lime_graphics_opengl_GL.context.depthRange(zNear,zFar); }; lime_graphics_opengl_GL.detachShader = function(program,shader) { lime_graphics_opengl_GL.context.detachShader(program,shader); }; lime_graphics_opengl_GL.disable = function(cap) { lime_graphics_opengl_GL.context.disable(cap); }; lime_graphics_opengl_GL.disableVertexAttribArray = function(index) { lime_graphics_opengl_GL.context.disableVertexAttribArray(index); }; lime_graphics_opengl_GL.drawArrays = function(mode,first,count) { lime_graphics_opengl_GL.context.drawArrays(mode,first,count); }; lime_graphics_opengl_GL.drawElements = function(mode,count,type,offset) { lime_graphics_opengl_GL.context.drawElements(mode,count,type,offset); }; lime_graphics_opengl_GL.enable = function(cap) { lime_graphics_opengl_GL.context.enable(cap); }; lime_graphics_opengl_GL.enableVertexAttribArray = function(index) { lime_graphics_opengl_GL.context.enableVertexAttribArray(index); }; lime_graphics_opengl_GL.finish = function() { lime_graphics_opengl_GL.context.finish(); }; lime_graphics_opengl_GL.flush = function() { lime_graphics_opengl_GL.context.flush(); }; lime_graphics_opengl_GL.framebufferRenderbuffer = function(target,attachment,renderbuffertarget,renderbuffer) { lime_graphics_opengl_GL.context.framebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer); }; lime_graphics_opengl_GL.framebufferTexture2D = function(target,attachment,textarget,texture,level) { lime_graphics_opengl_GL.context.framebufferTexture2D(target,attachment,textarget,texture,level); }; lime_graphics_opengl_GL.frontFace = function(mode) { lime_graphics_opengl_GL.context.frontFace(mode); }; lime_graphics_opengl_GL.generateMipmap = function(target) { lime_graphics_opengl_GL.context.generateMipmap(target); }; lime_graphics_opengl_GL.getActiveAttrib = function(program,index) { return lime_graphics_opengl_GL.context.getActiveAttrib(program,index); }; lime_graphics_opengl_GL.getActiveUniform = function(program,index) { return lime_graphics_opengl_GL.context.getActiveUniform(program,index); }; lime_graphics_opengl_GL.getAttachedShaders = function(program) { return lime_graphics_opengl_GL.context.getAttachedShaders(program); }; lime_graphics_opengl_GL.getAttribLocation = function(program,name) { return lime_graphics_opengl_GL.context.getAttribLocation(program,name); }; lime_graphics_opengl_GL.getBufferParameter = function(target,pname) { return lime_graphics_opengl_GL.context.getBufferParameter(target,pname); }; lime_graphics_opengl_GL.getContextAttributes = function() { return lime_graphics_opengl_GL.context.getContextAttributes(); }; lime_graphics_opengl_GL.getError = function() { return lime_graphics_opengl_GL.context.getError(); }; lime_graphics_opengl_GL.getExtension = function(name) { return lime_graphics_opengl_GL.context.getExtension(name); }; lime_graphics_opengl_GL.getFramebufferAttachmentParameter = function(target,attachment,pname) { return lime_graphics_opengl_GL.context.getFramebufferAttachmentParameter(target,attachment,pname); }; lime_graphics_opengl_GL.getParameter = function(pname) { return lime_graphics_opengl_GL.context.getParameter(pname); }; lime_graphics_opengl_GL.getProgramInfoLog = function(program) { return lime_graphics_opengl_GL.context.getProgramInfoLog(program); }; lime_graphics_opengl_GL.getProgramParameter = function(program,pname) { return lime_graphics_opengl_GL.context.getProgramParameter(program,pname); }; lime_graphics_opengl_GL.getRenderbufferParameter = function(target,pname) { return lime_graphics_opengl_GL.context.getRenderbufferParameter(target,pname); }; lime_graphics_opengl_GL.getShaderInfoLog = function(shader) { return lime_graphics_opengl_GL.context.getShaderInfoLog(shader); }; lime_graphics_opengl_GL.getShaderParameter = function(shader,pname) { return lime_graphics_opengl_GL.context.getShaderParameter(shader,pname); }; lime_graphics_opengl_GL.getShaderPrecisionFormat = function(shadertype,precisiontype) { return lime_graphics_opengl_GL.context.getShaderPrecisionFormat(shadertype,precisiontype); }; lime_graphics_opengl_GL.getShaderSource = function(shader) { return lime_graphics_opengl_GL.context.getShaderSource(shader); }; lime_graphics_opengl_GL.getSupportedExtensions = function() { return lime_graphics_opengl_GL.context.getSupportedExtensions(); }; lime_graphics_opengl_GL.getTexParameter = function(target,pname) { return lime_graphics_opengl_GL.context.getTexParameter(target,pname); }; lime_graphics_opengl_GL.getUniform = function(program,location) { return lime_graphics_opengl_GL.context.getUniform(program,location); }; lime_graphics_opengl_GL.getUniformLocation = function(program,name) { return lime_graphics_opengl_GL.context.getUniformLocation(program,name); }; lime_graphics_opengl_GL.getVertexAttrib = function(index,pname) { return lime_graphics_opengl_GL.context.getVertexAttrib(index,pname); }; lime_graphics_opengl_GL.getVertexAttribOffset = function(index,pname) { return lime_graphics_opengl_GL.context.getVertexAttribOffset(index,pname); }; lime_graphics_opengl_GL.hint = function(target,mode) { lime_graphics_opengl_GL.context.hint(target,mode); }; lime_graphics_opengl_GL.isBuffer = function(buffer) { return lime_graphics_opengl_GL.context.isBuffer(buffer); }; lime_graphics_opengl_GL.isContextLost = function() { return lime_graphics_opengl_GL.context.isContextLost(); }; lime_graphics_opengl_GL.isEnabled = function(cap) { return lime_graphics_opengl_GL.context.isEnabled(cap); }; lime_graphics_opengl_GL.isFramebuffer = function(framebuffer) { return lime_graphics_opengl_GL.context.isFramebuffer(framebuffer); }; lime_graphics_opengl_GL.isProgram = function(program) { return lime_graphics_opengl_GL.context.isProgram(program); }; lime_graphics_opengl_GL.isRenderbuffer = function(renderbuffer) { return lime_graphics_opengl_GL.context.isRenderbuffer(renderbuffer); }; lime_graphics_opengl_GL.isShader = function(shader) { return lime_graphics_opengl_GL.context.isShader(shader); }; lime_graphics_opengl_GL.isTexture = function(texture) { return lime_graphics_opengl_GL.context.isTexture(texture); }; lime_graphics_opengl_GL.lineWidth = function(width) { lime_graphics_opengl_GL.context.lineWidth(width); }; lime_graphics_opengl_GL.linkProgram = function(program) { lime_graphics_opengl_GL.context.linkProgram(program); }; lime_graphics_opengl_GL.pixelStorei = function(pname,param) { lime_graphics_opengl_GL.context.pixelStorei(pname,param); }; lime_graphics_opengl_GL.polygonOffset = function(factor,units) { lime_graphics_opengl_GL.context.polygonOffset(factor,units); }; lime_graphics_opengl_GL.readPixels = function(x,y,width,height,format,type,pixels) { lime_graphics_opengl_GL.context.readPixels(x,y,width,height,format,type,pixels); }; lime_graphics_opengl_GL.renderbufferStorage = function(target,internalformat,width,height) { lime_graphics_opengl_GL.context.renderbufferStorage(target,internalformat,width,height); }; lime_graphics_opengl_GL.sampleCoverage = function(value,invert) { lime_graphics_opengl_GL.context.sampleCoverage(value,invert); }; lime_graphics_opengl_GL.scissor = function(x,y,width,height) { lime_graphics_opengl_GL.context.scissor(x,y,width,height); }; lime_graphics_opengl_GL.shaderSource = function(shader,source) { lime_graphics_opengl_GL.context.shaderSource(shader,source); }; lime_graphics_opengl_GL.stencilFunc = function(func,ref,mask) { lime_graphics_opengl_GL.context.stencilFunc(func,ref,mask); }; lime_graphics_opengl_GL.stencilFuncSeparate = function(face,func,ref,mask) { lime_graphics_opengl_GL.context.stencilFuncSeparate(face,func,ref,mask); }; lime_graphics_opengl_GL.stencilMask = function(mask) { lime_graphics_opengl_GL.context.stencilMask(mask); }; lime_graphics_opengl_GL.stencilMaskSeparate = function(face,mask) { lime_graphics_opengl_GL.context.stencilMaskSeparate(face,mask); }; lime_graphics_opengl_GL.stencilOp = function(fail,zfail,zpass) { lime_graphics_opengl_GL.context.stencilOp(fail,zfail,zpass); }; lime_graphics_opengl_GL.stencilOpSeparate = function(face,fail,zfail,zpass) { lime_graphics_opengl_GL.context.stencilOpSeparate(face,fail,zfail,zpass); }; lime_graphics_opengl_GL.texImage2D = function(target,level,internalformat,width,height,border,format,type,pixels) { lime_graphics_opengl_GL.context.texImage2D(target,level,internalformat,width,height,border,format,type,pixels); }; lime_graphics_opengl_GL.texParameterf = function(target,pname,param) { lime_graphics_opengl_GL.context.texParameterf(target,pname,param); }; lime_graphics_opengl_GL.texParameteri = function(target,pname,param) { lime_graphics_opengl_GL.context.texParameteri(target,pname,param); }; lime_graphics_opengl_GL.texSubImage2D = function(target,level,xoffset,yoffset,width,height,format,type,pixels) { lime_graphics_opengl_GL.context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels); }; lime_graphics_opengl_GL.uniform1f = function(location,x) { lime_graphics_opengl_GL.context.uniform1f(location,x); }; lime_graphics_opengl_GL.uniform1fv = function(location,x) { lime_graphics_opengl_GL.context.uniform1fv(location,x); }; lime_graphics_opengl_GL.uniform1i = function(location,x) { lime_graphics_opengl_GL.context.uniform1i(location,x); }; lime_graphics_opengl_GL.uniform1iv = function(location,v) { lime_graphics_opengl_GL.context.uniform1iv(location,v); }; lime_graphics_opengl_GL.uniform2f = function(location,x,y) { lime_graphics_opengl_GL.context.uniform2f(location,x,y); }; lime_graphics_opengl_GL.uniform2fv = function(location,v) { lime_graphics_opengl_GL.context.uniform2fv(location,v); }; lime_graphics_opengl_GL.uniform2i = function(location,x,y) { lime_graphics_opengl_GL.context.uniform2i(location,x,y); }; lime_graphics_opengl_GL.uniform2iv = function(location,v) { lime_graphics_opengl_GL.context.uniform2iv(location,v); }; lime_graphics_opengl_GL.uniform3f = function(location,x,y,z) { lime_graphics_opengl_GL.context.uniform3f(location,x,y,z); }; lime_graphics_opengl_GL.uniform3fv = function(location,v) { lime_graphics_opengl_GL.context.uniform3fv(location,v); }; lime_graphics_opengl_GL.uniform3i = function(location,x,y,z) { lime_graphics_opengl_GL.context.uniform3i(location,x,y,z); }; lime_graphics_opengl_GL.uniform3iv = function(location,v) { lime_graphics_opengl_GL.context.uniform3iv(location,v); }; lime_graphics_opengl_GL.uniform4f = function(location,x,y,z,w) { lime_graphics_opengl_GL.context.uniform4f(location,x,y,z,w); }; lime_graphics_opengl_GL.uniform4fv = function(location,v) { lime_graphics_opengl_GL.context.uniform4fv(location,v); }; lime_graphics_opengl_GL.uniform4i = function(location,x,y,z,w) { lime_graphics_opengl_GL.context.uniform4i(location,x,y,z,w); }; lime_graphics_opengl_GL.uniform4iv = function(location,v) { lime_graphics_opengl_GL.context.uniform4iv(location,v); }; lime_graphics_opengl_GL.uniformMatrix2fv = function(location,transpose,v) { lime_graphics_opengl_GL.context.uniformMatrix2fv(location,transpose,v); }; lime_graphics_opengl_GL.uniformMatrix3fv = function(location,transpose,v) { lime_graphics_opengl_GL.context.uniformMatrix3fv(location,transpose,v); }; lime_graphics_opengl_GL.uniformMatrix4fv = function(location,transpose,v) { lime_graphics_opengl_GL.context.uniformMatrix4fv(location,transpose,v); }; lime_graphics_opengl_GL.useProgram = function(program) { lime_graphics_opengl_GL.context.useProgram(program); }; lime_graphics_opengl_GL.validateProgram = function(program) { lime_graphics_opengl_GL.context.validateProgram(program); }; lime_graphics_opengl_GL.vertexAttrib1f = function(indx,x) { lime_graphics_opengl_GL.context.vertexAttrib1f(indx,x); }; lime_graphics_opengl_GL.vertexAttrib1fv = function(indx,values) { lime_graphics_opengl_GL.context.vertexAttrib1fv(indx,values); }; lime_graphics_opengl_GL.vertexAttrib2f = function(indx,x,y) { lime_graphics_opengl_GL.context.vertexAttrib2f(indx,x,y); }; lime_graphics_opengl_GL.vertexAttrib2fv = function(indx,values) { lime_graphics_opengl_GL.context.vertexAttrib2fv(indx,values); }; lime_graphics_opengl_GL.vertexAttrib3f = function(indx,x,y,z) { lime_graphics_opengl_GL.context.vertexAttrib3f(indx,x,y,z); }; lime_graphics_opengl_GL.vertexAttrib3fv = function(indx,values) { lime_graphics_opengl_GL.context.vertexAttrib3fv(indx,values); }; lime_graphics_opengl_GL.vertexAttrib4f = function(indx,x,y,z,w) { lime_graphics_opengl_GL.context.vertexAttrib4f(indx,x,y,z,w); }; lime_graphics_opengl_GL.vertexAttrib4fv = function(indx,values) { lime_graphics_opengl_GL.context.vertexAttrib4fv(indx,values); }; lime_graphics_opengl_GL.vertexAttribPointer = function(indx,size,type,normalized,stride,offset) { lime_graphics_opengl_GL.context.vertexAttribPointer(indx,size,type,normalized,stride,offset); }; lime_graphics_opengl_GL.viewport = function(x,y,width,height) { lime_graphics_opengl_GL.context.viewport(x,y,width,height); }; lime_graphics_opengl_GL.get_version = function() { return 2; }; var lime_graphics_utils_ImageCanvasUtil = function() { }; $hxClasses["lime.graphics.utils.ImageCanvasUtil"] = lime_graphics_utils_ImageCanvasUtil; lime_graphics_utils_ImageCanvasUtil.__name__ = ["lime","graphics","utils","ImageCanvasUtil"]; lime_graphics_utils_ImageCanvasUtil.colorTransform = function(image,rect,colorMatrix) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.colorTransform(image,rect,colorMatrix); }; lime_graphics_utils_ImageCanvasUtil.convertToCanvas = function(image) { var buffer = image.buffer; if(buffer.__srcImage != null) { if(buffer.__srcCanvas == null) { lime_graphics_utils_ImageCanvasUtil.createCanvas(image,buffer.__srcImage.width,buffer.__srcImage.height); buffer.__srcContext.drawImage(buffer.__srcImage,0,0); } buffer.__srcImage = null; } else if(buffer.data != null && buffer.__srcCanvas == null) { lime_graphics_utils_ImageCanvasUtil.createCanvas(image,buffer.width,buffer.height); lime_graphics_utils_ImageCanvasUtil.createImageData(image); } else if(buffer.data == null && buffer.__srcImageData != null) buffer.data = buffer.__srcImageData.data; }; lime_graphics_utils_ImageCanvasUtil.convertToData = function(image) { if(image.buffer.data == null) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.sync(image,false); lime_graphics_utils_ImageCanvasUtil.createImageData(image); image.buffer.__srcCanvas = null; image.buffer.__srcContext = null; } }; lime_graphics_utils_ImageCanvasUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(sourceImage); lime_graphics_utils_ImageCanvasUtil.createImageData(sourceImage); lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.copyChannel(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel); }; lime_graphics_utils_ImageCanvasUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) { if(mergeAlpha == null) mergeAlpha = false; if(destPoint == null || destPoint.x >= image.width || destPoint.y >= image.height || sourceRect == null || sourceRect.width < 1 || sourceRect.height < 1) return; if(alphaImage != null && alphaImage.get_transparent()) { if(alphaPoint == null) alphaPoint = new lime_math_Vector2(); var tempData = image.clone(); tempData.copyChannel(alphaImage,new lime_math_Rectangle(alphaPoint.x,alphaPoint.y,sourceRect.width,sourceRect.height),new lime_math_Vector2(sourceRect.x,sourceRect.y),lime_graphics_ImageChannel.ALPHA,lime_graphics_ImageChannel.ALPHA); sourceImage = tempData; } lime_graphics_utils_ImageCanvasUtil.sync(image,true); if(!mergeAlpha) { if(image.get_transparent() && sourceImage.get_transparent()) image.buffer.__srcContext.clearRect(destPoint.x + image.offsetX,destPoint.y + image.offsetY,sourceRect.width + image.offsetX,sourceRect.height + image.offsetY); } lime_graphics_utils_ImageCanvasUtil.sync(sourceImage,false); if(sourceImage.buffer.get_src() != null) image.buffer.__srcContext.drawImage(sourceImage.buffer.get_src(),sourceRect.x + sourceImage.offsetX | 0,sourceRect.y + sourceImage.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0,destPoint.x + image.offsetX | 0,destPoint.y + image.offsetY | 0,sourceRect.width | 0,sourceRect.height | 0); }; lime_graphics_utils_ImageCanvasUtil.createCanvas = function(image,width,height) { var buffer = image.buffer; if(buffer.__srcCanvas == null) { buffer.__srcCanvas = window.document.createElement("canvas"); buffer.__srcCanvas.width = width; buffer.__srcCanvas.height = height; if(!image.get_transparent()) { if(!image.get_transparent()) buffer.__srcCanvas.setAttribute("moz-opaque","true"); buffer.__srcContext = buffer.__srcCanvas.getContext ("2d", { alpha: false }); } else buffer.__srcContext = buffer.__srcCanvas.getContext("2d"); buffer.__srcContext.mozImageSmoothingEnabled = false; buffer.__srcContext.msImageSmoothingEnabled = false; buffer.__srcContext.imageSmoothingEnabled = false; } }; lime_graphics_utils_ImageCanvasUtil.createImageData = function(image) { var buffer = image.buffer; if(buffer.__srcImageData == null) { if(buffer.data == null) buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height); else { buffer.__srcImageData = buffer.__srcContext.createImageData(buffer.width,buffer.height); buffer.__srcImageData.data.set(buffer.data); } var elements = buffer.__srcImageData.data.buffer; var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; buffer.data = this1; } }; lime_graphics_utils_ImageCanvasUtil.fillRect = function(image,rect,color,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.sync(image,true); if(rect.x == 0 && rect.y == 0 && rect.width == image.width && rect.height == image.height) { if(image.get_transparent() && (color & 255) == 0) { image.buffer.__srcCanvas.width = image.buffer.width; return; } } var r; var g; var b; var a; if(format == 1) { r = color >> 16 & 255; g = color >> 8 & 255; b = color & 255; if(image.get_transparent()) a = color >> 24 & 255; else a = 255; } else { r = color >> 24 & 255; g = color >> 16 & 255; b = color >> 8 & 255; if(image.get_transparent()) a = color & 255; else a = 255; } image.buffer.__srcContext.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + a / 255 + ")"; image.buffer.__srcContext.fillRect(rect.x + image.offsetX,rect.y + image.offsetY,rect.width + image.offsetX,rect.height + image.offsetY); }; lime_graphics_utils_ImageCanvasUtil.floodFill = function(image,x,y,color,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.floodFill(image,x,y,color,format); }; lime_graphics_utils_ImageCanvasUtil.getPixel = function(image,x,y,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); return lime_graphics_utils_ImageDataUtil.getPixel(image,x,y,format); }; lime_graphics_utils_ImageCanvasUtil.getPixel32 = function(image,x,y,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); return lime_graphics_utils_ImageDataUtil.getPixel32(image,x,y,format); }; lime_graphics_utils_ImageCanvasUtil.getPixels = function(image,rect,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); return lime_graphics_utils_ImageDataUtil.getPixels(image,rect,format); }; lime_graphics_utils_ImageCanvasUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(sourceImage); lime_graphics_utils_ImageCanvasUtil.createImageData(sourceImage); lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.merge(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier); }; lime_graphics_utils_ImageCanvasUtil.resize = function(image,newWidth,newHeight) { var buffer = image.buffer; if(buffer.__srcCanvas == null) { lime_graphics_utils_ImageCanvasUtil.createCanvas(image,newWidth,newHeight); buffer.__srcContext.drawImage(buffer.get_src(),0,0,newWidth,newHeight); } else { lime_graphics_utils_ImageCanvasUtil.sync(image,true); var sourceCanvas = buffer.__srcCanvas; buffer.__srcCanvas = null; lime_graphics_utils_ImageCanvasUtil.createCanvas(image,newWidth,newHeight); buffer.__srcContext.drawImage(sourceCanvas,0,0,newWidth,newHeight); } }; lime_graphics_utils_ImageCanvasUtil.scroll = function(image,x,y) { if(x % image.width == 0 && y % image.height == 0) return; lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.sync(image,true); image.buffer.__srcContext.clearRect(x,y,image.width,image.height); image.buffer.__srcContext.drawImage(image.buffer.__srcCanvas,x,y); }; lime_graphics_utils_ImageCanvasUtil.setPixel = function(image,x,y,color,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.setPixel(image,x,y,color,format); }; lime_graphics_utils_ImageCanvasUtil.setPixel32 = function(image,x,y,color,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.setPixel32(image,x,y,color,format); }; lime_graphics_utils_ImageCanvasUtil.setPixels = function(image,rect,bytes,format) { lime_graphics_utils_ImageCanvasUtil.convertToCanvas(image); lime_graphics_utils_ImageCanvasUtil.createImageData(image); lime_graphics_utils_ImageDataUtil.setPixels(image,rect,bytes,format); }; lime_graphics_utils_ImageCanvasUtil.sync = function(image,clear) { if(image.dirty && image.buffer.__srcImageData != null && image.type != lime_graphics_ImageType.DATA) { image.buffer.__srcContext.putImageData(image.buffer.__srcImageData,0,0); image.buffer.data = null; image.dirty = false; } if(clear) { image.buffer.__srcImageData = null; image.buffer.data = null; } }; var lime_graphics_utils_ImageDataUtil = function() { }; $hxClasses["lime.graphics.utils.ImageDataUtil"] = lime_graphics_utils_ImageDataUtil; lime_graphics_utils_ImageDataUtil.__name__ = ["lime","graphics","utils","ImageDataUtil"]; lime_graphics_utils_ImageDataUtil.colorTransform = function(image,rect,colorMatrix) { var data = image.buffer.data; if(data == null) return; var format = image.buffer.format; var premultiplied = image.buffer.premultiplied; var dataView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,rect); var alphaTable = lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getAlphaTable(colorMatrix); var redTable = lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getRedTable(colorMatrix); var greenTable = lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getGreenTable(colorMatrix); var blueTable = lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getBlueTable(colorMatrix); var row; var offset; var pixel; var _g1 = 0; var _g = dataView.height; while(_g1 < _g) { var y = _g1++; row = dataView.offset + dataView.stride * y; var _g3 = 0; var _g2 = dataView.width; while(_g3 < _g2) { var x = _g3++; offset = row + x * 4; switch(format) { case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (pixel & 255); var r; var idx = Math.round((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; pixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | pixel & 255 & 255; } } pixel = (redTable[pixel >> 24 & 255] & 255) << 24 | (greenTable[pixel >> 16 & 255] & 255) << 16 | (blueTable[pixel >> 8 & 255] & 255) << 8 | alphaTable[pixel & 255] & 255; if(premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) pixel = 0; } else if((pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[pixel & 255]; pixel = ((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(format) { case 2: data[offset] = pixel >> 8 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 24 & 255; data[offset + 3] = pixel & 255; break; case 0: data[offset] = pixel >> 24 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 8 & 255; data[offset + 3] = pixel & 255; break; case 1: data[offset] = pixel & 255; data[offset + 1] = pixel >> 24 & 255; data[offset + 2] = pixel >> 16 & 255; data[offset + 3] = pixel >> 8 & 255; break; } } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) { var destIdx; switch(destChannel[1]) { case 0: destIdx = 0; break; case 1: destIdx = 1; break; case 2: destIdx = 2; break; case 3: destIdx = 3; break; } var srcIdx; switch(sourceChannel[1]) { case 0: srcIdx = 0; break; case 1: srcIdx = 1; break; case 2: srcIdx = 2; break; case 3: srcIdx = 3; break; } var srcData = sourceImage.buffer.data; var destData = image.buffer.data; if(srcData == null || destData == null) return; var srcView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(destPoint.x,destPoint.y,srcView.width,srcView.height)); var srcFormat = sourceImage.buffer.format; var destFormat = image.buffer.format; var srcPremultiplied = sourceImage.buffer.premultiplied; var destPremultiplied = image.buffer.premultiplied; var srcPosition; var destPosition; var srcPixel; var destPixel; var value = 0; var _g1 = 0; var _g = destView.height; while(_g1 < _g) { var y = _g1++; srcPosition = srcView.offset + srcView.stride * y; destPosition = destView.offset + destView.stride * y; var _g3 = 0; var _g2 = destView.width; while(_g3 < _g2) { var x = _g3++; switch(srcFormat) { case 2: srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255; break; case 0: srcPixel = (srcData[srcPosition] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition + 2] & 255) << 8 | srcData[srcPosition + 3] & 255; break; case 1: srcPixel = (srcData[srcPosition + 1] & 255) << 24 | (srcData[srcPosition + 2] & 255) << 16 | (srcData[srcPosition + 3] & 255) << 8 | srcData[srcPosition] & 255; break; } if(srcPremultiplied) { if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (srcPixel & 255); var r; var idx = Math.round((srcPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((srcPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((srcPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; srcPixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | srcPixel & 255 & 255; } } switch(destFormat) { case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; case 0: destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255; break; case 1: destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255; break; } if(destPremultiplied) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (destPixel & 255); var r1; var idx3 = Math.round((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx3]; var g1; var idx4 = Math.round((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx4]; var b1; var idx5 = Math.round((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx5]; destPixel = (r1 & 255) << 24 | (g1 & 255) << 16 | (b1 & 255) << 8 | destPixel & 255 & 255; } } switch(srcIdx) { case 0: value = srcPixel >> 24 & 255; break; case 1: value = srcPixel >> 16 & 255; break; case 2: value = srcPixel >> 8 & 255; break; case 3: value = srcPixel & 255; break; } switch(destIdx) { case 0: destPixel = (value & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value; break; case 1: destPixel = (destPixel >> 24 & 255 & 255) << 24 | (value & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value; break; case 2: destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (value & 255) << 8 | destPixel & 255 & 255; value; break; case 3: destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | value & 255; value; break; } if(destPremultiplied) { if((destPixel & 255) == 0) { if(destPixel != 0) destPixel = 0; } else if((destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[destPixel & 255]; destPixel = ((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = destPixel >> 8 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 24 & 255; destData[destPosition + 3] = destPixel & 255; break; case 0: destData[destPosition] = destPixel >> 24 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 8 & 255; destData[destPosition + 3] = destPixel & 255; break; case 1: destData[destPosition] = destPixel & 255; destData[destPosition + 1] = destPixel >> 24 & 255; destData[destPosition + 2] = destPixel >> 16 & 255; destData[destPosition + 3] = destPixel >> 8 & 255; break; } srcPosition += 4; destPosition += 4; } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) { if(mergeAlpha == null) mergeAlpha = false; var sourceData = sourceImage.buffer.data; var destData = image.buffer.data; if(sourceData == null || destData == null) return; var sourceView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(destPoint.x,destPoint.y,sourceView.width,sourceView.height)); var sourceFormat = sourceImage.buffer.format; var destFormat = image.buffer.format; var sourcePremultiplied = sourceImage.buffer.premultiplied; var destPremultiplied = image.buffer.premultiplied; var sourcePosition; var destPosition; var sourcePixel; if(!mergeAlpha || !sourceImage.get_transparent()) { var _g1 = 0; var _g = destView.height; while(_g1 < _g) { var y = _g1++; sourcePosition = sourceView.offset + sourceView.stride * y; destPosition = destView.offset + destView.stride * y; var _g3 = 0; var _g2 = destView.width; while(_g3 < _g2) { var x = _g3++; switch(sourceFormat) { case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 0: sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 1: sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255; break; } if(sourcePremultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (sourcePixel & 255); var r; var idx = Math.round((sourcePixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((sourcePixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((sourcePixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; sourcePixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | sourcePixel & 255 & 255; } } if(destPremultiplied) { if((sourcePixel & 255) == 0) { if(sourcePixel != 0) sourcePixel = 0; } else if((sourcePixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[sourcePixel & 255]; sourcePixel = ((sourcePixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((sourcePixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((sourcePixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = sourcePixel >> 8 & 255; destData[destPosition + 1] = sourcePixel >> 16 & 255; destData[destPosition + 2] = sourcePixel >> 24 & 255; destData[destPosition + 3] = sourcePixel & 255; break; case 0: destData[destPosition] = sourcePixel >> 24 & 255; destData[destPosition + 1] = sourcePixel >> 16 & 255; destData[destPosition + 2] = sourcePixel >> 8 & 255; destData[destPosition + 3] = sourcePixel & 255; break; case 1: destData[destPosition] = sourcePixel & 255; destData[destPosition + 1] = sourcePixel >> 24 & 255; destData[destPosition + 2] = sourcePixel >> 16 & 255; destData[destPosition + 3] = sourcePixel >> 8 & 255; break; } sourcePosition += 4; destPosition += 4; } } } else { var sourceAlpha; var destAlpha; var oneMinusSourceAlpha; var blendAlpha; var destPixel; if(alphaImage == null) { var _g11 = 0; var _g4 = destView.height; while(_g11 < _g4) { var y1 = _g11++; sourcePosition = sourceView.offset + sourceView.stride * y1; destPosition = destView.offset + destView.stride * y1; var _g31 = 0; var _g21 = destView.width; while(_g31 < _g21) { var x1 = _g31++; switch(sourceFormat) { case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 0: sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 1: sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255; break; } if(sourcePremultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (sourcePixel & 255); var r1; var idx3 = Math.round((sourcePixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx3]; var g1; var idx4 = Math.round((sourcePixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx4]; var b1; var idx5 = Math.round((sourcePixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx5]; sourcePixel = (r1 & 255) << 24 | (g1 & 255) << 16 | (b1 & 255) << 8 | sourcePixel & 255 & 255; } } switch(destFormat) { case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; case 0: destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255; break; case 1: destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255; break; } if(destPremultiplied) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (destPixel & 255); var r2; var idx6 = Math.round((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r2 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx6]; var g2; var idx7 = Math.round((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g2 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx7]; var b2; var idx8 = Math.round((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b2 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx8]; destPixel = (r2 & 255) << 24 | (g2 & 255) << 16 | (b2 & 255) << 8 | destPixel & 255 & 255; } } sourceAlpha = (sourcePixel & 255) / 255.0; destAlpha = (destPixel & 255) / 255.0; oneMinusSourceAlpha = 1 - sourceAlpha; blendAlpha = sourceAlpha + destAlpha * oneMinusSourceAlpha; if(blendAlpha == 0) destPixel = 0; else { var value; var idx9 = Math.round(((sourcePixel >> 24 & 255) * sourceAlpha + (destPixel >> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx9]; destPixel = (value & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value; var value1; var idx10 = Math.round(((sourcePixel >> 16 & 255) * sourceAlpha + (destPixel >> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx10]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value1; var value2; var idx11 = Math.round(((sourcePixel >> 8 & 255) * sourceAlpha + (destPixel >> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value2 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx11]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255; value2; var value3; var idx12 = Math.round(blendAlpha * 255.0); value3 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx12]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | value3 & 255; value3; } if(destPremultiplied) { if((destPixel & 255) == 0) { if(destPixel != 0) destPixel = 0; } else if((destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[destPixel & 255]; destPixel = ((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = destPixel >> 8 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 24 & 255; destData[destPosition + 3] = destPixel & 255; break; case 0: destData[destPosition] = destPixel >> 24 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 8 & 255; destData[destPosition + 3] = destPixel & 255; break; case 1: destData[destPosition] = destPixel & 255; destData[destPosition + 1] = destPixel >> 24 & 255; destData[destPosition + 2] = destPixel >> 16 & 255; destData[destPosition + 3] = destPixel >> 8 & 255; break; } sourcePosition += 4; destPosition += 4; } } } else { if(alphaPoint == null) alphaPoint = new lime_math_Vector2(); var alphaData = alphaImage.buffer.data; var alphaFormat = alphaImage.buffer.format; var alphaPremultiplied = alphaImage.buffer.premultiplied; var alphaView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(alphaImage,new lime_math_Rectangle(alphaPoint.x,alphaPoint.y,destView.width,destView.height)); var alphaPosition; var alphaPixel; var _g12 = 0; var _g5 = alphaView.height; while(_g12 < _g5) { var y2 = _g12++; sourcePosition = sourceView.offset + sourceView.stride * y2; destPosition = destView.offset + destView.stride * y2; alphaPosition = alphaView.offset + alphaView.stride * y2; var _g32 = 0; var _g22 = alphaView.width; while(_g32 < _g22) { var x2 = _g32++; switch(sourceFormat) { case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 0: sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 1: sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255; break; } if(sourcePremultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (sourcePixel & 255); var r3; var idx13 = Math.round((sourcePixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r3 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx13]; var g3; var idx14 = Math.round((sourcePixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g3 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx14]; var b3; var idx15 = Math.round((sourcePixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b3 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx15]; sourcePixel = (r3 & 255) << 24 | (g3 & 255) << 16 | (b3 & 255) << 8 | sourcePixel & 255 & 255; } } switch(destFormat) { case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; case 0: destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255; break; case 1: destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255; break; } if(destPremultiplied) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (destPixel & 255); var r4; var idx16 = Math.round((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r4 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx16]; var g4; var idx17 = Math.round((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g4 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx17]; var b4; var idx18 = Math.round((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b4 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx18]; destPixel = (r4 & 255) << 24 | (g4 & 255) << 16 | (b4 & 255) << 8 | destPixel & 255 & 255; } } switch(alphaFormat) { case 2: alphaPixel = (alphaData[alphaPosition + 2] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition] & 255) << 8 | alphaData[alphaPosition + 3] & 255; break; case 0: alphaPixel = (alphaData[alphaPosition] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition + 2] & 255) << 8 | alphaData[alphaPosition + 3] & 255; break; case 1: alphaPixel = (alphaData[alphaPosition + 1] & 255) << 24 | (alphaData[alphaPosition + 2] & 255) << 16 | (alphaData[alphaPosition + 3] & 255) << 8 | alphaData[alphaPosition] & 255; break; } if(alphaPremultiplied) { if((alphaPixel & 255) != 0 && (alphaPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (alphaPixel & 255); var r5; var idx19 = Math.round((alphaPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r5 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx19]; var g5; var idx20 = Math.round((alphaPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g5 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx20]; var b5; var idx21 = Math.round((alphaPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b5 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx21]; alphaPixel = (r5 & 255) << 24 | (g5 & 255) << 16 | (b5 & 255) << 8 | alphaPixel & 255 & 255; } } sourceAlpha = (alphaPixel & 255) / 255; destAlpha = (destPixel & 255) / 255; oneMinusSourceAlpha = 1 - sourceAlpha; blendAlpha = sourceAlpha + destAlpha * oneMinusSourceAlpha; if(blendAlpha == 0) destPixel = 0; else { var value4; var idx22 = Math.round(((sourcePixel >> 24 & 255) * sourceAlpha + (destPixel >> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value4 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx22]; destPixel = (value4 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value4; var value5; var idx23 = Math.round(((sourcePixel >> 16 & 255) * sourceAlpha + (destPixel >> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value5 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx23]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (value5 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value5; var value6; var idx24 = Math.round(((sourcePixel >> 8 & 255) * sourceAlpha + (destPixel >> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha); value6 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx24]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (value6 & 255) << 8 | destPixel & 255 & 255; value6; var value7; var idx25 = Math.round(blendAlpha * 255.0); value7 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx25]; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | value7 & 255; value7; } if(destPremultiplied) { if((destPixel & 255) == 0) { if(destPixel != 0) destPixel = 0; } else if((destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[destPixel & 255]; destPixel = ((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = destPixel >> 8 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 24 & 255; destData[destPosition + 3] = destPixel & 255; break; case 0: destData[destPosition] = destPixel >> 24 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 8 & 255; destData[destPosition + 3] = destPixel & 255; break; case 1: destData[destPosition] = destPixel & 255; destData[destPosition + 1] = destPixel >> 24 & 255; destData[destPosition + 2] = destPixel >> 16 & 255; destData[destPosition + 3] = destPixel >> 8 & 255; break; } sourcePosition += 4; destPosition += 4; } } } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.fillRect = function(image,rect,color,format) { var fillColor; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; fillColor = rgba; } break; case 2: { var bgra = color; var rgba1 = 0; rgba1 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; fillColor = rgba1; } break; default: fillColor = color; } if(!image.get_transparent()) { fillColor = (fillColor >> 24 & 255 & 255) << 24 | (fillColor >> 16 & 255 & 255) << 16 | (fillColor >> 8 & 255 & 255) << 8 | 255; 255; } var data = image.buffer.data; if(data == null) return; var format1 = image.buffer.format; var premultiplied = image.buffer.premultiplied; var dataView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,rect); var row; var _g1 = 0; var _g = dataView.height; while(_g1 < _g) { var y = _g1++; row = dataView.offset + dataView.stride * y; var _g3 = 0; var _g2 = dataView.width; while(_g3 < _g2) { var x = _g3++; var offset = row + x * 4; if(premultiplied) { if((fillColor & 255) == 0) { if(fillColor != 0) fillColor = 0; } else if((fillColor & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[fillColor & 255]; fillColor = ((fillColor >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((fillColor >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((fillColor >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } switch(format1) { case 2: data[offset] = fillColor >> 8 & 255; data[offset + 1] = fillColor >> 16 & 255; data[offset + 2] = fillColor >> 24 & 255; data[offset + 3] = fillColor & 255; break; case 0: data[offset] = fillColor >> 24 & 255; data[offset + 1] = fillColor >> 16 & 255; data[offset + 2] = fillColor >> 8 & 255; data[offset + 3] = fillColor & 255; break; case 1: data[offset] = fillColor & 255; data[offset + 1] = fillColor >> 24 & 255; data[offset + 2] = fillColor >> 16 & 255; data[offset + 3] = fillColor >> 8 & 255; break; } } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.floodFill = function(image,x,y,color,format) { var data = image.buffer.data; if(data == null) return; if(format == 1) color = (color & 16777215) << 8 | color >> 24 & 255; var format1 = image.buffer.format; var premultiplied = image.buffer.premultiplied; var fillColor = color; var hitColor; var offset = (y + image.offsetY) * (image.buffer.width * 4) + (x + image.offsetX) * 4; switch(format1) { case 2: hitColor = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: hitColor = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: hitColor = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(premultiplied) { if((hitColor & 255) != 0 && (hitColor & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (hitColor & 255); var r; var idx = Math.round((hitColor >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((hitColor >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((hitColor >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; hitColor = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | hitColor & 255 & 255; } } if(!image.get_transparent()) { fillColor = (fillColor >> 24 & 255 & 255) << 24 | (fillColor >> 16 & 255 & 255) << 16 | (fillColor >> 8 & 255 & 255) << 8 | 255; 255; hitColor = (hitColor >> 24 & 255 & 255) << 24 | (hitColor >> 16 & 255 & 255) << 16 | (hitColor >> 8 & 255 & 255) << 8 | 255; 255; } if(fillColor == hitColor) return; var dx = [0,-1,1,0]; var dy = [-1,0,0,1]; var minX = -image.offsetX; var minY = -image.offsetY; var maxX = minX + image.width; var maxY = minY + image.height; var queue = []; queue.push(x); queue.push(y); var curPointX; var curPointY; var nextPointX; var nextPointY; var nextPointOffset; var readColor; while(queue.length > 0) { curPointY = queue.pop(); curPointX = queue.pop(); var _g = 0; while(_g < 4) { var i = _g++; nextPointX = curPointX + dx[i]; nextPointY = curPointY + dy[i]; if(nextPointX < minX || nextPointY < minY || nextPointX >= maxX || nextPointY >= maxY) continue; nextPointOffset = (nextPointY * image.width + nextPointX) * 4; switch(format1) { case 2: readColor = (data[nextPointOffset + 2] & 255) << 24 | (data[nextPointOffset + 1] & 255) << 16 | (data[nextPointOffset] & 255) << 8 | data[nextPointOffset + 3] & 255; break; case 0: readColor = (data[nextPointOffset] & 255) << 24 | (data[nextPointOffset + 1] & 255) << 16 | (data[nextPointOffset + 2] & 255) << 8 | data[nextPointOffset + 3] & 255; break; case 1: readColor = (data[nextPointOffset + 1] & 255) << 24 | (data[nextPointOffset + 2] & 255) << 16 | (data[nextPointOffset + 3] & 255) << 8 | data[nextPointOffset] & 255; break; } if(premultiplied) { if((readColor & 255) != 0 && (readColor & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (readColor & 255); var r1; var idx3 = Math.round((readColor >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx3]; var g1; var idx4 = Math.round((readColor >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx4]; var b1; var idx5 = Math.round((readColor >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx5]; readColor = (r1 & 255) << 24 | (g1 & 255) << 16 | (b1 & 255) << 8 | readColor & 255 & 255; } } if(readColor == hitColor) { if(premultiplied) { if((fillColor & 255) == 0) { if(fillColor != 0) fillColor = 0; } else if((fillColor & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[fillColor & 255]; fillColor = ((fillColor >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((fillColor >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((fillColor >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | fillColor & 255 & 255; } } switch(format1) { case 2: data[nextPointOffset] = fillColor >> 8 & 255; data[nextPointOffset + 1] = fillColor >> 16 & 255; data[nextPointOffset + 2] = fillColor >> 24 & 255; data[nextPointOffset + 3] = fillColor & 255; break; case 0: data[nextPointOffset] = fillColor >> 24 & 255; data[nextPointOffset + 1] = fillColor >> 16 & 255; data[nextPointOffset + 2] = fillColor >> 8 & 255; data[nextPointOffset + 3] = fillColor & 255; break; case 1: data[nextPointOffset] = fillColor & 255; data[nextPointOffset + 1] = fillColor >> 24 & 255; data[nextPointOffset + 2] = fillColor >> 16 & 255; data[nextPointOffset + 3] = fillColor >> 8 & 255; break; } queue.push(nextPointX); queue.push(nextPointY); } } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.getColorBoundsRect = function(image,mask,color,findColor,format) { if(findColor == null) findColor = true; var left = image.width + 1; var right = 0; var top = image.height + 1; var bottom = 0; var _color; var _mask; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; _color = rgba; } { var argb1 = mask; var rgba1 = 0; rgba1 = (argb1 >> 16 & 255 & 255) << 24 | (argb1 >> 8 & 255 & 255) << 16 | (argb1 & 255 & 255) << 8 | argb1 >> 24 & 255 & 255; _mask = rgba1; } break; case 2: { var bgra = color; var rgba2 = 0; rgba2 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; _color = rgba2; } { var bgra1 = mask; var rgba3 = 0; rgba3 = (bgra1 >> 8 & 255 & 255) << 24 | (bgra1 >> 16 & 255 & 255) << 16 | (bgra1 >> 24 & 255 & 255) << 8 | bgra1 & 255 & 255; _mask = rgba3; } break; default: _color = color; _mask = mask; } if(!image.get_transparent()) { _color = (_color >> 24 & 255 & 255) << 24 | (_color >> 16 & 255 & 255) << 16 | (_color >> 8 & 255 & 255) << 8 | 255; 255; _mask = (_mask >> 24 & 255 & 255) << 24 | (_mask >> 16 & 255 & 255) << 16 | (_mask >> 8 & 255 & 255) << 8 | 255; 255; } var pixel; var hit; var _g1 = 0; var _g = image.width; while(_g1 < _g) { var x = _g1++; hit = false; var _g3 = 0; var _g2 = image.height; while(_g3 < _g2) { var y = _g3++; pixel = image.getPixel32(x,y,0); if(findColor) hit = (pixel & _mask) == _color; else hit = (pixel & _mask) != _color; if(hit) { if(x < left) left = x; break; } } if(hit) break; } var ix; var _g11 = 0; var _g4 = image.width; while(_g11 < _g4) { var x1 = _g11++; ix = image.width - 1 - x1; hit = false; var _g31 = 0; var _g21 = image.height; while(_g31 < _g21) { var y1 = _g31++; pixel = image.getPixel32(ix,y1,0); if(findColor) hit = (pixel & _mask) == _color; else hit = (pixel & _mask) != _color; if(hit) { if(ix > right) right = ix; break; } } if(hit) break; } var _g12 = 0; var _g5 = image.height; while(_g12 < _g5) { var y2 = _g12++; hit = false; var _g32 = 0; var _g22 = image.width; while(_g32 < _g22) { var x2 = _g32++; pixel = image.getPixel32(x2,y2,0); if(findColor) hit = (pixel & _mask) == _color; else hit = (pixel & _mask) != _color; if(hit) { if(y2 < top) top = y2; break; } } if(hit) break; } var iy; var _g13 = 0; var _g6 = image.height; while(_g13 < _g6) { var y3 = _g13++; iy = image.height - 1 - y3; hit = false; var _g33 = 0; var _g23 = image.width; while(_g33 < _g23) { var x3 = _g33++; pixel = image.getPixel32(x3,iy,0); if(findColor) hit = (pixel & _mask) == _color; else hit = (pixel & _mask) != _color; if(hit) { if(iy > bottom) bottom = iy; break; } } if(hit) break; } var w = right - left; var h = bottom - top; if(w > 0) w++; if(h > 0) h++; if(w < 0) w = 0; if(h < 0) h = 0; if(left == right) w = 1; if(top == bottom) h = 1; if(left > image.width) left = 0; if(top > image.height) top = 0; return new lime_math_Rectangle(left,top,w,h); }; lime_graphics_utils_ImageDataUtil.getPixel = function(image,x,y,format) { var pixel; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; switch(image.buffer.format) { case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(image.buffer.premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (pixel & 255); var r; var idx = Math.round((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; pixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | pixel & 255 & 255; } } pixel = (pixel >> 24 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 8 & 255 & 255) << 8 | 0; 0; switch(format) { case 1: return (function($this) { var $r; var argb = 0; argb = (pixel & 255 & 255) << 24 | (pixel >> 24 & 255 & 255) << 16 | (pixel >> 16 & 255 & 255) << 8 | pixel >> 8 & 255 & 255; $r = argb; return $r; }(this)); case 2: return (function($this) { var $r; var bgra = 0; bgra = (pixel >> 8 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 24 & 255 & 255) << 8 | pixel & 255 & 255; $r = bgra; return $r; }(this)); default: return pixel; } }; lime_graphics_utils_ImageDataUtil.getPixel32 = function(image,x,y,format) { var pixel; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; switch(image.buffer.format) { case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(image.buffer.premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (pixel & 255); var r; var idx = Math.round((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; pixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | pixel & 255 & 255; } } switch(format) { case 1: return (function($this) { var $r; var argb = 0; argb = (pixel & 255 & 255) << 24 | (pixel >> 24 & 255 & 255) << 16 | (pixel >> 16 & 255 & 255) << 8 | pixel >> 8 & 255 & 255; $r = argb; return $r; }(this)); case 2: return (function($this) { var $r; var bgra = 0; bgra = (pixel >> 8 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 24 & 255 & 255) << 8 | pixel & 255 & 255; $r = bgra; return $r; }(this)); default: return pixel; } }; lime_graphics_utils_ImageDataUtil.getPixels = function(image,rect,format) { if(image.buffer.data == null) return null; var length = rect.width * rect.height | 0; var bytes = haxe_io_Bytes.alloc(length * 4); var data = image.buffer.data; var sourceFormat = image.buffer.format; var premultiplied = image.buffer.premultiplied; var dataView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,rect); var position; var argb; var bgra; var pixel; var destPosition = 0; var _g1 = 0; var _g = dataView.height; while(_g1 < _g) { var y = _g1++; position = dataView.offset + dataView.stride * y; var _g3 = 0; var _g2 = dataView.width; while(_g3 < _g2) { var x = _g3++; switch(sourceFormat) { case 2: pixel = (data[position + 2] & 255) << 24 | (data[position + 1] & 255) << 16 | (data[position] & 255) << 8 | data[position + 3] & 255; break; case 0: pixel = (data[position] & 255) << 24 | (data[position + 1] & 255) << 16 | (data[position + 2] & 255) << 8 | data[position + 3] & 255; break; case 1: pixel = (data[position + 1] & 255) << 24 | (data[position + 2] & 255) << 16 | (data[position + 3] & 255) << 8 | data[position] & 255; break; } if(premultiplied) { if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (pixel & 255); var r; var idx = Math.round((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; pixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | pixel & 255 & 255; } } switch(format) { case 1: { var argb1 = 0; argb1 = (pixel & 255 & 255) << 24 | (pixel >> 24 & 255 & 255) << 16 | (pixel >> 16 & 255 & 255) << 8 | pixel >> 8 & 255 & 255; argb = argb1; } pixel = argb; break; case 2: { var bgra1 = 0; bgra1 = (pixel >> 8 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 24 & 255 & 255) << 8 | pixel & 255 & 255; bgra = bgra1; } pixel = bgra; break; default: } bytes.set(destPosition++,pixel >> 24 & 255); bytes.set(destPosition++,pixel >> 16 & 255); bytes.set(destPosition++,pixel >> 8 & 255); bytes.set(destPosition++,pixel & 255); position += 4; } } return bytes; }; lime_graphics_utils_ImageDataUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) { if(image.buffer.data == null || sourceImage.buffer.data == null) return; var sourceView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(destPoint.x,destPoint.y,sourceView.width,sourceView.height)); var sourceData = sourceImage.buffer.data; var destData = image.buffer.data; var sourceFormat = sourceImage.buffer.format; var destFormat = image.buffer.format; var sourcePremultiplied = sourceImage.buffer.premultiplied; var destPremultiplied = image.buffer.premultiplied; var sourcePosition; var destPosition; var sourcePixel; var destPixel; var _g1 = 0; var _g = destView.height; while(_g1 < _g) { var y = _g1++; sourcePosition = sourceView.offset + sourceView.stride * y; destPosition = destView.offset + destView.stride * y; var _g3 = 0; var _g2 = destView.width; while(_g3 < _g2) { var x = _g3++; switch(sourceFormat) { case 2: sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 0: sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255; break; case 1: sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255; break; } if(sourcePremultiplied) { if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (sourcePixel & 255); var r; var idx = Math.round((sourcePixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((sourcePixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((sourcePixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; sourcePixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | sourcePixel & 255 & 255; } } switch(destFormat) { case 2: destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255; break; case 0: destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255; break; case 1: destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255; break; } if(destPremultiplied) { if((destPixel & 255) != 0 && (destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (destPixel & 255); var r1; var idx3 = Math.round((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx3]; var g1; var idx4 = Math.round((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx4]; var b1; var idx5 = Math.round((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b1 = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx5]; destPixel = (r1 & 255) << 24 | (g1 & 255) << 16 | (b1 & 255) << 8 | destPixel & 255 & 255; } } var value = ((sourcePixel >> 24 & 255) * redMultiplier + (destPixel >> 24 & 255) * (256 - redMultiplier)) / 256 | 0; destPixel = (value & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value; var value1 = ((sourcePixel >> 16 & 255) * greenMultiplier + (destPixel >> 16 & 255) * (256 - greenMultiplier)) / 256 | 0; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | destPixel & 255 & 255; value1; var value2 = ((sourcePixel >> 8 & 255) * blueMultiplier + (destPixel >> 8 & 255) * (256 - blueMultiplier)) / 256 | 0; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255; value2; var value3 = ((sourcePixel & 255) * alphaMultiplier + (destPixel & 255) * (256 - alphaMultiplier)) / 256 | 0; destPixel = (destPixel >> 24 & 255 & 255) << 24 | (destPixel >> 16 & 255 & 255) << 16 | (destPixel >> 8 & 255 & 255) << 8 | value3 & 255; value3; if(destPremultiplied) { if((destPixel & 255) == 0) { if(destPixel != 0) destPixel = 0; } else if((destPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[destPixel & 255]; destPixel = ((destPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((destPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((destPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | destPixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = destPixel >> 8 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 24 & 255; destData[destPosition + 3] = destPixel & 255; break; case 0: destData[destPosition] = destPixel >> 24 & 255; destData[destPosition + 1] = destPixel >> 16 & 255; destData[destPosition + 2] = destPixel >> 8 & 255; destData[destPosition + 3] = destPixel & 255; break; case 1: destData[destPosition] = destPixel & 255; destData[destPosition + 1] = destPixel >> 24 & 255; destData[destPosition + 2] = destPixel >> 16 & 255; destData[destPosition + 3] = destPixel >> 8 & 255; break; } sourcePosition += 4; destPosition += 4; } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.multiplyAlpha = function(image) { var data = image.buffer.data; if(data == null || !image.buffer.transparent) return; var format = image.buffer.format; var length = data.length / 4 | 0; var pixel; var _g = 0; while(_g < length) { var i = _g++; var offset = i * 4; switch(format) { case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } var offset1 = i * 4; if((pixel & 255) == 0) { if(pixel != 0) pixel = 0; } else if((pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[pixel & 255]; pixel = ((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } switch(format) { case 2: data[offset1] = pixel >> 8 & 255; data[offset1 + 1] = pixel >> 16 & 255; data[offset1 + 2] = pixel >> 24 & 255; data[offset1 + 3] = pixel & 255; break; case 0: data[offset1] = pixel >> 24 & 255; data[offset1 + 1] = pixel >> 16 & 255; data[offset1 + 2] = pixel >> 8 & 255; data[offset1 + 3] = pixel & 255; break; case 1: data[offset1] = pixel & 255; data[offset1 + 1] = pixel >> 24 & 255; data[offset1 + 2] = pixel >> 16 & 255; data[offset1 + 3] = pixel >> 8 & 255; break; } } image.buffer.premultiplied = true; image.dirty = true; }; lime_graphics_utils_ImageDataUtil.resize = function(image,newWidth,newHeight) { var buffer = image.buffer; if(buffer.width == newWidth && buffer.height == newHeight) return; var newBuffer = new lime_graphics_ImageBuffer((function($this) { var $r; var elements = newWidth * newHeight * 4; var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; $r = this1; return $r; }(this)),newWidth,newHeight); var imageWidth = image.width; var imageHeight = image.height; var data = image.get_data(); var newData = newBuffer.data; var sourceIndex; var sourceIndexX; var sourceIndexY; var sourceIndexXY; var index; var sourceX; var sourceY; var u; var v; var uRatio; var vRatio; var uOpposite; var vOpposite; var _g = 0; while(_g < newHeight) { var y = _g++; var _g1 = 0; while(_g1 < newWidth) { var x = _g1++; u = (x + 0.5) / newWidth * imageWidth - 0.5; v = (y + 0.5) / newHeight * imageHeight - 0.5; sourceX = u | 0; sourceY = v | 0; sourceIndex = (sourceY * imageWidth + sourceX) * 4; if(sourceX < imageWidth - 1) sourceIndexX = sourceIndex + 4; else sourceIndexX = sourceIndex; if(sourceY < imageHeight - 1) sourceIndexY = sourceIndex + imageWidth * 4; else sourceIndexY = sourceIndex; if(sourceIndexX != sourceIndex) sourceIndexXY = sourceIndexY + 4; else sourceIndexXY = sourceIndexY; index = (y * newWidth + x) * 4; uRatio = u - sourceX; vRatio = v - sourceY; uOpposite = 1 - uRatio; vOpposite = 1 - vRatio; var val = Std["int"]((_$UInt_UInt_$Impl_$.toFloat(data[sourceIndex]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexX]) * uRatio) * vOpposite + (_$UInt_UInt_$Impl_$.toFloat(data[sourceIndexY]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexXY]) * uRatio) * vRatio); newData[index] = val; var val1 = Std["int"]((_$UInt_UInt_$Impl_$.toFloat(data[sourceIndex + 1]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexX + 1]) * uRatio) * vOpposite + (_$UInt_UInt_$Impl_$.toFloat(data[sourceIndexY + 1]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexXY + 1]) * uRatio) * vRatio); newData[index + 1] = val1; var val2 = Std["int"]((_$UInt_UInt_$Impl_$.toFloat(data[sourceIndex + 2]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexX + 2]) * uRatio) * vOpposite + (_$UInt_UInt_$Impl_$.toFloat(data[sourceIndexY + 2]) * uOpposite + _$UInt_UInt_$Impl_$.toFloat(data[sourceIndexXY + 2]) * uRatio) * vRatio); newData[index + 2] = val2; if(data[sourceIndexX + 3] == 0 || data[sourceIndexY + 3] == 0 || data[sourceIndexXY + 3] == 0) newData[index + 3] = 0; else newData[index + 3] = data[sourceIndex + 3]; } } buffer.data = newBuffer.data; buffer.width = newWidth; buffer.height = newHeight; }; lime_graphics_utils_ImageDataUtil.resizeBuffer = function(image,newWidth,newHeight) { var buffer = image.buffer; var data = image.get_data(); var newData; var elements = newWidth * newHeight * 4; var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; newData = this1; var sourceIndex; var index; var _g1 = 0; var _g = buffer.height; while(_g1 < _g) { var y = _g1++; var _g3 = 0; var _g2 = buffer.width; while(_g3 < _g2) { var x = _g3++; sourceIndex = (y * buffer.width + x) * 4; index = (y * newWidth + x) * 4; newData[index] = data[sourceIndex]; newData[index + 1] = data[sourceIndex + 1]; newData[index + 2] = data[sourceIndex + 2]; newData[index + 3] = data[sourceIndex + 3]; } } buffer.data = newData; buffer.width = newWidth; buffer.height = newHeight; }; lime_graphics_utils_ImageDataUtil.setFormat = function(image,format) { var data = image.buffer.data; if(data == null) return; var index; var a16; var length = data.length / 4 | 0; var r1; var g1; var b1; var a1; var r2; var g2; var b2; var a2; var r; var g; var b; var a; var _g = image.get_format(); switch(_g) { case 0: r1 = 0; g1 = 1; b1 = 2; a1 = 3; break; case 1: r1 = 1; g1 = 2; b1 = 3; a1 = 0; break; case 2: r1 = 2; g1 = 1; b1 = 0; a1 = 3; break; } switch(format) { case 0: r2 = 0; g2 = 1; b2 = 2; a2 = 3; break; case 1: r2 = 1; g2 = 2; b2 = 3; a2 = 0; break; case 2: r2 = 2; g2 = 1; b2 = 0; a2 = 3; break; } var _g1 = 0; while(_g1 < length) { var i = _g1++; index = i * 4; r = data[index + r1]; g = data[index + g1]; b = data[index + b1]; a = data[index + a1]; data[index + r2] = r; data[index + g2] = g; data[index + b2] = b; data[index + a2] = a; } image.buffer.format = format; image.dirty = true; }; lime_graphics_utils_ImageDataUtil.setPixel = function(image,x,y,color,format) { var pixel; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; pixel = rgba; } break; case 2: { var bgra = color; var rgba1 = 0; rgba1 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; pixel = rgba1; } break; default: pixel = color; } var source = 0; var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; switch(image.buffer.format) { case 2: source = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: source = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: source = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(image.buffer.premultiplied) { if((source & 255) != 0 && (source & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (source & 255); var r; var idx = Math.round((source >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((source >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((source >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; source = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | source & 255 & 255; } } var value = source & 255; pixel = (pixel >> 24 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 8 & 255 & 255) << 8 | value & 255; value; var data1 = image.buffer.data; var offset1 = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; if(image.buffer.premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) pixel = 0; } else if((pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[pixel & 255]; pixel = ((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(image.buffer.format) { case 2: data1[offset1] = pixel >> 8 & 255; data1[offset1 + 1] = pixel >> 16 & 255; data1[offset1 + 2] = pixel >> 24 & 255; data1[offset1 + 3] = pixel & 255; break; case 0: data1[offset1] = pixel >> 24 & 255; data1[offset1 + 1] = pixel >> 16 & 255; data1[offset1 + 2] = pixel >> 8 & 255; data1[offset1 + 3] = pixel & 255; break; case 1: data1[offset1] = pixel & 255; data1[offset1 + 1] = pixel >> 24 & 255; data1[offset1 + 2] = pixel >> 16 & 255; data1[offset1 + 3] = pixel >> 8 & 255; break; } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.setPixel32 = function(image,x,y,color,format) { var pixel; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; pixel = rgba; } break; case 2: { var bgra = color; var rgba1 = 0; rgba1 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; pixel = rgba1; } break; default: pixel = color; } if(!image.get_transparent()) { pixel = (pixel >> 24 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 8 & 255 & 255) << 8 | 255; 255; } var data = image.buffer.data; var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4; if(image.buffer.premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) pixel = 0; } else if((pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[pixel & 255]; pixel = ((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(image.buffer.format) { case 2: data[offset] = pixel >> 8 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 24 & 255; data[offset + 3] = pixel & 255; break; case 0: data[offset] = pixel >> 24 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 8 & 255; data[offset + 3] = pixel & 255; break; case 1: data[offset] = pixel & 255; data[offset + 1] = pixel >> 24 & 255; data[offset + 2] = pixel >> 16 & 255; data[offset + 3] = pixel >> 8 & 255; break; } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.setPixels = function(image,rect,bytes,format) { if(image.buffer.data == null) return; var data = image.buffer.data; var sourceFormat = image.buffer.format; var premultiplied = image.buffer.premultiplied; var dataView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,rect); var row; var color; var pixel; var transparent = image.get_transparent(); var dataPosition = 0; var _g1 = 0; var _g = dataView.height; while(_g1 < _g) { var y = _g1++; row = dataView.offset + dataView.stride * y; var _g3 = 0; var _g2 = dataView.width; while(_g3 < _g2) { var x = _g3++; color = bytes.b[dataPosition + 3] | bytes.b[dataPosition + 2] << 8 | bytes.b[dataPosition + 1] << 16 | bytes.b[dataPosition] << 24; dataPosition += 4; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; pixel = rgba; } break; case 2: { var bgra = color; var rgba1 = 0; rgba1 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; pixel = rgba1; } break; default: pixel = color; } if(!transparent) { pixel = (pixel >> 24 & 255 & 255) << 24 | (pixel >> 16 & 255 & 255) << 16 | (pixel >> 8 & 255 & 255) << 8 | 255; 255; } var offset = row + x * 4; if(premultiplied) { if((pixel & 255) == 0) { if(pixel != 0) pixel = 0; } else if((pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[pixel & 255]; pixel = ((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | pixel & 255 & 255; } } switch(sourceFormat) { case 2: data[offset] = pixel >> 8 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 24 & 255; data[offset + 3] = pixel & 255; break; case 0: data[offset] = pixel >> 24 & 255; data[offset + 1] = pixel >> 16 & 255; data[offset + 2] = pixel >> 8 & 255; data[offset + 3] = pixel & 255; break; case 1: data[offset] = pixel & 255; data[offset + 1] = pixel >> 24 & 255; data[offset + 2] = pixel >> 16 & 255; data[offset + 3] = pixel >> 8 & 255; break; } } } image.dirty = true; }; lime_graphics_utils_ImageDataUtil.threshold = function(image,sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format) { var _color; var _mask; var _threshold; switch(format) { case 1: { var argb = color; var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; _color = rgba; } { var argb1 = mask; var rgba1 = 0; rgba1 = (argb1 >> 16 & 255 & 255) << 24 | (argb1 >> 8 & 255 & 255) << 16 | (argb1 & 255 & 255) << 8 | argb1 >> 24 & 255 & 255; _mask = rgba1; } { var argb2 = threshold; var rgba2 = 0; rgba2 = (argb2 >> 16 & 255 & 255) << 24 | (argb2 >> 8 & 255 & 255) << 16 | (argb2 & 255 & 255) << 8 | argb2 >> 24 & 255 & 255; _threshold = rgba2; } break; case 2: { var bgra = color; var rgba3 = 0; rgba3 = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; _color = rgba3; } { var bgra1 = mask; var rgba4 = 0; rgba4 = (bgra1 >> 8 & 255 & 255) << 24 | (bgra1 >> 16 & 255 & 255) << 16 | (bgra1 >> 24 & 255 & 255) << 8 | bgra1 & 255 & 255; _mask = rgba4; } { var bgra2 = threshold; var rgba5 = 0; rgba5 = (bgra2 >> 8 & 255 & 255) << 24 | (bgra2 >> 16 & 255 & 255) << 16 | (bgra2 >> 24 & 255 & 255) << 8 | bgra2 & 255 & 255; _threshold = rgba5; } break; default: _color = color; _mask = mask; _threshold = threshold; } var _operation; switch(operation) { case "!=": _operation = 0; break; case "==": _operation = 1; break; case "<": _operation = 2; break; case "<=": _operation = 3; break; case ">": _operation = 4; break; case ">=": _operation = 5; break; default: _operation = -1; } if(_operation == -1) return 0; var srcData = sourceImage.buffer.data; var destData = image.buffer.data; if(srcData == null || destData == null) return 0; var hits = 0; var srcView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(sourceImage,sourceRect); var destView = new lime_graphics_utils__$ImageDataUtil_ImageDataView(image,new lime_math_Rectangle(destPoint.x,destPoint.y,srcView.width,srcView.height)); var srcFormat = sourceImage.buffer.format; var destFormat = image.buffer.format; var srcPremultiplied = sourceImage.buffer.premultiplied; var destPremultiplied = image.buffer.premultiplied; var srcPosition; var destPosition; var srcPixel; var destPixel; var pixelMask; var test; var value; var _g1 = 0; var _g = destView.height; while(_g1 < _g) { var y = _g1++; srcPosition = srcView.offset + srcView.stride * y; destPosition = destView.offset + destView.stride * y; var _g3 = 0; var _g2 = destView.width; while(_g3 < _g2) { var x = _g3++; switch(srcFormat) { case 2: srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255; break; case 0: srcPixel = (srcData[srcPosition] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition + 2] & 255) << 8 | srcData[srcPosition + 3] & 255; break; case 1: srcPixel = (srcData[srcPosition + 1] & 255) << 24 | (srcData[srcPosition + 2] & 255) << 16 | (srcData[srcPosition + 3] & 255) << 8 | srcData[srcPosition] & 255; break; } if(srcPremultiplied) { if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (srcPixel & 255); var r; var idx = Math.round((srcPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((srcPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((srcPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; srcPixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | srcPixel & 255 & 255; } } pixelMask = srcPixel & _mask; value = lime_graphics_utils_ImageDataUtil.__pixelCompare(pixelMask,_threshold); switch(_operation) { case 0: test = value != 0; break; case 1: test = value == 0; break; case 2: test = value == -1; break; case 3: test = value == 0 || value == -1; break; case 4: test = value == 1; break; case 5: test = value == 0 || value == 1; break; default: test = false; } if(test) { if(destPremultiplied) { if((_color & 255) == 0) { if(_color != 0) _color = 0; } else if((_color & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[_color & 255]; _color = ((_color >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((_color >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((_color >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | _color & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = _color >> 8 & 255; destData[destPosition + 1] = _color >> 16 & 255; destData[destPosition + 2] = _color >> 24 & 255; destData[destPosition + 3] = _color & 255; break; case 0: destData[destPosition] = _color >> 24 & 255; destData[destPosition + 1] = _color >> 16 & 255; destData[destPosition + 2] = _color >> 8 & 255; destData[destPosition + 3] = _color & 255; break; case 1: destData[destPosition] = _color & 255; destData[destPosition + 1] = _color >> 24 & 255; destData[destPosition + 2] = _color >> 16 & 255; destData[destPosition + 3] = _color >> 8 & 255; break; } hits++; } else if(copySource) { if(destPremultiplied) { if((srcPixel & 255) == 0) { if(srcPixel != 0) srcPixel = 0; } else if((srcPixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[srcPixel & 255]; srcPixel = ((srcPixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((srcPixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((srcPixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | srcPixel & 255 & 255; } } switch(destFormat) { case 2: destData[destPosition] = srcPixel >> 8 & 255; destData[destPosition + 1] = srcPixel >> 16 & 255; destData[destPosition + 2] = srcPixel >> 24 & 255; destData[destPosition + 3] = srcPixel & 255; break; case 0: destData[destPosition] = srcPixel >> 24 & 255; destData[destPosition + 1] = srcPixel >> 16 & 255; destData[destPosition + 2] = srcPixel >> 8 & 255; destData[destPosition + 3] = srcPixel & 255; break; case 1: destData[destPosition] = srcPixel & 255; destData[destPosition + 1] = srcPixel >> 24 & 255; destData[destPosition + 2] = srcPixel >> 16 & 255; destData[destPosition + 3] = srcPixel >> 8 & 255; break; } } srcPosition += 4; destPosition += 4; } } if(hits > 0) image.dirty = true; return hits; }; lime_graphics_utils_ImageDataUtil.unmultiplyAlpha = function(image) { var data = image.buffer.data; if(data == null) return; var format = image.buffer.format; var length = data.length / 4 | 0; var pixel; var _g = 0; while(_g < length) { var i = _g++; var offset = i * 4; switch(format) { case 2: pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if((pixel & 255) != 0 && (pixel & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (pixel & 255); var r; var idx = Math.round((pixel >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((pixel >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((pixel >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; pixel = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | pixel & 255 & 255; } var offset1 = i * 4; switch(format) { case 2: data[offset1] = pixel >> 8 & 255; data[offset1 + 1] = pixel >> 16 & 255; data[offset1 + 2] = pixel >> 24 & 255; data[offset1 + 3] = pixel & 255; break; case 0: data[offset1] = pixel >> 24 & 255; data[offset1 + 1] = pixel >> 16 & 255; data[offset1 + 2] = pixel >> 8 & 255; data[offset1 + 3] = pixel & 255; break; case 1: data[offset1] = pixel & 255; data[offset1 + 1] = pixel >> 24 & 255; data[offset1 + 2] = pixel >> 16 & 255; data[offset1 + 3] = pixel >> 8 & 255; break; } } image.buffer.premultiplied = false; image.dirty = true; }; lime_graphics_utils_ImageDataUtil.__pixelCompare = function(n1,n2) { var tmp1; var tmp2; tmp1 = n1 >> 24 & 255; tmp2 = n2 >> 24 & 255; if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else { tmp1 = n1 >> 16 & 255; tmp2 = n2 >> 16 & 255; if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else { tmp1 = n1 >> 8 & 255; tmp2 = n2 >> 8 & 255; if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else { tmp1 = n1 & 255; tmp2 = n2 & 255; if(tmp1 != tmp2) if(tmp1 > tmp2) return 1; else return -1; else return 0; } } } }; var lime_graphics_utils__$ImageDataUtil_ImageDataView = function(image,rect) { this.image = image; if(rect == null) this.rect = image.get_rect(); else { if(rect.x < 0) rect.x = 0; if(rect.y < 0) rect.y = 0; if(rect.x + rect.width > image.width) rect.width = image.width - rect.x; if(rect.y + rect.height > image.height) rect.height = image.height - rect.y; if(rect.width < 0) rect.width = 0; if(rect.height < 0) rect.height = 0; this.rect = rect; } this.stride = image.buffer.get_stride(); this.x = Math.ceil(this.rect.x); this.y = Math.ceil(this.rect.y); this.width = Math.floor(this.rect.width); this.height = Math.floor(this.rect.height); this.offset = this.stride * (this.y + image.offsetY) + (this.x + image.offsetX) * 4; }; $hxClasses["lime.graphics.utils._ImageDataUtil.ImageDataView"] = lime_graphics_utils__$ImageDataUtil_ImageDataView; lime_graphics_utils__$ImageDataUtil_ImageDataView.__name__ = ["lime","graphics","utils","_ImageDataUtil","ImageDataView"]; lime_graphics_utils__$ImageDataUtil_ImageDataView.prototype = { x: null ,y: null ,height: null ,width: null ,image: null ,offset: null ,rect: null ,stride: null ,clip: function(x,y,width,height) { this.rect.__contract(x,y,width,height); this.x = Math.ceil(this.rect.x); this.y = Math.ceil(this.rect.y); this.width = Math.floor(this.rect.width); this.height = Math.floor(this.rect.height); this.offset = this.stride * (this.y + this.image.offsetY) + (this.x + this.image.offsetX) * 4; } ,row: function(y) { return this.offset + this.stride * y; } ,__class__: lime_graphics_utils__$ImageDataUtil_ImageDataView }; var lime_math__$ColorMatrix_ColorMatrix_$Impl_$ = {}; $hxClasses["lime.math._ColorMatrix.ColorMatrix_Impl_"] = lime_math__$ColorMatrix_ColorMatrix_$Impl_$; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__name__ = ["lime","math","_ColorMatrix","ColorMatrix_Impl_"]; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__properties__ = {set_redOffset:"set_redOffset",get_redOffset:"get_redOffset",set_redMultiplier:"set_redMultiplier",get_redMultiplier:"get_redMultiplier",set_greenOffset:"set_greenOffset",get_greenOffset:"get_greenOffset",set_greenMultiplier:"set_greenMultiplier",get_greenMultiplier:"get_greenMultiplier",set_color:"set_color",get_color:"get_color",set_blueOffset:"set_blueOffset",get_blueOffset:"get_blueOffset",set_blueMultiplier:"set_blueMultiplier",get_blueMultiplier:"get_blueMultiplier",set_alphaOffset:"set_alphaOffset",get_alphaOffset:"get_alphaOffset",set_alphaMultiplier:"set_alphaMultiplier",get_alphaMultiplier:"get_alphaMultiplier"} lime_math__$ColorMatrix_ColorMatrix_$Impl_$._new = function(data) { var this1; if(data != null && data.length == 20) this1 = data; else { var array = lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__identity; var this2; if(array != null) this2 = new Float32Array(array); else this2 = null; this1 = this2; } return this1; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.clone = function(this1) { return lime_math__$ColorMatrix_ColorMatrix_$Impl_$._new((function($this) { var $r; var this2; if(this1 != null) this2 = new Float32Array(this1); else this2 = null; $r = this2; return $r; }(this))); }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.concat = function(this1,second) { var _g = this1; _g[0] = _g[0] + second[0]; var _g1 = this1; _g1[6] = _g1[6] + second[6]; var _g2 = this1; _g2[12] = _g2[12] + second[12]; var _g3 = this1; _g3[18] = _g3[18] + second[18]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.copyFrom = function(this1,other) { this1.set(other); }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.identity = function(this1) { this1[0] = 1; this1[1] = 0; this1[2] = 0; this1[3] = 0; this1[4] = 0; this1[5] = 0; this1[6] = 1; this1[7] = 0; this1[8] = 0; this1[9] = 0; this1[10] = 0; this1[11] = 0; this1[12] = 1; this1[13] = 0; this1[14] = 0; this1[15] = 0; this1[16] = 0; this1[17] = 0; this1[18] = 1; this1[19] = 0; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getAlphaTable = function(this1) { var table; var this2; this2 = new Uint8Array(256); table = this2; var multiplier = this1[18]; var offset = this1[19] * 255; var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * multiplier + offset); if(value > 255) value = 255; if(value < 0) value = 0; table[i] = value; } return table; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getBlueTable = function(this1) { var table; var this2; this2 = new Uint8Array(256); table = this2; var multiplier = this1[12]; var offset = this1[14] * 255; var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * multiplier + offset); if(value > 255) value = 255; if(value < 0) value = 0; table[i] = value; } return table; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getGreenTable = function(this1) { var table; var this2; this2 = new Uint8Array(256); table = this2; var multiplier = this1[6]; var offset = this1[9] * 255; var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * multiplier + offset); if(value > 255) value = 255; if(value < 0) value = 0; table[i] = value; } return table; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.getRedTable = function(this1) { var table; var this2; this2 = new Uint8Array(256); table = this2; var multiplier = this1[0]; var offset = this1[4] * 255; var value; var _g = 0; while(_g < 256) { var i = _g++; value = Math.floor(i * multiplier + offset); if(value > 255) value = 255; if(value < 0) value = 0; table[i] = value; } return table; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__toFlashColorTransform = function(this1) { return null; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_alphaMultiplier = function(this1) { return this1[18]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_alphaMultiplier = function(this1,value) { return this1[18] = value; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_alphaOffset = function(this1) { return this1[19] * 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_alphaOffset = function(this1,value) { return this1[19] = value / 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_blueMultiplier = function(this1) { return this1[12]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_blueMultiplier = function(this1,value) { return this1[12] = value; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_blueOffset = function(this1) { return this1[14] * 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_blueOffset = function(this1,value) { return this1[14] = value / 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_color = function(this1) { return (this1[4] * 255 | 0) << 16 | (this1[9] * 255 | 0) << 8 | (this1[14] * 255 | 0); }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_color = function(this1,value) { this1[4] = (value >> 16 & 255) / 255; this1[9] = (value >> 8 & 255) / 255; this1[14] = (value & 255) / 255; this1[0] = 0; this1[6] = 0; this1[12] = 0; return lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_color(this1); }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_greenMultiplier = function(this1) { return this1[6]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_greenMultiplier = function(this1,value) { return this1[6] = value; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_greenOffset = function(this1) { return this1[9] * 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_greenOffset = function(this1,value) { return this1[9] = value / 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_redMultiplier = function(this1) { return this1[0]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_redMultiplier = function(this1,value) { return this1[0] = value; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get_redOffset = function(this1) { return this1[4] * 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set_redOffset = function(this1,value) { return this1[4] = value / 255; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.get = function(this1,index) { return this1[index]; }; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.set = function(this1,index,value) { return this1[index] = value; }; var lime_math_Matrix3 = function(a,b,c,d,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(d == null) d = 1; if(c == null) c = 0; if(b == null) b = 0; if(a == null) a = 1; this.a = a; this.b = b; this.c = c; this.d = d; this.tx = tx; this.ty = ty; }; $hxClasses["lime.math.Matrix3"] = lime_math_Matrix3; lime_math_Matrix3.__name__ = ["lime","math","Matrix3"]; lime_math_Matrix3.prototype = { a: null ,b: null ,c: null ,d: null ,tx: null ,ty: null ,clone: function() { return new lime_math_Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty); } ,concat: function(m) { var a1 = this.a * m.a + this.b * m.c; this.b = this.a * m.b + this.b * m.d; this.a = a1; var c1 = this.c * m.a + this.d * m.c; this.d = this.c * m.b + this.d * m.d; this.c = c1; var tx1 = this.tx * m.a + this.ty * m.c + m.tx; this.ty = this.tx * m.b + this.ty * m.d + m.ty; this.tx = tx1; } ,copyColumnFrom: function(column,vector4) { if(column > 2) throw new js__$Boot_HaxeError("Column " + column + " out of bounds (2)"); else if(column == 0) { this.a = vector4.x; this.c = vector4.y; } else if(column == 1) { this.b = vector4.x; this.d = vector4.y; } else { this.tx = vector4.x; this.ty = vector4.y; } } ,copyColumnTo: function(column,vector4) { if(column > 2) throw new js__$Boot_HaxeError("Column " + column + " out of bounds (2)"); else if(column == 0) { vector4.x = this.a; vector4.y = this.c; vector4.z = 0; } else if(column == 1) { vector4.x = this.b; vector4.y = this.d; vector4.z = 0; } else { vector4.x = this.tx; vector4.y = this.ty; vector4.z = 1; } } ,copyFrom: function(sourceMatrix3) { this.a = sourceMatrix3.a; this.b = sourceMatrix3.b; this.c = sourceMatrix3.c; this.d = sourceMatrix3.d; this.tx = sourceMatrix3.tx; this.ty = sourceMatrix3.ty; } ,copyRowFrom: function(row,vector4) { if(row > 2) throw new js__$Boot_HaxeError("Row " + row + " out of bounds (2)"); else if(row == 0) { this.a = vector4.x; this.c = vector4.y; } else if(row == 1) { this.b = vector4.x; this.d = vector4.y; } else { this.tx = vector4.x; this.ty = vector4.y; } } ,copyRowTo: function(row,vector4) { if(row > 2) throw new js__$Boot_HaxeError("Row " + row + " out of bounds (2)"); else if(row == 0) { vector4.x = this.a; vector4.y = this.b; vector4.z = this.tx; } else if(row == 1) { vector4.x = this.c; vector4.y = this.d; vector4.z = this.ty; } else { vector4.x = 0; vector4.y = 0; vector4.z = 1; } } ,createBox: function(scaleX,scaleY,rotation,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(rotation == null) rotation = 0; this.a = scaleX; this.d = scaleY; this.b = rotation; this.tx = tx; this.ty = ty; } ,createGradientBox: function(width,height,rotation,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(rotation == null) rotation = 0; this.a = width / 1638.4; this.d = height / 1638.4; if(rotation != 0) { var cos = Math.cos(rotation); var sin = Math.sin(rotation); this.b = sin * this.d; this.c = -sin * this.a; this.a *= cos; this.d *= cos; } else { this.b = 0; this.c = 0; } this.tx = tx + width / 2; this.ty = ty + height / 2; } ,equals: function(Matrix3) { return Matrix3 != null && this.tx == Matrix3.tx && this.ty == Matrix3.ty && this.a == Matrix3.a && this.b == Matrix3.b && this.c == Matrix3.c && this.d == Matrix3.d; } ,deltaTransformVector2: function(Vector2) { return new lime_math_Vector2(Vector2.x * this.a + Vector2.y * this.c,Vector2.x * this.b + Vector2.y * this.d); } ,identity: function() { this.a = 1; this.b = 0; this.c = 0; this.d = 1; this.tx = 0; this.ty = 0; } ,invert: function() { var norm = this.a * this.d - this.b * this.c; if(norm == 0) { this.a = this.b = this.c = this.d = 0; this.tx = -this.tx; this.ty = -this.ty; } else { norm = 1.0 / norm; var a1 = this.d * norm; this.d = this.a * norm; this.a = a1; this.b *= -norm; this.c *= -norm; var tx1 = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = tx1; } return this; } ,mult: function(m) { var result = new lime_math_Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty); result.concat(m); return result; } ,rotate: function(theta) { var cos = Math.cos(theta); var sin = Math.sin(theta); var a1 = this.a * cos - this.b * sin; this.b = this.a * sin + this.b * cos; this.a = a1; var c1 = this.c * cos - this.d * sin; this.d = this.c * sin + this.d * cos; this.c = c1; var tx1 = this.tx * cos - this.ty * sin; this.ty = this.tx * sin + this.ty * cos; this.tx = tx1; } ,scale: function(sx,sy) { this.a *= sx; this.b *= sy; this.c *= sx; this.d *= sy; this.tx *= sx; this.ty *= sy; } ,setRotation: function(theta,scale) { if(scale == null) scale = 1; this.a = Math.cos(theta) * scale; this.c = Math.sin(theta) * scale; this.b = -this.c; this.d = this.a; } ,setTo: function(a,b,c,d,tx,ty) { this.a = a; this.b = b; this.c = c; this.d = d; this.tx = tx; this.ty = ty; } ,to3DString: function(roundPixels) { if(roundPixels == null) roundPixels = false; if(roundPixels) return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)"; else return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)"; } ,toMozString: function() { return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)"; } ,toString: function() { return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")"; } ,transformVector2: function(pos) { return new lime_math_Vector2(pos.x * this.a + pos.y * this.c + this.tx,pos.x * this.b + pos.y * this.d + this.ty); } ,translate: function(dx,dy) { this.tx += dx; this.ty += dy; } ,__cleanValues: function() { this.a = Math.round(this.a * 1000) / 1000; this.b = Math.round(this.b * 1000) / 1000; this.c = Math.round(this.c * 1000) / 1000; this.d = Math.round(this.d * 1000) / 1000; this.tx = Math.round(this.tx * 10) / 10; this.ty = Math.round(this.ty * 10) / 10; } ,__transformX: function(pos) { return pos.x * this.a + pos.y * this.c + this.tx; } ,__transformY: function(pos) { return pos.x * this.b + pos.y * this.d + this.ty; } ,__translateTransformed: function(pos) { this.tx = pos.x * this.a + pos.y * this.c + this.tx; this.ty = pos.x * this.b + pos.y * this.d + this.ty; } ,__class__: lime_math_Matrix3 }; var lime_math__$Matrix4_Matrix4_$Impl_$ = {}; $hxClasses["lime.math._Matrix4.Matrix4_Impl_"] = lime_math__$Matrix4_Matrix4_$Impl_$; lime_math__$Matrix4_Matrix4_$Impl_$.__name__ = ["lime","math","_Matrix4","Matrix4_Impl_"]; lime_math__$Matrix4_Matrix4_$Impl_$.__properties__ = {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"} lime_math__$Matrix4_Matrix4_$Impl_$._new = function(data) { var this1; if(data != null && data.length == 16) this1 = data; else { var array = lime_math__$Matrix4_Matrix4_$Impl_$.__identity; var this2; if(array != null) this2 = new Float32Array(array); else this2 = null; this1 = this2; } return this1; }; lime_math__$Matrix4_Matrix4_$Impl_$.append = function(this1,lhs) { var m111 = this1[0]; var m121 = this1[4]; var m131 = this1[8]; var m141 = this1[12]; var m112 = this1[1]; var m122 = this1[5]; var m132 = this1[9]; var m142 = this1[13]; var m113 = this1[2]; var m123 = this1[6]; var m133 = this1[10]; var m143 = this1[14]; var m114 = this1[3]; var m124 = this1[7]; var m134 = this1[11]; var m144 = this1[15]; var m211 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,0); var m221 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,4); var m231 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,8); var m241 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,12); var m212 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,1); var m222 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,5); var m232 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,9); var m242 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,13); var m213 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,2); var m223 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,6); var m233 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,10); var m243 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,14); var m214 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,3); var m224 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,7); var m234 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,11); var m244 = lime_math__$Matrix4_Matrix4_$Impl_$.get(lhs,15); this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241; this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242; this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243; this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244; this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241; this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242; this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243; this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244; this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241; this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242; this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243; this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244; this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241; this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242; this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243; this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244; }; lime_math__$Matrix4_Matrix4_$Impl_$.appendRotation = function(this1,degrees,axis,pivotPoint) { var m = lime_math__$Matrix4_Matrix4_$Impl_$.getAxisRotation(axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; lime_math__$Matrix4_Matrix4_$Impl_$.appendTranslation(m,p.x,p.y,p.z); } lime_math__$Matrix4_Matrix4_$Impl_$.append(this1,m); }; lime_math__$Matrix4_Matrix4_$Impl_$.appendScale = function(this1,xScale,yScale,zScale) { lime_math__$Matrix4_Matrix4_$Impl_$.append(this1,lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var array = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0]; var this2; if(array != null) this2 = new Float32Array(array); else this2 = null; $r = this2; return $r; }(this)))); }; lime_math__$Matrix4_Matrix4_$Impl_$.appendTranslation = function(this1,x,y,z) { this1[12] = this1[12] + x; this1[13] = this1[13] + y; this1[14] = this1[14] + z; }; lime_math__$Matrix4_Matrix4_$Impl_$.clone = function(this1) { return lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var this2; if(this1 != null) this2 = new Float32Array(this1); else this2 = null; $r = this2; return $r; }(this))); }; lime_math__$Matrix4_Matrix4_$Impl_$.copyColumnFrom = function(this1,column,vector) { switch(column) { case 0: this1[0] = vector.x; this1[1] = vector.y; this1[2] = vector.z; this1[3] = vector.w; break; case 1: this1[4] = vector.x; this1[5] = vector.y; this1[6] = vector.z; this1[7] = vector.w; break; case 2: this1[8] = vector.x; this1[9] = vector.y; this1[10] = vector.z; this1[11] = vector.w; break; case 3: this1[12] = vector.x; this1[13] = vector.y; this1[14] = vector.z; this1[15] = vector.w; break; default: throw new js__$Boot_HaxeError("Error, Column " + column + " out of bounds [0, ..., 3]"); } }; lime_math__$Matrix4_Matrix4_$Impl_$.copyColumnTo = function(this1,column,vector) { switch(column) { case 0: vector.x = this1[0]; vector.y = this1[1]; vector.z = this1[2]; vector.w = this1[3]; break; case 1: vector.x = this1[4]; vector.y = this1[5]; vector.z = this1[6]; vector.w = this1[7]; break; case 2: vector.x = this1[8]; vector.y = this1[9]; vector.z = this1[10]; vector.w = this1[11]; break; case 3: vector.x = this1[12]; vector.y = this1[13]; vector.z = this1[14]; vector.w = this1[15]; break; default: throw new js__$Boot_HaxeError("Error, Column " + column + " out of bounds [0, ..., 3]"); } }; lime_math__$Matrix4_Matrix4_$Impl_$.copyFrom = function(this1,other) { this1.set(other); }; lime_math__$Matrix4_Matrix4_$Impl_$.copythisFrom = function(this1,array,index,transposeValues) { if(transposeValues == null) transposeValues = false; if(index == null) index = 0; if(transposeValues) lime_math__$Matrix4_Matrix4_$Impl_$.transpose(this1); var l = array.length - index; var _g = 0; while(_g < l) { var c = _g++; this1[c] = array[c + index]; } if(transposeValues) lime_math__$Matrix4_Matrix4_$Impl_$.transpose(this1); }; lime_math__$Matrix4_Matrix4_$Impl_$.copythisTo = function(this1,array,index,transposeValues) { if(transposeValues == null) transposeValues = false; if(index == null) index = 0; if(transposeValues) lime_math__$Matrix4_Matrix4_$Impl_$.transpose(this1); var l = this1.length; var _g = 0; while(_g < l) { var c = _g++; array[c + index] = this1[c]; } if(transposeValues) lime_math__$Matrix4_Matrix4_$Impl_$.transpose(this1); }; lime_math__$Matrix4_Matrix4_$Impl_$.copyRowFrom = function(this1,row,vector) { switch(row) { case 0: this1[0] = vector.x; this1[4] = vector.y; this1[8] = vector.z; this1[12] = vector.w; break; case 1: this1[1] = vector.x; this1[5] = vector.y; this1[9] = vector.z; this1[13] = vector.w; break; case 2: this1[2] = vector.x; this1[6] = vector.y; this1[10] = vector.z; this1[14] = vector.w; break; case 3: this1[3] = vector.x; this1[7] = vector.y; this1[11] = vector.z; this1[15] = vector.w; break; default: throw new js__$Boot_HaxeError("Error, Row " + Std.string(_$UInt_UInt_$Impl_$.toFloat(row)) + " out of bounds [0, ..., 3]"); } }; lime_math__$Matrix4_Matrix4_$Impl_$.create2D = function(x,y,scale,rotation) { if(rotation == null) rotation = 0; if(scale == null) scale = 1; var theta = rotation * Math.PI / 180.0; var c = Math.cos(theta); var s = Math.sin(theta); return lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var array = [c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); }; lime_math__$Matrix4_Matrix4_$Impl_$.createABCD = function(a,b,c,d,tx,ty) { return lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var array = [a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); }; lime_math__$Matrix4_Matrix4_$Impl_$.createOrtho = function(x0,x1,y0,y1,zNear,zFar) { var sx = 1.0 / (x1 - x0); var sy = 1.0 / (y1 - y0); var sz = 1.0 / (zFar - zNear); return lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var array = [2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2. * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); }; lime_math__$Matrix4_Matrix4_$Impl_$.copyRowTo = function(this1,row,vector) { switch(row) { case 0: vector.x = this1[0]; vector.y = this1[4]; vector.z = this1[8]; vector.w = this1[12]; break; case 1: vector.x = this1[1]; vector.y = this1[5]; vector.z = this1[9]; vector.w = this1[13]; break; case 2: vector.x = this1[2]; vector.y = this1[6]; vector.z = this1[10]; vector.w = this1[14]; break; case 3: vector.x = this1[3]; vector.y = this1[7]; vector.z = this1[11]; vector.w = this1[15]; break; default: throw new js__$Boot_HaxeError("Error, Row " + row + " out of bounds [0, ..., 3]"); } }; lime_math__$Matrix4_Matrix4_$Impl_$.copyToMatrix4 = function(this1,other) { (js_Boot.__cast(other , Float32Array)).set(this1); }; lime_math__$Matrix4_Matrix4_$Impl_$.deltaTransformVector = function(this1,v) { var x = v.x; var y = v.y; var z = v.z; return new lime_math_Vector4(x * this1[0] + y * this1[4] + z * this1[8] + this1[3],x * this1[1] + y * this1[5] + z * this1[9] + this1[7],x * this1[2] + y * this1[6] + z * this1[10] + this1[11],0); }; lime_math__$Matrix4_Matrix4_$Impl_$.identity = function(this1) { this1[0] = 1; this1[1] = 0; this1[2] = 0; this1[3] = 0; this1[4] = 0; this1[5] = 1; this1[6] = 0; this1[7] = 0; this1[8] = 0; this1[9] = 0; this1[10] = 1; this1[11] = 0; this1[12] = 0; this1[13] = 0; this1[14] = 0; this1[15] = 1; }; lime_math__$Matrix4_Matrix4_$Impl_$.interpolate = function(thisMat,toMat,percent) { var m = lime_math__$Matrix4_Matrix4_$Impl_$._new(); var _g = 0; while(_g < 16) { var i = _g++; lime_math__$Matrix4_Matrix4_$Impl_$.set(m,i,lime_math__$Matrix4_Matrix4_$Impl_$.get(thisMat,i) + (lime_math__$Matrix4_Matrix4_$Impl_$.get(toMat,i) - lime_math__$Matrix4_Matrix4_$Impl_$.get(thisMat,i)) * percent); } return m; }; lime_math__$Matrix4_Matrix4_$Impl_$.interpolateTo = function(this1,toMat,percent) { var _g = 0; while(_g < 16) { var i = _g++; var val = this1[i] + (lime_math__$Matrix4_Matrix4_$Impl_$.get(toMat,i) - this1[i]) * percent; this1[i] = val; } }; lime_math__$Matrix4_Matrix4_$Impl_$.invert = function(this1) { var d = lime_math__$Matrix4_Matrix4_$Impl_$.get_determinant(this1); var invertable = Math.abs(d) > 0.00000000001; if(invertable) { d = 1 / d; var m11 = this1[0]; var m21 = this1[4]; var m31 = this1[8]; var m41 = this1[12]; var m12 = this1[1]; var m22 = this1[5]; var m32 = this1[9]; var m42 = this1[13]; var m13 = this1[2]; var m23 = this1[6]; var m33 = this1[10]; var m43 = this1[14]; var m14 = this1[3]; var m24 = this1[7]; var m34 = this1[11]; var m44 = this1[15]; this1[0] = d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24)); this1[1] = -d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14)); this1[2] = d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14)); this1[3] = -d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14)); this1[4] = -d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24)); this1[5] = d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14)); this1[6] = -d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14)); this1[7] = d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14)); this1[8] = d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24)); this1[9] = -d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14)); this1[10] = d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14)); this1[11] = -d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14)); this1[12] = -d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23)); this1[13] = d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13)); this1[14] = -d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13)); this1[15] = d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13)); } return invertable; }; lime_math__$Matrix4_Matrix4_$Impl_$.pointAt = function(this1,pos,at,up) { if(at == null) at = new lime_math_Vector4(0,0,-1); if(up == null) up = new lime_math_Vector4(0,-1,0); var dir = new lime_math_Vector4(at.x - pos.x,at.y - pos.y,at.z - pos.z); var vup = new lime_math_Vector4(up.x,up.y,up.z,up.w); var right; dir.normalize(); vup.normalize(); var dir2 = new lime_math_Vector4(dir.x,dir.y,dir.z,dir.w); dir2.scaleBy(vup.x * dir.x + vup.y * dir.y + vup.z * dir.z); vup = new lime_math_Vector4(vup.x - dir2.x,vup.y - dir2.y,vup.z - dir2.z); if(Math.sqrt(vup.x * vup.x + vup.y * vup.y + vup.z * vup.z) > 0) vup.normalize(); else if(dir.x != 0) vup = new lime_math_Vector4(-dir.y,dir.x,0); else vup = new lime_math_Vector4(1,0,0); right = new lime_math_Vector4(vup.y * dir.z - vup.z * dir.y,vup.z * dir.x - vup.x * dir.z,vup.x * dir.y - vup.y * dir.x,1); right.normalize(); this1[0] = right.x; this1[4] = right.y; this1[8] = right.z; this1[12] = 0.0; this1[1] = vup.x; this1[5] = vup.y; this1[9] = vup.z; this1[13] = 0.0; this1[2] = dir.x; this1[6] = dir.y; this1[10] = dir.z; this1[14] = 0.0; this1[3] = pos.x; this1[7] = pos.y; this1[11] = pos.z; this1[15] = 1.0; }; lime_math__$Matrix4_Matrix4_$Impl_$.prepend = function(this1,rhs) { var m111 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,0); var m121 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,4); var m131 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,8); var m141 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,12); var m112 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,1); var m122 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,5); var m132 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,9); var m142 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,13); var m113 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,2); var m123 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,6); var m133 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,10); var m143 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,14); var m114 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,3); var m124 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,7); var m134 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,11); var m144 = lime_math__$Matrix4_Matrix4_$Impl_$.get(rhs,15); var m211 = this1[0]; var m221 = this1[4]; var m231 = this1[8]; var m241 = this1[12]; var m212 = this1[1]; var m222 = this1[5]; var m232 = this1[9]; var m242 = this1[13]; var m213 = this1[2]; var m223 = this1[6]; var m233 = this1[10]; var m243 = this1[14]; var m214 = this1[3]; var m224 = this1[7]; var m234 = this1[11]; var m244 = this1[15]; this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241; this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242; this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243; this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244; this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241; this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242; this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243; this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244; this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241; this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242; this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243; this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244; this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241; this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242; this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243; this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244; }; lime_math__$Matrix4_Matrix4_$Impl_$.prependRotation = function(this1,degrees,axis,pivotPoint) { var m = lime_math__$Matrix4_Matrix4_$Impl_$.getAxisRotation(axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; lime_math__$Matrix4_Matrix4_$Impl_$.appendTranslation(m,p.x,p.y,p.z); } lime_math__$Matrix4_Matrix4_$Impl_$.prepend(this1,m); }; lime_math__$Matrix4_Matrix4_$Impl_$.prependScale = function(this1,xScale,yScale,zScale) { lime_math__$Matrix4_Matrix4_$Impl_$.prepend(this1,lime_math__$Matrix4_Matrix4_$Impl_$._new((function($this) { var $r; var array = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0]; var this2; if(array != null) this2 = new Float32Array(array); else this2 = null; $r = this2; return $r; }(this)))); }; lime_math__$Matrix4_Matrix4_$Impl_$.prependTranslation = function(this1,x,y,z) { var m = lime_math__$Matrix4_Matrix4_$Impl_$._new(); lime_math__$Matrix4_Matrix4_$Impl_$.set_position(m,new lime_math_Vector4(x,y,z)); lime_math__$Matrix4_Matrix4_$Impl_$.prepend(this1,m); }; lime_math__$Matrix4_Matrix4_$Impl_$.transformVector = function(this1,v) { var x = v.x; var y = v.y; var z = v.z; return new lime_math_Vector4(x * this1[0] + y * this1[4] + z * this1[8] + this1[12],x * this1[1] + y * this1[5] + z * this1[9] + this1[13],x * this1[2] + y * this1[6] + z * this1[10] + this1[14],x * this1[3] + y * this1[7] + z * this1[11] + this1[15]); }; lime_math__$Matrix4_Matrix4_$Impl_$.transformVectors = function(this1,ain,aout) { var i = 0; while(i + 3 <= ain.length) { var x = ain[i]; var y = ain[i + 1]; var z = ain[i + 2]; aout[i] = x * this1[0] + y * this1[4] + z * this1[8] + this1[12]; aout[i + 1] = x * this1[1] + y * this1[5] + z * this1[9] + this1[13]; aout[i + 2] = x * this1[2] + y * this1[6] + z * this1[10] + this1[14]; i += 3; } }; lime_math__$Matrix4_Matrix4_$Impl_$.transpose = function(this1) { var othis; var this2; if(this1 != null) this2 = new Float32Array(this1); else this2 = null; othis = this2; this1[1] = othis[4]; this1[2] = othis[8]; this1[3] = othis[12]; this1[4] = othis[1]; this1[6] = othis[9]; this1[7] = othis[13]; this1[8] = othis[2]; this1[9] = othis[6]; this1[11] = othis[14]; this1[12] = othis[3]; this1[13] = othis[7]; this1[14] = othis[11]; }; lime_math__$Matrix4_Matrix4_$Impl_$.getAxisRotation = function(x,y,z,degrees) { var m = lime_math__$Matrix4_Matrix4_$Impl_$._new(); var a1 = new lime_math_Vector4(x,y,z); var rad = -degrees * (Math.PI / 180); var c = Math.cos(rad); var s = Math.sin(rad); var t = 1.0 - c; lime_math__$Matrix4_Matrix4_$Impl_$.set(m,0,c + a1.x * a1.x * t); lime_math__$Matrix4_Matrix4_$Impl_$.set(m,5,c + a1.y * a1.y * t); lime_math__$Matrix4_Matrix4_$Impl_$.set(m,10,c + a1.z * a1.z * t); var tmp1 = a1.x * a1.y * t; var tmp2 = a1.z * s; lime_math__$Matrix4_Matrix4_$Impl_$.set(m,4,tmp1 + tmp2); lime_math__$Matrix4_Matrix4_$Impl_$.set(m,1,tmp1 - tmp2); tmp1 = a1.x * a1.z * t; tmp2 = a1.y * s; lime_math__$Matrix4_Matrix4_$Impl_$.set(m,8,tmp1 - tmp2); lime_math__$Matrix4_Matrix4_$Impl_$.set(m,2,tmp1 + tmp2); tmp1 = a1.y * a1.z * t; tmp2 = a1.x * s; lime_math__$Matrix4_Matrix4_$Impl_$.set(m,9,tmp1 + tmp2); lime_math__$Matrix4_Matrix4_$Impl_$.set(m,6,tmp1 - tmp2); return m; }; lime_math__$Matrix4_Matrix4_$Impl_$.get_determinant = function(this1) { return (this1[0] * this1[5] - this1[4] * this1[1]) * (this1[10] * this1[15] - this1[14] * this1[11]) - (this1[0] * this1[9] - this1[8] * this1[1]) * (this1[6] * this1[15] - this1[14] * this1[7]) + (this1[0] * this1[13] - this1[12] * this1[1]) * (this1[6] * this1[11] - this1[10] * this1[7]) + (this1[4] * this1[9] - this1[8] * this1[5]) * (this1[2] * this1[15] - this1[14] * this1[3]) - (this1[4] * this1[13] - this1[12] * this1[5]) * (this1[2] * this1[11] - this1[10] * this1[3]) + (this1[8] * this1[13] - this1[12] * this1[9]) * (this1[2] * this1[7] - this1[6] * this1[3]); }; lime_math__$Matrix4_Matrix4_$Impl_$.get_position = function(this1) { return new lime_math_Vector4(this1[12],this1[13],this1[14]); }; lime_math__$Matrix4_Matrix4_$Impl_$.set_position = function(this1,val) { this1[12] = val.x; this1[13] = val.y; this1[14] = val.z; return val; }; lime_math__$Matrix4_Matrix4_$Impl_$.get = function(this1,index) { return this1[index]; }; lime_math__$Matrix4_Matrix4_$Impl_$.set = function(this1,index,value) { this1[index] = value; return value; }; var lime_math_Rectangle = function(x,y,width,height) { if(height == null) height = 0; if(width == null) width = 0; if(y == null) y = 0; if(x == null) x = 0; this.x = x; this.y = y; this.width = width; this.height = height; }; $hxClasses["lime.math.Rectangle"] = lime_math_Rectangle; lime_math_Rectangle.__name__ = ["lime","math","Rectangle"]; lime_math_Rectangle.prototype = { height: null ,width: null ,x: null ,y: null ,clone: function() { return new lime_math_Rectangle(this.x,this.y,this.width,this.height); } ,contains: function(x,y) { return x >= this.x && y >= this.y && x < this.get_right() && y < this.get_bottom(); } ,containsPoint: function(point) { return this.contains(point.x,point.y); } ,containsRect: function(rect) { if(rect.width <= 0 || rect.height <= 0) return rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right() && rect.get_bottom() < this.get_bottom(); else return rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right() && rect.get_bottom() <= this.get_bottom(); } ,copyFrom: function(sourceRect) { this.x = sourceRect.x; this.y = sourceRect.y; this.width = sourceRect.width; this.height = sourceRect.height; } ,equals: function(toCompare) { return toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width && this.height == toCompare.height; } ,inflate: function(dx,dy) { this.x -= dx; this.width += dx * 2; this.y -= dy; this.height += dy * 2; } ,inflatePoint: function(point) { this.inflate(point.x,point.y); } ,intersection: function(toIntersect) { var x0; if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x; var x1; if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right(); if(x1 <= x0) return new lime_math_Rectangle(); var y0; if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y; var y1; if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom(); if(y1 <= y0) return new lime_math_Rectangle(); return new lime_math_Rectangle(x0,y0,x1 - x0,y1 - y0); } ,intersects: function(toIntersect) { var x0; if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x; var x1; if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right(); if(x1 <= x0) return false; var y0; if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y; var y1; if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom(); return y1 > y0; } ,isEmpty: function() { return this.width <= 0 || this.height <= 0; } ,offset: function(dx,dy) { this.x += dx; this.y += dy; } ,offsetPoint: function(point) { this.x += point.x; this.y += point.y; } ,setEmpty: function() { this.x = this.y = this.width = this.height = 0; } ,setTo: function(xa,ya,widtha,heighta) { this.x = xa; this.y = ya; this.width = widtha; this.height = heighta; } ,transform: function(m) { var tx0 = m.a * this.x + m.c * this.y; var tx1 = tx0; var ty0 = m.b * this.x + m.d * this.y; var ty1 = ty0; var tx = m.a * (this.x + this.width) + m.c * this.y; var ty = m.b * (this.x + this.width) + m.d * this.y; if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; tx = m.a * (this.x + this.width) + m.c * (this.y + this.height); ty = m.b * (this.x + this.width) + m.d * (this.y + this.height); if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; tx = m.a * this.x + m.c * (this.y + this.height); ty = m.b * this.x + m.d * (this.y + this.height); if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; return new lime_math_Rectangle(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0); } ,union: function(toUnion) { if(this.width == 0 || this.height == 0) return toUnion.clone(); else if(toUnion.width == 0 || toUnion.height == 0) return this.clone(); var x0; if(this.x > toUnion.x) x0 = toUnion.x; else x0 = this.x; var x1; if(this.get_right() < toUnion.get_right()) x1 = toUnion.get_right(); else x1 = this.get_right(); var y0; if(this.y > toUnion.y) y0 = toUnion.y; else y0 = this.y; var y1; if(this.get_bottom() < toUnion.get_bottom()) y1 = toUnion.get_bottom(); else y1 = this.get_bottom(); return new lime_math_Rectangle(x0,y0,x1 - x0,y1 - y0); } ,__contract: function(x,y,width,height) { if(this.width == 0 && this.height == 0) return; if(this.x < x) this.x = x; if(this.y < y) this.y = y; if(this.get_right() > x + width) this.width = x + width - this.x; if(this.get_bottom() > y + height) this.height = y + height - this.y; } ,__expand: function(x,y,width,height) { if(this.width == 0 && this.height == 0) { this.x = x; this.y = y; this.width = width; this.height = height; return; } var cacheRight = this.get_right(); var cacheBottom = this.get_bottom(); if(this.x > x) this.x = x; if(this.y > y) this.y = y; if(cacheRight < x + width) this.width = x + width - this.x; if(cacheBottom < y + height) this.height = y + height - this.y; } ,__toFlashRectangle: function() { return null; } ,get_bottom: function() { return this.y + this.height; } ,set_bottom: function(b) { this.height = b - this.y; return b; } ,get_bottomRight: function() { return new lime_math_Vector2(this.x + this.width,this.y + this.height); } ,set_bottomRight: function(p) { this.width = p.x - this.x; this.height = p.y - this.y; return p.clone(); } ,get_left: function() { return this.x; } ,set_left: function(l) { this.width -= l - this.x; this.x = l; return l; } ,get_right: function() { return this.x + this.width; } ,set_right: function(r) { this.width = r - this.x; return r; } ,get_size: function() { return new lime_math_Vector2(this.width,this.height); } ,set_size: function(p) { this.width = p.x; this.height = p.y; return p.clone(); } ,get_top: function() { return this.y; } ,set_top: function(t) { this.height -= t - this.y; this.y = t; return t; } ,get_topLeft: function() { return new lime_math_Vector2(this.x,this.y); } ,set_topLeft: function(p) { this.x = p.x; this.y = p.y; return p.clone(); } ,__class__: lime_math_Rectangle ,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"} }; var lime_math_Vector2 = function(x,y) { if(y == null) y = 0; if(x == null) x = 0; this.x = x; this.y = y; }; $hxClasses["lime.math.Vector2"] = lime_math_Vector2; lime_math_Vector2.__name__ = ["lime","math","Vector2"]; lime_math_Vector2.distance = function(pt1,pt2) { var dx = pt1.x - pt2.x; var dy = pt1.y - pt2.y; return Math.sqrt(dx * dx + dy * dy); }; lime_math_Vector2.interpolate = function(pt1,pt2,f) { return new lime_math_Vector2(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y)); }; lime_math_Vector2.polar = function(len,angle) { return new lime_math_Vector2(len * Math.cos(angle),len * Math.sin(angle)); }; lime_math_Vector2.prototype = { length: null ,x: null ,y: null ,add: function(v) { return new lime_math_Vector2(v.x + this.x,v.y + this.y); } ,clone: function() { return new lime_math_Vector2(this.x,this.y); } ,equals: function(toCompare) { return toCompare != null && toCompare.x == this.x && toCompare.y == this.y; } ,normalize: function(thickness) { if(this.x == 0 && this.y == 0) return; else { var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y); this.x *= norm; this.y *= norm; } } ,offset: function(dx,dy) { this.x += dx; this.y += dy; } ,setTo: function(xa,ya) { this.x = xa; this.y = ya; } ,subtract: function(v) { return new lime_math_Vector2(this.x - v.x,this.y - v.y); } ,__toFlashPoint: function() { return null; } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); } ,__class__: lime_math_Vector2 ,__properties__: {get_length:"get_length"} }; var lime_math_Vector4 = function(x,y,z,w) { if(w == null) w = 0.; if(z == null) z = 0.; if(y == null) y = 0.; if(x == null) x = 0.; this.w = w; this.x = x; this.y = y; this.z = z; }; $hxClasses["lime.math.Vector4"] = lime_math_Vector4; lime_math_Vector4.__name__ = ["lime","math","Vector4"]; lime_math_Vector4.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"} lime_math_Vector4.X_AXIS = null; lime_math_Vector4.Y_AXIS = null; lime_math_Vector4.Z_AXIS = null; lime_math_Vector4.angleBetween = function(a,b) { var a0 = new lime_math_Vector4(a.x,a.y,a.z,a.w); a0.normalize(); var b0 = new lime_math_Vector4(b.x,b.y,b.z,b.w); b0.normalize(); return Math.acos(a0.x * b0.x + a0.y * b0.y + a0.z * b0.z); }; lime_math_Vector4.distance = function(pt1,pt2) { var x = pt2.x - pt1.x; var y = pt2.y - pt1.y; var z = pt2.z - pt1.z; return Math.sqrt(x * x + y * y + z * z); }; lime_math_Vector4.get_X_AXIS = function() { return new lime_math_Vector4(1,0,0); }; lime_math_Vector4.get_Y_AXIS = function() { return new lime_math_Vector4(0,1,0); }; lime_math_Vector4.get_Z_AXIS = function() { return new lime_math_Vector4(0,0,1); }; lime_math_Vector4.prototype = { length: null ,lengthSquared: null ,w: null ,x: null ,y: null ,z: null ,add: function(a) { return new lime_math_Vector4(this.x + a.x,this.y + a.y,this.z + a.z); } ,clone: function() { return new lime_math_Vector4(this.x,this.y,this.z,this.w); } ,copyFrom: function(sourceVector4) { this.x = sourceVector4.x; this.y = sourceVector4.y; this.z = sourceVector4.z; } ,crossProduct: function(a) { return new lime_math_Vector4(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1); } ,decrementBy: function(a) { this.x -= a.x; this.y -= a.y; this.z -= a.z; } ,dotProduct: function(a) { return this.x * a.x + this.y * a.y + this.z * a.z; } ,equals: function(toCompare,allFour) { if(allFour == null) allFour = false; return this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z && (!allFour || this.w == toCompare.w); } ,incrementBy: function(a) { this.x += a.x; this.y += a.y; this.z += a.z; } ,nearEquals: function(toCompare,tolerance,allFour) { if(allFour == null) allFour = false; return Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance && (!allFour || Math.abs(this.w - toCompare.w) < tolerance); } ,negate: function() { this.x *= -1; this.y *= -1; this.z *= -1; } ,normalize: function() { var l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); if(l != 0) { this.x /= l; this.y /= l; this.z /= l; } return l; } ,project: function() { this.x /= this.w; this.y /= this.w; this.z /= this.w; } ,scaleBy: function(s) { this.x *= s; this.y *= s; this.z *= s; } ,setTo: function(xa,ya,za) { this.x = xa; this.y = ya; this.z = za; } ,subtract: function(a) { return new lime_math_Vector4(this.x - a.x,this.y - a.y,this.z - a.z); } ,toString: function() { return "Vector4(" + this.x + ", " + this.y + ", " + this.z + ")"; } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); } ,get_lengthSquared: function() { return this.x * this.x + this.y * this.y + this.z * this.z; } ,__class__: lime_math_Vector4 ,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"} }; var lime_math_color__$ARGB_ARGB_$Impl_$ = {}; $hxClasses["lime.math.color._ARGB.ARGB_Impl_"] = lime_math_color__$ARGB_ARGB_$Impl_$; lime_math_color__$ARGB_ARGB_$Impl_$.__name__ = ["lime","math","color","_ARGB","ARGB_Impl_"]; lime_math_color__$ARGB_ARGB_$Impl_$.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"} lime_math_color__$ARGB_ARGB_$Impl_$.a16 = null; lime_math_color__$ARGB_ARGB_$Impl_$.unmult = null; lime_math_color__$ARGB_ARGB_$Impl_$._new = function(argb) { if(argb == null) argb = 0; return argb; }; lime_math_color__$ARGB_ARGB_$Impl_$.create = function(a,r,g,b) { var argb = 0; argb = (a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255; return argb; }; lime_math_color__$ARGB_ARGB_$Impl_$.multiplyAlpha = function(this1) { if((this1 >> 24 & 255) == 0) this1 = 0; else if((this1 >> 24 & 255) != 255) { lime_math_color__$ARGB_ARGB_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 >> 24 & 255]; this1 = (this1 >> 24 & 255 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255; } }; lime_math_color__$ARGB_ARGB_$Impl_$.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; switch(format) { case 2: this1 = (data[offset + 1] & 255) << 24 | (data[offset] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset + 2] & 255; break; case 0: this1 = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; case 1: this1 = (data[offset + 2] & 255) << 24 | (data[offset + 3] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 1] & 255; break; } if(premultiplied) { if((this1 >> 24 & 255) != 0 && (this1 >> 24 & 255) != 255) { lime_math_color__$ARGB_ARGB_$Impl_$.unmult = 255.0 / (this1 >> 24 & 255); var r; var idx = Math.floor((this1 >> 16 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.floor((this1 >> 8 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.floor((this1 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (this1 >> 24 & 255 & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255; } } }; lime_math_color__$ARGB_ARGB_$Impl_$.set = function(this1,a,r,g,b) { this1 = (a & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255; }; lime_math_color__$ARGB_ARGB_$Impl_$.unmultiplyAlpha = function(this1) { if((this1 >> 24 & 255) != 0 && (this1 >> 24 & 255) != 255) { lime_math_color__$ARGB_ARGB_$Impl_$.unmult = 255.0 / (this1 >> 24 & 255); var r; var idx = Math.floor((this1 >> 16 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.floor((this1 >> 8 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.floor((this1 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (this1 >> 24 & 255 & 255) << 24 | (r & 255) << 16 | (g & 255) << 8 | b & 255; } }; lime_math_color__$ARGB_ARGB_$Impl_$.writeUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; if(premultiplied) { if((this1 >> 24 & 255) == 0) this1 = 0; else if((this1 >> 24 & 255) != 255) { lime_math_color__$ARGB_ARGB_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 >> 24 & 255]; this1 = (this1 >> 24 & 255 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255) << 8 | (this1 & 255) * lime_math_color__$ARGB_ARGB_$Impl_$.a16 >> 16 & 255; } } switch(format) { case 2: data[offset] = this1 & 255; data[offset + 1] = this1 >> 8 & 255; data[offset + 2] = this1 >> 16 & 255; data[offset + 3] = this1 >> 24 & 255; break; case 0: data[offset] = this1 >> 16 & 255; data[offset + 1] = this1 >> 8 & 255; data[offset + 2] = this1 & 255; data[offset + 3] = this1 >> 24 & 255; break; case 1: data[offset] = this1 >> 24 & 255; data[offset + 1] = this1 >> 16 & 255; data[offset + 2] = this1 >> 8 & 255; data[offset + 3] = this1 & 255; break; } }; lime_math_color__$ARGB_ARGB_$Impl_$.__fromBGRA = function(bgra) { var argb = 0; argb = (bgra & 255 & 255) << 24 | (bgra >> 8 & 255 & 255) << 16 | (bgra >> 16 & 255 & 255) << 8 | bgra >> 24 & 255 & 255; return argb; }; lime_math_color__$ARGB_ARGB_$Impl_$.__fromRGBA = function(rgba) { var argb = 0; argb = (rgba & 255 & 255) << 24 | (rgba >> 24 & 255 & 255) << 16 | (rgba >> 16 & 255 & 255) << 8 | rgba >> 8 & 255 & 255; return argb; }; lime_math_color__$ARGB_ARGB_$Impl_$.get_a = function(this1) { return this1 >> 24 & 255; }; lime_math_color__$ARGB_ARGB_$Impl_$.set_a = function(this1,value) { this1 = (value & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$ARGB_ARGB_$Impl_$.get_b = function(this1) { return this1 & 255; }; lime_math_color__$ARGB_ARGB_$Impl_$.set_b = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | value & 255; return value; }; lime_math_color__$ARGB_ARGB_$Impl_$.get_g = function(this1) { return this1 >> 8 & 255; }; lime_math_color__$ARGB_ARGB_$Impl_$.set_g = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$ARGB_ARGB_$Impl_$.get_r = function(this1) { return this1 >> 16 & 255; }; lime_math_color__$ARGB_ARGB_$Impl_$.set_r = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; var lime_math_color__$BGRA_BGRA_$Impl_$ = {}; $hxClasses["lime.math.color._BGRA.BGRA_Impl_"] = lime_math_color__$BGRA_BGRA_$Impl_$; lime_math_color__$BGRA_BGRA_$Impl_$.__name__ = ["lime","math","color","_BGRA","BGRA_Impl_"]; lime_math_color__$BGRA_BGRA_$Impl_$.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"} lime_math_color__$BGRA_BGRA_$Impl_$.a16 = null; lime_math_color__$BGRA_BGRA_$Impl_$.unmult = null; lime_math_color__$BGRA_BGRA_$Impl_$._new = function(bgra) { if(bgra == null) bgra = 0; return bgra; }; lime_math_color__$BGRA_BGRA_$Impl_$.create = function(b,g,r,a) { var bgra = 0; bgra = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | a & 255; return bgra; }; lime_math_color__$BGRA_BGRA_$Impl_$.multiplyAlpha = function(this1) { if((this1 & 255) == 0) this1 = 0; else if((this1 & 255) != 255) { lime_math_color__$BGRA_BGRA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 & 255]; this1 = ((this1 >> 24 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } }; lime_math_color__$BGRA_BGRA_$Impl_$.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; switch(format) { case 2: this1 = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 0: this1 = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 1: this1 = (data[offset + 3] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 1] & 255) << 8 | data[offset] & 255; break; } if(premultiplied) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_color__$BGRA_BGRA_$Impl_$.unmult = 255.0 / (this1 & 255); var b; var idx = Math.floor((this1 >> 24 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.floor((this1 >> 16 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var r; var idx2 = Math.floor((this1 >> 8 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | this1 & 255 & 255; } } }; lime_math_color__$BGRA_BGRA_$Impl_$.set = function(this1,b,g,r,a) { this1 = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | a & 255; }; lime_math_color__$BGRA_BGRA_$Impl_$.unmultiplyAlpha = function(this1) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_color__$BGRA_BGRA_$Impl_$.unmult = 255.0 / (this1 & 255); var b; var idx = Math.floor((this1 >> 24 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.floor((this1 >> 16 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var r; var idx2 = Math.floor((this1 >> 8 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (b & 255) << 24 | (g & 255) << 16 | (r & 255) << 8 | this1 & 255 & 255; } }; lime_math_color__$BGRA_BGRA_$Impl_$.writeUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; if(premultiplied) { if((this1 & 255) == 0) this1 = 0; else if((this1 & 255) != 255) { lime_math_color__$BGRA_BGRA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 & 255]; this1 = ((this1 >> 24 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$BGRA_BGRA_$Impl_$.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } } switch(format) { case 2: data[offset] = this1 >> 24 & 255; data[offset + 1] = this1 >> 16 & 255; data[offset + 2] = this1 >> 8 & 255; data[offset + 3] = this1 & 255; break; case 0: data[offset] = this1 >> 8 & 255; data[offset + 1] = this1 >> 16 & 255; data[offset + 2] = this1 >> 24 & 255; data[offset + 3] = this1 & 255; break; case 1: data[offset] = this1 & 255; data[offset + 1] = this1 >> 8 & 255; data[offset + 2] = this1 >> 16 & 255; data[offset + 3] = this1 >> 24 & 255; break; } }; lime_math_color__$BGRA_BGRA_$Impl_$.__fromARGB = function(argb) { var bgra = 0; bgra = (argb & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb >> 16 & 255 & 255) << 8 | argb >> 24 & 255 & 255; return bgra; }; lime_math_color__$BGRA_BGRA_$Impl_$.__fromRGBA = function(rgba) { var bgra = 0; bgra = (rgba >> 8 & 255 & 255) << 24 | (rgba >> 16 & 255 & 255) << 16 | (rgba >> 24 & 255 & 255) << 8 | rgba & 255 & 255; return bgra; }; lime_math_color__$BGRA_BGRA_$Impl_$.get_a = function(this1) { return this1 & 255; }; lime_math_color__$BGRA_BGRA_$Impl_$.set_a = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | value & 255; return value; }; lime_math_color__$BGRA_BGRA_$Impl_$.get_b = function(this1) { return this1 >> 24 & 255; }; lime_math_color__$BGRA_BGRA_$Impl_$.set_b = function(this1,value) { this1 = (value & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$BGRA_BGRA_$Impl_$.get_g = function(this1) { return this1 >> 16 & 255; }; lime_math_color__$BGRA_BGRA_$Impl_$.set_g = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$BGRA_BGRA_$Impl_$.get_r = function(this1) { return this1 >> 8 & 255; }; lime_math_color__$BGRA_BGRA_$Impl_$.set_r = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255; return value; }; var lime_math_color__$RGBA_RGBA_$Impl_$ = {}; $hxClasses["lime.math.color._RGBA.RGBA_Impl_"] = lime_math_color__$RGBA_RGBA_$Impl_$; lime_math_color__$RGBA_RGBA_$Impl_$.__name__ = ["lime","math","color","_RGBA","RGBA_Impl_"]; lime_math_color__$RGBA_RGBA_$Impl_$.__properties__ = {set_r:"set_r",get_r:"get_r",set_g:"set_g",get_g:"get_g",set_b:"set_b",get_b:"get_b",set_a:"set_a",get_a:"get_a"} lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16 = null; lime_math_color__$RGBA_RGBA_$Impl_$.__clamp = null; lime_math_color__$RGBA_RGBA_$Impl_$.a16 = null; lime_math_color__$RGBA_RGBA_$Impl_$.unmult = null; lime_math_color__$RGBA_RGBA_$Impl_$._new = function(rgba) { if(rgba == null) rgba = 0; return rgba; }; lime_math_color__$RGBA_RGBA_$Impl_$.create = function(r,g,b,a) { var rgba = 0; rgba = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255; return rgba; }; lime_math_color__$RGBA_RGBA_$Impl_$.multiplyAlpha = function(this1) { if((this1 & 255) == 0) { if(this1 != 0) this1 = 0; } else if((this1 & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 & 255]; this1 = ((this1 >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } }; lime_math_color__$RGBA_RGBA_$Impl_$.readUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; switch(format) { case 2: this1 = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255; break; case 0: this1 = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255; break; case 1: this1 = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255; break; } if(premultiplied) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (this1 & 255); var r; var idx = Math.round((this1 >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((this1 >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((this1 >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | this1 & 255 & 255; } } }; lime_math_color__$RGBA_RGBA_$Impl_$.set = function(this1,r,g,b,a) { this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255; }; lime_math_color__$RGBA_RGBA_$Impl_$.unmultiplyAlpha = function(this1) { if((this1 & 255) != 0 && (this1 & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.unmult = 255.0 / (this1 & 255); var r; var idx = Math.round((this1 >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); r = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx]; var g; var idx1 = Math.round((this1 >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); g = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx1]; var b; var idx2 = Math.round((this1 >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.unmult); b = lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[idx2]; this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | this1 & 255 & 255; } }; lime_math_color__$RGBA_RGBA_$Impl_$.writeUInt8 = function(this1,data,offset,format,premultiplied) { if(premultiplied == null) premultiplied = false; if(format == null) format = 0; if(premultiplied) { if((this1 & 255) == 0) { if(this1 != 0) this1 = 0; } else if((this1 & 255) != 255) { lime_math_color__$RGBA_RGBA_$Impl_$.a16 = lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[this1 & 255]; this1 = ((this1 >> 24 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 24 | ((this1 >> 16 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 16 | ((this1 >> 8 & 255) * lime_math_color__$RGBA_RGBA_$Impl_$.a16 >> 16 & 255) << 8 | this1 & 255 & 255; } } switch(format) { case 2: data[offset] = this1 >> 8 & 255; data[offset + 1] = this1 >> 16 & 255; data[offset + 2] = this1 >> 24 & 255; data[offset + 3] = this1 & 255; break; case 0: data[offset] = this1 >> 24 & 255; data[offset + 1] = this1 >> 16 & 255; data[offset + 2] = this1 >> 8 & 255; data[offset + 3] = this1 & 255; break; case 1: data[offset] = this1 & 255; data[offset + 1] = this1 >> 24 & 255; data[offset + 2] = this1 >> 16 & 255; data[offset + 3] = this1 >> 8 & 255; break; } }; lime_math_color__$RGBA_RGBA_$Impl_$.__fromARGB = function(argb) { var rgba = 0; rgba = (argb >> 16 & 255 & 255) << 24 | (argb >> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >> 24 & 255 & 255; return rgba; }; lime_math_color__$RGBA_RGBA_$Impl_$.__fromBGRA = function(bgra) { var rgba = 0; rgba = (bgra >> 8 & 255 & 255) << 24 | (bgra >> 16 & 255 & 255) << 16 | (bgra >> 24 & 255 & 255) << 8 | bgra & 255 & 255; return rgba; }; lime_math_color__$RGBA_RGBA_$Impl_$.get_a = function(this1) { return this1 & 255; }; lime_math_color__$RGBA_RGBA_$Impl_$.set_a = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | value & 255; return value; }; lime_math_color__$RGBA_RGBA_$Impl_$.get_b = function(this1) { return this1 >> 8 & 255; }; lime_math_color__$RGBA_RGBA_$Impl_$.set_b = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$RGBA_RGBA_$Impl_$.get_g = function(this1) { return this1 >> 16 & 255; }; lime_math_color__$RGBA_RGBA_$Impl_$.set_g = function(this1,value) { this1 = (this1 >> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; lime_math_color__$RGBA_RGBA_$Impl_$.get_r = function(this1) { return this1 >> 24 & 255; }; lime_math_color__$RGBA_RGBA_$Impl_$.set_r = function(this1,value) { this1 = (value & 255) << 24 | (this1 >> 16 & 255 & 255) << 16 | (this1 >> 8 & 255 & 255) << 8 | this1 & 255 & 255; return value; }; var lime_net_HTTPRequest = function() { this.promise = new lime_app_Promise(); }; $hxClasses["lime.net.HTTPRequest"] = lime_net_HTTPRequest; lime_net_HTTPRequest.__name__ = ["lime","net","HTTPRequest"]; lime_net_HTTPRequest.prototype = { bytes: null ,bytesLoaded: null ,bytesTotal: null ,promise: null ,load: function(url) { var _g = this; this.bytesLoaded = 0; this.bytesTotal = 0; var request = new XMLHttpRequest(); request.addEventListener("progress",$bind(this,this.request_onProgress),false); request.onreadystatechange = function() { if(request.readyState != 4) return; /* famobi: allow request status zero if file protocol is used (usecase iOS UIWebView) */ var protocolRegex = new RegExp('^file:', 'i'); var isFileProtocol = protocolRegex.test(request.responseURL); if (request.status != null && (request.status >= 200 && request.status <= 400 || isFileProtocol && request.status === 0)) { _g.bytes = lime_utils_Bytes.ofData(request.response); _g.promise.complete(_g.bytes); } else _g.promise.error(request.status); }; request.open("GET",url,true); request.responseType = "arraybuffer"; request.send(""); return this.promise.future; } ,curl_onProgress: function(dltotal,dlnow,uptotal,upnow) { if(upnow > this.bytesLoaded || dlnow > this.bytesLoaded || uptotal > this.bytesTotal || dltotal > this.bytesTotal) { if(upnow > this.bytesLoaded) this.bytesLoaded = upnow | 0; if(dlnow > this.bytesLoaded) this.bytesLoaded = dlnow | 0; if(uptotal > this.bytesTotal) this.bytesTotal = uptotal | 0; if(dltotal > this.bytesTotal) this.bytesTotal = dltotal | 0; this.promise.progress(this.bytesLoaded / this.bytesTotal); } return 0; } ,curl_onWrite: function(output,size,nmemb) { var cacheBytes = this.bytes; this.bytes = lime_utils_Bytes.alloc(this.bytes.length + output.length); this.bytes.blit(0,cacheBytes,0,cacheBytes.length); this.bytes.blit(cacheBytes.length,output,0,output.length); return size * nmemb; } ,request_onProgress: function(event) { this.promise.progress(event.loaded / event.total); } ,__class__: lime_net_HTTPRequest }; var lime_net_curl__$CURL_CURL_$Impl_$ = {}; $hxClasses["lime.net.curl._CURL.CURL_Impl_"] = lime_net_curl__$CURL_CURL_$Impl_$; lime_net_curl__$CURL_CURL_$Impl_$.__name__ = ["lime","net","curl","_CURL","CURL_Impl_"]; lime_net_curl__$CURL_CURL_$Impl_$.getDate = function(date,now) { return 0; }; lime_net_curl__$CURL_CURL_$Impl_$.globalCleanup = function() { }; lime_net_curl__$CURL_CURL_$Impl_$.globalInit = function(flags) { return 0; }; lime_net_curl__$CURL_CURL_$Impl_$.version = function() { return null; }; lime_net_curl__$CURL_CURL_$Impl_$.versionInfo = function(type) { return null; }; lime_net_curl__$CURL_CURL_$Impl_$.intGt = function(a,b) { return a > b; }; var lime_net_curl_CURLEasy = function() { }; $hxClasses["lime.net.curl.CURLEasy"] = lime_net_curl_CURLEasy; lime_net_curl_CURLEasy.__name__ = ["lime","net","curl","CURLEasy"]; lime_net_curl_CURLEasy.cleanup = function(handle) { }; lime_net_curl_CURLEasy.duphandle = function(handle) { return 0; }; lime_net_curl_CURLEasy.escape = function(handle,url,length) { return null; }; lime_net_curl_CURLEasy.getinfo = function(handle,info) { return null; }; lime_net_curl_CURLEasy.init = function() { return 0; }; lime_net_curl_CURLEasy.pause = function(handle,bitMask) { return 0; }; lime_net_curl_CURLEasy.perform = function(handle) { return 0; }; lime_net_curl_CURLEasy.reset = function(handle) { }; lime_net_curl_CURLEasy.setopt = function(handle,option,parameter) { return 0; }; lime_net_curl_CURLEasy.strerror = function(code) { return null; }; lime_net_curl_CURLEasy.unescape = function(handle,url,inLength,outLength) { return null; }; lime_net_curl_CURLEasy.__writeCallback = function(callback,output,size,nmemb) { return 0; }; var lime_system_BackgroundWorker = function() { this.onProgress = new lime_app_Event_$Dynamic_$Void(); this.onError = new lime_app_Event_$Dynamic_$Void(); this.onComplete = new lime_app_Event_$Dynamic_$Void(); this.doWork = new lime_app_Event_$Dynamic_$Void(); }; $hxClasses["lime.system.BackgroundWorker"] = lime_system_BackgroundWorker; lime_system_BackgroundWorker.__name__ = ["lime","system","BackgroundWorker"]; lime_system_BackgroundWorker.prototype = { canceled: null ,doWork: null ,onComplete: null ,onError: null ,onProgress: null ,__runMessage: null ,cancel: function() { this.canceled = true; } ,run: function(message) { this.canceled = false; this.__runMessage = message; this.__doWork(); } ,sendComplete: function(message) { if(!this.canceled) { this.canceled = true; this.onComplete.dispatch(message); } } ,sendError: function(message) { if(!this.canceled) { this.canceled = true; this.onError.dispatch(message); } } ,sendProgress: function(message) { if(!this.canceled) this.onProgress.dispatch(message); } ,__doWork: function() { this.doWork.dispatch(this.__runMessage); } ,__update: function(deltaTime) { } ,__class__: lime_system_BackgroundWorker }; var lime_system_CFFI = function() { }; $hxClasses["lime.system.CFFI"] = lime_system_CFFI; lime_system_CFFI.__name__ = ["lime","system","CFFI"]; lime_system_CFFI.available = null; lime_system_CFFI.enabled = null; lime_system_CFFI.load = function(library,method,args,lazy) { if(lazy == null) lazy = false; if(args == null) args = 0; if(!lime_system_CFFI.enabled) return Reflect.makeVarArgs(function(__) { return { }; }); var result = null; return result; }; lime_system_CFFI.__findHaxelib = function(library) { return ""; }; lime_system_CFFI.__loaderTrace = function(message) { }; lime_system_CFFI.__sysName = function() { return null; }; lime_system_CFFI.__tryLoad = function(name,library,func,args) { return null; }; var lime_system__$CFFIPointer_CFFIPointer_$Impl_$ = {}; $hxClasses["lime.system._CFFIPointer.CFFIPointer_Impl_"] = lime_system__$CFFIPointer_CFFIPointer_$Impl_$; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.__name__ = ["lime","system","_CFFIPointer","CFFIPointer_Impl_"]; lime_system__$CFFIPointer_CFFIPointer_$Impl_$._new = function(handle) { return handle; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get = function(this1) { if(this1 != null) { } return 0; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.equals = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) == b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.equalsPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) == lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.greaterThan = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) > b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.greaterThanPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) > lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.greaterThanOrEqual = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) >= b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.greaterThanOrEqualPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) >= lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.lessThan = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) < b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.lessThanPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) < lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.lessThanOrEqual = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) <= b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.lessThanOrEqualPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) <= lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.notEquals = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) != b; }; lime_system__$CFFIPointer_CFFIPointer_$Impl_$.notEqualsPointer = function(a,b) { return lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(a) != lime_system__$CFFIPointer_CFFIPointer_$Impl_$.get(b); }; var lime_system_Clipboard = function() { }; $hxClasses["lime.system.Clipboard"] = lime_system_Clipboard; lime_system_Clipboard.__name__ = ["lime","system","Clipboard"]; lime_system_Clipboard.__properties__ = {set_text:"set_text",get_text:"get_text"} lime_system_Clipboard.get_text = function() { return null; }; lime_system_Clipboard.set_text = function(value) { return null; }; var lime_system_Display = function() { }; $hxClasses["lime.system.Display"] = lime_system_Display; lime_system_Display.__name__ = ["lime","system","Display"]; lime_system_Display.prototype = { bounds: null ,currentMode: null ,id: null ,dpi: null ,name: null ,supportedModes: null ,__class__: lime_system_Display }; var lime_system_DisplayMode = function(width,height,refreshRate,pixelFormat) { this.width = width; this.height = height; this.refreshRate = refreshRate; this.pixelFormat = pixelFormat; }; $hxClasses["lime.system.DisplayMode"] = lime_system_DisplayMode; lime_system_DisplayMode.__name__ = ["lime","system","DisplayMode"]; lime_system_DisplayMode.prototype = { height: null ,pixelFormat: null ,refreshRate: null ,width: null ,__class__: lime_system_DisplayMode }; var lime_system_Endian = $hxClasses["lime.system.Endian"] = { __ename__ : ["lime","system","Endian"], __constructs__ : ["LITTLE_ENDIAN","BIG_ENDIAN"] }; lime_system_Endian.LITTLE_ENDIAN = ["LITTLE_ENDIAN",0]; lime_system_Endian.LITTLE_ENDIAN.toString = $estr; lime_system_Endian.LITTLE_ENDIAN.__enum__ = lime_system_Endian; lime_system_Endian.BIG_ENDIAN = ["BIG_ENDIAN",1]; lime_system_Endian.BIG_ENDIAN.toString = $estr; lime_system_Endian.BIG_ENDIAN.__enum__ = lime_system_Endian; var lime_system_System = function() { }; $hxClasses["lime.system.System"] = lime_system_System; lime_system_System.__name__ = ["lime","system","System"]; lime_system_System.__properties__ = {get_userDirectory:"get_userDirectory",get_numDisplays:"get_numDisplays",get_fontsDirectory:"get_fontsDirectory",get_endianness:"get_endianness",get_documentsDirectory:"get_documentsDirectory",get_desktopDirectory:"get_desktopDirectory",get_applicationStorageDirectory:"get_applicationStorageDirectory",get_applicationDirectory:"get_applicationDirectory",set_allowScreenTimeout:"set_allowScreenTimeout",get_allowScreenTimeout:"get_allowScreenTimeout"} lime_system_System.applicationDirectory = null; lime_system_System.applicationStorageDirectory = null; lime_system_System.desktopDirectory = null; lime_system_System.disableCFFI = null; lime_system_System.documentsDirectory = null; lime_system_System.endianness = null; lime_system_System.fontsDirectory = null; lime_system_System.numDisplays = null; lime_system_System.userDirectory = null; lime_system_System.embed = $hx_exports.lime.embed = function(element,width,height,background,assetsPrefix) { var htmlElement = null; if(typeof(element) == "string") htmlElement = window.document.getElementById(js_Boot.__cast(element , String)); else if(element == null) htmlElement = window.document.createElement("div"); else htmlElement = element; var color = null; if(background != null) { background = StringTools.replace(background,"#",""); if(background.indexOf("0x") > -1) color = Std.parseInt(background); else color = Std.parseInt("0x" + background); } if(width == null) width = 0; if(height == null) height = 0; ApplicationMain.config.windows[0].background = color; ApplicationMain.config.windows[0].element = htmlElement; ApplicationMain.config.windows[0].width = width; ApplicationMain.config.windows[0].height = height; ApplicationMain.config.assetsPrefix = assetsPrefix; ApplicationMain.create(); }; lime_system_System.exit = function(code) { }; lime_system_System.getDisplay = function(id) { if(id == 0) { var display = new lime_system_Display(); display.id = 0; display.name = "Generic Display"; display.dpi = 96; display.currentMode = new lime_system_DisplayMode(window.screen.width,window.screen.height,60,1); display.supportedModes = [display.currentMode]; display.bounds = new lime_math_Rectangle(0,0,display.currentMode.width,display.currentMode.height); return display; } return null; }; lime_system_System.getTimer = function() { return new Date().getTime(); }; lime_system_System.load = function(library,method,args,lazy) { if(lazy == null) lazy = false; if(args == null) args = 0; return lime_system_CFFI.load(library,method,args,lazy); }; lime_system_System.get_allowScreenTimeout = function() { return true; }; lime_system_System.set_allowScreenTimeout = function(value) { return true; }; lime_system_System.get_applicationDirectory = function() { return null; }; lime_system_System.get_applicationStorageDirectory = function() { var company = "MyCompany"; var file = "MyApplication"; if(lime_app_Application.current != null && lime_app_Application.current.config != null) { if(lime_app_Application.current.config.company != null) company = lime_app_Application.current.config.company; if(lime_app_Application.current.config.file != null) file = lime_app_Application.current.config.file; } return null; }; lime_system_System.get_desktopDirectory = function() { return null; }; lime_system_System.get_documentsDirectory = function() { return null; }; lime_system_System.get_fontsDirectory = function() { return null; }; lime_system_System.get_numDisplays = function() { return 1; }; lime_system_System.get_userDirectory = function() { return null; }; lime_system_System.get_endianness = function() { return lime_system_Endian.LITTLE_ENDIAN; }; var lime_system_ThreadPool = function(minThreads,maxThreads) { if(maxThreads == null) maxThreads = 1; if(minThreads == null) minThreads = 0; this.onProgress = new lime_app_Event_$Dynamic_$Void(); this.onError = new lime_app_Event_$Dynamic_$Void(); this.onComplete = new lime_app_Event_$Dynamic_$Void(); this.doWork = new lime_app_Event_$Dynamic_$Void(); this.minThreads = minThreads; this.maxThreads = maxThreads; this.currentThreads = 0; }; $hxClasses["lime.system.ThreadPool"] = lime_system_ThreadPool; lime_system_ThreadPool.__name__ = ["lime","system","ThreadPool"]; lime_system_ThreadPool.prototype = { currentThreads: null ,doWork: null ,maxThreads: null ,minThreads: null ,onComplete: null ,onError: null ,onProgress: null ,queue: function(state) { this.doWork.dispatch(state); } ,sendComplete: function(state) { this.onComplete.dispatch(state); } ,sendError: function(state) { this.onError.dispatch(state); } ,sendProgress: function(state) { this.onProgress.dispatch(state); } ,__class__: lime_system_ThreadPool }; var lime_system__$ThreadPool_ThreadPoolMessageType = $hxClasses["lime.system._ThreadPool.ThreadPoolMessageType"] = { __ename__ : ["lime","system","_ThreadPool","ThreadPoolMessageType"], __constructs__ : ["COMPLETE","ERROR","EXIT","PROGRESS","WORK"] }; lime_system__$ThreadPool_ThreadPoolMessageType.COMPLETE = ["COMPLETE",0]; lime_system__$ThreadPool_ThreadPoolMessageType.COMPLETE.toString = $estr; lime_system__$ThreadPool_ThreadPoolMessageType.COMPLETE.__enum__ = lime_system__$ThreadPool_ThreadPoolMessageType; lime_system__$ThreadPool_ThreadPoolMessageType.ERROR = ["ERROR",1]; lime_system__$ThreadPool_ThreadPoolMessageType.ERROR.toString = $estr; lime_system__$ThreadPool_ThreadPoolMessageType.ERROR.__enum__ = lime_system__$ThreadPool_ThreadPoolMessageType; lime_system__$ThreadPool_ThreadPoolMessageType.EXIT = ["EXIT",2]; lime_system__$ThreadPool_ThreadPoolMessageType.EXIT.toString = $estr; lime_system__$ThreadPool_ThreadPoolMessageType.EXIT.__enum__ = lime_system__$ThreadPool_ThreadPoolMessageType; lime_system__$ThreadPool_ThreadPoolMessageType.PROGRESS = ["PROGRESS",3]; lime_system__$ThreadPool_ThreadPoolMessageType.PROGRESS.toString = $estr; lime_system__$ThreadPool_ThreadPoolMessageType.PROGRESS.__enum__ = lime_system__$ThreadPool_ThreadPoolMessageType; lime_system__$ThreadPool_ThreadPoolMessageType.WORK = ["WORK",4]; lime_system__$ThreadPool_ThreadPoolMessageType.WORK.toString = $estr; lime_system__$ThreadPool_ThreadPoolMessageType.WORK.__enum__ = lime_system__$ThreadPool_ThreadPoolMessageType; var lime_system__$ThreadPool_ThreadPoolMessage = function(type,state) { this.type = type; this.state = state; }; $hxClasses["lime.system._ThreadPool.ThreadPoolMessage"] = lime_system__$ThreadPool_ThreadPoolMessage; lime_system__$ThreadPool_ThreadPoolMessage.__name__ = ["lime","system","_ThreadPool","ThreadPoolMessage"]; lime_system__$ThreadPool_ThreadPoolMessage.prototype = { state: null ,type: null ,__class__: lime_system__$ThreadPool_ThreadPoolMessage }; var lime_text__$Glyph_Glyph_$Impl_$ = {}; $hxClasses["lime.text._Glyph.Glyph_Impl_"] = lime_text__$Glyph_Glyph_$Impl_$; lime_text__$Glyph_Glyph_$Impl_$.__name__ = ["lime","text","_Glyph","Glyph_Impl_"]; lime_text__$Glyph_Glyph_$Impl_$._new = function(i) { return i; }; var lime_text_GlyphMetrics = function() { }; $hxClasses["lime.text.GlyphMetrics"] = lime_text_GlyphMetrics; lime_text_GlyphMetrics.__name__ = ["lime","text","GlyphMetrics"]; lime_text_GlyphMetrics.prototype = { advance: null ,height: null ,horizontalBearing: null ,verticalBearing: null ,__class__: lime_text_GlyphMetrics }; var lime_text_GlyphPosition = function(glyph,advance,offset) { this.glyph = glyph; this.advance = advance; if(offset != null) this.offset = offset; else this.offset = new lime_math_Vector2(); }; $hxClasses["lime.text.GlyphPosition"] = lime_text_GlyphPosition; lime_text_GlyphPosition.__name__ = ["lime","text","GlyphPosition"]; lime_text_GlyphPosition.prototype = { advance: null ,glyph: null ,offset: null ,__class__: lime_text_GlyphPosition }; var lime_text__$TextDirection_TextDirection_$Impl_$ = {}; $hxClasses["lime.text._TextDirection.TextDirection_Impl_"] = lime_text__$TextDirection_TextDirection_$Impl_$; lime_text__$TextDirection_TextDirection_$Impl_$.__name__ = ["lime","text","_TextDirection","TextDirection_Impl_"]; lime_text__$TextDirection_TextDirection_$Impl_$.__properties__ = {get_vertical:"get_vertical",get_horizontal:"get_horizontal",get_forward:"get_forward",get_backward:"get_backward"} lime_text__$TextDirection_TextDirection_$Impl_$.reverse = function(this1) { this1 = this1 ^ 1; }; lime_text__$TextDirection_TextDirection_$Impl_$.toString = function(this1) { switch(this1) { case 4: return "leftToRight"; case 5: return "rightToLeft"; case 6: return "topToBottom"; case 7: return "bottomToTop"; default: return ""; } }; lime_text__$TextDirection_TextDirection_$Impl_$.get_backward = function(this1) { return (this1 & -3) == 5; }; lime_text__$TextDirection_TextDirection_$Impl_$.get_forward = function(this1) { return (this1 & -3) == 4; }; lime_text__$TextDirection_TextDirection_$Impl_$.get_horizontal = function(this1) { return (this1 & -2) == 4; }; lime_text__$TextDirection_TextDirection_$Impl_$.get_vertical = function(this1) { return (this1 & -2) == 6; }; var lime_text_TextLayout = function(text,font,size,direction,script,language) { if(language == null) language = "en"; if(script == null) script = "Zyyy"; if(direction == null) direction = 4; if(size == null) size = 12; if(text == null) text = ""; this.set_text(text); this.set_font(font); this.set_size(size); this.__direction = direction; this.__script = script; this.__language = language; this.positions = []; this.__dirty = true; }; $hxClasses["lime.text.TextLayout"] = lime_text_TextLayout; lime_text_TextLayout.__name__ = ["lime","text","TextLayout"]; lime_text_TextLayout.prototype = { font: null ,glyphs: null ,positions: null ,size: null ,text: null ,__dirty: null ,__buffer: null ,__direction: null ,__handle: null ,__language: null ,__script: null ,__position: function() { this.positions = []; } ,get_positions: function() { if(this.__dirty) { this.__dirty = false; this.__position(); } return this.positions; } ,get_direction: function() { return this.__direction; } ,set_direction: function(value) { if(value == this.__direction) return value; this.__direction = value; this.__dirty = true; return value; } ,set_font: function(value) { if(value == this.font) return value; this.font = value; this.__dirty = true; return value; } ,get_glyphs: function() { var glyphs = []; var _g = 0; var _g1 = this.get_positions(); while(_g < _g1.length) { var position = _g1[_g]; ++_g; glyphs.push(position.glyph); } return glyphs; } ,get_language: function() { return this.__language; } ,set_language: function(value) { if(value == this.__language) return value; this.__language = value; this.__dirty = true; return value; } ,get_script: function() { return this.__script; } ,set_script: function(value) { if(value == this.__script) return value; this.__script = value; this.__dirty = true; return value; } ,set_size: function(value) { if(value == this.size) return value; this.size = value; this.__dirty = true; return value; } ,set_text: function(value) { if(value == this.text) return value; this.text = value; this.__dirty = true; return value; } ,__class__: lime_text_TextLayout ,__properties__: {set_text:"set_text",set_size:"set_size",set_script:"set_script",get_script:"get_script",get_positions:"get_positions",set_language:"set_language",get_language:"get_language",get_glyphs:"get_glyphs",set_font:"set_font",set_direction:"set_direction",get_direction:"get_direction"} }; var lime_text__$TextScript_TextScript_$Impl_$ = {}; $hxClasses["lime.text._TextScript.TextScript_Impl_"] = lime_text__$TextScript_TextScript_$Impl_$; lime_text__$TextScript_TextScript_$Impl_$.__name__ = ["lime","text","_TextScript","TextScript_Impl_"]; lime_text__$TextScript_TextScript_$Impl_$.__properties__ = {get_rightToLeft:"get_rightToLeft"} lime_text__$TextScript_TextScript_$Impl_$.get_rightToLeft = function(this1) { switch(this1) { case "Hebr":case "Arab":case "Syrc":case "Thaa":case "Nkoo":case "Samr":case "Mand":case "Armi":case "Phnx":case "Lydi":case "Cprt":case "Khar":case "Sarb":case "Avst":case "Phli":case "Phlp":case "Orkh": return true; default: return false; } }; var lime_ui_Gamepad = function(id) { this.onDisconnect = new lime_app_Event_$Void_$Void(); this.onButtonUp = new lime_app_Event_$lime_$ui_$GamepadButton_$Void(); this.onButtonDown = new lime_app_Event_$lime_$ui_$GamepadButton_$Void(); this.onAxisMove = new lime_app_Event_$lime_$ui_$GamepadAxis_$Float_$Void(); this.id = id; this.connected = true; }; $hxClasses["lime.ui.Gamepad"] = lime_ui_Gamepad; lime_ui_Gamepad.__name__ = ["lime","ui","Gamepad"]; lime_ui_Gamepad.addMappings = function(mappings) { }; lime_ui_Gamepad.__connect = function(id) { if(!lime_ui_Gamepad.devices.h.hasOwnProperty(id)) { var gamepad = new lime_ui_Gamepad(id); lime_ui_Gamepad.devices.h[id] = gamepad; lime_ui_Gamepad.onConnect.dispatch(gamepad); } }; lime_ui_Gamepad.__disconnect = function(id) { var gamepad = lime_ui_Gamepad.devices.h[id]; if(gamepad != null) gamepad.connected = false; lime_ui_Gamepad.devices.remove(id); if(gamepad != null) gamepad.onDisconnect.dispatch(); }; lime_ui_Gamepad.prototype = { connected: null ,id: null ,onAxisMove: null ,onButtonDown: null ,onButtonUp: null ,onDisconnect: null ,get_guid: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].id; } ,get_name: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].id; } ,__class__: lime_ui_Gamepad ,__properties__: {get_name:"get_name",get_guid:"get_guid"} }; var lime_ui__$GamepadAxis_GamepadAxis_$Impl_$ = {}; $hxClasses["lime.ui._GamepadAxis.GamepadAxis_Impl_"] = lime_ui__$GamepadAxis_GamepadAxis_$Impl_$; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.__name__ = ["lime","ui","_GamepadAxis","GamepadAxis_Impl_"]; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.toString = function(this1) { switch(this1) { case 0: return "LEFT_X"; case 1: return "LEFT_Y"; case 2: return "RIGHT_X"; case 3: return "RIGHT_Y"; case 4: return "TRIGGER_LEFT"; case 5: return "TRIGGER_RIGHT"; default: return "UNKNOWN (" + this1 + ")"; } }; var lime_ui__$GamepadButton_GamepadButton_$Impl_$ = {}; $hxClasses["lime.ui._GamepadButton.GamepadButton_Impl_"] = lime_ui__$GamepadButton_GamepadButton_$Impl_$; lime_ui__$GamepadButton_GamepadButton_$Impl_$.__name__ = ["lime","ui","_GamepadButton","GamepadButton_Impl_"]; lime_ui__$GamepadButton_GamepadButton_$Impl_$.toString = function(this1) { switch(this1) { case 0: return "A"; case 1: return "B"; case 2: return "X"; case 3: return "Y"; case 4: return "BACK"; case 5: return "GUIDE"; case 6: return "START"; case 7: return "LEFT_STICK"; case 8: return "RIGHT_STICK"; case 9: return "LEFT_SHOULDER"; case 10: return "RIGHT_SHOULDER"; case 11: return "DPAD_UP"; case 12: return "DPAD_DOWN"; case 13: return "DPAD_LEFT"; case 14: return "DPAD_RIGHT"; default: return "UNKNOWN (" + this1 + ")"; } }; var lime_ui_Joystick = function(id) { this.onTrackballMove = new lime_app_Event_$Int_$Float_$Void(); this.onHatMove = new lime_app_Event_$Int_$lime_$ui_$JoystickHatPosition_$Void(); this.onDisconnect = new lime_app_Event_$Void_$Void(); this.onButtonUp = new lime_app_Event_$Int_$Void(); this.onButtonDown = new lime_app_Event_$Int_$Void(); this.onAxisMove = new lime_app_Event_$Int_$Float_$Void(); this.id = id; this.connected = true; }; $hxClasses["lime.ui.Joystick"] = lime_ui_Joystick; lime_ui_Joystick.__name__ = ["lime","ui","Joystick"]; lime_ui_Joystick.__connect = function(id) { if(!lime_ui_Joystick.devices.h.hasOwnProperty(id)) { var joystick = new lime_ui_Joystick(id); lime_ui_Joystick.devices.h[id] = joystick; lime_ui_Joystick.onConnect.dispatch(joystick); } }; lime_ui_Joystick.__disconnect = function(id) { var joystick = lime_ui_Joystick.devices.h[id]; if(joystick != null) joystick.connected = false; lime_ui_Joystick.devices.remove(id); if(joystick != null) joystick.onDisconnect.dispatch(); }; lime_ui_Joystick.__getDeviceData = function() { if(navigator.getGamepads) return navigator.getGamepads(); else if(navigator.webkitGetGamepads) return navigator.webkitGetGamepads(); else return null; }; lime_ui_Joystick.prototype = { connected: null ,id: null ,onAxisMove: null ,onButtonDown: null ,onButtonUp: null ,onDisconnect: null ,onHatMove: null ,onTrackballMove: null ,get_guid: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].id; } ,get_name: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].id; } ,get_numAxes: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].axes.length; } ,get_numButtons: function() { var devices = lime_ui_Joystick.__getDeviceData(); return devices[this.id].buttons.length; } ,get_numHats: function() { return 0; } ,get_numTrackballs: function() { return 0; } ,__class__: lime_ui_Joystick ,__properties__: {get_numTrackballs:"get_numTrackballs",get_numHats:"get_numHats",get_numButtons:"get_numButtons",get_numAxes:"get_numAxes",get_name:"get_name",get_guid:"get_guid"} }; var lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$ = {}; $hxClasses["lime.ui._JoystickHatPosition.JoystickHatPosition_Impl_"] = lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.__name__ = ["lime","ui","_JoystickHatPosition","JoystickHatPosition_Impl_"]; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.__properties__ = {set_up:"set_up",get_up:"get_up",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_down:"set_down",get_down:"get_down",set_center:"set_center",get_center:"get_center"} lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$._new = function(value) { return value; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.get_center = function(this1) { return this1 == 0; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.set_center = function(this1,value) { if(value) this1 = 0; return value; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.get_down = function(this1) { return (this1 & 4) > 0; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.set_down = function(this1,value) { if(value) this1 |= 4; else this1 &= 268435455 - 4; return value; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.get_left = function(this1) { return (this1 & 8) > 0; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.set_left = function(this1,value) { if(value) this1 |= 8; else this1 &= 268435455 - 8; return value; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.get_right = function(this1) { return (this1 & 2) > 0; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.set_right = function(this1,value) { if(value) this1 |= 2; else this1 &= 268435455 - 2; return value; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.get_up = function(this1) { return (this1 & 1) > 0; }; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.set_up = function(this1,value) { if(value) this1 |= 1; else this1 &= 268435455 - 1; return value; }; var lime_ui__$KeyCode_KeyCode_$Impl_$ = {}; $hxClasses["lime.ui._KeyCode.KeyCode_Impl_"] = lime_ui__$KeyCode_KeyCode_$Impl_$; lime_ui__$KeyCode_KeyCode_$Impl_$.__name__ = ["lime","ui","_KeyCode","KeyCode_Impl_"]; lime_ui__$KeyCode_KeyCode_$Impl_$.gt = function(a,b) { return a > b; }; lime_ui__$KeyCode_KeyCode_$Impl_$.gte = function(a,b) { return a >= b; }; lime_ui__$KeyCode_KeyCode_$Impl_$.lt = function(a,b) { return a < b; }; lime_ui__$KeyCode_KeyCode_$Impl_$.lte = function(a,b) { return a <= b; }; lime_ui__$KeyCode_KeyCode_$Impl_$.plus = function(a,b) { return a + b; }; var lime_ui__$KeyModifier_KeyModifier_$Impl_$ = {}; $hxClasses["lime.ui._KeyModifier.KeyModifier_Impl_"] = lime_ui__$KeyModifier_KeyModifier_$Impl_$; lime_ui__$KeyModifier_KeyModifier_$Impl_$.__name__ = ["lime","ui","_KeyModifier","KeyModifier_Impl_"]; lime_ui__$KeyModifier_KeyModifier_$Impl_$.__properties__ = {set_shiftKey:"set_shiftKey",get_shiftKey:"get_shiftKey",set_numLock:"set_numLock",get_numLock:"get_numLock",set_metaKey:"set_metaKey",get_metaKey:"get_metaKey",set_ctrlKey:"set_ctrlKey",get_ctrlKey:"get_ctrlKey",set_capsLock:"set_capsLock",get_capsLock:"get_capsLock",set_altKey:"set_altKey",get_altKey:"get_altKey"} lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_altKey = function(this1) { return (this1 & 256) > 0 || (this1 & 512) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_altKey = function(this1,value) { if(value) this1 |= 768; else this1 &= 268435455 - 768; return value; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_capsLock = function(this1) { return (this1 & 8192) > 0 || (this1 & 8192) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_capsLock = function(this1,value) { if(value) this1 |= 8192; else this1 &= 268435455 - 8192; return value; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey = function(this1) { return (this1 & 64) > 0 || (this1 & 128) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_ctrlKey = function(this1,value) { if(value) this1 |= 192; else this1 &= 268435455 - 192; return value; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey = function(this1) { return (this1 & 1024) > 0 || (this1 & 2048) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_metaKey = function(this1,value) { if(value) this1 |= 3072; else this1 &= 268435455 - 3072; return value; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_numLock = function(this1) { return (this1 & 4096) > 0 || (this1 & 4096) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_numLock = function(this1,value) { if(value) this1 |= 4096; else this1 &= 268435455 - 4096; return value; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey = function(this1) { return (this1 & 1) > 0 || (this1 & 2) > 0; }; lime_ui__$KeyModifier_KeyModifier_$Impl_$.set_shiftKey = function(this1,value) { if(value) this1 |= 3; else this1 &= 268435455 - 3; return value; }; var lime_ui_Mouse = function() { }; $hxClasses["lime.ui.Mouse"] = lime_ui_Mouse; lime_ui_Mouse.__name__ = ["lime","ui","Mouse"]; lime_ui_Mouse.__properties__ = {set_lock:"set_lock",get_lock:"get_lock",set_cursor:"set_cursor",get_cursor:"get_cursor"} lime_ui_Mouse.hide = function() { lime__$backend_html5_HTML5Mouse.hide(); }; lime_ui_Mouse.show = function() { lime__$backend_html5_HTML5Mouse.show(); }; lime_ui_Mouse.warp = function(x,y,window) { lime__$backend_html5_HTML5Mouse.warp(x,y,window); }; lime_ui_Mouse.get_cursor = function() { return lime__$backend_html5_HTML5Mouse.get_cursor(); }; lime_ui_Mouse.set_cursor = function(value) { return lime__$backend_html5_HTML5Mouse.set_cursor(value); }; lime_ui_Mouse.get_lock = function() { return lime__$backend_html5_HTML5Mouse.get_lock(); }; lime_ui_Mouse.set_lock = function(value) { return lime__$backend_html5_HTML5Mouse.set_lock(value); }; var lime_ui_MouseCursor = $hxClasses["lime.ui.MouseCursor"] = { __ename__ : ["lime","ui","MouseCursor"], __constructs__ : ["ARROW","CROSSHAIR","DEFAULT","MOVE","POINTER","RESIZE_NESW","RESIZE_NS","RESIZE_NWSE","RESIZE_WE","TEXT","WAIT","WAIT_ARROW","CUSTOM"] }; lime_ui_MouseCursor.ARROW = ["ARROW",0]; lime_ui_MouseCursor.ARROW.toString = $estr; lime_ui_MouseCursor.ARROW.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.CROSSHAIR = ["CROSSHAIR",1]; lime_ui_MouseCursor.CROSSHAIR.toString = $estr; lime_ui_MouseCursor.CROSSHAIR.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.DEFAULT = ["DEFAULT",2]; lime_ui_MouseCursor.DEFAULT.toString = $estr; lime_ui_MouseCursor.DEFAULT.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.MOVE = ["MOVE",3]; lime_ui_MouseCursor.MOVE.toString = $estr; lime_ui_MouseCursor.MOVE.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.POINTER = ["POINTER",4]; lime_ui_MouseCursor.POINTER.toString = $estr; lime_ui_MouseCursor.POINTER.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.RESIZE_NESW = ["RESIZE_NESW",5]; lime_ui_MouseCursor.RESIZE_NESW.toString = $estr; lime_ui_MouseCursor.RESIZE_NESW.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.RESIZE_NS = ["RESIZE_NS",6]; lime_ui_MouseCursor.RESIZE_NS.toString = $estr; lime_ui_MouseCursor.RESIZE_NS.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.RESIZE_NWSE = ["RESIZE_NWSE",7]; lime_ui_MouseCursor.RESIZE_NWSE.toString = $estr; lime_ui_MouseCursor.RESIZE_NWSE.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.RESIZE_WE = ["RESIZE_WE",8]; lime_ui_MouseCursor.RESIZE_WE.toString = $estr; lime_ui_MouseCursor.RESIZE_WE.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.TEXT = ["TEXT",9]; lime_ui_MouseCursor.TEXT.toString = $estr; lime_ui_MouseCursor.TEXT.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.WAIT = ["WAIT",10]; lime_ui_MouseCursor.WAIT.toString = $estr; lime_ui_MouseCursor.WAIT.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.WAIT_ARROW = ["WAIT_ARROW",11]; lime_ui_MouseCursor.WAIT_ARROW.toString = $estr; lime_ui_MouseCursor.WAIT_ARROW.__enum__ = lime_ui_MouseCursor; lime_ui_MouseCursor.CUSTOM = ["CUSTOM",12]; lime_ui_MouseCursor.CUSTOM.toString = $estr; lime_ui_MouseCursor.CUSTOM.__enum__ = lime_ui_MouseCursor; var lime_ui_Touch = function(x,y,id,dx,dy,pressure,device) { this.x = x; this.y = y; this.id = id; this.dx = dx; this.dy = dy; this.pressure = pressure; this.device = device; }; $hxClasses["lime.ui.Touch"] = lime_ui_Touch; lime_ui_Touch.__name__ = ["lime","ui","Touch"]; lime_ui_Touch.prototype = { device: null ,dx: null ,dy: null ,id: null ,pressure: null ,x: null ,y: null ,__class__: lime_ui_Touch }; var lime_ui_Window = function(config) { this.onTextInput = new lime_app_Event_$String_$Void(); this.onTextEdit = new lime_app_Event_$String_$Int_$Int_$Void(); this.onRestore = new lime_app_Event_$Void_$Void(); this.onResize = new lime_app_Event_$Int_$Int_$Void(); this.onMove = new lime_app_Event_$Float_$Float_$Void(); this.onMouseWheel = new lime_app_Event_$Float_$Float_$Void(); this.onMouseUp = new lime_app_Event_$Float_$Float_$Int_$Void(); this.onMouseMoveRelative = new lime_app_Event_$Float_$Float_$Void(); this.onMouseMove = new lime_app_Event_$Float_$Float_$Void(); this.onMouseDown = new lime_app_Event_$Float_$Float_$Int_$Void(); this.onMinimize = new lime_app_Event_$Void_$Void(); this.onLeave = new lime_app_Event_$Void_$Void(); this.onKeyUp = new lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void(); this.onKeyDown = new lime_app_Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void(); this.onFullscreen = new lime_app_Event_$Void_$Void(); this.onFocusOut = new lime_app_Event_$Void_$Void(); this.onFocusIn = new lime_app_Event_$Void_$Void(); this.onEnter = new lime_app_Event_$Void_$Void(); this.onDropFile = new lime_app_Event_$String_$Void(); this.onDeactivate = new lime_app_Event_$Void_$Void(); this.onCreate = new lime_app_Event_$Void_$Void(); this.onClose = new lime_app_Event_$Void_$Void(); this.onActivate = new lime_app_Event_$Void_$Void(); this.config = config; this.__width = 0; this.__height = 0; this.__fullscreen = false; this.__scale = 1; this.__x = 0; this.__y = 0; this.__title = ""; this.id = -1; if(config != null) { if(Object.prototype.hasOwnProperty.call(config,"width")) this.__width = config.width; if(Object.prototype.hasOwnProperty.call(config,"height")) this.__height = config.height; if(Object.prototype.hasOwnProperty.call(config,"x")) this.__x = config.x; if(Object.prototype.hasOwnProperty.call(config,"y")) this.__y = config.y; if(Object.prototype.hasOwnProperty.call(config,"fullscreen")) this.__fullscreen = config.fullscreen; if(Object.prototype.hasOwnProperty.call(config,"borderless")) this.__borderless = config.borderless; if(Object.prototype.hasOwnProperty.call(config,"resizable")) this.__resizable = config.resizable; if(Object.prototype.hasOwnProperty.call(config,"title")) this.__title = config.title; } this.backend = new lime__$backend_html5_HTML5Window(this); }; $hxClasses["lime.ui.Window"] = lime_ui_Window; lime_ui_Window.__name__ = ["lime","ui","Window"]; lime_ui_Window.prototype = { application: null ,config: null ,display: null ,id: null ,onActivate: null ,onClose: null ,onCreate: null ,onDeactivate: null ,onDropFile: null ,onEnter: null ,onFocusIn: null ,onFocusOut: null ,onFullscreen: null ,onKeyDown: null ,onKeyUp: null ,onLeave: null ,onMinimize: null ,onMouseDown: null ,onMouseMove: null ,onMouseMoveRelative: null ,onMouseUp: null ,onMouseWheel: null ,onMove: null ,onResize: null ,onRestore: null ,onTextEdit: null ,onTextInput: null ,renderer: null ,scale: null ,stage: null ,backend: null ,__borderless: null ,__fullscreen: null ,__height: null ,__maximized: null ,__minimized: null ,__resizable: null ,__scale: null ,__title: null ,__width: null ,__x: null ,__y: null ,alert: function(message,title) { this.backend.alert(message,title); } ,close: function() { this.backend.close(); } ,create: function(application) { this.application = application; this.backend.create(application); if(this.renderer != null) this.renderer.create(); } ,focus: function() { this.backend.focus(); } ,move: function(x,y) { this.backend.move(x,y); this.__x = x; this.__y = y; } ,resize: function(width,height) { this.backend.resize(width,height); this.__width = width; this.__height = height; } ,setIcon: function(image) { if(image == null) return; this.backend.setIcon(image); } ,toString: function() { return "[object Window]"; } ,get_display: function() { return this.backend.getDisplay(); } ,get_borderless: function() { return this.__borderless; } ,set_borderless: function(value) { return this.__borderless = this.backend.setBorderless(value); } ,get_enableTextEvents: function() { return this.backend.getEnableTextEvents(); } ,set_enableTextEvents: function(value) { return this.backend.setEnableTextEvents(value); } ,get_fullscreen: function() { return this.__fullscreen; } ,set_fullscreen: function(value) { return this.__fullscreen = this.backend.setFullscreen(value); } ,get_height: function() { return this.__height; } ,set_height: function(value) { this.resize(this.__width,value); return this.__height; } ,get_maximized: function() { return this.__maximized; } ,set_maximized: function(value) { this.__minimized = false; return this.__maximized = this.backend.setMaximized(value); } ,get_minimized: function() { return this.__minimized; } ,set_minimized: function(value) { this.__maximized = false; return this.__minimized = this.backend.setMinimized(value); } ,get_resizable: function() { return this.__resizable; } ,set_resizable: function(value) { this.__resizable = this.backend.setResizable(value); return this.__resizable; } ,get_scale: function() { return this.__scale; } ,get_title: function() { return this.__title; } ,set_title: function(value) { return this.__title = this.backend.setTitle(this.__title); } ,get_width: function() { return this.__width; } ,set_width: function(value) { this.resize(value,this.__height); return this.__width; } ,get_x: function() { return this.__x; } ,set_x: function(value) { this.move(value,this.__y); return this.__x; } ,get_y: function() { return this.__y; } ,set_y: function(value) { this.move(this.__x,value); return this.__y; } ,__class__: lime_ui_Window ,__properties__: {set_y:"set_y",get_y:"get_y",set_x:"set_x",get_x:"get_x",set_width:"set_width",get_width:"get_width",set_title:"set_title",get_title:"get_title",get_scale:"get_scale",set_resizable:"set_resizable",get_resizable:"get_resizable",set_minimized:"set_minimized",get_minimized:"get_minimized",set_maximized:"set_maximized",get_maximized:"get_maximized",set_height:"set_height",get_height:"get_height",set_fullscreen:"set_fullscreen",get_fullscreen:"get_fullscreen",set_enableTextEvents:"set_enableTextEvents",get_enableTextEvents:"get_enableTextEvents",get_display:"get_display",set_borderless:"set_borderless",get_borderless:"get_borderless"} }; var lime_utils_TAError = $hxClasses["lime.utils.TAError"] = { __ename__ : ["lime","utils","TAError"], __constructs__ : ["RangeError"] }; lime_utils_TAError.RangeError = ["RangeError",0]; lime_utils_TAError.RangeError.toString = $estr; lime_utils_TAError.RangeError.__enum__ = lime_utils_TAError; var lime_utils_Bytes = function(length,bytesData) { haxe_io_Bytes.call(this,bytesData); }; $hxClasses["lime.utils.Bytes"] = lime_utils_Bytes; lime_utils_Bytes.__name__ = ["lime","utils","Bytes"]; lime_utils_Bytes.alloc = function(length) { var bytes = haxe_io_Bytes.alloc(length); return new lime_utils_Bytes(bytes.length,bytes.b.bufferValue); }; lime_utils_Bytes.fastGet = function(b,pos) { return b.bytes[pos]; }; lime_utils_Bytes.ofData = function(b) { var bytes = haxe_io_Bytes.ofData(b); return new lime_utils_Bytes(bytes.length,bytes.b.bufferValue); }; lime_utils_Bytes.ofString = function(s) { var bytes = haxe_io_Bytes.ofString(s); return new lime_utils_Bytes(bytes.length,bytes.b.bufferValue); }; lime_utils_Bytes.readFile = function(path) { return null; }; lime_utils_Bytes.lime_bytes_from_data_pointer = function(data,length) { return lime_utils_Bytes.cffi_lime_bytes_from_data_pointer(data,length); }; lime_utils_Bytes.lime_bytes_get_data_pointer = function(data) { return lime_utils_Bytes.cffi_lime_bytes_get_data_pointer(data); }; lime_utils_Bytes.lime_bytes_read_file = function(path) { return lime_utils_Bytes.cffi_lime_bytes_read_file(path); }; lime_utils_Bytes.__super__ = haxe_io_Bytes; lime_utils_Bytes.prototype = $extend(haxe_io_Bytes.prototype,{ __class__: lime_utils_Bytes }); var lime_utils__$Float32Array_Float32Array_$Impl_$ = {}; $hxClasses["lime.utils._Float32Array.Float32Array_Impl_"] = lime_utils__$Float32Array_Float32Array_$Impl_$; lime_utils__$Float32Array_Float32Array_$Impl_$.__name__ = ["lime","utils","_Float32Array","Float32Array_Impl_"]; lime_utils__$Float32Array_Float32Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$Float32Array_Float32Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$Float32Array_Float32Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) byteOffset = 0; if(byteOffset == null) return new Float32Array(bytes.b.bufferValue); if(len == null) return new Float32Array(bytes.b.bufferValue,byteOffset); return new Float32Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$Float32Array_Float32Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$Float32Array_Float32Array_$Impl_$.toString = function(this1) { if(this1 != null) return "Float32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var lime_utils_GLUtils = function() { }; $hxClasses["lime.utils.GLUtils"] = lime_utils_GLUtils; lime_utils_GLUtils.__name__ = ["lime","utils","GLUtils"]; lime_utils_GLUtils.compileShader = function(source,type) { var shader = lime_graphics_opengl_GL.context.createShader(type); lime_graphics_opengl_GL.context.shaderSource(shader,source); lime_graphics_opengl_GL.context.compileShader(shader); if(lime_graphics_opengl_GL.context.getShaderParameter(shader,35713) == 0) switch(type) { case 35633: throw new js__$Boot_HaxeError("Error compiling vertex shader"); break; case 35632: throw new js__$Boot_HaxeError("Error compiling fragment shader"); break; default: throw new js__$Boot_HaxeError("Error compiling unknown shader type"); } return shader; }; lime_utils_GLUtils.createProgram = function(vertexSource,fragmentSource) { var vertexShader = lime_utils_GLUtils.compileShader(vertexSource,35633); var fragmentShader = lime_utils_GLUtils.compileShader(fragmentSource,35632); var program = lime_graphics_opengl_GL.context.createProgram(); lime_graphics_opengl_GL.context.attachShader(program,vertexShader); lime_graphics_opengl_GL.context.attachShader(program,fragmentShader); lime_graphics_opengl_GL.context.linkProgram(program); if(lime_graphics_opengl_GL.context.getProgramParameter(program,35714) == 0) throw new js__$Boot_HaxeError("Unable to initialize the shader program."); return program; }; var lime_utils__$Int16Array_Int16Array_$Impl_$ = {}; $hxClasses["lime.utils._Int16Array.Int16Array_Impl_"] = lime_utils__$Int16Array_Int16Array_$Impl_$; lime_utils__$Int16Array_Int16Array_$Impl_$.__name__ = ["lime","utils","_Int16Array","Int16Array_Impl_"]; lime_utils__$Int16Array_Int16Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$Int16Array_Int16Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$Int16Array_Int16Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) byteOffset = 0; if(byteOffset == null) return new Int16Array(bytes.b.bufferValue); if(len == null) return new Int16Array(bytes.b.bufferValue,byteOffset); return new Int16Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$Int16Array_Int16Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$Int16Array_Int16Array_$Impl_$.toString = function(this1) { if(this1 != null) return "Int16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var lime_utils__$Int32Array_Int32Array_$Impl_$ = {}; $hxClasses["lime.utils._Int32Array.Int32Array_Impl_"] = lime_utils__$Int32Array_Int32Array_$Impl_$; lime_utils__$Int32Array_Int32Array_$Impl_$.__name__ = ["lime","utils","_Int32Array","Int32Array_Impl_"]; lime_utils__$Int32Array_Int32Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$Int32Array_Int32Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$Int32Array_Int32Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) byteOffset = 0; if(byteOffset == null) return new Int32Array(bytes.b.bufferValue); if(len == null) return new Int32Array(bytes.b.bufferValue,byteOffset); return new Int32Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$Int32Array_Int32Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$Int32Array_Int32Array_$Impl_$.toString = function(this1) { if(this1 != null) return "Int32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var lime_utils_LZMA = function() { }; $hxClasses["lime.utils.LZMA"] = lime_utils_LZMA; lime_utils_LZMA.__name__ = ["lime","utils","LZMA"]; lime_utils_LZMA.decode = function(bytes) { return null; }; lime_utils_LZMA.encode = function(bytes) { return null; }; var lime_utils__$UInt16Array_UInt16Array_$Impl_$ = {}; $hxClasses["lime.utils._UInt16Array.UInt16Array_Impl_"] = lime_utils__$UInt16Array_UInt16Array_$Impl_$; lime_utils__$UInt16Array_UInt16Array_$Impl_$.__name__ = ["lime","utils","_UInt16Array","UInt16Array_Impl_"]; lime_utils__$UInt16Array_UInt16Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$UInt16Array_UInt16Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$UInt16Array_UInt16Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) byteOffset = 0; if(byteOffset == null) return new Uint16Array(bytes.b.bufferValue); if(len == null) return new Uint16Array(bytes.b.bufferValue,byteOffset); return new Uint16Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$UInt16Array_UInt16Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$UInt16Array_UInt16Array_$Impl_$.toString = function(this1) { if(this1 != null) return "UInt16Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var lime_utils__$UInt32Array_UInt32Array_$Impl_$ = {}; $hxClasses["lime.utils._UInt32Array.UInt32Array_Impl_"] = lime_utils__$UInt32Array_UInt32Array_$Impl_$; lime_utils__$UInt32Array_UInt32Array_$Impl_$.__name__ = ["lime","utils","_UInt32Array","UInt32Array_Impl_"]; lime_utils__$UInt32Array_UInt32Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$UInt32Array_UInt32Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$UInt32Array_UInt32Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) byteOffset = 0; if(byteOffset == null) return new Uint32Array(bytes.b.bufferValue); if(len == null) return new Uint32Array(bytes.b.bufferValue,byteOffset); return new Uint32Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$UInt32Array_UInt32Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$UInt32Array_UInt32Array_$Impl_$.toString = function(this1) { if(this1 != null) return "UInt32Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var lime_utils__$UInt8Array_UInt8Array_$Impl_$ = {}; $hxClasses["lime.utils._UInt8Array.UInt8Array_Impl_"] = lime_utils__$UInt8Array_UInt8Array_$Impl_$; lime_utils__$UInt8Array_UInt8Array_$Impl_$.__name__ = ["lime","utils","_UInt8Array","UInt8Array_Impl_"]; lime_utils__$UInt8Array_UInt8Array_$Impl_$.__set = function(this1,idx,val) { return this1[idx] = val; }; lime_utils__$UInt8Array_UInt8Array_$Impl_$.__get = function(this1,idx) { return this1[idx]; }; lime_utils__$UInt8Array_UInt8Array_$Impl_$.fromBytes = function(bytes,byteOffset,len) { if(byteOffset == null) return new Uint8Array(bytes.b.bufferValue); if(len == null) return new Uint8Array(bytes.b.bufferValue,byteOffset); return new Uint8Array(bytes.b.bufferValue,byteOffset,len); }; lime_utils__$UInt8Array_UInt8Array_$Impl_$.toBytes = function(this1) { return new haxe_io_Bytes(new Uint8Array(this1.buffer)); }; lime_utils__$UInt8Array_UInt8Array_$Impl_$.toString = function(this1) { if(this1 != null) return "UInt8Array [byteLength:" + this1.byteLength + ", length:" + this1.length + "]"; else return null; }; var motion_actuators_IGenericActuator = function() { }; $hxClasses["motion.actuators.IGenericActuator"] = motion_actuators_IGenericActuator; motion_actuators_IGenericActuator.__name__ = ["motion","actuators","IGenericActuator"]; motion_actuators_IGenericActuator.prototype = { autoVisible: null ,delay: null ,ease: null ,onComplete: null ,onRepeat: null ,onUpdate: null ,reflect: null ,repeat: null ,reverse: null ,smartRotation: null ,snapping: null ,onPause: null ,onResume: null ,apply: null ,move: null ,pause: null ,resume: null ,stop: null ,__class__: motion_actuators_IGenericActuator }; var motion_actuators_GenericActuator = function(target,duration,properties) { this._autoVisible = true; this._delay = 0; this._reflect = false; this._repeat = 0; this._reverse = false; this._smartRotation = false; this._snapping = false; this.special = false; this.target = target; this.properties = properties; this.duration = duration; this._ease = motion_Actuate.defaultEase; }; $hxClasses["motion.actuators.GenericActuator"] = motion_actuators_GenericActuator; motion_actuators_GenericActuator.__name__ = ["motion","actuators","GenericActuator"]; motion_actuators_GenericActuator.__interfaces__ = [motion_actuators_IGenericActuator]; motion_actuators_GenericActuator.prototype = { duration: null ,id: null ,properties: null ,target: null ,_autoVisible: null ,_delay: null ,_ease: null ,_onComplete: null ,_onCompleteParams: null ,_onRepeat: null ,_onRepeatParams: null ,_onUpdate: null ,_onUpdateParams: null ,_onResume: null ,_onResumeParams: null ,_onPause: null ,_onPauseParams: null ,_reflect: null ,_repeat: null ,_reverse: null ,_smartRotation: null ,_snapping: null ,special: null ,apply: function() { var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var i = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(this.target,i)) Reflect.setField(this.target,i,Reflect.field(this.properties,i)); else Reflect.setProperty(this.target,i,Reflect.field(this.properties,i)); } } ,autoVisible: function(value) { if(value == null) value = true; this._autoVisible = value; return this; } ,callMethod: function(method,params) { if(params == null) params = []; return Reflect.callMethod(method,method,params); } ,change: function() { if(this._onUpdate != null) this.callMethod(this._onUpdate,this._onUpdateParams); } ,complete: function(sendEvent) { if(sendEvent == null) sendEvent = true; if(sendEvent) { this.change(); if(this._onComplete != null) this.callMethod(this._onComplete,this._onCompleteParams); } motion_Actuate.unload(this); } ,delay: function(duration) { this._delay = duration; return this; } ,ease: function(easing) { this._ease = easing; return this; } ,move: function() { } ,onComplete: function(handler,parameters) { this._onComplete = handler; if(parameters == null) this._onCompleteParams = []; else this._onCompleteParams = parameters; if(this.duration == 0) this.complete(); return this; } ,onRepeat: function(handler,parameters) { this._onRepeat = handler; if(parameters == null) this._onRepeatParams = []; else this._onRepeatParams = parameters; return this; } ,onUpdate: function(handler,parameters) { this._onUpdate = handler; if(parameters == null) this._onUpdateParams = []; else this._onUpdateParams = parameters; return this; } ,onPause: function(handler,parameters) { this._onPause = handler; if(parameters == null) this._onPauseParams = []; else this._onPauseParams = parameters; return this; } ,onResume: function(handler,parameters) { this._onResume = handler; if(parameters == null) this._onResumeParams = []; else this._onResumeParams = parameters; return this; } ,pause: function() { if(this._onPause != null) this.callMethod(this._onPause,this._onPauseParams); } ,reflect: function(value) { if(value == null) value = true; this._reflect = value; this.special = true; return this; } ,repeat: function(times) { if(times == null) times = -1; this._repeat = times; return this; } ,resume: function() { if(this._onResume != null) this.callMethod(this._onResume,this._onResumeParams); } ,reverse: function(value) { if(value == null) value = true; this._reverse = value; this.special = true; return this; } ,smartRotation: function(value) { if(value == null) value = true; this._smartRotation = value; this.special = true; return this; } ,snapping: function(value) { if(value == null) value = true; this._snapping = value; this.special = true; return this; } ,stop: function(properties,complete,sendEvent) { } ,__class__: motion_actuators_GenericActuator }; var motion_actuators_SimpleActuator = function(target,duration,properties) { this.active = true; this.propertyDetails = []; this.sendChange = false; this.paused = false; this.cacheVisible = false; this.initialized = false; this.setVisible = false; this.toggleVisible = false; this.startTime = openfl_Lib.getTimer() / 1000; motion_actuators_GenericActuator.call(this,target,duration,properties); if(!motion_actuators_SimpleActuator.addedEvent) { motion_actuators_SimpleActuator.addedEvent = true; openfl_Lib.current.stage.addEventListener("enterFrame",motion_actuators_SimpleActuator.stage_onEnterFrame); } }; $hxClasses["motion.actuators.SimpleActuator"] = motion_actuators_SimpleActuator; motion_actuators_SimpleActuator.__name__ = ["motion","actuators","SimpleActuator"]; motion_actuators_SimpleActuator.stage_onEnterFrame = function(event) { var currentTime = openfl_Lib.getTimer() / 1000; var actuator; var j = 0; var cleanup = false; var _g1 = 0; var _g = motion_actuators_SimpleActuator.actuatorsLength; while(_g1 < _g) { var i = _g1++; actuator = motion_actuators_SimpleActuator.actuators[j]; if(actuator != null && actuator.active) { if(currentTime >= actuator.timeOffset) actuator.update(currentTime); j++; } else { motion_actuators_SimpleActuator.actuators.splice(j,1); --motion_actuators_SimpleActuator.actuatorsLength; } } }; motion_actuators_SimpleActuator.__super__ = motion_actuators_GenericActuator; motion_actuators_SimpleActuator.prototype = $extend(motion_actuators_GenericActuator.prototype,{ setField_openfl_geom_Transform: function(target,propertyName,value) { if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value); } ,setField_motion_actuators_TransformActuator_T: function(target,propertyName,value) { if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value); } ,setField_motion_actuators_MotionPathActuator_T: function(target,propertyName,value) { if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value); } ,setField_openfl_display_DisplayObject: function(target,propertyName,value) { if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value); } ,setField_motion_actuators_SimpleActuator_T: function(target,propertyName,value) { if(Object.prototype.hasOwnProperty.call(target,propertyName)) target[propertyName] = value; else Reflect.setProperty(target,propertyName,value); } ,timeOffset: null ,active: null ,cacheVisible: null ,detailsLength: null ,initialized: null ,paused: null ,pauseTime: null ,propertyDetails: null ,sendChange: null ,setVisible: null ,startTime: null ,toggleVisible: null ,autoVisible: function(value) { if(value == null) value = true; this._autoVisible = value; if(!value) { this.toggleVisible = false; if(this.setVisible) this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",this.cacheVisible); } return this; } ,delay: function(duration) { this._delay = duration; this.timeOffset = this.startTime + duration; return this; } ,getField: function(target,propertyName) { var value = null; if(Object.prototype.hasOwnProperty.call(target,propertyName)) value = Reflect.field(target,propertyName); else value = Reflect.getProperty(target,propertyName); return value; } ,initialize: function() { var details; var start; var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var i = _g1[_g]; ++_g; var isField = true; if(Object.prototype.hasOwnProperty.call(this.target,i) && !(this.target.__properties__ && this.target.__properties__["set_" + i])) start = Reflect.field(this.target,i); else { isField = false; start = Reflect.getProperty(this.target,i); } if(typeof(start) == "number") { var value = this.getField(this.properties,i); if(start == null) start = 0; if(value == null) value = 0; details = new motion_actuators_PropertyDetails(this.target,i,start,value - start,isField); this.propertyDetails.push(details); } } this.detailsLength = this.propertyDetails.length; this.initialized = true; } ,move: function() { this.toggleVisible = Object.prototype.hasOwnProperty.call(this.properties,"alpha") && js_Boot.__instanceof(this.target,openfl_display_DisplayObject); if(this.toggleVisible && this.properties.alpha != 0 && !this.getField(this.target,"visible")) { this.setVisible = true; this.cacheVisible = this.getField(this.target,"visible"); this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",true); } this.timeOffset = this.startTime; motion_actuators_SimpleActuator.actuators.push(this); ++motion_actuators_SimpleActuator.actuatorsLength; } ,onUpdate: function(handler,parameters) { this._onUpdate = handler; if(parameters == null) this._onUpdateParams = []; else this._onUpdateParams = parameters; this.sendChange = true; return this; } ,pause: function() { if(!this.paused) { this.paused = true; motion_actuators_GenericActuator.prototype.pause.call(this); this.pauseTime = openfl_Lib.getTimer(); } } ,resume: function() { if(this.paused) { this.paused = false; this.timeOffset += (openfl_Lib.getTimer() - this.pauseTime) / 1000; motion_actuators_GenericActuator.prototype.resume.call(this); } } ,setProperty: function(details,value) { if(details.isField) details.target[details.propertyName] = value; else Reflect.setProperty(details.target,details.propertyName,value); } ,stop: function(properties,complete,sendEvent) { if(this.active) { if(properties == null) { this.active = false; if(complete) this.apply(); this.complete(sendEvent); return; } var _g = 0; var _g1 = Reflect.fields(properties); while(_g < _g1.length) { var i = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(this.properties,i)) { this.active = false; if(complete) this.apply(); this.complete(sendEvent); return; } } } } ,update: function(currentTime) { if(!this.paused) { var details; var easing; var i; var tweenPosition = (currentTime - this.timeOffset) / this.duration; if(tweenPosition > 1) tweenPosition = 1; if(!this.initialized) this.initialize(); if(!this.special) { easing = this._ease.calculate(tweenPosition); var _g1 = 0; var _g = this.detailsLength; while(_g1 < _g) { var i1 = _g1++; details = this.propertyDetails[i1]; this.setProperty(details,details.start + details.change * easing); } } else { if(!this._reverse) easing = this._ease.calculate(tweenPosition); else easing = this._ease.calculate(1 - tweenPosition); var endValue; var _g11 = 0; var _g2 = this.detailsLength; while(_g11 < _g2) { var i2 = _g11++; details = this.propertyDetails[i2]; if(this._smartRotation && (details.propertyName == "rotation" || details.propertyName == "rotationX" || details.propertyName == "rotationY" || details.propertyName == "rotationZ")) { var rotation = details.change % 360; if(rotation > 180) rotation -= 360; else if(rotation < -180) rotation += 360; endValue = details.start + rotation * easing; } else endValue = details.start + details.change * easing; if(!this._snapping) { if(details.isField) details.target[details.propertyName] = endValue; else Reflect.setProperty(details.target,details.propertyName,endValue); } else this.setProperty(details,Math.round(endValue)); } } if(tweenPosition == 1) { if(this._repeat == 0) { this.active = false; if(this.toggleVisible && this.getField(this.target,"alpha") == 0) this.setField_motion_actuators_SimpleActuator_T(this.target,"visible",false); this.complete(true); return; } else { if(this._onRepeat != null) this.callMethod(this._onRepeat,this._onRepeatParams); if(this._reflect) this._reverse = !this._reverse; this.startTime = currentTime; this.timeOffset = this.startTime + this._delay; if(this._repeat > 0) this._repeat--; } } if(this.sendChange) this.change(); } } ,__class__: motion_actuators_SimpleActuator }); var motion_easing_Expo = function() { }; $hxClasses["motion.easing.Expo"] = motion_easing_Expo; motion_easing_Expo.__name__ = ["motion","easing","Expo"]; motion_easing_Expo.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"} motion_easing_Expo.get_easeIn = function() { return new motion_easing_ExpoEaseIn(); }; motion_easing_Expo.get_easeInOut = function() { return new motion_easing_ExpoEaseInOut(); }; motion_easing_Expo.get_easeOut = function() { return new motion_easing_ExpoEaseOut(); }; var motion_easing_IEasing = function() { }; $hxClasses["motion.easing.IEasing"] = motion_easing_IEasing; motion_easing_IEasing.__name__ = ["motion","easing","IEasing"]; motion_easing_IEasing.prototype = { calculate: null ,ease: null ,__class__: motion_easing_IEasing }; var motion_easing_ExpoEaseOut = function() { }; $hxClasses["motion.easing.ExpoEaseOut"] = motion_easing_ExpoEaseOut; motion_easing_ExpoEaseOut.__name__ = ["motion","easing","ExpoEaseOut"]; motion_easing_ExpoEaseOut.__interfaces__ = [motion_easing_IEasing]; motion_easing_ExpoEaseOut.prototype = { calculate: function(k) { if(k == 1) return 1; else return 1 - Math.pow(2,-10 * k); } ,ease: function(t,b,c,d) { if(t == d) return b + c; else return c * (1 - Math.pow(2,-10 * t / d)) + b; } ,__class__: motion_easing_ExpoEaseOut }; var motion_Actuate = function() { }; $hxClasses["motion.Actuate"] = motion_Actuate; motion_Actuate.__name__ = ["motion","Actuate"]; motion_Actuate.apply = function(target,properties,customActuator) { motion_Actuate.stop(target,properties); if(customActuator == null) customActuator = motion_Actuate.defaultActuator; var actuator = Type.createInstance(customActuator,[target,0,properties]); actuator.apply(); return actuator; }; motion_Actuate.effects = function(target,duration,overwrite) { if(overwrite == null) overwrite = true; return new motion__$Actuate_EffectsOptions(target,duration,overwrite); }; motion_Actuate.getLibrary = function(target,allowCreation) { if(allowCreation == null) allowCreation = true; if(!(motion_Actuate.targetLibraries.h.__keys__[target.__id__] != null) && allowCreation) motion_Actuate.targetLibraries.set(target,[]); return motion_Actuate.targetLibraries.h[target.__id__]; }; motion_Actuate.isActive = function() { var result = false; var $it0 = motion_Actuate.targetLibraries.iterator(); while( $it0.hasNext() ) { var library = $it0.next(); result = true; break; } return result; }; motion_Actuate.motionPath = function(target,duration,properties,overwrite) { if(overwrite == null) overwrite = true; return motion_Actuate.tween(target,duration,properties,overwrite,motion_actuators_MotionPathActuator); }; motion_Actuate.pause = function(target) { if(js_Boot.__instanceof(target,motion_actuators_IGenericActuator)) { var actuator = target; actuator.pause(); } else { var library = motion_Actuate.getLibrary(target,false); if(library != null) { var _g = 0; while(_g < library.length) { var actuator1 = library[_g]; ++_g; actuator1.pause(); } } } }; motion_Actuate.pauseAll = function() { var $it0 = motion_Actuate.targetLibraries.iterator(); while( $it0.hasNext() ) { var library = $it0.next(); var _g = 0; while(_g < library.length) { var actuator = library[_g]; ++_g; actuator.pause(); } } }; motion_Actuate.reset = function() { var $it0 = motion_Actuate.targetLibraries.iterator(); while( $it0.hasNext() ) { var library = $it0.next(); var i = library.length - 1; while(i >= 0) { library[i].stop(null,false,false); i--; } } motion_Actuate.targetLibraries = new haxe_ds_ObjectMap(); }; motion_Actuate.resume = function(target) { if(js_Boot.__instanceof(target,motion_actuators_IGenericActuator)) { var actuator = target; actuator.resume(); } else { var library = motion_Actuate.getLibrary(target,false); if(library != null) { var _g = 0; while(_g < library.length) { var actuator1 = library[_g]; ++_g; actuator1.resume(); } } } }; motion_Actuate.resumeAll = function() { var $it0 = motion_Actuate.targetLibraries.iterator(); while( $it0.hasNext() ) { var library = $it0.next(); var _g = 0; while(_g < library.length) { var actuator = library[_g]; ++_g; actuator.resume(); } } }; motion_Actuate.stop = function(target,properties,complete,sendEvent) { if(sendEvent == null) sendEvent = true; if(complete == null) complete = false; if(target != null) { if(js_Boot.__instanceof(target,motion_actuators_IGenericActuator)) { var actuator = target; actuator.stop(null,complete,sendEvent); } else { var library = motion_Actuate.getLibrary(target,false); if(library != null) { if(typeof(properties) == "string") { var temp = { }; Reflect.setField(temp,properties,null); properties = temp; } else if((properties instanceof Array) && properties.__enum__ == null) { var temp1 = { }; var _g = 0; var _g1; _g1 = js_Boot.__cast(properties , Array); while(_g < _g1.length) { var property = _g1[_g]; ++_g; Reflect.setField(temp1,property,null); } properties = temp1; } var i = library.length - 1; while(i >= 0) { library[i].stop(properties,complete,sendEvent); i--; } } } } }; motion_Actuate.timer = function(duration,customActuator) { return motion_Actuate.tween(new motion__$Actuate_TweenTimer(0),duration,new motion__$Actuate_TweenTimer(1),false,customActuator); }; motion_Actuate.transform = function(target,duration,overwrite) { if(overwrite == null) overwrite = true; if(duration == null) duration = 0; return new motion__$Actuate_TransformOptions(target,duration,overwrite); }; motion_Actuate.tween = function(target,duration,properties,overwrite,customActuator) { if(overwrite == null) overwrite = true; if(target != null) { if(duration > 0) { if(customActuator == null) customActuator = motion_Actuate.defaultActuator; var actuator = Type.createInstance(customActuator,[target,duration,properties]); var library = motion_Actuate.getLibrary(actuator.target); if(overwrite) { var i = library.length - 1; while(i >= 0) { library[i].stop(actuator.properties,false,false); i--; } library = motion_Actuate.getLibrary(actuator.target); } library.push(actuator); actuator.move(); return actuator; } else return motion_Actuate.apply(target,properties,customActuator); } return null; }; motion_Actuate.unload = function(actuator) { var target = actuator.target; if(motion_Actuate.targetLibraries.h.__keys__[target.__id__] != null) { HxOverrides.remove(motion_Actuate.targetLibraries.h[target.__id__],actuator); if(motion_Actuate.targetLibraries.h[target.__id__].length == 0) motion_Actuate.targetLibraries.remove(target); } }; motion_Actuate.update = function(target,duration,start,end,overwrite) { if(overwrite == null) overwrite = true; var properties = { start : start, end : end}; return motion_Actuate.tween(target,duration,properties,overwrite,motion_actuators_MethodActuator); }; var motion__$Actuate_EffectsOptions = function(target,duration,overwrite) { this.target = target; this.duration = duration; this.overwrite = overwrite; }; $hxClasses["motion._Actuate.EffectsOptions"] = motion__$Actuate_EffectsOptions; motion__$Actuate_EffectsOptions.__name__ = ["motion","_Actuate","EffectsOptions"]; motion__$Actuate_EffectsOptions.prototype = { duration: null ,overwrite: null ,target: null ,filter: function(reference,properties) { properties.filter = reference; return motion_Actuate.tween(this.target,this.duration,properties,this.overwrite,motion_actuators_FilterActuator); } ,__class__: motion__$Actuate_EffectsOptions }; var motion__$Actuate_TransformOptions = function(target,duration,overwrite) { this.target = target; this.duration = duration; this.overwrite = overwrite; }; $hxClasses["motion._Actuate.TransformOptions"] = motion__$Actuate_TransformOptions; motion__$Actuate_TransformOptions.__name__ = ["motion","_Actuate","TransformOptions"]; motion__$Actuate_TransformOptions.prototype = { duration: null ,overwrite: null ,target: null ,color: function(value,strength,alpha) { if(strength == null) strength = 1; if(value == null) value = 0; var properties = { colorValue : value, colorStrength : strength}; if(alpha != null) properties.colorAlpha = alpha; return motion_Actuate.tween(this.target,this.duration,properties,this.overwrite,motion_actuators_TransformActuator); } ,sound: function(volume,pan) { var properties = { }; if(volume != null) properties.soundVolume = volume; if(pan != null) properties.soundPan = pan; return motion_Actuate.tween(this.target,this.duration,properties,this.overwrite,motion_actuators_TransformActuator); } ,__class__: motion__$Actuate_TransformOptions }; var motion__$Actuate_TweenTimer = function(progress) { this.progress = progress; }; $hxClasses["motion._Actuate.TweenTimer"] = motion__$Actuate_TweenTimer; motion__$Actuate_TweenTimer.__name__ = ["motion","_Actuate","TweenTimer"]; motion__$Actuate_TweenTimer.prototype = { progress: null ,__class__: motion__$Actuate_TweenTimer }; var motion_MotionPath = function() { this._x = new motion_ComponentPath(); this._y = new motion_ComponentPath(); this._rotation = null; }; $hxClasses["motion.MotionPath"] = motion_MotionPath; motion_MotionPath.__name__ = ["motion","MotionPath"]; motion_MotionPath.prototype = { rotation: null ,x: null ,y: null ,_rotation: null ,_x: null ,_y: null ,bezier: function(x,y,controlX,controlY,strength) { if(strength == null) strength = 1; this._x.addPath(new motion_BezierPath(x,controlX,strength)); this._y.addPath(new motion_BezierPath(y,controlY,strength)); return this; } ,line: function(x,y,strength) { if(strength == null) strength = 1; this._x.addPath(new motion_LinearPath(x,strength)); this._y.addPath(new motion_LinearPath(y,strength)); return this; } ,get_rotation: function() { if(this._rotation == null) this._rotation = new motion_RotationPath(this._x,this._y); return this._rotation; } ,get_x: function() { return this._x; } ,get_y: function() { return this._y; } ,__class__: motion_MotionPath ,__properties__: {get_y:"get_y",get_x:"get_x",get_rotation:"get_rotation"} }; var motion_IComponentPath = function() { }; $hxClasses["motion.IComponentPath"] = motion_IComponentPath; motion_IComponentPath.__name__ = ["motion","IComponentPath"]; motion_IComponentPath.prototype = { get_end: null ,end: null ,start: null ,calculate: null ,__class__: motion_IComponentPath ,__properties__: {get_end:"get_end"} }; var motion_ComponentPath = function() { this.paths = []; this.start = 0; this.totalStrength = 0; }; $hxClasses["motion.ComponentPath"] = motion_ComponentPath; motion_ComponentPath.__name__ = ["motion","ComponentPath"]; motion_ComponentPath.__interfaces__ = [motion_IComponentPath]; motion_ComponentPath.prototype = { start: null ,end: null ,paths: null ,totalStrength: null ,addPath: function(path) { this.paths.push(path); this.totalStrength += path.strength; } ,calculate: function(k) { if(this.paths.length == 1) return this.paths[0].calculate(this.start,k); else { var ratio = k * this.totalStrength; var lastEnd = this.start; var _g = 0; var _g1 = this.paths; while(_g < _g1.length) { var path = _g1[_g]; ++_g; if(ratio > path.strength) { ratio -= path.strength; lastEnd = path.end; } else return path.calculate(lastEnd,ratio / path.strength); } } return 0; } ,get_end: function() { if(this.paths.length > 0) { var path = this.paths[this.paths.length - 1]; return path.end; } else return this.start; } ,__class__: motion_ComponentPath ,__properties__: {get_end:"get_end"} }; var motion_BezierPath = function(end,control,strength) { this.end = end; this.control = control; this.strength = strength; }; $hxClasses["motion.BezierPath"] = motion_BezierPath; motion_BezierPath.__name__ = ["motion","BezierPath"]; motion_BezierPath.prototype = { control: null ,end: null ,strength: null ,calculate: function(start,k) { return (1 - k) * (1 - k) * start + 2 * (1 - k) * k * this.control + k * k * this.end; } ,__class__: motion_BezierPath }; var motion_LinearPath = function(end,strength) { motion_BezierPath.call(this,end,0,strength); }; $hxClasses["motion.LinearPath"] = motion_LinearPath; motion_LinearPath.__name__ = ["motion","LinearPath"]; motion_LinearPath.__super__ = motion_BezierPath; motion_LinearPath.prototype = $extend(motion_BezierPath.prototype,{ calculate: function(start,k) { return start + k * (this.end - start); } ,__class__: motion_LinearPath }); var motion_RotationPath = function(x,y) { this.step = 0.01; this._x = x; this._y = y; this.offset = 0; this.start = this.calculate(0.0); }; $hxClasses["motion.RotationPath"] = motion_RotationPath; motion_RotationPath.__name__ = ["motion","RotationPath"]; motion_RotationPath.__interfaces__ = [motion_IComponentPath]; motion_RotationPath.prototype = { end: null ,offset: null ,start: null ,step: null ,_x: null ,_y: null ,calculate: function(k) { var dX = this._x.calculate(k) - this._x.calculate(k + this.step); var dY = this._y.calculate(k) - this._y.calculate(k + this.step); var angle = Math.atan2(dY,dX) * (180 / Math.PI); angle = (angle + this.offset) % 360; return angle; } ,get_end: function() { return this.calculate(1.0); } ,__class__: motion_RotationPath ,__properties__: {get_end:"get_end"} }; var motion_actuators_FilterActuator = function(target,duration,properties) { this.filterIndex = -1; motion_actuators_SimpleActuator.call(this,target,duration,properties); if(js_Boot.__instanceof(properties.filter,Class)) { this.filterClass = properties.filter; if(target.get_filters().length == 0) target.set_filters([Type.createInstance(this.filterClass,[])]); var _g = 0; var _g1 = target.get_filters(); while(_g < _g1.length) { var filter = _g1[_g]; ++_g; if(js_Boot.__instanceof(filter,this.filterClass)) this.filter = filter; } } else { this.filterIndex = properties.filter; this.filter = target.get_filters()[this.filterIndex]; } }; $hxClasses["motion.actuators.FilterActuator"] = motion_actuators_FilterActuator; motion_actuators_FilterActuator.__name__ = ["motion","actuators","FilterActuator"]; motion_actuators_FilterActuator.__super__ = motion_actuators_SimpleActuator; motion_actuators_FilterActuator.prototype = $extend(motion_actuators_SimpleActuator.prototype,{ filter: null ,filterClass: null ,filterIndex: null ,apply: function() { var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var propertyName = _g1[_g]; ++_g; if(propertyName != "filter") Reflect.setField(this.filter,propertyName,Reflect.field(this.properties,propertyName)); } var filters = this.getField(this.target,"filters"); Reflect.setField(filters,this.properties.filter,this.filter); this.setField_openfl_display_DisplayObject(this.target,"filters",filters); } ,initialize: function() { var details; var start; var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var propertyName = _g1[_g]; ++_g; if(propertyName != "filter") { start = this.getField(this.filter,propertyName); details = new motion_actuators_PropertyDetails(this.filter,propertyName,start,Reflect.field(this.properties,propertyName) - start); this.propertyDetails.push(details); } } this.detailsLength = this.propertyDetails.length; this.initialized = true; } ,update: function(currentTime) { motion_actuators_SimpleActuator.prototype.update.call(this,currentTime); var filters = this.target.get_filters(); if(this.filterIndex > -1) Reflect.setField(filters,this.properties.filter,this.filter); else { var _g1 = 0; var _g = filters.length; while(_g1 < _g) { var i = _g1++; if(js_Boot.__instanceof(filters[i],this.filterClass)) filters[i] = this.filter; } } this.setField_openfl_display_DisplayObject(this.target,"filters",filters); } ,__class__: motion_actuators_FilterActuator }); var motion_actuators_MethodActuator = function(target,duration,properties) { this.currentParameters = []; this.tweenProperties = { }; motion_actuators_SimpleActuator.call(this,target,duration,properties); if(!Object.prototype.hasOwnProperty.call(properties,"start")) this.properties.start = []; if(!Object.prototype.hasOwnProperty.call(properties,"end")) this.properties.end = this.properties.start; var _g1 = 0; var _g = this.properties.start.length; while(_g1 < _g) { var i = _g1++; this.currentParameters.push(this.properties.start[i]); } }; $hxClasses["motion.actuators.MethodActuator"] = motion_actuators_MethodActuator; motion_actuators_MethodActuator.__name__ = ["motion","actuators","MethodActuator"]; motion_actuators_MethodActuator.__super__ = motion_actuators_SimpleActuator; motion_actuators_MethodActuator.prototype = $extend(motion_actuators_SimpleActuator.prototype,{ currentParameters: null ,tweenProperties: null ,apply: function() { this.callMethod(this.target,this.properties.end); } ,complete: function(sendEvent) { if(sendEvent == null) sendEvent = true; var _g1 = 0; var _g = this.properties.start.length; while(_g1 < _g) { var i = _g1++; this.currentParameters[i] = Reflect.field(this.tweenProperties,"param" + i); } this.callMethod(this.target,this.currentParameters); motion_actuators_SimpleActuator.prototype.complete.call(this,sendEvent); } ,initialize: function() { var details; var propertyName; var start; var _g1 = 0; var _g = this.properties.start.length; while(_g1 < _g) { var i = _g1++; propertyName = "param" + i; start = this.properties.start[i]; this.tweenProperties[propertyName] = start; if(typeof(start) == "number" || ((start | 0) === start)) { details = new motion_actuators_PropertyDetails(this.tweenProperties,propertyName,start,this.properties.end[i] - start); this.propertyDetails.push(details); } } this.detailsLength = this.propertyDetails.length; this.initialized = true; } ,update: function(currentTime) { motion_actuators_SimpleActuator.prototype.update.call(this,currentTime); if(this.active && !this.paused) { var _g1 = 0; var _g = this.properties.start.length; while(_g1 < _g) { var i = _g1++; this.currentParameters[i] = Reflect.field(this.tweenProperties,"param" + i); } this.callMethod(this.target,this.currentParameters); } } ,__class__: motion_actuators_MethodActuator }); var motion_actuators_MotionPathActuator = function(target,duration,properties) { motion_actuators_SimpleActuator.call(this,target,duration,properties); }; $hxClasses["motion.actuators.MotionPathActuator"] = motion_actuators_MotionPathActuator; motion_actuators_MotionPathActuator.__name__ = ["motion","actuators","MotionPathActuator"]; motion_actuators_MotionPathActuator.__super__ = motion_actuators_SimpleActuator; motion_actuators_MotionPathActuator.prototype = $extend(motion_actuators_SimpleActuator.prototype,{ apply: function() { var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var propertyName = _g1[_g]; ++_g; if(Object.prototype.hasOwnProperty.call(this.target,propertyName)) Reflect.setField(this.target,propertyName,(js_Boot.__cast(Reflect.field(this.properties,propertyName) , motion_IComponentPath)).get_end()); else Reflect.setProperty(this.target,propertyName,(js_Boot.__cast(Reflect.field(this.properties,propertyName) , motion_IComponentPath)).get_end()); } } ,initialize: function() { var details; var path; var _g = 0; var _g1 = Reflect.fields(this.properties); while(_g < _g1.length) { var propertyName = _g1[_g]; ++_g; path = js_Boot.__cast(Reflect.field(this.properties,propertyName) , motion_IComponentPath); if(path != null) { var isField = true; if(Object.prototype.hasOwnProperty.call(this.target,propertyName)) path.start = Reflect.field(this.target,propertyName); else { isField = false; path.start = Reflect.getProperty(this.target,propertyName); } details = new motion_actuators_PropertyPathDetails(this.target,propertyName,path,isField); this.propertyDetails.push(details); } } this.detailsLength = this.propertyDetails.length; this.initialized = true; } ,update: function(currentTime) { if(!this.paused) { var details; var easing; var tweenPosition = (currentTime - this.timeOffset) / this.duration; if(tweenPosition > 1) tweenPosition = 1; if(!this.initialized) this.initialize(); if(!this.special) { easing = this._ease.calculate(tweenPosition); var _g = 0; var _g1 = this.propertyDetails; while(_g < _g1.length) { var details1 = _g1[_g]; ++_g; if(details1.isField) Reflect.setField(details1.target,details1.propertyName,(js_Boot.__cast(details1 , motion_actuators_PropertyPathDetails)).path.calculate(easing)); else Reflect.setProperty(details1.target,details1.propertyName,(js_Boot.__cast(details1 , motion_actuators_PropertyPathDetails)).path.calculate(easing)); } } else { if(!this._reverse) easing = this._ease.calculate(tweenPosition); else easing = this._ease.calculate(1 - tweenPosition); var endValue; var _g2 = 0; var _g11 = this.propertyDetails; while(_g2 < _g11.length) { var details2 = _g11[_g2]; ++_g2; if(!this._snapping) { if(details2.isField) Reflect.setField(details2.target,details2.propertyName,(js_Boot.__cast(details2 , motion_actuators_PropertyPathDetails)).path.calculate(easing)); else Reflect.setProperty(details2.target,details2.propertyName,(js_Boot.__cast(details2 , motion_actuators_PropertyPathDetails)).path.calculate(easing)); } else if(details2.isField) Reflect.setField(details2.target,details2.propertyName,Math.round((js_Boot.__cast(details2 , motion_actuators_PropertyPathDetails)).path.calculate(easing))); else Reflect.setProperty(details2.target,details2.propertyName,Math.round((js_Boot.__cast(details2 , motion_actuators_PropertyPathDetails)).path.calculate(easing))); } } if(tweenPosition == 1) { if(this._repeat == 0) { this.active = false; if(this.toggleVisible && this.getField(this.target,"alpha") == 0) this.setField_motion_actuators_MotionPathActuator_T(this.target,"visible",false); this.complete(true); return; } else { if(this._onRepeat != null) this.callMethod(this._onRepeat,this._onRepeatParams); if(this._reflect) this._reverse = !this._reverse; this.startTime = currentTime; this.timeOffset = this.startTime + this._delay; if(this._repeat > 0) this._repeat--; } } if(this.sendChange) this.change(); } } ,__class__: motion_actuators_MotionPathActuator }); var motion_actuators_PropertyDetails = function(target,propertyName,start,change,isField) { if(isField == null) isField = true; this.target = target; this.propertyName = propertyName; this.start = start; this.change = change; this.isField = isField; }; $hxClasses["motion.actuators.PropertyDetails"] = motion_actuators_PropertyDetails; motion_actuators_PropertyDetails.__name__ = ["motion","actuators","PropertyDetails"]; motion_actuators_PropertyDetails.prototype = { change: null ,isField: null ,propertyName: null ,start: null ,target: null ,__class__: motion_actuators_PropertyDetails }; var motion_actuators_PropertyPathDetails = function(target,propertyName,path,isField) { if(isField == null) isField = true; motion_actuators_PropertyDetails.call(this,target,propertyName,0,0,isField); this.path = path; }; $hxClasses["motion.actuators.PropertyPathDetails"] = motion_actuators_PropertyPathDetails; motion_actuators_PropertyPathDetails.__name__ = ["motion","actuators","PropertyPathDetails"]; motion_actuators_PropertyPathDetails.__super__ = motion_actuators_PropertyDetails; motion_actuators_PropertyPathDetails.prototype = $extend(motion_actuators_PropertyDetails.prototype,{ path: null ,__class__: motion_actuators_PropertyPathDetails }); var motion_actuators_TransformActuator = function(target,duration,properties) { motion_actuators_SimpleActuator.call(this,target,duration,properties); }; $hxClasses["motion.actuators.TransformActuator"] = motion_actuators_TransformActuator; motion_actuators_TransformActuator.__name__ = ["motion","actuators","TransformActuator"]; motion_actuators_TransformActuator.__super__ = motion_actuators_SimpleActuator; motion_actuators_TransformActuator.prototype = $extend(motion_actuators_SimpleActuator.prototype,{ endColorTransform: null ,endSoundTransform: null ,tweenColorTransform: null ,tweenSoundTransform: null ,apply: function() { this.initialize(); if(this.endColorTransform != null) { var transform = this.getField(this.target,"transform"); this.setField_openfl_geom_Transform(transform,"colorTransform",this.endColorTransform); } if(this.endSoundTransform != null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",this.endSoundTransform); } ,initialize: function() { if(Object.prototype.hasOwnProperty.call(this.properties,"colorValue") && js_Boot.__instanceof(this.target,openfl_display_DisplayObject)) this.initializeColor(); if(Object.prototype.hasOwnProperty.call(this.properties,"soundVolume") || Object.prototype.hasOwnProperty.call(this.properties,"soundPan")) this.initializeSound(); this.detailsLength = this.propertyDetails.length; this.initialized = true; } ,initializeColor: function() { this.endColorTransform = new openfl_geom_ColorTransform(); var color = this.properties.colorValue; var strength = this.properties.colorStrength; if(strength < 1) { var multiplier; var offset; if(strength < 0.5) { multiplier = 1; offset = strength * 2; } else { multiplier = 1 - (strength - 0.5) * 2; offset = 1; } this.endColorTransform.redMultiplier = multiplier; this.endColorTransform.greenMultiplier = multiplier; this.endColorTransform.blueMultiplier = multiplier; this.endColorTransform.redOffset = offset * (color >> 16 & 255); this.endColorTransform.greenOffset = offset * (color >> 8 & 255); this.endColorTransform.blueOffset = offset * (color & 255); } else { this.endColorTransform.redMultiplier = 0; this.endColorTransform.greenMultiplier = 0; this.endColorTransform.blueMultiplier = 0; this.endColorTransform.redOffset = color >> 16 & 255; this.endColorTransform.greenOffset = color >> 8 & 255; this.endColorTransform.blueOffset = color & 255; } var propertyNames = ["redMultiplier","greenMultiplier","blueMultiplier","redOffset","greenOffset","blueOffset"]; if(Object.prototype.hasOwnProperty.call(this.properties,"colorAlpha")) { this.endColorTransform.alphaMultiplier = this.properties.colorAlpha; propertyNames.push("alphaMultiplier"); } else this.endColorTransform.alphaMultiplier = this.getField(this.target,"alpha"); var transform = this.getField(this.target,"transform"); var begin = this.getField(transform,"colorTransform"); this.tweenColorTransform = new openfl_geom_ColorTransform(); var details; var start; var _g = 0; while(_g < propertyNames.length) { var propertyName = propertyNames[_g]; ++_g; start = this.getField(begin,propertyName); details = new motion_actuators_PropertyDetails(this.tweenColorTransform,propertyName,start,this.getField(this.endColorTransform,propertyName) - start); this.propertyDetails.push(details); } } ,initializeSound: function() { if(this.getField(this.target,"soundTransform") == null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",new openfl_media_SoundTransform()); var start = this.getField(this.target,"soundTransform"); this.endSoundTransform = this.getField(this.target,"soundTransform"); this.tweenSoundTransform = new openfl_media_SoundTransform(); if(Object.prototype.hasOwnProperty.call(this.properties,"soundVolume")) { this.endSoundTransform.volume = this.properties.soundVolume; this.propertyDetails.push(new motion_actuators_PropertyDetails(this.tweenSoundTransform,"volume",start.volume,this.endSoundTransform.volume - start.volume)); } if(Object.prototype.hasOwnProperty.call(this.properties,"soundPan")) { this.endSoundTransform.pan = this.properties.soundPan; this.propertyDetails.push(new motion_actuators_PropertyDetails(this.tweenSoundTransform,"pan",start.pan,this.endSoundTransform.pan - start.pan)); } } ,update: function(currentTime) { motion_actuators_SimpleActuator.prototype.update.call(this,currentTime); if(this.endColorTransform != null) { var transform = this.getField(this.target,"transform"); this.setField_openfl_geom_Transform(transform,"colorTransform",this.tweenColorTransform); } if(this.endSoundTransform != null) this.setField_motion_actuators_TransformActuator_T(this.target,"soundTransform",this.tweenSoundTransform); } ,__class__: motion_actuators_TransformActuator }); var motion_easing_ExpoEaseIn = function() { }; $hxClasses["motion.easing.ExpoEaseIn"] = motion_easing_ExpoEaseIn; motion_easing_ExpoEaseIn.__name__ = ["motion","easing","ExpoEaseIn"]; motion_easing_ExpoEaseIn.__interfaces__ = [motion_easing_IEasing]; motion_easing_ExpoEaseIn.prototype = { calculate: function(k) { if(k == 0) return 0; else return Math.pow(2,10 * (k - 1)); } ,ease: function(t,b,c,d) { if(t == 0) return b; else return c * Math.pow(2,10 * (t / d - 1)) + b; } ,__class__: motion_easing_ExpoEaseIn }; var motion_easing_ExpoEaseInOut = function() { }; $hxClasses["motion.easing.ExpoEaseInOut"] = motion_easing_ExpoEaseInOut; motion_easing_ExpoEaseInOut.__name__ = ["motion","easing","ExpoEaseInOut"]; motion_easing_ExpoEaseInOut.__interfaces__ = [motion_easing_IEasing]; motion_easing_ExpoEaseInOut.prototype = { calculate: function(k) { if(k == 0) return 0; if(k == 1) return 1; if((k /= 0.5) < 1.0) return 0.5 * Math.pow(2,10 * (k - 1)); return 0.5 * (2 - Math.pow(2,-10 * --k)); } ,ease: function(t,b,c,d) { if(t == 0) return b; if(t == d) return b + c; if((t /= d / 2.0) < 1.0) return c / 2 * Math.pow(2,10 * (t - 1)) + b; return c / 2 * (2 - Math.pow(2,-10 * --t)) + b; } ,__class__: motion_easing_ExpoEaseInOut }; var motion_easing_Linear = function() { }; $hxClasses["motion.easing.Linear"] = motion_easing_Linear; motion_easing_Linear.__name__ = ["motion","easing","Linear"]; motion_easing_Linear.__properties__ = {get_easeNone:"get_easeNone"} motion_easing_Linear.get_easeNone = function() { return new motion_easing_LinearEaseNone(); }; var motion_easing_LinearEaseNone = function() { }; $hxClasses["motion.easing.LinearEaseNone"] = motion_easing_LinearEaseNone; motion_easing_LinearEaseNone.__name__ = ["motion","easing","LinearEaseNone"]; motion_easing_LinearEaseNone.__interfaces__ = [motion_easing_IEasing]; motion_easing_LinearEaseNone.prototype = { calculate: function(k) { return k; } ,ease: function(t,b,c,d) { return c * t / d + b; } ,__class__: motion_easing_LinearEaseNone }; var motion_easing_Quad = function() { }; $hxClasses["motion.easing.Quad"] = motion_easing_Quad; motion_easing_Quad.__name__ = ["motion","easing","Quad"]; motion_easing_Quad.__properties__ = {get_easeOut:"get_easeOut",get_easeInOut:"get_easeInOut",get_easeIn:"get_easeIn"} motion_easing_Quad.get_easeIn = function() { return new motion_easing_QuadEaseIn(); }; motion_easing_Quad.get_easeInOut = function() { return new motion_easing_QuadEaseInOut(); }; motion_easing_Quad.get_easeOut = function() { return new motion_easing_QuadEaseOut(); }; var motion_easing_QuadEaseIn = function() { }; $hxClasses["motion.easing.QuadEaseIn"] = motion_easing_QuadEaseIn; motion_easing_QuadEaseIn.__name__ = ["motion","easing","QuadEaseIn"]; motion_easing_QuadEaseIn.__interfaces__ = [motion_easing_IEasing]; motion_easing_QuadEaseIn.prototype = { calculate: function(k) { return k * k; } ,ease: function(t,b,c,d) { return c * (t /= d) * t + b; } ,__class__: motion_easing_QuadEaseIn }; var motion_easing_QuadEaseInOut = function() { }; $hxClasses["motion.easing.QuadEaseInOut"] = motion_easing_QuadEaseInOut; motion_easing_QuadEaseInOut.__name__ = ["motion","easing","QuadEaseInOut"]; motion_easing_QuadEaseInOut.__interfaces__ = [motion_easing_IEasing]; motion_easing_QuadEaseInOut.prototype = { calculate: function(k) { if((k *= 2) < 1) return 0.5 * k * k; return -0.5 * ((k - 1) * (k - 3) - 1); } ,ease: function(t,b,c,d) { if((t /= d / 2) < 1) return c / 2 * t * t + b; return -c / 2 * ((t - 1) * (t - 3) - 1) + b; } ,__class__: motion_easing_QuadEaseInOut }; var motion_easing_QuadEaseOut = function() { }; $hxClasses["motion.easing.QuadEaseOut"] = motion_easing_QuadEaseOut; motion_easing_QuadEaseOut.__name__ = ["motion","easing","QuadEaseOut"]; motion_easing_QuadEaseOut.__interfaces__ = [motion_easing_IEasing]; motion_easing_QuadEaseOut.prototype = { calculate: function(k) { return -k * (k - 2); } ,ease: function(t,b,c,d) { return -c * (t /= d) * (t - 2) + b; } ,__class__: motion_easing_QuadEaseOut }; var openfl_IAssetCache = function() { }; $hxClasses["openfl.IAssetCache"] = openfl_IAssetCache; openfl_IAssetCache.__name__ = ["openfl","IAssetCache"]; openfl_IAssetCache.prototype = { get_enabled: null ,set_enabled: null ,clear: null ,getBitmapData: null ,getFont: null ,getSound: null ,hasBitmapData: null ,hasFont: null ,hasSound: null ,removeBitmapData: null ,removeFont: null ,removeSound: null ,setBitmapData: null ,setFont: null ,setSound: null ,__class__: openfl_IAssetCache ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var openfl_AssetCache = function() { this.__enabled = false; this.bitmapData = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.sound = new haxe_ds_StringMap(); }; $hxClasses["openfl.AssetCache"] = openfl_AssetCache; openfl_AssetCache.__name__ = ["openfl","AssetCache"]; openfl_AssetCache.__interfaces__ = [openfl_IAssetCache]; openfl_AssetCache.prototype = { bitmapData: null ,font: null ,sound: null ,__enabled: null ,clear: function(prefix) { if(prefix == null) { this.bitmapData = new haxe_ds_StringMap(); this.font = new haxe_ds_StringMap(); this.sound = new haxe_ds_StringMap(); } else { var keys = this.bitmapData.keys(); while( keys.hasNext() ) { var key = keys.next(); if(StringTools.startsWith(key,prefix)) this.bitmapData.remove(key); } var keys1 = this.font.keys(); while( keys1.hasNext() ) { var key1 = keys1.next(); if(StringTools.startsWith(key1,prefix)) this.font.remove(key1); } var keys2 = this.sound.keys(); while( keys2.hasNext() ) { var key2 = keys2.next(); if(StringTools.startsWith(key2,prefix)) this.sound.remove(key2); } } } ,getBitmapData: function(id) { return this.bitmapData.get(id); } ,getFont: function(id) { return this.font.get(id); } ,getSound: function(id) { return this.sound.get(id); } ,hasBitmapData: function(id) { return this.bitmapData.exists(id); } ,hasFont: function(id) { return this.font.exists(id); } ,hasSound: function(id) { return this.sound.exists(id); } ,removeBitmapData: function(id) { return this.bitmapData.remove(id); } ,removeFont: function(id) { return this.font.remove(id); } ,removeSound: function(id) { return this.sound.remove(id); } ,setBitmapData: function(id,bitmapData) { this.bitmapData.set(id,bitmapData); } ,setFont: function(id,font) { this.font.set(id,font); } ,setSound: function(id,sound) { this.sound.set(id,sound); } ,get_enabled: function() { return this.__enabled; } ,set_enabled: function(value) { return this.__enabled = value; } ,__class__: openfl_AssetCache ,__properties__: {set_enabled:"set_enabled",get_enabled:"get_enabled"} }; var openfl_Assets = function() { }; $hxClasses["openfl.Assets"] = openfl_Assets; openfl_Assets.__name__ = ["openfl","Assets"]; openfl_Assets.addEventListener = function(type,listener,useCapture,priority,useWeakReference) { if(useWeakReference == null) useWeakReference = false; if(priority == null) priority = 0; if(useCapture == null) useCapture = false; if(!lime_Assets.onChange.has(openfl_Assets.LimeAssets_onChange)) lime_Assets.onChange.add(openfl_Assets.LimeAssets_onChange); openfl_Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference); }; openfl_Assets.dispatchEvent = function(event) { return openfl_Assets.dispatcher.dispatchEvent(event); }; openfl_Assets.exists = function(id,type) { return lime_Assets.exists(id,type); }; openfl_Assets.getBitmapData = function(id,useCache) { if(useCache == null) useCache = true; if(useCache && openfl_Assets.cache.get_enabled() && openfl_Assets.cache.hasBitmapData(id)) { var bitmapData = openfl_Assets.cache.getBitmapData(id); if(openfl_Assets.isValidBitmapData(bitmapData)) return bitmapData; } var image = lime_Assets.getImage(id,false); if(image != null) { var bitmapData1 = openfl_display_BitmapData.fromImage(image); if(useCache && openfl_Assets.cache.get_enabled()) openfl_Assets.cache.setBitmapData(id,bitmapData1); return bitmapData1; } return null; }; openfl_Assets.getBytes = function(id) { return openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(lime_Assets.getBytes(id)); }; openfl_Assets.getFont = function(id,useCache) { if(useCache == null) useCache = true; if(useCache && openfl_Assets.cache.get_enabled() && openfl_Assets.cache.hasFont(id)) return openfl_Assets.cache.getFont(id); var limeFont = lime_Assets.getFont(id,false); if(limeFont != null) { var font = openfl_text_Font.__fromLimeFont(limeFont); if(useCache && openfl_Assets.cache.get_enabled()) openfl_Assets.cache.setFont(id,font); return font; } return new openfl_text_Font(); }; openfl_Assets.getLibrary = function(name) { return lime_Assets.getLibrary(name); }; openfl_Assets.getMovieClip = function(id) { var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = openfl_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"MOVIE_CLIP")) { if(library.isLocal(symbolName,"MOVIE_CLIP")) return library.getMovieClip(symbolName); else haxe_Log.trace("[openfl.Assets] MovieClip asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 223, className : "openfl.Assets", methodName : "getMovieClip"}); } else haxe_Log.trace("[openfl.Assets] There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 229, className : "openfl.Assets", methodName : "getMovieClip"}); } else haxe_Log.trace("[openfl.Assets] There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 235, className : "openfl.Assets", methodName : "getMovieClip"}); return null; }; openfl_Assets.getMusic = function(id,useCache) { if(useCache == null) useCache = true; var path = lime_Assets.getPath(id); if(path != null) return new openfl_media_Sound(new openfl_net_URLRequest(path)); return null; }; openfl_Assets.getPath = function(id) { return lime_Assets.getPath(id); }; openfl_Assets.getSound = function(id,useCache) { if(useCache == null) useCache = true; if(useCache && openfl_Assets.cache.get_enabled() && openfl_Assets.cache.hasSound(id)) { var sound = openfl_Assets.cache.getSound(id); if(openfl_Assets.isValidSound(sound)) return sound; } var path = lime_Assets.getPath(id); if(path != null) return new openfl_media_Sound(new openfl_net_URLRequest(path)); return null; }; openfl_Assets.getText = function(id) { return lime_Assets.getText(id); }; openfl_Assets.hasEventListener = function(type) { return openfl_Assets.dispatcher.hasEventListener(type); }; openfl_Assets.isLocal = function(id,type,useCache) { if(useCache == null) useCache = true; if(useCache && openfl_Assets.cache.get_enabled()) { if(type == "IMAGE" || type == null) { if(openfl_Assets.cache.hasBitmapData(id)) return true; } if(type == "FONT" || type == null) { if(openfl_Assets.cache.hasFont(id)) return true; } if(type == "SOUND" || type == "MUSIC" || type == null) { if(openfl_Assets.cache.hasSound(id)) return true; } } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = openfl_Assets.getLibrary(libraryName); if(library != null) return library.isLocal(symbolName,type); return false; }; openfl_Assets.isValidBitmapData = function(bitmapData) { return bitmapData != null && bitmapData.image != null; }; openfl_Assets.isValidSound = function(sound) { return true; }; openfl_Assets.list = function(type) { return lime_Assets.list(type); }; openfl_Assets.loadBitmapData = function(id,useCache,handler) { if(useCache == null) useCache = true; if(useCache == null) useCache = true; var promise = new lime_app_Promise(); if(handler != null) { promise.future.onComplete(handler); promise.future.onError(function(_) { handler(null); }); } if(useCache && openfl_Assets.cache.get_enabled() && openfl_Assets.cache.hasBitmapData(id)) { var bitmapData = openfl_Assets.cache.getBitmapData(id); if(openfl_Assets.isValidBitmapData(bitmapData)) { promise.complete(bitmapData); return promise.future; } } lime_Assets.loadImage(id,false).onComplete(function(image) { if(image != null) { var bitmapData1 = openfl_display_BitmapData.fromImage(image); if(useCache && openfl_Assets.cache.get_enabled()) openfl_Assets.cache.setBitmapData(id,bitmapData1); promise.complete(bitmapData1); } else promise.error("[Assets] Could not load Image \"" + id + "\""); }).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress)); return promise.future; }; openfl_Assets.loadBytes = function(id,handler) { var promise = new lime_app_Promise(); var future = lime_Assets.loadBytes(id); if(handler != null) { promise.future.onComplete(handler); promise.future.onError(function(_) { handler(null); }); future.onComplete(function(bytes) { promise.complete(openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(bytes)); }); future.onProgress(function(progress) { promise.progress(progress); }); future.onError(function(msg) { promise.error(msg); }); } return promise.future; }; openfl_Assets.loadFont = function(id,useCache,handler) { if(useCache == null) useCache = true; if(useCache == null) useCache = true; var promise = new lime_app_Promise(); if(handler != null) { promise.future.onComplete(handler); promise.future.onError(function(_) { handler(null); }); } if(useCache && openfl_Assets.cache.get_enabled() && openfl_Assets.cache.hasFont(id)) { promise.complete(openfl_Assets.cache.getFont(id)); return promise.future; } lime_Assets.loadFont(id).onComplete(function(limeFont) { var font = openfl_text_Font.__fromLimeFont(limeFont); if(useCache && openfl_Assets.cache.get_enabled()) openfl_Assets.cache.setFont(id,font); promise.complete(font); }).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress)); return promise.future; }; openfl_Assets.loadLibrary = function(name,handler) { var future = lime_Assets.loadLibrary(name); if(handler != null) { future.onComplete(handler); future.onError(function(_) { handler(null); }); } return future; }; openfl_Assets.loadMusic = function(id,useCache,handler) { if(useCache == null) useCache = true; if(useCache == null) useCache = true; return new lime_app_Future(function() { return openfl_Assets.getMusic(id,useCache); }); }; openfl_Assets.loadMovieClip = function(id,handler) { var promise = new lime_app_Promise(); if(handler != null) { promise.future.onComplete(handler); promise.future.onError(function(_) { handler(null); }); } var libraryName = id.substring(0,id.indexOf(":")); var symbolName; var pos = id.indexOf(":") + 1; symbolName = HxOverrides.substr(id,pos,null); var library = openfl_Assets.getLibrary(libraryName); if(library != null) { if(library.exists(symbolName,"MOVIE_CLIP")) promise.completeWith(library.loadMovieClip(symbolName)); else promise.error("[Assets] There is no MovieClip asset with an ID of \"" + id + "\""); } else promise.error("[Assets] There is no asset library named \"" + libraryName + "\""); return promise.future; }; openfl_Assets.loadSound = function(id,useCache,handler) { if(useCache == null) useCache = true; if(useCache == null) useCache = true; return new lime_app_Future(function() { return openfl_Assets.getSound(id,useCache); }); }; openfl_Assets.loadText = function(id,handler) { var future = lime_Assets.loadText(id); if(handler != null) { future.onComplete(handler); future.onError(function(_) { handler(null); }); } return future; }; openfl_Assets.registerLibrary = function(name,library) { lime_Assets.registerLibrary(name,library); }; openfl_Assets.removeEventListener = function(type,listener,capture) { if(capture == null) capture = false; openfl_Assets.dispatcher.removeEventListener(type,listener,capture); }; openfl_Assets.resolveClass = function(name) { return Type.resolveClass(name); }; openfl_Assets.resolveEnum = function(name) { var value = Type.resolveEnum(name); return value; }; openfl_Assets.unloadLibrary = function(name) { lime_Assets.unloadLibrary(name); }; openfl_Assets.LimeAssets_onChange = function() { openfl_Assets.dispatchEvent(new openfl_events_Event("change")); }; var openfl_AssetLibrary = function() { lime_AssetLibrary.call(this); }; $hxClasses["openfl.AssetLibrary"] = openfl_AssetLibrary; openfl_AssetLibrary.__name__ = ["openfl","AssetLibrary"]; openfl_AssetLibrary.__super__ = lime_AssetLibrary; openfl_AssetLibrary.prototype = $extend(lime_AssetLibrary.prototype,{ getMovieClip: function(id) { return null; } ,loadMovieClip: function(id) { var _g = this; return new lime_app_Future(function() { return _g.getMovieClip(id); }); } ,__class__: openfl_AssetLibrary }); var openfl_display_MovieClip = function() { openfl_display_Sprite.call(this); this.__currentFrame = 0; this.__currentLabels = []; this.__totalFrames = 0; this.enabled = true; }; $hxClasses["openfl.display.MovieClip"] = openfl_display_MovieClip; openfl_display_MovieClip.__name__ = ["openfl","display","MovieClip"]; openfl_display_MovieClip.__super__ = openfl_display_Sprite; openfl_display_MovieClip.prototype = $extend(openfl_display_Sprite.prototype,{ currentFrame: null ,currentFrameLabel: null ,currentLabel: null ,currentLabels: null ,enabled: null ,framesLoaded: null ,totalFrames: null ,__currentFrame: null ,__currentFrameLabel: null ,__currentLabel: null ,__currentLabels: null ,__frameScripts: null ,__totalFrames: null ,addFrameScript: function(index,method) { if(method != null) { if(this.__frameScripts == null) this.__frameScripts = new haxe_ds_IntMap(); this.__frameScripts.h[index] = method; } else if(this.__frameScripts != null) this.__frameScripts.remove(index); } ,gotoAndPlay: function(frame,scene) { } ,gotoAndStop: function(frame,scene) { } ,nextFrame: function() { } ,play: function() { } ,prevFrame: function() { } ,stop: function() { } ,get_currentFrame: function() { return this.__currentFrame; } ,get_currentFrameLabel: function() { return this.__currentFrameLabel; } ,get_currentLabel: function() { return this.__currentLabel; } ,get_currentLabels: function() { return this.__currentLabels; } ,get_framesLoaded: function() { return this.__totalFrames; } ,get_totalFrames: function() { return this.__totalFrames; } ,__class__: openfl_display_MovieClip ,__properties__: $extend(openfl_display_Sprite.prototype.__properties__,{get_totalFrames:"get_totalFrames",get_framesLoaded:"get_framesLoaded",get_currentLabels:"get_currentLabels",get_currentLabel:"get_currentLabel",get_currentFrameLabel:"get_currentFrameLabel",get_currentFrame:"get_currentFrame"}) }); var openfl_display_LoaderInfo = function() { openfl_events_EventDispatcher.call(this); this.applicationDomain = openfl_system_ApplicationDomain.currentDomain; this.bytesLoaded = 0; this.bytesTotal = 0; this.childAllowsParent = true; this.parameters = { }; }; $hxClasses["openfl.display.LoaderInfo"] = openfl_display_LoaderInfo; openfl_display_LoaderInfo.__name__ = ["openfl","display","LoaderInfo"]; openfl_display_LoaderInfo.create = function(loader) { var loaderInfo = new openfl_display_LoaderInfo(); loaderInfo.uncaughtErrorEvents = new openfl_events_UncaughtErrorEvents(); if(loader != null) loaderInfo.loader = loader; else loaderInfo.url = openfl_display_LoaderInfo.__rootURL; return loaderInfo; }; openfl_display_LoaderInfo.__super__ = openfl_events_EventDispatcher; openfl_display_LoaderInfo.prototype = $extend(openfl_events_EventDispatcher.prototype,{ applicationDomain: null ,bytes: null ,bytesLoaded: null ,bytesTotal: null ,childAllowsParent: null ,content: null ,contentType: null ,frameRate: null ,height: null ,loader: null ,loaderURL: null ,parameters: null ,parentAllowsChild: null ,sameDomain: null ,sharedEvents: null ,uncaughtErrorEvents: null ,url: null ,width: null ,__class__: openfl_display_LoaderInfo }); var openfl_system_ApplicationDomain = function(parentDomain) { if(parentDomain != null) this.parentDomain = parentDomain; else this.parentDomain = openfl_system_ApplicationDomain.currentDomain; }; $hxClasses["openfl.system.ApplicationDomain"] = openfl_system_ApplicationDomain; openfl_system_ApplicationDomain.__name__ = ["openfl","system","ApplicationDomain"]; openfl_system_ApplicationDomain.prototype = { parentDomain: null ,getDefinition: function(name) { return Type.resolveClass(name); } ,hasDefinition: function(name) { return Type.resolveClass(name) != null; } ,__class__: openfl_system_ApplicationDomain }; var openfl_events_UncaughtErrorEvents = function() { openfl_events_EventDispatcher.call(this); }; $hxClasses["openfl.events.UncaughtErrorEvents"] = openfl_events_UncaughtErrorEvents; openfl_events_UncaughtErrorEvents.__name__ = ["openfl","events","UncaughtErrorEvents"]; openfl_events_UncaughtErrorEvents.__super__ = openfl_events_EventDispatcher; openfl_events_UncaughtErrorEvents.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __class__: openfl_events_UncaughtErrorEvents }); var openfl_geom_Matrix = function(a,b,c,d,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(d == null) d = 1; if(c == null) c = 0; if(b == null) b = 0; if(a == null) a = 1; this.a = a; this.b = b; this.c = c; this.d = d; this.tx = tx; this.ty = ty; }; $hxClasses["openfl.geom.Matrix"] = openfl_geom_Matrix; openfl_geom_Matrix.__name__ = ["openfl","geom","Matrix"]; openfl_geom_Matrix.prototype = { a: null ,b: null ,c: null ,d: null ,tx: null ,ty: null ,__array: null ,clone: function() { return new openfl_geom_Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty); } ,concat: function(m) { var a1 = this.a * m.a + this.b * m.c; this.b = this.a * m.b + this.b * m.d; this.a = a1; var c1 = this.c * m.a + this.d * m.c; this.d = this.c * m.b + this.d * m.d; this.c = c1; var tx1 = this.tx * m.a + this.ty * m.c + m.tx; this.ty = this.tx * m.b + this.ty * m.d + m.ty; this.tx = tx1; } ,copyColumnFrom: function(column,vector3D) { if(column > 2) throw new js__$Boot_HaxeError("Column " + column + " out of bounds (2)"); else if(column == 0) { this.a = vector3D.x; this.c = vector3D.y; } else if(column == 1) { this.b = vector3D.x; this.d = vector3D.y; } else { this.tx = vector3D.x; this.ty = vector3D.y; } } ,copyColumnTo: function(column,vector3D) { if(column > 2) throw new js__$Boot_HaxeError("Column " + column + " out of bounds (2)"); else if(column == 0) { vector3D.x = this.a; vector3D.y = this.c; vector3D.z = 0; } else if(column == 1) { vector3D.x = this.b; vector3D.y = this.d; vector3D.z = 0; } else { vector3D.x = this.tx; vector3D.y = this.ty; vector3D.z = 1; } } ,copyFrom: function(sourceMatrix) { this.a = sourceMatrix.a; this.b = sourceMatrix.b; this.c = sourceMatrix.c; this.d = sourceMatrix.d; this.tx = sourceMatrix.tx; this.ty = sourceMatrix.ty; } ,copyRowFrom: function(row,vector3D) { if(row > 2) throw new js__$Boot_HaxeError("Row " + row + " out of bounds (2)"); else if(row == 0) { this.a = vector3D.x; this.c = vector3D.y; } else if(row == 1) { this.b = vector3D.x; this.d = vector3D.y; } else { this.tx = vector3D.x; this.ty = vector3D.y; } } ,copyRowTo: function(row,vector3D) { if(row > 2) throw new js__$Boot_HaxeError("Row " + row + " out of bounds (2)"); else if(row == 0) { vector3D.x = this.a; vector3D.y = this.b; vector3D.z = this.tx; } else if(row == 1) { vector3D.x = this.c; vector3D.y = this.d; vector3D.z = this.ty; } else vector3D.setTo(0,0,1); } ,createBox: function(scaleX,scaleY,rotation,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(rotation == null) rotation = 0; if(rotation != 0) { var cos = Math.cos(rotation); var sin = Math.sin(rotation); this.a = cos * scaleX; this.b = sin * scaleY; this.c = -sin * scaleX; this.d = cos * scaleY; } else { this.a = scaleX; this.b = 0; this.c = 0; this.d = scaleY; } this.tx = tx; this.ty = ty; } ,createGradientBox: function(width,height,rotation,tx,ty) { if(ty == null) ty = 0; if(tx == null) tx = 0; if(rotation == null) rotation = 0; this.a = width / 1638.4; this.d = height / 1638.4; if(rotation != 0) { var cos = Math.cos(rotation); var sin = Math.sin(rotation); this.b = sin * this.d; this.c = -sin * this.a; this.a *= cos; this.d *= cos; } else { this.b = 0; this.c = 0; } this.tx = tx + width / 2; this.ty = ty + height / 2; } ,deltaTransformPoint: function(point) { return new openfl_geom_Point(point.x * this.a + point.y * this.c,point.x * this.b + point.y * this.d); } ,equals: function(matrix) { return matrix != null && this.tx == matrix.tx && this.ty == matrix.ty && this.a == matrix.a && this.b == matrix.b && this.c == matrix.c && this.d == matrix.d; } ,identity: function() { this.a = 1; this.b = 0; this.c = 0; this.d = 1; this.tx = 0; this.ty = 0; } ,invert: function() { var norm = this.a * this.d - this.b * this.c; if(norm == 0) { this.a = this.b = this.c = this.d = 0; this.tx = -this.tx; this.ty = -this.ty; } else { norm = 1.0 / norm; var a1 = this.d * norm; this.d = this.a * norm; this.a = a1; this.b *= -norm; this.c *= -norm; var tx1 = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = tx1; } return this; } ,rotate: function(theta) { var cos = Math.cos(theta); var sin = Math.sin(theta); var a1 = this.a * cos - this.b * sin; this.b = this.a * sin + this.b * cos; this.a = a1; var c1 = this.c * cos - this.d * sin; this.d = this.c * sin + this.d * cos; this.c = c1; var tx1 = this.tx * cos - this.ty * sin; this.ty = this.tx * sin + this.ty * cos; this.tx = tx1; } ,scale: function(sx,sy) { this.a *= sx; this.b *= sy; this.c *= sx; this.d *= sy; this.tx *= sx; this.ty *= sy; } ,setRotation: function(theta,scale) { if(scale == null) scale = 1; this.a = Math.cos(theta) * scale; this.c = Math.sin(theta) * scale; this.b = -this.c; this.d = this.a; } ,setTo: function(a,b,c,d,tx,ty) { this.a = a; this.b = b; this.c = c; this.d = d; this.tx = tx; this.ty = ty; } ,to3DString: function(roundPixels) { if(roundPixels == null) roundPixels = false; if(roundPixels) return "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)"; else return "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)"; } ,toMozString: function() { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)"; } ,toString: function() { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")"; } ,transformPoint: function(pos) { return new openfl_geom_Point(pos.x * this.a + pos.y * this.c + this.tx,pos.x * this.b + pos.y * this.d + this.ty); } ,translate: function(dx,dy) { this.tx += dx; this.ty += dy; } ,toArray: function(transpose) { if(transpose == null) transpose = false; if(this.__array == null) { var this1; this1 = new Float32Array(9); this.__array = this1; } if(transpose) { this.__array[0] = this.a; this.__array[1] = this.b; this.__array[2] = 0; this.__array[3] = this.c; this.__array[4] = this.d; this.__array[5] = 0; this.__array[6] = this.tx; this.__array[7] = this.ty; this.__array[8] = 1; } else { this.__array[0] = this.a; this.__array[1] = this.c; this.__array[2] = this.tx; this.__array[3] = this.b; this.__array[4] = this.d; this.__array[5] = this.ty; this.__array[6] = 0; this.__array[7] = 0; this.__array[8] = 1; } return this.__array; } ,__cleanValues: function() { this.a = Math.round(this.a * 1000) / 1000; this.b = Math.round(this.b * 1000) / 1000; this.c = Math.round(this.c * 1000) / 1000; this.d = Math.round(this.d * 1000) / 1000; this.tx = Math.round(this.tx * 10) / 10; this.ty = Math.round(this.ty * 10) / 10; } ,__toMatrix3: function() { return new lime_math_Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty); } ,__transformInversePoint: function(point) { var norm = this.a * this.d - this.b * this.c; if(norm == 0) { point.x = -this.tx; point.y = -this.ty; } else { var px = 1.0 / norm * (this.c * (this.ty - point.y) + this.d * (point.x - this.tx)); point.y = 1.0 / norm * (this.a * (point.y - this.ty) + this.b * (this.tx - point.x)); point.x = px; } } ,__transformInverseX: function(px,py) { var norm = this.a * this.d - this.b * this.c; if(norm == 0) return -this.tx; else return 1.0 / norm * (this.c * (this.ty - py) + this.d * (px - this.tx)); } ,__transformInverseY: function(px,py) { var norm = this.a * this.d - this.b * this.c; if(norm == 0) return -this.ty; else return 1.0 / norm * (this.a * (py - this.ty) + this.b * (this.tx - px)); } ,__transformPoint: function(point) { var px = point.x; var py = point.y; point.x = px * this.a + py * this.c + this.tx; point.y = px * this.b + py * this.d + this.ty; } ,__transformX: function(px,py) { return px * this.a + py * this.c + this.tx; } ,__transformY: function(px,py) { return px * this.b + py * this.d + this.ty; } ,__translateTransformed: function(px,py) { this.tx = px * this.a + py * this.c + this.tx; this.ty = px * this.b + py * this.d + this.ty; } ,__class__: openfl_geom_Matrix }; var openfl_geom_Point = function(x,y) { if(y == null) y = 0; if(x == null) x = 0; this.x = x; this.y = y; }; $hxClasses["openfl.geom.Point"] = openfl_geom_Point; openfl_geom_Point.__name__ = ["openfl","geom","Point"]; openfl_geom_Point.distance = function(pt1,pt2) { var dx = pt1.x - pt2.x; var dy = pt1.y - pt2.y; return Math.sqrt(dx * dx + dy * dy); }; openfl_geom_Point.interpolate = function(pt1,pt2,f) { return new openfl_geom_Point(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y)); }; openfl_geom_Point.polar = function(len,angle) { return new openfl_geom_Point(len * Math.cos(angle),len * Math.sin(angle)); }; openfl_geom_Point.prototype = { length: null ,x: null ,y: null ,add: function(v) { return new openfl_geom_Point(v.x + this.x,v.y + this.y); } ,clone: function() { return new openfl_geom_Point(this.x,this.y); } ,copyFrom: function(sourcePoint) { this.x = sourcePoint.x; this.y = sourcePoint.y; } ,equals: function(toCompare) { return toCompare != null && toCompare.x == this.x && toCompare.y == this.y; } ,normalize: function(thickness) { if(this.x == 0 && this.y == 0) return; else { var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y); this.x *= norm; this.y *= norm; } } ,offset: function(dx,dy) { this.x += dx; this.y += dy; } ,setTo: function(xa,ya) { this.x = xa; this.y = ya; } ,subtract: function(v) { return new openfl_geom_Point(this.x - v.x,this.y - v.y); } ,toString: function() { return "(x=" + this.x + ", y=" + this.y + ")"; } ,__toLimeVector2: function() { return new lime_math_Vector2(this.x,this.y); } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y); } ,__class__: openfl_geom_Point ,__properties__: {get_length:"get_length"} }; var openfl_geom_ColorTransform = function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) { if(alphaOffset == null) alphaOffset = 0; if(blueOffset == null) blueOffset = 0; if(greenOffset == null) greenOffset = 0; if(redOffset == null) redOffset = 0; if(alphaMultiplier == null) alphaMultiplier = 1; if(blueMultiplier == null) blueMultiplier = 1; if(greenMultiplier == null) greenMultiplier = 1; if(redMultiplier == null) redMultiplier = 1; this.redMultiplier = redMultiplier; this.greenMultiplier = greenMultiplier; this.blueMultiplier = blueMultiplier; this.alphaMultiplier = alphaMultiplier; this.redOffset = redOffset; this.greenOffset = greenOffset; this.blueOffset = blueOffset; this.alphaOffset = alphaOffset; }; $hxClasses["openfl.geom.ColorTransform"] = openfl_geom_ColorTransform; openfl_geom_ColorTransform.__name__ = ["openfl","geom","ColorTransform"]; openfl_geom_ColorTransform.prototype = { alphaMultiplier: null ,alphaOffset: null ,blueMultiplier: null ,blueOffset: null ,greenMultiplier: null ,greenOffset: null ,redMultiplier: null ,redOffset: null ,concat: function(second) { this.redMultiplier *= second.redMultiplier; this.greenMultiplier *= second.greenMultiplier; this.blueMultiplier *= second.blueMultiplier; this.alphaMultiplier *= second.alphaMultiplier; this.redOffset = second.redMultiplier * this.redOffset + second.redOffset; this.greenOffset = second.greenMultiplier * this.greenOffset + second.greenOffset; this.blueOffset = second.blueMultiplier * this.blueOffset + second.blueOffset; this.alphaOffset = second.alphaMultiplier * this.alphaOffset + second.alphaOffset; } ,toString: function() { return "(redMultiplier=" + this.redMultiplier + ", greenMultiplier=" + this.greenMultiplier + ", blueMultiplier=" + this.blueMultiplier + ", alphaMultiplier=" + this.alphaMultiplier + ", redOffset=" + this.redOffset + ", greenOffset=" + this.greenOffset + ", blueOffset=" + this.blueOffset + ", alphaOffset=" + this.alphaOffset + ")"; } ,__clone: function() { return new openfl_geom_ColorTransform(this.redMultiplier,this.greenMultiplier,this.blueMultiplier,this.alphaMultiplier,this.redOffset,this.greenOffset,this.blueOffset,this.alphaOffset); } ,__combine: function(ct) { this.redMultiplier *= ct.redMultiplier; this.greenMultiplier *= ct.greenMultiplier; this.blueMultiplier *= ct.blueMultiplier; this.alphaMultiplier *= ct.alphaMultiplier; this.redOffset += ct.redOffset; this.greenOffset += ct.greenOffset; this.blueOffset += ct.blueOffset; this.alphaOffset += ct.alphaOffset; } ,__equals: function(ct,skipAlphaMultiplier) { if(skipAlphaMultiplier == null) skipAlphaMultiplier = false; return ct != null && this.redMultiplier == ct.redMultiplier && this.greenMultiplier == ct.greenMultiplier && this.blueMultiplier == ct.blueMultiplier && (skipAlphaMultiplier || this.alphaMultiplier == ct.alphaMultiplier) && this.redOffset == ct.redOffset && this.greenOffset == ct.greenOffset && this.blueOffset == ct.blueOffset && this.alphaOffset == ct.alphaOffset; } ,__isDefault: function() { return this.redMultiplier == 1 && this.greenMultiplier == 1 && this.blueMultiplier == 1 && this.alphaMultiplier == 1 && this.redOffset == 0 && this.greenOffset == 0 && this.blueOffset == 0 && this.alphaOffset == 0; } ,get_color: function() { return (this.redOffset | 0) << 16 | (this.greenOffset | 0) << 8 | (this.blueOffset | 0); } ,set_color: function(value) { this.redOffset = value >> 16 & 255; this.greenOffset = value >> 8 & 255; this.blueOffset = value & 255; this.redMultiplier = 0; this.greenMultiplier = 0; this.blueMultiplier = 0; return this.get_color(); } ,__toLimeColorMatrix: function() { return (function($this) { var $r; var array = [$this.redMultiplier,0,0,0,$this.redOffset / 255,0,$this.greenMultiplier,0,0,$this.greenOffset / 255,0,0,$this.blueMultiplier,0,$this.blueOffset / 255,0,0,0,$this.alphaMultiplier,$this.alphaOffset / 255]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this)); } ,__class__: openfl_geom_ColorTransform ,__properties__: {set_color:"set_color",get_color:"get_color"} }; var openfl_Lib = function() { }; $hxClasses["openfl.Lib"] = openfl_Lib; openfl_Lib.__name__ = ["openfl","Lib"]; openfl_Lib.application = null; openfl_Lib["as"] = function(v,c) { if(js_Boot.__instanceof(v,c)) return v; else return null; }; openfl_Lib.attach = function(name) { return new openfl_display_MovieClip(); }; openfl_Lib.embed = $hx_exports.openfl.embed = function(elementName,width,height,background,assetsPrefix) { lime_system_System.embed(elementName,width,height,background,assetsPrefix); }; openfl_Lib.getTimer = function() { return lime_system_System.getTimer(); }; openfl_Lib.getURL = function(request,target) { window.famobi.moreGamesLink(); }; openfl_Lib.notImplemented = function(api) { if(!openfl_Lib.__sentWarnings.exists(api)) { openfl_Lib.__sentWarnings.set(api,true); haxe_Log.trace("Warning: " + api + " is not implemented",{ fileName : "Lib.hx", lineNumber : 113, className : "openfl.Lib", methodName : "notImplemented"}); } }; openfl_Lib.preventDefaultTouchMove = function() { window.document.addEventListener("touchmove",function(evt) { evt.preventDefault(); },false); }; openfl_Lib.trace = function(arg) { haxe_Log.trace(arg,{ fileName : "Lib.hx", lineNumber : 144, className : "openfl.Lib", methodName : "trace"}); }; var openfl__$Vector_Vector_$Impl_$ = {}; $hxClasses["openfl._Vector.Vector_Impl_"] = openfl__$Vector_Vector_$Impl_$; openfl__$Vector_Vector_$Impl_$.__name__ = ["openfl","_Vector","Vector_Impl_"]; openfl__$Vector_Vector_$Impl_$.__properties__ = {set_fixed:"set_fixed",get_fixed:"get_fixed",set_length:"set_length",get_length:"get_length"} openfl__$Vector_Vector_$Impl_$._new = function(length,fixed) { if(fixed == null) fixed = false; if(length == null) length = 0; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(length); this1.data = this2; this1.length = length; this1.fixed = fixed; return this1; }; openfl__$Vector_Vector_$Impl_$.concat = function(this1,a) { var vectorData = new openfl_VectorData(); if(a != null) vectorData.length = this1.length + a.length; else vectorData.length = this1.length; vectorData.fixed = false; var this2; this2 = new Array(vectorData.length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); if(a != null) haxe_ds__$Vector_Vector_$Impl_$.blit(a.data,0,vectorData.data,this1.length,a.length); return vectorData; }; openfl__$Vector_Vector_$Impl_$.copy = function(this1) { var vectorData = new openfl_VectorData(); vectorData.length = this1.length; vectorData.fixed = this1.fixed; var this2; this2 = new Array(this1.length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); return vectorData; }; openfl__$Vector_Vector_$Impl_$.iterator = function(this1) { return new openfl_VectorDataIterator(this1); }; openfl__$Vector_Vector_$Impl_$.join = function(this1,sep) { var output = ""; var _g1 = 0; var _g = this1.length; while(_g1 < _g) { var i = _g1++; if(i > 0) output += sep; output += Std.string(this1.data[i]); } return output; }; openfl__$Vector_Vector_$Impl_$.pop = function(this1) { var value = null; if(!this1.fixed) { if(this1.length > 0) { this1.length--; value = this1.data[this1.length]; } } return value; }; openfl__$Vector_Vector_$Impl_$.push = function(this1,x) { if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = x; } return this1.length; }; openfl__$Vector_Vector_$Impl_$.reverse = function(this1) { var data; var this2; this2 = new Array(this1.length); data = this2; var _g1 = 0; var _g = this1.length; while(_g1 < _g) { var i = _g1++; data[this1.length - 1 - i] = this1.data[i]; } this1.data = data; }; openfl__$Vector_Vector_$Impl_$.shift = function(this1) { if(!this1.fixed && this1.length > 0) { this1.length--; var value = this1.data[0]; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,1,this1.data,0,this1.length); return value; } return null; }; openfl__$Vector_Vector_$Impl_$.unshift = function(this1,x) { if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,1,this1.data.length); this1.data = data; } else haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,this1.data,1,this1.length - 1); this1.data[0] = x; } }; openfl__$Vector_Vector_$Impl_$.slice = function(this1,pos,end) { if(end == null) end = 0; if(pos == null) pos = 0; if(pos < 0) pos += this1.length; if(end <= 0) end += this1.length; if(end > this1.length) end = this1.length; var length = end - pos; if(length <= 0 || length > this1.length) length = this1.length; var vectorData = new openfl_VectorData(); vectorData.length = end - pos; vectorData.fixed = true; var this2; this2 = new Array(length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,pos,vectorData.data,0,length); return vectorData; }; openfl__$Vector_Vector_$Impl_$.sort = function(this1,f) { var array = haxe_ds__$Vector_Vector_$Impl_$.toArray(this1.data); array.sort(f); var vec; var this2; this2 = new Array(array.length); vec = this2; var _g1 = 0; var _g = array.length; while(_g1 < _g) { var i = _g1++; vec[i] = array[i]; } this1.data = vec; }; openfl__$Vector_Vector_$Impl_$.splice = function(this1,pos,len) { if(pos < 0) pos += this1.length; if(pos + len > this1.length) len = this1.length - pos; if(len < 0) len = 0; var vectorData = new openfl_VectorData(); vectorData.length = len; vectorData.fixed = false; var this2; this2 = new Array(len); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,pos,vectorData.data,0,len); if(len > 0) { this1.length -= len; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,pos + len,this1.data,pos,this1.length - pos); } return vectorData; }; openfl__$Vector_Vector_$Impl_$.toString = function(this1) { return haxe_ds__$Vector_Vector_$Impl_$.toArray(this1.data).toString(); }; openfl__$Vector_Vector_$Impl_$.indexOf = function(this1,x,from) { if(from == null) from = 0; var value = -1; var _g1 = from; var _g = this1.length; while(_g1 < _g) { var i = _g1++; if(this1.data[i] == x) { value = i; break; } } return value; }; openfl__$Vector_Vector_$Impl_$.lastIndexOf = function(this1,x,from) { if(from == null) from = 0; var value = -1; var i = this1.length - 1; while(i >= from) { if(this1.data[i] == x) { value = i; break; } i--; } return value; }; openfl__$Vector_Vector_$Impl_$.ofArray = function(a) { var vectorData = new openfl_VectorData(); vectorData.length = a.length; vectorData.fixed = true; var vec; var this1; this1 = new Array(a.length); vec = this1; var _g1 = 0; var _g = a.length; while(_g1 < _g) { var i = _g1++; vec[i] = a[i]; } vectorData.data = vec; return vectorData; }; openfl__$Vector_Vector_$Impl_$.convert = function(v) { return v; }; openfl__$Vector_Vector_$Impl_$.get = function(this1,index) { return this1.data[index]; }; openfl__$Vector_Vector_$Impl_$.set = function(this1,key,value) { if(!this1.fixed) { if(key >= this1.length) this1.length = key + 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } return this1.data[key] = value; }; openfl__$Vector_Vector_$Impl_$.fromArray = function(value) { var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; return vectorData; }; openfl__$Vector_Vector_$Impl_$.toArray = function(this1) { var value = []; var _g1 = 0; var _g = this1.data.length; while(_g1 < _g) { var i = _g1++; value.push(this1.data[i]); } return value; }; openfl__$Vector_Vector_$Impl_$.fromHaxeVector = function(value) { var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; vectorData.data = value; return vectorData; }; openfl__$Vector_Vector_$Impl_$.toHaxeVector = function(this1) { return this1.data; }; openfl__$Vector_Vector_$Impl_$.fromVectorData = function(value) { return value; }; openfl__$Vector_Vector_$Impl_$.toVectorData = function(this1) { return this1; }; openfl__$Vector_Vector_$Impl_$.get_length = function(this1) { return this1.length; }; openfl__$Vector_Vector_$Impl_$.set_length = function(this1,value) { if(!this1.fixed) { if(value > this1.length) { var data; var this2; this2 = new Array(value); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,Std["int"](Math.min(this1.data.length,value))); this1.data = data; } this1.length = value; } return value; }; openfl__$Vector_Vector_$Impl_$.get_fixed = function(this1) { return this1.fixed; }; openfl__$Vector_Vector_$Impl_$.set_fixed = function(this1,value) { return this1.fixed = value; }; var openfl_VectorData = function() { this.length = 0; }; $hxClasses["openfl.VectorData"] = openfl_VectorData; openfl_VectorData.__name__ = ["openfl","VectorData"]; openfl_VectorData.prototype = { data: null ,fixed: null ,length: null ,__class__: openfl_VectorData }; var openfl_VectorDataIterator = function(data) { this.index = 0; this.vectorData = data; }; $hxClasses["openfl.VectorDataIterator"] = openfl_VectorDataIterator; openfl_VectorDataIterator.__name__ = ["openfl","VectorDataIterator"]; openfl_VectorDataIterator.prototype = { index: null ,vectorData: null ,hasNext: function() { return this.index < this.vectorData.length; } ,next: function() { var index = this.index++; return this.vectorData.data[index]; } ,__class__: openfl_VectorDataIterator }; var openfl__$internal_renderer_AbstractMaskManager = function(renderSession) { this.renderSession = renderSession; }; $hxClasses["openfl._internal.renderer.AbstractMaskManager"] = openfl__$internal_renderer_AbstractMaskManager; openfl__$internal_renderer_AbstractMaskManager.__name__ = ["openfl","_internal","renderer","AbstractMaskManager"]; openfl__$internal_renderer_AbstractMaskManager.prototype = { renderSession: null ,pushMask: function(mask) { } ,pushRect: function(rect,transform) { } ,popMask: function() { } ,popRect: function() { } ,saveState: function() { } ,restoreState: function() { } ,__class__: openfl__$internal_renderer_AbstractMaskManager }; var openfl__$internal_renderer_AbstractRenderer = function(width,height) { this.width = width; this.height = height; }; $hxClasses["openfl._internal.renderer.AbstractRenderer"] = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_AbstractRenderer.__name__ = ["openfl","_internal","renderer","AbstractRenderer"]; openfl__$internal_renderer_AbstractRenderer.prototype = { height: null ,width: null ,transparent: null ,viewport: null ,renderSession: null ,render: function(stage) { } ,renderShape: function(shape) { } ,setViewport: function(x,y,width,height) { } ,resize: function(width,height) { } ,__class__: openfl__$internal_renderer_AbstractRenderer }; var openfl__$internal_renderer_DrawCommandBuffer = function() { this.types = []; this.b = []; this.i = []; this.f = []; this.o = []; this.ff = []; this.ii = []; this.ts = []; }; $hxClasses["openfl._internal.renderer.DrawCommandBuffer"] = openfl__$internal_renderer_DrawCommandBuffer; openfl__$internal_renderer_DrawCommandBuffer.__name__ = ["openfl","_internal","renderer","DrawCommandBuffer"]; openfl__$internal_renderer_DrawCommandBuffer.prototype = { types: null ,b: null ,f: null ,ff: null ,i: null ,ii: null ,o: null ,ts: null ,append: function(other) { var data = new openfl__$internal_renderer_DrawCommandReader(other); var _g = 0; var _g1 = other.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 0: var c = data.readBeginBitmapFill(); this.beginBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c)); break; case 1: var c1 = data.readBeginFill(); this.beginFill(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c1),openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c1)); break; case 2: var c2 = data.readBeginGradientFill(); this.beginGradientFill(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c2),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c2)); break; case 3: var c3 = data.readCubicCurveTo(); this.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c3),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c3),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c3),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c3),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c3),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c3)); break; case 4: var c4 = data.readCurveTo(); this.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c4),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c4),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c4),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c4)); break; case 5: var c5 = data.readDrawCircle(); this.drawCircle(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c5),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c5),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c5)); break; case 6: var c6 = data.readDrawEllipse(); this.drawEllipse(openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c6),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c6),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c6),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c6)); break; case 7: var c7 = data.readDrawPath(); this.drawPath(openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_commands(c7),openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c7),openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_winding(c7)); break; case 8: var c8 = data.readDrawRect(); this.drawRect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c8),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c8),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c8),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c8)); break; case 9: var c9 = data.readDrawRoundRect(); this.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c9),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c9),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c9),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c9),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c9),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c9)); break; case 10: var c10 = data.readDrawTiles(); this.drawTiles(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c10),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c10),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_smooth(c10),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c10),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_shader(c10),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c10)); break; case 11: var c11 = data.readDrawTriangles(); this.drawTriangles(openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_vertices(c11),openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_indices(c11),openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData(c11),openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_culling(c11)); break; case 12: var c12 = data.readEndFill(); this.endFill(); break; case 13: var c13 = data.readLineBitmapStyle(); this.lineBitmapStyle(openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap(c13),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_matrix(c13),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat(c13),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_smooth(c13)); break; case 14: var c14 = data.readLineGradientStyle(); this.lineGradientStyle(openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod(c14),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio(c14)); break; case 15: var c15 = data.readLineStyle(); this.lineStyle(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_pixelHinting(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_scaleMode(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c15),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c15)); break; case 16: var c16 = data.readLineTo(); this.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c16),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c16)); break; case 17: var c17 = data.readMoveTo(); this.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c17),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c17)); break; case 18: var c18 = data.readOverrideMatrix(); this.overrideMatrix(openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$.get_matrix(c18)); break; default: } } data.destroy(); return other; } ,beginBitmapFill: function(bitmap,matrix,repeat,smooth) { this.types.push(openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL); this.o.push(bitmap); this.o.push(matrix); this.b.push(repeat); this.b.push(smooth); } ,beginFill: function(color,alpha) { this.types.push(openfl__$internal_renderer_DrawCommandType.BEGIN_FILL); this.i.push(color); this.f.push(alpha); } ,beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { this.types.push(openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL); this.o.push(type); this.ii.push(colors); this.ff.push(alphas); this.ii.push(ratios); this.o.push(matrix); this.o.push(spreadMethod); this.o.push(interpolationMethod); this.f.push(focalPointRatio); } ,clear: function() { this.types.splice(0,this.types.length); this.b.splice(0,this.b.length); this.i.splice(0,this.i.length); this.f.splice(0,this.f.length); this.o.splice(0,this.o.length); this.ff.splice(0,this.ff.length); this.ii.splice(0,this.ii.length); this.ts.splice(0,this.ts.length); } ,copy: function() { var copy = new openfl__$internal_renderer_DrawCommandBuffer(); copy.append(this); return copy; } ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { this.types.push(openfl__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO); this.f.push(controlX1); this.f.push(controlY1); this.f.push(controlX2); this.f.push(controlY2); this.f.push(anchorX); this.f.push(anchorY); } ,curveTo: function(controlX,controlY,anchorX,anchorY) { this.types.push(openfl__$internal_renderer_DrawCommandType.CURVE_TO); this.f.push(controlX); this.f.push(controlY); this.f.push(anchorX); this.f.push(anchorY); } ,destroy: function() { this.clear(); this.types = null; this.b = null; this.i = null; this.f = null; this.o = null; this.ff = null; this.ii = null; this.ts = null; } ,drawCircle: function(x,y,radius) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_CIRCLE); this.f.push(x); this.f.push(y); this.f.push(radius); } ,drawEllipse: function(x,y,width,height) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_ELLIPSE); this.f.push(x); this.f.push(y); this.f.push(width); this.f.push(height); } ,drawPath: function(commands,data,winding) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_PATH); this.o.push(commands); this.o.push(data); this.o.push(winding); } ,drawRect: function(x,y,width,height) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_RECT); this.f.push(x); this.f.push(y); this.f.push(width); this.f.push(height); } ,drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT); this.f.push(x); this.f.push(y); this.f.push(width); this.f.push(height); this.f.push(ellipseWidth); this.o.push(ellipseHeight); } ,drawTiles: function(sheet,tileData,smooth,flags,shader,count) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_TILES); this.ts.push(sheet); this.ff.push(tileData); this.b.push(smooth); this.i.push(flags); this.o.push(shader); this.i.push(count); } ,drawTriangles: function(vertices,indices,uvtData,culling) { this.types.push(openfl__$internal_renderer_DrawCommandType.DRAW_TRIANGLES); this.o.push(vertices); this.o.push(indices); this.o.push(uvtData); this.o.push(culling); } ,endFill: function() { this.types.push(openfl__$internal_renderer_DrawCommandType.END_FILL); } ,lineBitmapStyle: function(bitmap,matrix,repeat,smooth) { this.types.push(openfl__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE); this.o.push(bitmap); this.o.push(matrix); this.b.push(repeat); this.b.push(smooth); } ,lineGradientStyle: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { this.types.push(openfl__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE); this.o.push(type); this.ii.push(colors); this.ff.push(alphas); this.ii.push(ratios); this.o.push(matrix); this.o.push(spreadMethod); this.o.push(interpolationMethod); this.f.push(focalPointRatio); } ,lineStyle: function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) { this.types.push(openfl__$internal_renderer_DrawCommandType.LINE_STYLE); this.o.push(thickness); this.i.push(color); this.f.push(alpha); this.b.push(pixelHinting); this.o.push(scaleMode); this.o.push(caps); this.o.push(joints); this.f.push(miterLimit); } ,lineTo: function(x,y) { this.types.push(openfl__$internal_renderer_DrawCommandType.LINE_TO); this.f.push(x); this.f.push(y); } ,moveTo: function(x,y) { this.types.push(openfl__$internal_renderer_DrawCommandType.MOVE_TO); this.f.push(x); this.f.push(y); } ,overrideMatrix: function(matrix) { this.types.push(openfl__$internal_renderer_DrawCommandType.OVERRIDE_MATRIX); this.o.push(matrix); } ,get_length: function() { return this.types.length; } ,__class__: openfl__$internal_renderer_DrawCommandBuffer ,__properties__: {get_length:"get_length"} }; var openfl__$internal_renderer_DrawCommandReader = function(buffer) { this.buffer = buffer; this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; this.prev = openfl__$internal_renderer_DrawCommandType.UNKNOWN; }; $hxClasses["openfl._internal.renderer.DrawCommandReader"] = openfl__$internal_renderer_DrawCommandReader; openfl__$internal_renderer_DrawCommandReader.__name__ = ["openfl","_internal","renderer","DrawCommandReader"]; openfl__$internal_renderer_DrawCommandReader.prototype = { buffer: null ,bPos: null ,iiPos: null ,iPos: null ,ffPos: null ,fPos: null ,oPos: null ,prev: null ,tsPos: null ,advance: function() { var _g = this.prev; switch(_g[1]) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.fPos += 6; break; case 4: this.fPos += 4; break; case 5: this.fPos += 3; break; case 6: this.fPos += 4; break; case 7: this.oPos += 3; break; case 8: this.fPos += 4; break; case 9: this.fPos += 5; this.oPos += 1; break; case 10: this.tsPos += 1; this.ffPos += 1; this.bPos += 1; this.iPos += 2; this.oPos += 1; break; case 11: this.oPos += 4; break; case 12: break; case 13: this.oPos += 2; this.bPos += 2; break; case 14: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 15: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 16: this.fPos += 2; break; case 17: this.fPos += 2; break; case 18: this.oPos += 1; break; default: } } ,bool: function(index) { return this.buffer.b[this.bPos + index]; } ,destroy: function() { this.buffer = null; this.reset(); } ,fArr: function(index) { return this.buffer.ff[this.ffPos + index]; } ,'float': function(index) { return this.buffer.f[this.fPos + index]; } ,iArr: function(index) { return this.buffer.ii[this.iiPos + index]; } ,'int': function(index) { return this.buffer.i[this.iPos + index]; } ,obj: function(index) { return this.buffer.o[this.oPos + index]; } ,readBeginBitmapFill: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL; return openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$._new(this); } ,readBeginFill: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.BEGIN_FILL; return openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$._new(this); } ,readBeginGradientFill: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL; return openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$._new(this); } ,readCubicCurveTo: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO; return openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$._new(this); } ,readCurveTo: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.CURVE_TO; return openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$._new(this); } ,readDrawCircle: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_CIRCLE; return openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$._new(this); } ,readDrawEllipse: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_ELLIPSE; return openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$._new(this); } ,readDrawPath: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_PATH; return openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$._new(this); } ,readDrawRect: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_RECT; return openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$._new(this); } ,readDrawRoundRect: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT; return openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$._new(this); } ,readDrawTiles: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_TILES; return openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$._new(this); } ,readDrawTriangles: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.DRAW_TRIANGLES; return openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$._new(this); } ,readEndFill: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.END_FILL; return openfl__$internal_renderer__$DrawCommandReader_EndFillView_$Impl_$._new(this); } ,readLineBitmapStyle: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE; return openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$._new(this); } ,readLineGradientStyle: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE; return openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$._new(this); } ,readLineStyle: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.LINE_STYLE; return openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$._new(this); } ,readLineTo: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.LINE_TO; return openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$._new(this); } ,readMoveTo: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.MOVE_TO; return openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$._new(this); } ,readOverrideMatrix: function() { this.advance(); this.prev = openfl__$internal_renderer_DrawCommandType.OVERRIDE_MATRIX; return openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$._new(this); } ,reset: function() { this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; } ,skip: function(type) { this.advance(); this.prev = type; } ,tileSheet: function(index) { return this.buffer.ts[this.tsPos + index]; } ,__class__: openfl__$internal_renderer_DrawCommandReader }; var openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.BeginBitmapFillView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","BeginBitmapFillView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"} openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat = function(this1) { return this1.bool(0); }; openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth = function(this1) { return this1.bool(1); }; var openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.BeginFillView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","BeginFillView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.__properties__ = {get_alpha:"get_alpha",get_color:"get_color"} openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color = function(this1) { return this1["int"](0); }; openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha = function(this1) { return this1["float"](0); }; var openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.BeginGradientFillView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","BeginGradientFillView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.__properties__ = {get_focalPointRatio:"get_focalPointRatio",get_interpolationMethod:"get_interpolationMethod",get_spreadMethod:"get_spreadMethod",get_matrix:"get_matrix",get_ratios:"get_ratios",get_alphas:"get_alphas",get_colors:"get_colors",get_type:"get_type"} openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors = function(this1) { return this1.iArr(0); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas = function(this1) { return this1.fArr(0); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios = function(this1) { return this1.iArr(1); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod = function(this1) { return this1.obj(2); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod = function(this1) { return this1.obj(3); }; openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio = function(this1) { return this1["float"](0); }; var openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.CubicCurveToView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","CubicCurveToView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.__properties__ = {get_anchorY:"get_anchorY",get_anchorX:"get_anchorX",get_controlY2:"get_controlY2",get_controlX2:"get_controlX2",get_controlY1:"get_controlY1",get_controlX1:"get_controlX1"} openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1 = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1 = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2 = function(this1) { return this1["float"](2); }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2 = function(this1) { return this1["float"](3); }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX = function(this1) { return this1["float"](4); }; openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY = function(this1) { return this1["float"](5); }; var openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.CurveToView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","CurveToView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.__properties__ = {get_anchorY:"get_anchorY",get_anchorX:"get_anchorX",get_controlY:"get_controlY",get_controlX:"get_controlX"} openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX = function(this1) { return this1["float"](2); }; openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY = function(this1) { return this1["float"](3); }; var openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawCircleView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawCircleView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.__properties__ = {get_radius:"get_radius",get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius = function(this1) { return this1["float"](2); }; var openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawEllipseView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawEllipseView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width = function(this1) { return this1["float"](2); }; openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height = function(this1) { return this1["float"](3); }; var openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawPathView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawPathView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.__properties__ = {get_winding:"get_winding",get_data:"get_data",get_commands:"get_commands"} openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_commands = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_winding = function(this1) { return this1.obj(2); }; var openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawRectView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawRectView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.__properties__ = {get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width = function(this1) { return this1["float"](2); }; openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height = function(this1) { return this1["float"](3); }; var openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawRoundRectView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawRoundRectView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.__properties__ = {get_ellipseHeight:"get_ellipseHeight",get_ellipseWidth:"get_ellipseWidth",get_height:"get_height",get_width:"get_width",get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width = function(this1) { return this1["float"](2); }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height = function(this1) { return this1["float"](3); }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth = function(this1) { return this1["float"](4); }; openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight = function(this1) { return this1.obj(0); }; var openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawTilesView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawTilesView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.__properties__ = {get_count:"get_count",get_shader:"get_shader",get_flags:"get_flags",get_smooth:"get_smooth",get_tileData:"get_tileData",get_sheet:"get_sheet"} openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet = function(this1) { return this1.tileSheet(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData = function(this1) { return this1.fArr(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_smooth = function(this1) { return this1.bool(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags = function(this1) { return this1["int"](0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_shader = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count = function(this1) { return this1["int"](1); }; var openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.DrawTrianglesView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","DrawTrianglesView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.__properties__ = {get_culling:"get_culling",get_uvtData:"get_uvtData",get_indices:"get_indices",get_vertices:"get_vertices"} openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_vertices = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_indices = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData = function(this1) { return this1.obj(2); }; openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_culling = function(this1) { return this1.obj(3); }; var openfl__$internal_renderer__$DrawCommandReader_EndFillView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.EndFillView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_EndFillView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_EndFillView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","EndFillView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_EndFillView_$Impl_$._new = function(d) { return d; }; var openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.LineBitmapStyleView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","LineBitmapStyleView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.__properties__ = {get_smooth:"get_smooth",get_repeat:"get_repeat",get_matrix:"get_matrix",get_bitmap:"get_bitmap"} openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_matrix = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat = function(this1) { return this1.bool(0); }; openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_smooth = function(this1) { return this1.bool(1); }; var openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.LineGradientStyleView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","LineGradientStyleView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.__properties__ = {get_focalPointRatio:"get_focalPointRatio",get_interpolationMethod:"get_interpolationMethod",get_spreadMethod:"get_spreadMethod",get_matrix:"get_matrix",get_ratios:"get_ratios",get_alphas:"get_alphas",get_colors:"get_colors",get_type:"get_type"} openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors = function(this1) { return this1.iArr(0); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas = function(this1) { return this1.fArr(0); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios = function(this1) { return this1.iArr(1); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod = function(this1) { return this1.obj(2); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod = function(this1) { return this1.obj(3); }; openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio = function(this1) { return this1["float"](0); }; var openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.LineStyleView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","LineStyleView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.__properties__ = {get_miterLimit:"get_miterLimit",get_joints:"get_joints",get_caps:"get_caps",get_scaleMode:"get_scaleMode",get_pixelHinting:"get_pixelHinting",get_alpha:"get_alpha",get_color:"get_color",get_thickness:"get_thickness"} openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness = function(this1) { return this1.obj(0); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color = function(this1) { return this1["int"](0); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_pixelHinting = function(this1) { return this1.bool(0); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_scaleMode = function(this1) { return this1.obj(1); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps = function(this1) { return this1.obj(2); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints = function(this1) { return this1.obj(3); }; openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit = function(this1) { return this1["float"](1); }; var openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.LineToView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","LineToView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.__properties__ = {get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; var openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.MoveToView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","MoveToView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.__properties__ = {get_y:"get_y",get_x:"get_x"} openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x = function(this1) { return this1["float"](0); }; openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y = function(this1) { return this1["float"](1); }; var openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$ = {}; $hxClasses["openfl._internal.renderer._DrawCommandReader.OverrideMatrixView_Impl_"] = openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$; openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$.__name__ = ["openfl","_internal","renderer","_DrawCommandReader","OverrideMatrixView_Impl_"]; openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$.__properties__ = {get_matrix:"get_matrix"} openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$._new = function(d) { return d; }; openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$.get_matrix = function(this1) { return this1.obj(0); }; var openfl__$internal_renderer_DrawCommandType = $hxClasses["openfl._internal.renderer.DrawCommandType"] = { __ename__ : ["openfl","_internal","renderer","DrawCommandType"], __constructs__ : ["BEGIN_BITMAP_FILL","BEGIN_FILL","BEGIN_GRADIENT_FILL","CUBIC_CURVE_TO","CURVE_TO","DRAW_CIRCLE","DRAW_ELLIPSE","DRAW_PATH","DRAW_RECT","DRAW_ROUND_RECT","DRAW_TILES","DRAW_TRIANGLES","END_FILL","LINE_BITMAP_STYLE","LINE_GRADIENT_STYLE","LINE_STYLE","LINE_TO","MOVE_TO","OVERRIDE_MATRIX","UNKNOWN"] }; openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL = ["BEGIN_BITMAP_FILL",0]; openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL.toString = $estr; openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.BEGIN_FILL = ["BEGIN_FILL",1]; openfl__$internal_renderer_DrawCommandType.BEGIN_FILL.toString = $estr; openfl__$internal_renderer_DrawCommandType.BEGIN_FILL.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL = ["BEGIN_GRADIENT_FILL",2]; openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL.toString = $estr; openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO = ["CUBIC_CURVE_TO",3]; openfl__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO.toString = $estr; openfl__$internal_renderer_DrawCommandType.CUBIC_CURVE_TO.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.CURVE_TO = ["CURVE_TO",4]; openfl__$internal_renderer_DrawCommandType.CURVE_TO.toString = $estr; openfl__$internal_renderer_DrawCommandType.CURVE_TO.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_CIRCLE = ["DRAW_CIRCLE",5]; openfl__$internal_renderer_DrawCommandType.DRAW_CIRCLE.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_CIRCLE.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_ELLIPSE = ["DRAW_ELLIPSE",6]; openfl__$internal_renderer_DrawCommandType.DRAW_ELLIPSE.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_ELLIPSE.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_PATH = ["DRAW_PATH",7]; openfl__$internal_renderer_DrawCommandType.DRAW_PATH.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_PATH.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_RECT = ["DRAW_RECT",8]; openfl__$internal_renderer_DrawCommandType.DRAW_RECT.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_RECT.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT = ["DRAW_ROUND_RECT",9]; openfl__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_ROUND_RECT.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_TILES = ["DRAW_TILES",10]; openfl__$internal_renderer_DrawCommandType.DRAW_TILES.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_TILES.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.DRAW_TRIANGLES = ["DRAW_TRIANGLES",11]; openfl__$internal_renderer_DrawCommandType.DRAW_TRIANGLES.toString = $estr; openfl__$internal_renderer_DrawCommandType.DRAW_TRIANGLES.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.END_FILL = ["END_FILL",12]; openfl__$internal_renderer_DrawCommandType.END_FILL.toString = $estr; openfl__$internal_renderer_DrawCommandType.END_FILL.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE = ["LINE_BITMAP_STYLE",13]; openfl__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE.toString = $estr; openfl__$internal_renderer_DrawCommandType.LINE_BITMAP_STYLE.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE = ["LINE_GRADIENT_STYLE",14]; openfl__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE.toString = $estr; openfl__$internal_renderer_DrawCommandType.LINE_GRADIENT_STYLE.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.LINE_STYLE = ["LINE_STYLE",15]; openfl__$internal_renderer_DrawCommandType.LINE_STYLE.toString = $estr; openfl__$internal_renderer_DrawCommandType.LINE_STYLE.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.LINE_TO = ["LINE_TO",16]; openfl__$internal_renderer_DrawCommandType.LINE_TO.toString = $estr; openfl__$internal_renderer_DrawCommandType.LINE_TO.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.MOVE_TO = ["MOVE_TO",17]; openfl__$internal_renderer_DrawCommandType.MOVE_TO.toString = $estr; openfl__$internal_renderer_DrawCommandType.MOVE_TO.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.OVERRIDE_MATRIX = ["OVERRIDE_MATRIX",18]; openfl__$internal_renderer_DrawCommandType.OVERRIDE_MATRIX.toString = $estr; openfl__$internal_renderer_DrawCommandType.OVERRIDE_MATRIX.__enum__ = openfl__$internal_renderer_DrawCommandType; openfl__$internal_renderer_DrawCommandType.UNKNOWN = ["UNKNOWN",19]; openfl__$internal_renderer_DrawCommandType.UNKNOWN.toString = $estr; openfl__$internal_renderer_DrawCommandType.UNKNOWN.__enum__ = openfl__$internal_renderer_DrawCommandType; var openfl__$internal_renderer_GraphicsPaths = function() { }; $hxClasses["openfl._internal.renderer.GraphicsPaths"] = openfl__$internal_renderer_GraphicsPaths; openfl__$internal_renderer_GraphicsPaths.__name__ = ["openfl","_internal","renderer","GraphicsPaths"]; openfl__$internal_renderer_GraphicsPaths.ellipse = function(points,x,y,rx,ry,segmentCount) { var seg = Math.PI * 2 / segmentCount; var _g1 = 0; var _g = segmentCount + 1; while(_g1 < _g) { var i = _g1++; points.push(x + Math.sin(seg * i) * rx); points.push(y + Math.cos(seg * i) * ry); } }; openfl__$internal_renderer_GraphicsPaths.cubicCurveTo = function(points,cx,cy,cx2,cy2,x,y) { var n = 20; var dt = 0; var dt2 = 0; var dt3 = 0; var t2 = 0; var t3 = 0; var fromX = points[points.length - 2]; var fromY = points[points.length - 1]; var px = 0; var py = 0; var tmp = 0; var _g1 = 1; var _g = n + 1; while(_g1 < _g) { var i = _g1++; tmp = i / n; dt = 1 - tmp; dt2 = dt * dt; dt3 = dt2 * dt; t2 = tmp * tmp; t3 = t2 * tmp; px = dt3 * fromX + 3 * dt2 * tmp * cx + 3 * dt * t2 * cx2 + t3 * x; py = dt3 * fromY + 3 * dt2 * tmp * cy + 3 * dt * t2 * cy2 + t3 * y; points.push(px); points.push(py); } }; openfl__$internal_renderer_GraphicsPaths.curveTo = function(points,cx,cy,x,y) { var xa = 0; var ya = 0; var n = 20; var fromX = points[points.length - 2]; var fromY = points[points.length - 1]; var px = 0; var py = 0; var tmp = 0; var _g1 = 1; var _g = n + 1; while(_g1 < _g) { var i = _g1++; tmp = i / n; xa = fromX + (cx - fromX) * tmp; ya = fromY + (cy - fromY) * tmp; px = xa + (cx + (x - cx) * tmp - xa) * tmp; py = ya + (cy + (y - cy) * tmp - ya) * tmp; points.push(px); points.push(py); } }; openfl__$internal_renderer_GraphicsPaths.roundRectangle = function(points,x,y,width,height,rx,ry) { var xe = x + width; var ye = y + height; var cx1 = -rx + rx * openfl__$internal_renderer_GraphicsPaths.SIN45; var cx2 = -rx + rx * openfl__$internal_renderer_GraphicsPaths.TAN22; var cy1 = -ry + ry * openfl__$internal_renderer_GraphicsPaths.SIN45; var cy2 = -ry + ry * openfl__$internal_renderer_GraphicsPaths.TAN22; points.push(xe); points.push(ye - ry); openfl__$internal_renderer_GraphicsPaths.curveTo(points,xe,ye + cy2,xe + cx1,ye + cy1); openfl__$internal_renderer_GraphicsPaths.curveTo(points,xe + cx2,ye,xe - rx,ye); points.push(x + rx); points.push(ye); openfl__$internal_renderer_GraphicsPaths.curveTo(points,x - cx2,ye,x - cx1,ye + cy1); openfl__$internal_renderer_GraphicsPaths.curveTo(points,x,ye + cy2,x,ye - ry); points.push(x); points.push(y + ry); openfl__$internal_renderer_GraphicsPaths.curveTo(points,x,y - cy2,x - cx1,y - cy1); openfl__$internal_renderer_GraphicsPaths.curveTo(points,x - cx2,y,x + rx,y); points.push(xe - rx); points.push(y); openfl__$internal_renderer_GraphicsPaths.curveTo(points,xe + cx2,y,xe + cx1,y - cy1); openfl__$internal_renderer_GraphicsPaths.curveTo(points,xe,y - cy2,xe,y + ry); points.push(xe); points.push(ye - ry); }; var openfl__$internal_renderer_PolyK = function() { }; $hxClasses["openfl._internal.renderer.PolyK"] = openfl__$internal_renderer_PolyK; openfl__$internal_renderer_PolyK.__name__ = ["openfl","_internal","renderer","PolyK"]; openfl__$internal_renderer_PolyK.triangulate = function(tgs,p) { var sign = true; var n = p.length >> 1; if(n < 3) return []; var avl; var _g = []; var _g1 = 0; while(_g1 < n) { var i1 = _g1++; _g.push(i1); } avl = _g; var i = 0; var al = n; var earFound = false; while(al > 3) { var i0 = avl[i % al]; var i11 = avl[(i + 1) % al]; var i2 = avl[(i + 2) % al]; var ax = p[2 * i0]; var ay = p[2 * i0 + 1]; var bx = p[2 * i11]; var by = p[2 * i11 + 1]; var cx = p[2 * i2]; var cy = p[2 * i2 + 1]; earFound = false; if(openfl__$internal_renderer_PolyK._convex(ax,ay,bx,by,cx,cy,sign)) { earFound = true; var _g11 = 0; while(_g11 < al) { var j = _g11++; var vi = avl[j]; if(vi == i0 || vi == i11 || vi == i2) continue; if(openfl__$internal_renderer_PolyK._PointInTriangle(p[2 * vi],p[2 * vi + 1],ax,ay,bx,by,cx,cy)) { earFound = false; break; } } } if(earFound) { tgs.push(i0); tgs.push(i11); tgs.push(i2); avl.splice((i + 1) % al,1); al--; i = 0; } else if(i++ > 3 * al) { if(sign) { tgs = []; var _g12 = []; var _g2 = 0; while(_g2 < n) { var k = _g2++; _g12.push(k); } avl = _g12; i = 0; al = n; sign = false; } else { haxe_Log.trace("Warning: shape too complex to fill",{ fileName : "PolyK.hx", lineNumber : 104, className : "openfl._internal.renderer.PolyK", methodName : "triangulate"}); return []; } } } tgs.push(avl[0]); tgs.push(avl[1]); tgs.push(avl[2]); return tgs; }; openfl__$internal_renderer_PolyK._PointInTriangle = function(px,py,ax,ay,bx,by,cx,cy) { var v0x = cx - ax | 0; var v0y = cy - ay | 0; var v1x = bx - ax | 0; var v1y = by - ay | 0; var v2x = px - ax | 0; var v2y = py - ay | 0; var dot00 = v0x * v0x + v0y * v0y; var dot01 = v0x * v1x + v0y * v1y; var dot02 = v0x * v2x + v0y * v2y; var dot11 = v1x * v1x + v1y * v1y; var dot12 = v1x * v2x + v1y * v2y; var invDenom = 1 / (dot00 * dot11 - dot01 * dot01); var u = (dot11 * dot02 - dot01 * dot12) * invDenom; var v = (dot00 * dot12 - dot01 * dot02) * invDenom; return u >= 0 && v >= 0 && u + v < 1; }; openfl__$internal_renderer_PolyK._convex = function(ax,ay,bx,by,cx,cy,sign) { return (ay - by) * (cx - bx) + (bx - ax) * (cy - by) >= 0 == sign; }; var openfl__$internal_renderer_RenderSession = function() { this.activeTextures = 0; }; $hxClasses["openfl._internal.renderer.RenderSession"] = openfl__$internal_renderer_RenderSession; openfl__$internal_renderer_RenderSession.__name__ = ["openfl","_internal","renderer","RenderSession"]; openfl__$internal_renderer_RenderSession.prototype = { cairo: null ,context: null ,element: null ,gl: null ,renderer: null ,roundPixels: null ,transformProperty: null ,transformOriginProperty: null ,vendorPrefix: null ,z: null ,projectionMatrix: null ,drawCount: null ,currentBlendMode: null ,activeTextures: null ,shaderManager: null ,maskManager: null ,filterManager: null ,blendModeManager: null ,spriteBatch: null ,stencilManager: null ,defaultFramebuffer: null ,__class__: openfl__$internal_renderer_RenderSession }; var openfl__$internal_renderer_cairo_CairoBitmap = function() { }; $hxClasses["openfl._internal.renderer.cairo.CairoBitmap"] = openfl__$internal_renderer_cairo_CairoBitmap; openfl__$internal_renderer_cairo_CairoBitmap.__name__ = ["openfl","_internal","renderer","cairo","CairoBitmap"]; openfl__$internal_renderer_cairo_CairoBitmap.render = function(bitmap,renderSession) { if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) return; var cairo = renderSession.cairo; if(bitmap.bitmapData != null && bitmap.bitmapData.__isValid) { if(bitmap.__mask != null) renderSession.maskManager.pushMask(bitmap.__mask); var transform = bitmap.__renderTransform; var scrollRect = bitmap.get_scrollRect(); if(renderSession.roundPixels) { var matrix = transform.__toMatrix3(); matrix.tx = Math.round(matrix.tx); matrix.ty = Math.round(matrix.ty); cairo.set_matrix(matrix); } else cairo.set_matrix(transform.__toMatrix3()); var surface = bitmap.bitmapData.getSurface(); if(surface != null) { var pattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createForSurface(surface); lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_filter(pattern,bitmap.smoothing?1:3); if(scrollRect != null) { cairo.pushGroup(); cairo.set_source(pattern); cairo.newPath(); cairo.rectangle(scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height); cairo.fill(); cairo.popGroupToSource(); } else cairo.set_source(pattern); if(bitmap.__worldAlpha == 1) cairo.paint(); else cairo.paintWithAlpha(bitmap.__worldAlpha); } if(bitmap.__mask != null) renderSession.maskManager.popMask(); } }; var openfl__$internal_renderer_cairo_CairoGraphics = function() { }; $hxClasses["openfl._internal.renderer.cairo.CairoGraphics"] = openfl__$internal_renderer_cairo_CairoGraphics; openfl__$internal_renderer_cairo_CairoGraphics.__name__ = ["openfl","_internal","renderer","cairo","CairoGraphics"]; openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill = null; openfl__$internal_renderer_cairo_CairoGraphics.bitmapRepeat = null; openfl__$internal_renderer_cairo_CairoGraphics.bounds = null; openfl__$internal_renderer_cairo_CairoGraphics.cairo = null; openfl__$internal_renderer_cairo_CairoGraphics.fillPattern = null; openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix = null; openfl__$internal_renderer_cairo_CairoGraphics.graphics = null; openfl__$internal_renderer_cairo_CairoGraphics.hasFill = null; openfl__$internal_renderer_cairo_CairoGraphics.hasStroke = null; openfl__$internal_renderer_cairo_CairoGraphics.hitTesting = null; openfl__$internal_renderer_cairo_CairoGraphics.inversePendingMatrix = null; openfl__$internal_renderer_cairo_CairoGraphics.pendingMatrix = null; openfl__$internal_renderer_cairo_CairoGraphics.strokePattern = null; openfl__$internal_renderer_cairo_CairoGraphics.closePath = function() { if(openfl__$internal_renderer_cairo_CairoGraphics.strokePattern == null) return; openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_source(openfl__$internal_renderer_cairo_CairoGraphics.strokePattern); if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.strokePreserve(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.newPath(); }; openfl__$internal_renderer_cairo_CairoGraphics.createGradientPattern = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { var pattern = null; switch(type) { case 1: if(matrix == null) matrix = new openfl_geom_Matrix(); var point = matrix.transformPoint(new openfl_geom_Point(1638.4,0)); var x = matrix.tx + openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.x; var y = matrix.ty + openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.y; pattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRadial(x,y,0,x,y,(point.x - matrix.tx) / 2); break; case 0: if(matrix == null) matrix = new openfl_geom_Matrix(); var point1 = matrix.transformPoint(new openfl_geom_Point(-819.2,0)); var point2 = matrix.transformPoint(new openfl_geom_Point(819.2,0)); point1.x += openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.x; point2.x += openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.x; point1.y += openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.y; point2.y += openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds.y; pattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createLinear(point1.x,point1.y,point2.x,point2.y); break; } var _g1 = 0; var _g = colors.length; while(_g1 < _g) { var i = _g1++; var rgb = colors[i]; var alpha = alphas[i]; var r = ((rgb & 16711680) >>> 16) / 255; var g = ((rgb & 65280) >>> 8) / 255; var b = (rgb & 255) / 255; var ratio = ratios[i] / 255; if(ratio < 0) ratio = 0; if(ratio > 1) ratio = 1; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.addColorStopRGBA(pattern,ratio,r,g,b,alpha); } var mat = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.get_matrix(pattern); mat.tx = openfl__$internal_renderer_cairo_CairoGraphics.bounds.x; mat.ty = openfl__$internal_renderer_cairo_CairoGraphics.bounds.y; lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_matrix(pattern,mat); return pattern; }; openfl__$internal_renderer_cairo_CairoGraphics.createImagePattern = function(bitmapFill,matrix,bitmapRepeat) { var pattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createForSurface(bitmapFill.getSurface()); if(bitmapRepeat) lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_extend(pattern,1); openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix = matrix; return pattern; }; openfl__$internal_renderer_cairo_CairoGraphics.drawRoundRect = function(x,y,width,height,ellipseWidth,ellipseHeight) { if(ellipseHeight == null) ellipseHeight = ellipseWidth; ellipseWidth *= 0.5; ellipseHeight *= 0.5; if(ellipseWidth > width / 2) ellipseWidth = width / 2; if(ellipseHeight > height / 2) ellipseHeight = height / 2; var xe = x + width; var ye = y + height; var cx1 = -ellipseWidth + ellipseWidth * openfl__$internal_renderer_cairo_CairoGraphics.SIN45; var cx2 = -ellipseWidth + ellipseWidth * openfl__$internal_renderer_cairo_CairoGraphics.TAN22; var cy1 = -ellipseHeight + ellipseHeight * openfl__$internal_renderer_cairo_CairoGraphics.SIN45; var cy2 = -ellipseHeight + ellipseHeight * openfl__$internal_renderer_cairo_CairoGraphics.TAN22; openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(xe,ye - ellipseHeight); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(xe + cx2,ye,xe - ellipseWidth,ye); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x + ellipseWidth,ye); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(x,ye + cy2,x,ye - ellipseHeight); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x,y + ellipseHeight); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(x - cx2,y,x + ellipseWidth,y); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(xe - ellipseWidth,y); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(xe,y - cy2,xe,y + ellipseHeight); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(xe,ye - ellipseHeight); }; openfl__$internal_renderer_cairo_CairoGraphics.endFill = function() { openfl__$internal_renderer_cairo_CairoGraphics.cairo.newPath(); openfl__$internal_renderer_cairo_CairoGraphics.playCommands(openfl__$internal_renderer_cairo_CairoGraphics.fillCommands,false); openfl__$internal_renderer_cairo_CairoGraphics.fillCommands.clear(); }; openfl__$internal_renderer_cairo_CairoGraphics.endStroke = function() { openfl__$internal_renderer_cairo_CairoGraphics.cairo.newPath(); openfl__$internal_renderer_cairo_CairoGraphics.playCommands(openfl__$internal_renderer_cairo_CairoGraphics.strokeCommands,true); openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.strokeCommands.clear(); }; openfl__$internal_renderer_cairo_CairoGraphics.hitTest = function(graphics,x,y) { return false; }; openfl__$internal_renderer_cairo_CairoGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) { return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0; }; openfl__$internal_renderer_cairo_CairoGraphics.normalizeUVT = function(uvt,skipT) { if(skipT == null) skipT = false; var max = -Infinity; var tmp = -Infinity; var len = uvt.length; var _g1 = 1; var _g = len + 1; while(_g1 < _g) { var t = _g1++; if(skipT && t % 3 == 0) continue; tmp = uvt.data[t - 1]; if(max < tmp) max = tmp; } var result; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; result = this1; var _g11 = 1; var _g2 = len + 1; while(_g11 < _g2) { var t1 = _g11++; if(skipT && t1 % 3 == 0) continue; if(!result.fixed) { result.length++; if(result.data.length < result.length) { var data; var this3; this3 = new Array(result.data.length + 10); data = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(result.data,0,data,0,result.data.length); result.data = data; } result.data[result.length - 1] = uvt.data[t1 - 1] / max; } result.length; } return { max : max, uvt : result}; }; openfl__$internal_renderer_cairo_CairoGraphics.playCommands = function(commands,stroke) { if(stroke == null) stroke = false; if(commands.get_length() == 0) return; openfl__$internal_renderer_cairo_CairoGraphics.bounds = openfl__$internal_renderer_cairo_CairoGraphics.graphics.__bounds; var offsetX = openfl__$internal_renderer_cairo_CairoGraphics.bounds.x; var offsetY = openfl__$internal_renderer_cairo_CairoGraphics.bounds.y; var positionX = 0.0; var positionY = 0.0; var closeGap = false; var startX = 0.0; var startY = 0.0; openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_fillRule(1); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_antialias(3); var hasPath = false; var data = new openfl__$internal_renderer_DrawCommandReader(commands); var _g = 0; var _g1 = commands.types; try { while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c) - offsetY); break; case 4: var c1 = data.readCurveTo(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1) - offsetY); break; case 5: var c2 = data.readDrawCircle(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX + openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY); openfl__$internal_renderer_cairo_CairoGraphics.cairo.arc(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),0,Math.PI * 2); break; case 8: var c3 = data.readDrawRect(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.cairo.rectangle(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c3) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c3) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c3),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c3)); break; case 6: var c4 = data.readDrawEllipse(); hasPath = true; var x = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c4); var y = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c4); var width = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c4); var height = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c4); x -= offsetX; y -= offsetY; var kappa = .5522848; var ox = width / 2 * kappa; var oy = height / 2 * kappa; var xe = x + width; var ye = y + height; var xm = x + width / 2; var ym = y + height / 2; openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(x,ym); openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(x,ym - oy,xm - ox,y,xm,y); openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(xm + ox,y,xe,ym - oy,xe,ym); openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(xe,ym + oy,xm + ox,ye,xm,ye); openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 9: var c5 = data.readDrawRoundRect(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c5) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c5) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c5)); break; case 16: var c6 = data.readLineTo(); hasPath = true; openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6) - offsetX,openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6); positionY = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6); break; case 17: var c7 = data.readMoveTo(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7) - offsetX,openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7); positionY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7); closeGap = true; startX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7); startY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7); break; case 15: var c8 = data.readLineStyle(); if(stroke && openfl__$internal_renderer_cairo_CairoGraphics.hasStroke) openfl__$internal_renderer_cairo_CairoGraphics.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(positionX - offsetX,positionY - offsetY); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c8) == null) openfl__$internal_renderer_cairo_CairoGraphics.hasStroke = false; else { openfl__$internal_renderer_cairo_CairoGraphics.hasStroke = true; openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_lineWidth(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c8) > 0?openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c8):1); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c8) == null) openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_lineJoin(1); else openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_lineJoin((function($this) { var $r; var _g2 = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c8); $r = (function($this) { var $r; switch(_g2) { case 1: $r = 0; break; case 0: $r = 2; break; default: $r = 1; } return $r; }($this)); return $r; }(this))); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c8) == null) openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_lineCap(1); else openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_lineCap((function($this) { var $r; var _g21 = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c8); $r = (function($this) { var $r; switch(_g21) { case 0: $r = 0; break; case 2: $r = 2; break; default: $r = 1; } return $r; }($this)); return $r; }(this))); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_miterLimit(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c8)); var r = ((openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c8) & 16711680) >>> 16) / 255; var g = ((openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c8) & 65280) >>> 8) / 255; var b = (openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c8) & 255) / 255; if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c8) == 1) openfl__$internal_renderer_cairo_CairoGraphics.strokePattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRGB(r,g,b); else openfl__$internal_renderer_cairo_CairoGraphics.strokePattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRGBA(r,g,b,openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c8)); } break; case 14: var c9 = data.readLineGradientStyle(); if(stroke && openfl__$internal_renderer_cairo_CairoGraphics.hasStroke) openfl__$internal_renderer_cairo_CairoGraphics.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(positionX - offsetX,positionY - offsetY); openfl__$internal_renderer_cairo_CairoGraphics.strokePattern = openfl__$internal_renderer_cairo_CairoGraphics.createGradientPattern(openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod(c9),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio(c9)); openfl__$internal_renderer_cairo_CairoGraphics.hasStroke = true; break; case 13: var c10 = data.readLineBitmapStyle(); if(stroke && openfl__$internal_renderer_cairo_CairoGraphics.hasStroke) openfl__$internal_renderer_cairo_CairoGraphics.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(positionX - offsetX,positionY - offsetY); openfl__$internal_renderer_cairo_CairoGraphics.strokePattern = openfl__$internal_renderer_cairo_CairoGraphics.createImagePattern(openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap(c10),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_matrix(c10),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat(c10)); openfl__$internal_renderer_cairo_CairoGraphics.hasStroke = true; break; case 0: var c11 = data.readBeginBitmapFill(); openfl__$internal_renderer_cairo_CairoGraphics.fillPattern = openfl__$internal_renderer_cairo_CairoGraphics.createImagePattern(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c11),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c11),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c11)); openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill = openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c11); openfl__$internal_renderer_cairo_CairoGraphics.bitmapRepeat = openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c11); openfl__$internal_renderer_cairo_CairoGraphics.hasFill = true; break; case 1: var c12 = data.readBeginFill(); if(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c12) < 0.005) openfl__$internal_renderer_cairo_CairoGraphics.hasFill = false; else { if(openfl__$internal_renderer_cairo_CairoGraphics.fillPattern != null) openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix = null; openfl__$internal_renderer_cairo_CairoGraphics.fillPattern = lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.createRGBA(((openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c12) & 16711680) >>> 16) / 255,((openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c12) & 65280) >>> 8) / 255,(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c12) & 255) / 255,openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c12)); openfl__$internal_renderer_cairo_CairoGraphics.hasFill = true; } openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill = null; break; case 2: var c13 = data.readBeginGradientFill(); if(openfl__$internal_renderer_cairo_CairoGraphics.fillPattern != null) openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix = null; openfl__$internal_renderer_cairo_CairoGraphics.fillPattern = openfl__$internal_renderer_cairo_CairoGraphics.createGradientPattern(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c13),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c13)); openfl__$internal_renderer_cairo_CairoGraphics.hasFill = true; openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill = null; break; case 11: var c14 = data.readDrawTriangles(); var v = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_vertices(c14); var ind = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_indices(c14); var uvt = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData(c14); var colorFill = openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill == null; if(colorFill && uvt != null) throw "__break__"; var width1 = 0; var height1 = 0; if(!colorFill) { if(uvt == null) { var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; uvt = this1; var _g3 = 0; var _g22 = v.length / 2 | 0; while(_g3 < _g22) { var i1 = _g3++; if(!uvt.fixed) { uvt.length++; if(uvt.data.length < uvt.length) { var data1; var this3; this3 = new Array(uvt.data.length + 10); data1 = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(uvt.data,0,data1,0,uvt.data.length); uvt.data = data1; } uvt.data[uvt.length - 1] = v.data[i1 * 2] / openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill.width; } uvt.length; if(!uvt.fixed) { uvt.length++; if(uvt.data.length < uvt.length) { var data2; var this4; this4 = new Array(uvt.data.length + 10); data2 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(uvt.data,0,data2,0,uvt.data.length); uvt.data = data2; } uvt.data[uvt.length - 1] = v.data[i1 * 2 + 1] / openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill.height; } uvt.length; } } var skipT; skipT = (function($this) { var $r; var this5 = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData(c14); $r = this5.length; return $r; }(this)) != v.length; var normalizedUVT = openfl__$internal_renderer_cairo_CairoGraphics.normalizeUVT(uvt,skipT); var maxUVT = normalizedUVT.max; uvt = normalizedUVT.uvt; if(maxUVT > 1) { width1 = openfl__$internal_renderer_cairo_CairoGraphics.bounds.width | 0; height1 = openfl__$internal_renderer_cairo_CairoGraphics.bounds.height | 0; } else { width1 = openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill.width; height1 = openfl__$internal_renderer_cairo_CairoGraphics.bitmapFill.height; } } var i = 0; var l = ind.length; var a_; var b_; var c_; var iax; var iay; var ibx; var iby; var icx; var icy; var x1; var y1; var x2; var y2; var x3; var y3; var uvx1; var uvy1; var uvx2; var uvy2; var uvx3; var uvy3; var denom; var t1; var t2; var t3; var t4; var dx; var dy; openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_antialias(1); while(i < l) { a_ = i; b_ = i + 1; c_ = i + 2; iax = ind.data[a_] * 2; iay = ind.data[a_] * 2 + 1; ibx = ind.data[b_] * 2; iby = ind.data[b_] * 2 + 1; icx = ind.data[c_] * 2; icy = ind.data[c_] * 2 + 1; x1 = v.data[iax]; y1 = v.data[iay]; x2 = v.data[ibx]; y2 = v.data[iby]; x3 = v.data[icx]; y3 = v.data[icy]; var _g23 = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_culling(c14); switch(_g23) { case 2: if(!((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0)) { i += 3; continue; } break; case 0: if((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0) { i += 3; continue; } break; default: } if(colorFill) { openfl__$internal_renderer_cairo_CairoGraphics.cairo.newPath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(x1,y1); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x2,y2); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x3,y3); openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.fillPreserve(); i += 3; continue; } openfl__$internal_renderer_cairo_CairoGraphics.cairo.identityMatrix(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.newPath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(x1,y1); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x2,y2); openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(x3,y3); openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); uvx1 = uvt.data[iax] * width1; uvx2 = uvt.data[ibx] * width1; uvx3 = uvt.data[icx] * width1; uvy1 = uvt.data[iay] * height1; uvy2 = uvt.data[iby] * height1; uvy3 = uvt.data[icy] * height1; denom = uvx1 * (uvy3 - uvy2) - uvx2 * uvy3 + uvx3 * uvy2 + (uvx2 - uvx3) * uvy1; if(denom == 0) { i += 3; continue; } t1 = -(uvy1 * (x3 - x2) - uvy2 * x3 + uvy3 * x2 + (uvy2 - uvy3) * x1) / denom; t2 = (uvy2 * y3 + uvy1 * (y2 - y3) - uvy3 * y2 + (uvy3 - uvy2) * y1) / denom; t3 = (uvx1 * (x3 - x2) - uvx2 * x3 + uvx3 * x2 + (uvx2 - uvx3) * x1) / denom; t4 = -(uvx2 * y3 + uvx1 * (y2 - y3) - uvx3 * y2 + (uvx3 - uvx2) * y1) / denom; dx = (uvx1 * (uvy3 * x2 - uvy2 * x3) + uvy1 * (uvx2 * x3 - uvx3 * x2) + (uvx3 * uvy2 - uvx2 * uvy3) * x1) / denom; dy = (uvx1 * (uvy3 * y2 - uvy2 * y3) + uvy1 * (uvx2 * y3 - uvx3 * y2) + (uvx3 * uvy2 - uvx2 * uvy3) * y1) / denom; var matrix = new lime_math_Matrix3(t1,t2,t3,t4,dx,dy); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_matrix(matrix); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_source(openfl__$internal_renderer_cairo_CairoGraphics.fillPattern); if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.fill(); i += 3; } break; case 10: var c15 = data.readDrawTiles(); var useScale = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 1) > 0; var useRotation = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 2) > 0; var offsetX1 = openfl__$internal_renderer_cairo_CairoGraphics.bounds.x; var offsetY1 = openfl__$internal_renderer_cairo_CairoGraphics.bounds.y; var useTransform = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 16) > 0; var useRGB = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 4) > 0; var useAlpha = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 8) > 0; var useRect = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 32) > 0; var useOrigin = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 64) > 0; var useBlendAdd = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 65536) > 0; var useBlendOverlay = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 4194304) > 0; if(useTransform) { useScale = false; useRotation = false; } var scaleIndex = 0; var rotationIndex = 0; var rgbIndex = 0; var alphaIndex = 0; var transformIndex = 0; var numValues = 3; if(useRect) if(useOrigin) numValues = 8; else numValues = 6; if(useScale) { scaleIndex = numValues; numValues++; } if(useRotation) { rotationIndex = numValues; numValues++; } if(useTransform) { transformIndex = numValues; numValues += 4; } if(useRGB) { rgbIndex = numValues; numValues += 3; } if(useAlpha) { alphaIndex = numValues; numValues++; } var totalCount = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15).length; if(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15) >= 0 && totalCount > openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15)) totalCount = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15); var itemCount = totalCount / numValues | 0; var index = 0; var rect = null; var center = null; var previousTileID = -1; var surface; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__bitmap.__sync(); surface = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__bitmap.getSurface(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.save(); if(useBlendAdd) openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_operator(12); if(useBlendOverlay) openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_operator(16); while(index < totalCount) { var i2 = Std["int"](openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 2]); var tileID; if(!useRect) tileID = i2; else tileID = -1; if(!useRect && tileID != previousTileID) { rect = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__tileRects[tileID]; center = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__centerPoints[tileID]; previousTileID = tileID; } else if(useRect) { rect = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__rectTile; rect.setTo(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 2],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 3],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 4],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 5]); center = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__point; if(useOrigin) center.setTo(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 6],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 7]); else center.setTo(0,0); } if(rect != null && rect.width > 0 && rect.height > 0 && center != null) { openfl__$internal_renderer_cairo_CairoGraphics.cairo.identityMatrix(); if(useTransform) { var matrix1 = new lime_math_Matrix3(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 1],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 2],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 3],0,0); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_matrix(matrix1); } openfl__$internal_renderer_cairo_CairoGraphics.cairo.translate(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index] - offsetX1,openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 1] - offsetY1); if(useRotation) openfl__$internal_renderer_cairo_CairoGraphics.cairo.rotate(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + rotationIndex]); if(useScale) { var scale = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + scaleIndex]; openfl__$internal_renderer_cairo_CairoGraphics.cairo.scale(scale,scale); } openfl__$internal_renderer_cairo_CairoGraphics.cairo.setSourceSurface(surface,0,0); if(useAlpha) { if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.paintWithAlpha(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + alphaIndex]); } else if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.paint(); } index += numValues; } if(useBlendAdd || useBlendOverlay) openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_operator(2); openfl__$internal_renderer_cairo_CairoGraphics.cairo.restore(); break; default: data.skip(type); } } } catch( e ) { if( e != "__break__" ) throw e; } data.destroy(); if(hasPath) { if(stroke && openfl__$internal_renderer_cairo_CairoGraphics.hasStroke) { if(openfl__$internal_renderer_cairo_CairoGraphics.hasFill && closeGap) openfl__$internal_renderer_cairo_CairoGraphics.cairo.lineTo(startX - offsetX,startY - offsetY); else if(closeGap && positionX == startX && positionY == startY) openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_source(openfl__$internal_renderer_cairo_CairoGraphics.strokePattern); if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.strokePreserve(); } if(!stroke && openfl__$internal_renderer_cairo_CairoGraphics.hasFill) { openfl__$internal_renderer_cairo_CairoGraphics.cairo.translate(-openfl__$internal_renderer_cairo_CairoGraphics.bounds.x,-openfl__$internal_renderer_cairo_CairoGraphics.bounds.y); if(openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix != null) { var matrix2 = openfl__$internal_renderer_cairo_CairoGraphics.fillPatternMatrix.clone(); matrix2.invert(); if(openfl__$internal_renderer_cairo_CairoGraphics.pendingMatrix != null) matrix2.concat(openfl__$internal_renderer_cairo_CairoGraphics.pendingMatrix); lime_graphics_cairo__$CairoPattern_CairoPattern_$Impl_$.set_matrix(openfl__$internal_renderer_cairo_CairoGraphics.fillPattern,matrix2.__toMatrix3()); } openfl__$internal_renderer_cairo_CairoGraphics.cairo.set_source(openfl__$internal_renderer_cairo_CairoGraphics.fillPattern); if(openfl__$internal_renderer_cairo_CairoGraphics.pendingMatrix != null) { openfl__$internal_renderer_cairo_CairoGraphics.cairo.transform(openfl__$internal_renderer_cairo_CairoGraphics.pendingMatrix.__toMatrix3()); if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.fillPreserve(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.transform(openfl__$internal_renderer_cairo_CairoGraphics.inversePendingMatrix.__toMatrix3()); } else if(!openfl__$internal_renderer_cairo_CairoGraphics.hitTesting) openfl__$internal_renderer_cairo_CairoGraphics.cairo.fillPreserve(); openfl__$internal_renderer_cairo_CairoGraphics.cairo.translate(openfl__$internal_renderer_cairo_CairoGraphics.bounds.x,openfl__$internal_renderer_cairo_CairoGraphics.bounds.y); openfl__$internal_renderer_cairo_CairoGraphics.cairo.closePath(); } } }; openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo = function(cx,cy,x,y) { var current = null; if(!openfl__$internal_renderer_cairo_CairoGraphics.cairo.get_hasCurrentPoint()) { openfl__$internal_renderer_cairo_CairoGraphics.cairo.moveTo(cx,cy); current = new lime_math_Vector2(cx,cy); } else current = openfl__$internal_renderer_cairo_CairoGraphics.cairo.get_currentPoint(); var cx1 = current.x + 0.66666666666666663 * (cx - current.x); var cy1 = current.y + 0.66666666666666663 * (cy - current.y); var cx2 = x + 0.66666666666666663 * (cx - x); var cy2 = y + 0.66666666666666663 * (cy - y); openfl__$internal_renderer_cairo_CairoGraphics.cairo.curveTo(cx1,cy1,cx2,cy2,x,y); }; openfl__$internal_renderer_cairo_CairoGraphics.render = function(graphics,renderSession) { }; openfl__$internal_renderer_cairo_CairoGraphics.renderMask = function(graphics,renderSession) { if(graphics.__commands.get_length() != 0) { var cairo = renderSession.cairo; var positionX = 0.0; var positionY = 0.0; var offsetX = 0; var offsetY = 0; var data = new openfl__$internal_renderer_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); cairo.curveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c); positionY = openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c); break; case 4: var c1 = data.readCurveTo(); openfl__$internal_renderer_cairo_CairoGraphics.quadraticCurveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1); positionY = openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1); break; case 5: var c2 = data.readDrawCircle(); cairo.arc(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),0,Math.PI * 2); break; case 6: var c3 = data.readDrawEllipse(); var x = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c3); var y = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c3); var width = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c3); var height = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c3); x -= offsetX; y -= offsetY; var kappa = .5522848; var ox = width / 2 * kappa; var oy = height / 2 * kappa; var xe = x + width; var ye = y + height; var xm = x + width / 2; var ym = y + height / 2; cairo.moveTo(x,ym); cairo.curveTo(x,ym - oy,xm - ox,y,xm,y); cairo.curveTo(xm + ox,y,xe,ym - oy,xe,ym); cairo.curveTo(xe,ym + oy,xm + ox,ye,xm,ye); cairo.curveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 8: var c4 = data.readDrawRect(); cairo.rectangle(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c4) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c4) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c4),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c4)); break; case 9: var c5 = data.readDrawRoundRect(); openfl__$internal_renderer_cairo_CairoGraphics.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c5) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c5) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c5)); break; case 16: var c6 = data.readLineTo(); cairo.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6) - offsetX,openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6); positionY = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6); break; case 17: var c7 = data.readMoveTo(); cairo.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7) - offsetX,openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7); positionY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7); break; default: data.skip(type); } } data.destroy(); } }; var openfl__$internal_renderer_cairo_CairoMaskManager = function(renderSession) { openfl__$internal_renderer_AbstractMaskManager.call(this,renderSession); }; $hxClasses["openfl._internal.renderer.cairo.CairoMaskManager"] = openfl__$internal_renderer_cairo_CairoMaskManager; openfl__$internal_renderer_cairo_CairoMaskManager.__name__ = ["openfl","_internal","renderer","cairo","CairoMaskManager"]; openfl__$internal_renderer_cairo_CairoMaskManager.__super__ = openfl__$internal_renderer_AbstractMaskManager; openfl__$internal_renderer_cairo_CairoMaskManager.prototype = $extend(openfl__$internal_renderer_AbstractMaskManager.prototype,{ pushMask: function(mask) { var cairo = this.renderSession.cairo; cairo.save(); var transform = mask.__getWorldTransform(); cairo.set_matrix(transform.__toMatrix3()); cairo.newPath(); mask.__renderCairoMask(this.renderSession); cairo.clip(); } ,pushRect: function(rect,transform) { var cairo = this.renderSession.cairo; cairo.save(); cairo.set_matrix(new lime_math_Matrix3(transform.a,transform.c,transform.b,transform.d,transform.tx,transform.ty)); cairo.newPath(); cairo.rectangle(rect.x,rect.y,rect.width,rect.height); cairo.clip(); } ,popMask: function() { this.renderSession.cairo.restore(); } ,popRect: function() { this.renderSession.cairo.restore(); } ,__class__: openfl__$internal_renderer_cairo_CairoMaskManager }); var openfl__$internal_renderer_cairo_CairoRenderer = function(width,height,cairo) { openfl__$internal_renderer_AbstractRenderer.call(this,width,height); this.cairo = cairo; this.renderSession = new openfl__$internal_renderer_RenderSession(); this.renderSession.cairo = cairo; this.renderSession.roundPixels = true; this.renderSession.renderer = this; this.renderSession.maskManager = new openfl__$internal_renderer_cairo_CairoMaskManager(this.renderSession); }; $hxClasses["openfl._internal.renderer.cairo.CairoRenderer"] = openfl__$internal_renderer_cairo_CairoRenderer; openfl__$internal_renderer_cairo_CairoRenderer.__name__ = ["openfl","_internal","renderer","cairo","CairoRenderer"]; openfl__$internal_renderer_cairo_CairoRenderer.__super__ = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_cairo_CairoRenderer.prototype = $extend(openfl__$internal_renderer_AbstractRenderer.prototype,{ cairo: null ,render: function(stage) { this.cairo.identityMatrix(); if(stage.__clearBeforeRender) { this.cairo.setSourceRGB(stage.__colorSplit[0],stage.__colorSplit[1],stage.__colorSplit[2]); this.cairo.paint(); } stage.__renderCairo(this.renderSession); } ,renderDisplayObject: function(object) { this.cairo.identityMatrix(); object.__renderCairo(this.renderSession); } ,__class__: openfl__$internal_renderer_cairo_CairoRenderer }); var openfl__$internal_renderer_cairo_CairoShape = function() { }; $hxClasses["openfl._internal.renderer.cairo.CairoShape"] = openfl__$internal_renderer_cairo_CairoShape; openfl__$internal_renderer_cairo_CairoShape.__name__ = ["openfl","_internal","renderer","cairo","CairoShape"]; openfl__$internal_renderer_cairo_CairoShape.render = function(shape,renderSession) { }; var openfl__$internal_renderer_cairo_CairoTextField = function() { }; $hxClasses["openfl._internal.renderer.cairo.CairoTextField"] = openfl__$internal_renderer_cairo_CairoTextField; openfl__$internal_renderer_cairo_CairoTextField.__name__ = ["openfl","_internal","renderer","cairo","CairoTextField"]; openfl__$internal_renderer_cairo_CairoTextField.render = function(textField,renderSession) { }; var openfl__$internal_renderer_canvas_CanvasBitmap = function() { }; $hxClasses["openfl._internal.renderer.canvas.CanvasBitmap"] = openfl__$internal_renderer_canvas_CanvasBitmap; openfl__$internal_renderer_canvas_CanvasBitmap.__name__ = ["openfl","_internal","renderer","canvas","CanvasBitmap"]; openfl__$internal_renderer_canvas_CanvasBitmap.render = function(bitmap,renderSession) { if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) return; var context = renderSession.context; if(bitmap.bitmapData != null && bitmap.bitmapData.__isValid) { if(bitmap.__mask != null) renderSession.maskManager.pushMask(bitmap.__mask); bitmap.bitmapData.__sync(); context.globalAlpha = bitmap.__worldAlpha; var transform = bitmap.__renderTransform; var scrollRect = bitmap.get_scrollRect(); if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); if(!bitmap.smoothing) { context.mozImageSmoothingEnabled = false; context.msImageSmoothingEnabled = false; context.imageSmoothingEnabled = false; } if(scrollRect == null) context.drawImage(bitmap.bitmapData.image.get_src(),0,0); else context.drawImage(bitmap.bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height); if(!bitmap.smoothing) { context.mozImageSmoothingEnabled = true; context.msImageSmoothingEnabled = true; context.imageSmoothingEnabled = true; } if(bitmap.__mask != null) renderSession.maskManager.popMask(); } }; var openfl__$internal_renderer_canvas_CanvasGraphics = function() { }; $hxClasses["openfl._internal.renderer.canvas.CanvasGraphics"] = openfl__$internal_renderer_canvas_CanvasGraphics; openfl__$internal_renderer_canvas_CanvasGraphics.__name__ = ["openfl","_internal","renderer","canvas","CanvasGraphics"]; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapStroke = null; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapRepeat = null; openfl__$internal_renderer_canvas_CanvasGraphics.bounds = null; openfl__$internal_renderer_canvas_CanvasGraphics.graphics = null; openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = null; openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting = null; openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix = null; openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix = null; openfl__$internal_renderer_canvas_CanvasGraphics.context = null; openfl__$internal_renderer_canvas_CanvasGraphics.closePath = function() { if(openfl__$internal_renderer_canvas_CanvasGraphics.context.strokeStyle == null) return; openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.stroke(); openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); }; openfl__$internal_renderer_canvas_CanvasGraphics.createBitmapFill = function(bitmap,bitmapRepeat) { bitmap.__sync(); return openfl__$internal_renderer_canvas_CanvasGraphics.context.createPattern(bitmap.image.get_src(),bitmapRepeat?"repeat":"no-repeat"); }; openfl__$internal_renderer_canvas_CanvasGraphics.createGradientPattern = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { var gradientFill = null; switch(type) { case 1: if(matrix == null) matrix = new openfl_geom_Matrix(); var point = matrix.transformPoint(new openfl_geom_Point(1638.4,0)); gradientFill = openfl__$internal_renderer_canvas_CanvasGraphics.context.createRadialGradient(matrix.tx,matrix.ty,0,matrix.tx,matrix.ty,(point.x - matrix.tx) / 2); break; case 0: var matrix1; if(matrix != null) matrix1 = matrix; else matrix1 = new openfl_geom_Matrix(); var point1 = matrix1.transformPoint(new openfl_geom_Point(-819.2,0)); var point2 = matrix1.transformPoint(new openfl_geom_Point(819.2,0)); gradientFill = openfl__$internal_renderer_canvas_CanvasGraphics.context.createLinearGradient(point1.x,point1.y,point2.x,point2.y); break; } var _g1 = 0; var _g = colors.length; while(_g1 < _g) { var i = _g1++; var rgb = colors[i]; var alpha = alphas[i]; var r = (rgb & 16711680) >>> 16; var g = (rgb & 65280) >>> 8; var b = rgb & 255; var ratio = ratios[i] / 255; if(ratio < 0) ratio = 0; if(ratio > 1) ratio = 1; gradientFill.addColorStop(ratio,"rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"); } return gradientFill; }; openfl__$internal_renderer_canvas_CanvasGraphics.createTempPatternCanvas = function(bitmap,repeat,width,height) { var canvas = window.document.createElement("canvas"); var context = canvas.getContext("2d"); canvas.width = width; canvas.height = height; context.fillStyle = context.createPattern(bitmap.image.get_src(),repeat?"repeat":"no-repeat"); context.beginPath(); context.moveTo(0,0); context.lineTo(0,height); context.lineTo(width,height); context.lineTo(width,0); context.lineTo(0,0); context.closePath(); if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) context.fill(); return canvas; }; openfl__$internal_renderer_canvas_CanvasGraphics.drawRoundRect = function(x,y,width,height,ellipseWidth,ellipseHeight) { if(ellipseHeight == null) ellipseHeight = ellipseWidth; ellipseWidth *= 0.5; ellipseHeight *= 0.5; if(ellipseWidth > width / 2) ellipseWidth = width / 2; if(ellipseHeight > height / 2) ellipseHeight = height / 2; var xe = x + width; var ye = y + height; var cx1 = -ellipseWidth + ellipseWidth * openfl__$internal_renderer_canvas_CanvasGraphics.SIN45; var cx2 = -ellipseWidth + ellipseWidth * openfl__$internal_renderer_canvas_CanvasGraphics.TAN22; var cy1 = -ellipseHeight + ellipseHeight * openfl__$internal_renderer_canvas_CanvasGraphics.SIN45; var cy2 = -ellipseHeight + ellipseHeight * openfl__$internal_renderer_canvas_CanvasGraphics.TAN22; openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(xe,ye - ellipseHeight); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(xe + cx2,ye,xe - ellipseWidth,ye); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x + ellipseWidth,ye); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(x,ye + cy2,x,ye - ellipseHeight); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x,y + ellipseHeight); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(x - cx2,y,x + ellipseWidth,y); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(xe - ellipseWidth,y); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(xe,y - cy2,xe,y + ellipseHeight); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(xe,ye - ellipseHeight); }; openfl__$internal_renderer_canvas_CanvasGraphics.endFill = function() { openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); openfl__$internal_renderer_canvas_CanvasGraphics.playCommands(openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands,false); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.clear(); }; openfl__$internal_renderer_canvas_CanvasGraphics.endStroke = function() { openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); openfl__$internal_renderer_canvas_CanvasGraphics.playCommands(openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands,true); openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.clear(); }; openfl__$internal_renderer_canvas_CanvasGraphics.hitTest = function(graphics,x,y) { if(graphics.__commands.get_length() == 0 || openfl__$internal_renderer_canvas_CanvasGraphics.bounds == null || openfl__$internal_renderer_canvas_CanvasGraphics.bounds.width <= 0 || openfl__$internal_renderer_canvas_CanvasGraphics.bounds.height <= 0) return false; else { openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting = true; x -= openfl__$internal_renderer_canvas_CanvasGraphics.bounds.x; y -= openfl__$internal_renderer_canvas_CanvasGraphics.bounds.y; if(graphics.__canvas == null) { graphics.__canvas = window.document.createElement("canvas"); graphics.__context = graphics.__canvas.getContext("2d"); } openfl__$internal_renderer_canvas_CanvasGraphics.context = graphics.__context; openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.clear(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.clear(); openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = false; openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = false; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapRepeat = false; openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); var data = new openfl__$internal_renderer_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c)); break; case 4: var c1 = data.readCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1)); break; case 16: var c2 = data.readLineTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c2),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c2)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c2),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c2)); break; case 17: var c3 = data.readMoveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c3),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c3)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c3),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c3)); break; case 14: var c4 = data.readLineGradientStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineGradientStyle(openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod(c4),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio(c4)); break; case 13: var c5 = data.readLineBitmapStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineBitmapStyle(openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap(c5),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_matrix(c5),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat(c5),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_smooth(c5)); break; case 15: var c6 = data.readLineStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineStyle(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c6),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c6),1,openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_pixelHinting(c6),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_scaleMode(c6),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c6),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c6),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c6)); break; case 12: data.readEndFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); if(openfl__$internal_renderer_canvas_CanvasGraphics.hasFill && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInPath(x,y)) { data.destroy(); return true; } if(openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInStroke(x,y)) { data.destroy(); return true; } openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = false; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; break; case 0:case 1:case 2: openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); if(openfl__$internal_renderer_canvas_CanvasGraphics.hasFill && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInPath(x,y)) { data.destroy(); return true; } if(openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInStroke(x,y)) { data.destroy(); return true; } if(type == openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL) { var c7 = data.readBeginBitmapFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c7)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c7)); } else if(type == openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL) { var c8 = data.readBeginGradientFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginGradientFill(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c8)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginGradientFill(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c8)); } else { var c9 = data.readBeginFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginFill(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c9),1); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginFill(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c9),1); } break; case 5: var c10 = data.readDrawCircle(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawCircle(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c10)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawCircle(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c10)); break; case 6: var c11 = data.readDrawEllipse(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawEllipse(openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c11)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawEllipse(openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c11)); break; case 8: var c12 = data.readDrawRect(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawRect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c12)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawRect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c12)); break; case 9: var c13 = data.readDrawRoundRect(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c13)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c13)); break; default: data.skip(type); } } if(openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.get_length() > 0) openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); if(openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.get_length() > 0) openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); data.destroy(); if(openfl__$internal_renderer_canvas_CanvasGraphics.hasFill && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInPath(x,y)) return true; if(openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke && openfl__$internal_renderer_canvas_CanvasGraphics.context.isPointInStroke(x,y)) return true; } return false; }; openfl__$internal_renderer_canvas_CanvasGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) { return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0; }; openfl__$internal_renderer_canvas_CanvasGraphics.normalizeUVT = function(uvt,skipT) { if(skipT == null) skipT = false; var max = -Infinity; var tmp = -Infinity; var len = uvt.length; var _g1 = 1; var _g = len + 1; while(_g1 < _g) { var t = _g1++; if(skipT && t % 3 == 0) continue; tmp = uvt.data[t - 1]; if(max < tmp) max = tmp; } var result; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; result = this1; var _g11 = 1; var _g2 = len + 1; while(_g11 < _g2) { var t1 = _g11++; if(skipT && t1 % 3 == 0) continue; if(!result.fixed) { result.length++; if(result.data.length < result.length) { var data; var this3; this3 = new Array(result.data.length + 10); data = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(result.data,0,data,0,result.data.length); result.data = data; } result.data[result.length - 1] = uvt.data[t1 - 1] / max; } result.length; } return { max : max, uvt : result}; }; openfl__$internal_renderer_canvas_CanvasGraphics.playCommands = function(commands,stroke) { if(stroke == null) stroke = false; openfl__$internal_renderer_canvas_CanvasGraphics.bounds = openfl__$internal_renderer_canvas_CanvasGraphics.graphics.__bounds; var offsetX = openfl__$internal_renderer_canvas_CanvasGraphics.bounds.x; var offsetY = openfl__$internal_renderer_canvas_CanvasGraphics.bounds.y; var positionX = 0.0; var positionY = 0.0; var closeGap = false; var startX = 0.0; var startY = 0.0; var data = new openfl__$internal_renderer_DrawCommandReader(commands); var _g = 0; var _g1 = commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c) - offsetY); break; case 4: var c1 = data.readCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1) - offsetY); break; case 5: var c2 = data.readDrawCircle(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX + openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY); openfl__$internal_renderer_canvas_CanvasGraphics.context.arc(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),0,Math.PI * 2,true); break; case 6: var c3 = data.readDrawEllipse(); var x = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c3); var y = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c3); var width = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c3); var height = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c3); x -= offsetX; y -= offsetY; var kappa = .5522848; var ox = width / 2 * kappa; var oy = height / 2 * kappa; var xe = x + width; var ye = y + height; var xm = x + width / 2; var ym = y + height / 2; openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(x,ym); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 9: var c4 = data.readDrawRoundRect(); openfl__$internal_renderer_canvas_CanvasGraphics.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c4) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c4) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c4),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c4),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c4),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c4)); break; case 16: var c5 = data.readLineTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c5) - offsetX,openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c5) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c5); positionY = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c5); break; case 17: var c6 = data.readMoveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c6) - offsetX,openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c6) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c6); positionY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c6); closeGap = true; startX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c6); startY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c6); break; case 15: var c7 = data.readLineStyle(); if(stroke && openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke) { openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.stroke(); openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); } openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c7) == null) openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = false; else { if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c7) > 0) openfl__$internal_renderer_canvas_CanvasGraphics.context.lineWidth = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c7); else openfl__$internal_renderer_canvas_CanvasGraphics.context.lineWidth = 1; if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c7) == null) openfl__$internal_renderer_canvas_CanvasGraphics.context.lineJoin = "round"; else openfl__$internal_renderer_canvas_CanvasGraphics.context.lineJoin = openfl_display__$JointStyle_JointStyle_$Impl_$.toString(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c7)).toLowerCase(); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c7) == null) openfl__$internal_renderer_canvas_CanvasGraphics.context.lineCap = "round"; else { var _g2 = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c7); switch(_g2) { case 0: openfl__$internal_renderer_canvas_CanvasGraphics.context.lineCap = "butt"; break; default: openfl__$internal_renderer_canvas_CanvasGraphics.context.lineCap = openfl_display__$CapsStyle_CapsStyle_$Impl_$.toString(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c7)).toLowerCase(); } } openfl__$internal_renderer_canvas_CanvasGraphics.context.miterLimit = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c7); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c7) == 1) openfl__$internal_renderer_canvas_CanvasGraphics.context.strokeStyle = "#" + StringTools.hex(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c7) & 16777215,6); else { var r = (openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c7) & 16711680) >>> 16; var g = (openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c7) & 65280) >>> 8; var b = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c7) & 255; openfl__$internal_renderer_canvas_CanvasGraphics.context.strokeStyle = "rgba(" + r + ", " + g + ", " + b + ", " + openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c7) + ")"; } openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = true; } break; case 14: var c8 = data.readLineGradientStyle(); if(stroke && openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke) openfl__$internal_renderer_canvas_CanvasGraphics.closePath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); openfl__$internal_renderer_canvas_CanvasGraphics.context.strokeStyle = openfl__$internal_renderer_canvas_CanvasGraphics.createGradientPattern(openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod(c8),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio(c8)); openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = true; break; case 13: var c9 = data.readLineBitmapStyle(); if(stroke && openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke) openfl__$internal_renderer_canvas_CanvasGraphics.closePath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY); openfl__$internal_renderer_canvas_CanvasGraphics.context.strokeStyle = openfl__$internal_renderer_canvas_CanvasGraphics.createBitmapFill(openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap(c9),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat(c9)); openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = true; break; case 0: var c10 = data.readBeginBitmapFill(); openfl__$internal_renderer_canvas_CanvasGraphics.context.fillStyle = openfl__$internal_renderer_canvas_CanvasGraphics.createBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c10),true); openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = true; if(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c10) != null) { openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix = openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c10); openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix = openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c10).clone(); openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.invert(); } else { openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix = null; openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix = null; } break; case 1: var c11 = data.readBeginFill(); if(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c11) < 0.005) openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = false; else { if(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c11) == 1) openfl__$internal_renderer_canvas_CanvasGraphics.context.fillStyle = "#" + StringTools.hex(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c11),6); else { var r1 = (openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c11) & 16711680) >>> 16; var g1 = (openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c11) & 65280) >>> 8; var b1 = openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c11) & 255; openfl__$internal_renderer_canvas_CanvasGraphics.context.fillStyle = "rgba(" + r1 + ", " + g1 + ", " + b1 + ", " + openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c11) + ")"; } openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = true; } break; case 2: var c12 = data.readBeginGradientFill(); openfl__$internal_renderer_canvas_CanvasGraphics.context.fillStyle = openfl__$internal_renderer_canvas_CanvasGraphics.createGradientPattern(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c12),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c12)); openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = true; break; case 8: var c13 = data.readDrawRect(); var optimizationUsed = false; if(openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill != null) { var st = 0; var sr = 0; var sb = 0; var sl = 0; var canOptimizeMatrix = true; if(openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix != null) { if(openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.b != 0 || openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.c != 0) canOptimizeMatrix = false; else { var stl = openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.transformPoint(new openfl_geom_Point(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13))); var sbr = openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.transformPoint(new openfl_geom_Point(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13) + openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13) + openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c13))); st = stl.y; sl = stl.x; sb = sbr.y; sr = sbr.x; } } else { st = openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13); sl = openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13); sb = openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13) + openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c13); sr = openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13) + openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c13); } if(canOptimizeMatrix && st >= 0 && sl >= 0 && sr <= openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.width && sb <= openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.height) { optimizationUsed = true; if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.drawImage(openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.image.get_src(),sl,st,sr - sl,sb - st,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c13)); } } if(!optimizationUsed) openfl__$internal_renderer_canvas_CanvasGraphics.context.rect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c13) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c13) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c13)); break; default: data.skip(type); } } data.destroy(); if(stroke && openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke) { if(openfl__$internal_renderer_canvas_CanvasGraphics.hasFill && closeGap) openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(startX - offsetX,startY - offsetY); else if(closeGap && positionX == startX && positionY == startY) openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.stroke(); } if(!stroke) { if(openfl__$internal_renderer_canvas_CanvasGraphics.hasFill || openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill != null) { openfl__$internal_renderer_canvas_CanvasGraphics.context.translate(-openfl__$internal_renderer_canvas_CanvasGraphics.bounds.x,-openfl__$internal_renderer_canvas_CanvasGraphics.bounds.y); if(openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix != null) { openfl__$internal_renderer_canvas_CanvasGraphics.context.transform(openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.a,openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.b,openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.c,openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.d,openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.tx,openfl__$internal_renderer_canvas_CanvasGraphics.pendingMatrix.ty); if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.fill(); openfl__$internal_renderer_canvas_CanvasGraphics.context.transform(openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.a,openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.b,openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.c,openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.d,openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.tx,openfl__$internal_renderer_canvas_CanvasGraphics.inversePendingMatrix.ty); } else if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.fill(); openfl__$internal_renderer_canvas_CanvasGraphics.context.translate(openfl__$internal_renderer_canvas_CanvasGraphics.bounds.x,openfl__$internal_renderer_canvas_CanvasGraphics.bounds.y); openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); } } }; openfl__$internal_renderer_canvas_CanvasGraphics.render = function(graphics,renderSession) { var directRender = false; if(graphics.__dirty || directRender) { openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting = false; openfl__$internal_renderer_canvas_CanvasGraphics.graphics = graphics; openfl__$internal_renderer_canvas_CanvasGraphics.bounds = graphics.__bounds; if(!graphics.__visible || graphics.__commands.get_length() == 0 || openfl__$internal_renderer_canvas_CanvasGraphics.bounds == null || openfl__$internal_renderer_canvas_CanvasGraphics.bounds.width <= 0 || openfl__$internal_renderer_canvas_CanvasGraphics.bounds.height <= 0) { graphics.__canvas = null; graphics.__context = null; graphics.__bitmap = null; } else { if(directRender) { openfl__$internal_renderer_canvas_CanvasGraphics.context = renderSession.context; openfl__$internal_renderer_canvas_CanvasGraphics.bounds.setTo(0,0,openfl__$internal_renderer_canvas_CanvasGraphics.context.canvas.width,openfl__$internal_renderer_canvas_CanvasGraphics.context.canvas.width); } else { if(graphics.__canvas == null) { graphics.__canvas = window.document.createElement("canvas"); graphics.__context = graphics.__canvas.getContext("2d"); } openfl__$internal_renderer_canvas_CanvasGraphics.context = graphics.__context; graphics.__canvas.width = Math.ceil(openfl__$internal_renderer_canvas_CanvasGraphics.bounds.width); graphics.__canvas.height = Math.ceil(openfl__$internal_renderer_canvas_CanvasGraphics.bounds.height); } openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.clear(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.clear(); openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = false; openfl__$internal_renderer_canvas_CanvasGraphics.hasStroke = false; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapRepeat = false; var data = new openfl__$internal_renderer_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; try { while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c)); break; case 4: var c1 = data.readCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1)); break; case 16: var c2 = data.readLineTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c2),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c2)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c2),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c2)); break; case 17: var c3 = data.readMoveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c3),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c3)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c3),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c3)); break; case 12: data.readEndFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); openfl__$internal_renderer_canvas_CanvasGraphics.hasFill = false; openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill = null; break; case 15: var c4 = data.readLineStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineStyle(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_pixelHinting(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_scaleMode(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c4),openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c4)); break; case 14: var c5 = data.readLineGradientStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineGradientStyle(openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_type(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_colors(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_alphas(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_ratios(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_matrix(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_spreadMethod(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_interpolationMethod(c5),openfl__$internal_renderer__$DrawCommandReader_LineGradientStyleView_$Impl_$.get_focalPointRatio(c5)); break; case 13: var c6 = data.readLineBitmapStyle(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.lineBitmapStyle(openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_bitmap(c6),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_matrix(c6),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_repeat(c6),openfl__$internal_renderer__$DrawCommandReader_LineBitmapStyleView_$Impl_$.get_smooth(c6)); break; case 0:case 1:case 2: openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); if(type == openfl__$internal_renderer_DrawCommandType.BEGIN_BITMAP_FILL) { var c7 = data.readBeginBitmapFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c7)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginBitmapFill(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c7),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c7)); } else if(type == openfl__$internal_renderer_DrawCommandType.BEGIN_GRADIENT_FILL) { var c8 = data.readBeginGradientFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginGradientFill(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c8)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginGradientFill(openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_type(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_colors(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_alphas(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_ratios(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_matrix(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_spreadMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_interpolationMethod(c8),openfl__$internal_renderer__$DrawCommandReader_BeginGradientFillView_$Impl_$.get_focalPointRatio(c8)); } else { var c9 = data.readBeginFill(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.beginFill(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c9),openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c9)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.beginFill(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c9),openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c9)); } break; case 5: var c10 = data.readDrawCircle(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawCircle(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c10)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawCircle(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c10),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c10)); break; case 6: var c11 = data.readDrawEllipse(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawEllipse(openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c11)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawEllipse(openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c11),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c11)); break; case 8: var c12 = data.readDrawRect(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawRect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c12)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawRect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c12),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c12)); break; case 9: var c13 = data.readDrawRoundRect(); openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c13)); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c13),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c13)); break; case 11: openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); var c14 = data.readDrawTriangles(); var v = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_vertices(c14); var ind = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_indices(c14); var uvt = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData(c14); var pattern = null; var colorFill = openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill == null; if(colorFill && uvt != null) throw "__break__"; if(!colorFill) { if(uvt == null) { var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; uvt = this1; var _g3 = 0; var _g2 = v.length / 2 | 0; while(_g3 < _g2) { var i1 = _g3++; if(!uvt.fixed) { uvt.length++; if(uvt.data.length < uvt.length) { var data1; var this3; this3 = new Array(uvt.data.length + 10); data1 = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(uvt.data,0,data1,0,uvt.data.length); uvt.data = data1; } uvt.data[uvt.length - 1] = v.data[i1 * 2] / openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.width; } uvt.length; if(!uvt.fixed) { uvt.length++; if(uvt.data.length < uvt.length) { var data2; var this4; this4 = new Array(uvt.data.length + 10); data2 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(uvt.data,0,data2,0,uvt.data.length); uvt.data = data2; } uvt.data[uvt.length - 1] = v.data[i1 * 2 + 1] / openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.height; } uvt.length; } } var skipT = uvt.length != v.length; var normalizedUVT = openfl__$internal_renderer_canvas_CanvasGraphics.normalizeUVT(uvt,skipT); var maxUVT = normalizedUVT.max; uvt = normalizedUVT.uvt; if(maxUVT > 1) pattern = openfl__$internal_renderer_canvas_CanvasGraphics.createTempPatternCanvas(openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill,openfl__$internal_renderer_canvas_CanvasGraphics.bitmapRepeat,openfl__$internal_renderer_canvas_CanvasGraphics.bounds.width | 0,openfl__$internal_renderer_canvas_CanvasGraphics.bounds.height | 0); else pattern = openfl__$internal_renderer_canvas_CanvasGraphics.createTempPatternCanvas(openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill,openfl__$internal_renderer_canvas_CanvasGraphics.bitmapRepeat,openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.width,openfl__$internal_renderer_canvas_CanvasGraphics.bitmapFill.height); } var i = 0; var l = ind.length; var a_; var b_; var c_; var iax; var iay; var ibx; var iby; var icx; var icy; var x1; var y1; var x2; var y2; var x3; var y3; var uvx1; var uvy1; var uvx2; var uvy2; var uvx3; var uvy3; var denom; var t1; var t2; var t3; var t4; var dx; var dy; while(i < l) { a_ = i; b_ = i + 1; c_ = i + 2; iax = ind.data[a_] * 2; iay = ind.data[a_] * 2 + 1; ibx = ind.data[b_] * 2; iby = ind.data[b_] * 2 + 1; icx = ind.data[c_] * 2; icy = ind.data[c_] * 2 + 1; x1 = v.data[iax]; y1 = v.data[iay]; x2 = v.data[ibx]; y2 = v.data[iby]; x3 = v.data[icx]; y3 = v.data[icy]; var _g21 = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_culling(c14); switch(_g21) { case 2: if(!((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0)) { i += 3; continue; } break; case 0: if((x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0) { i += 3; continue; } break; default: } if(colorFill) { openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(x1,y1); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x2,y2); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x3,y3); openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); if(!openfl__$internal_renderer_canvas_CanvasGraphics.hitTesting) openfl__$internal_renderer_canvas_CanvasGraphics.context.fill(); i += 3; continue; } openfl__$internal_renderer_canvas_CanvasGraphics.context.save(); openfl__$internal_renderer_canvas_CanvasGraphics.context.beginPath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(x1,y1); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x2,y2); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(x3,y3); openfl__$internal_renderer_canvas_CanvasGraphics.context.closePath(); openfl__$internal_renderer_canvas_CanvasGraphics.context.clip(); uvx1 = uvt.data[iax] * pattern.width; uvx2 = uvt.data[ibx] * pattern.width; uvx3 = uvt.data[icx] * pattern.width; uvy1 = uvt.data[iay] * pattern.height; uvy2 = uvt.data[iby] * pattern.height; uvy3 = uvt.data[icy] * pattern.height; denom = uvx1 * (uvy3 - uvy2) - uvx2 * uvy3 + uvx3 * uvy2 + (uvx2 - uvx3) * uvy1; if(denom == 0) { i += 3; continue; } t1 = -(uvy1 * (x3 - x2) - uvy2 * x3 + uvy3 * x2 + (uvy2 - uvy3) * x1) / denom; t2 = (uvy2 * y3 + uvy1 * (y2 - y3) - uvy3 * y2 + (uvy3 - uvy2) * y1) / denom; t3 = (uvx1 * (x3 - x2) - uvx2 * x3 + uvx3 * x2 + (uvx2 - uvx3) * x1) / denom; t4 = -(uvx2 * y3 + uvx1 * (y2 - y3) - uvx3 * y2 + (uvx3 - uvx2) * y1) / denom; dx = (uvx1 * (uvy3 * x2 - uvy2 * x3) + uvy1 * (uvx2 * x3 - uvx3 * x2) + (uvx3 * uvy2 - uvx2 * uvy3) * x1) / denom; dy = (uvx1 * (uvy3 * y2 - uvy2 * y3) + uvy1 * (uvx2 * y3 - uvx3 * y2) + (uvx3 * uvy2 - uvx2 * uvy3) * y1) / denom; openfl__$internal_renderer_canvas_CanvasGraphics.context.transform(t1,t2,t3,t4,dx,dy); openfl__$internal_renderer_canvas_CanvasGraphics.context.drawImage(pattern,0,0); openfl__$internal_renderer_canvas_CanvasGraphics.context.restore(); i += 3; } break; case 10: var c15 = data.readDrawTiles(); var useScale = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 1) > 0; var offsetX = openfl__$internal_renderer_canvas_CanvasGraphics.bounds.x; var offsetY = openfl__$internal_renderer_canvas_CanvasGraphics.bounds.y; var useRotation = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 2) > 0; var useTransform = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 16) > 0; var useRGB = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 4) > 0; var useAlpha = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 8) > 0; var useRect = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 32) > 0; var useOrigin = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 64) > 0; var useBlendAdd = (openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c15) & 65536) > 0; if(useTransform) { useScale = false; useRotation = false; } var scaleIndex = 0; var rotationIndex = 0; var rgbIndex = 0; var alphaIndex = 0; var transformIndex = 0; var numValues = 3; if(useRect) if(useOrigin) numValues = 8; else numValues = 6; if(useScale) { scaleIndex = numValues; numValues++; } if(useRotation) { rotationIndex = numValues; numValues++; } if(useTransform) { transformIndex = numValues; numValues += 4; } if(useRGB) { rgbIndex = numValues; numValues += 3; } if(useAlpha) { alphaIndex = numValues; numValues++; } var totalCount = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15).length; if(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15) >= 0 && totalCount > openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15)) totalCount = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c15); var itemCount = totalCount / numValues | 0; var index = 0; var rect = null; var center = null; var previousTileID = -1; var surface; openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__bitmap.__sync(); surface = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__bitmap.image.get_src(); if(useBlendAdd) openfl__$internal_renderer_canvas_CanvasGraphics.context.globalCompositeOperation = "lighter"; while(index < totalCount) { var tileID; if(!useRect) tileID = Std["int"](openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 2]); else tileID = -1; if(!useRect && tileID != previousTileID) { rect = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__tileRects[tileID]; center = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__centerPoints[tileID]; previousTileID = tileID; } else if(useRect) { rect = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__rectTile; rect.setTo(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 2],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 3],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 4],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 5]); center = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c15).__point; if(useOrigin) center.setTo(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 6],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 7]); else center.setTo(0,0); } if(rect != null && rect.width > 0 && rect.height > 0 && center != null) { openfl__$internal_renderer_canvas_CanvasGraphics.context.save(); openfl__$internal_renderer_canvas_CanvasGraphics.context.translate(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index] - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + 1] - offsetY); if(useRotation) openfl__$internal_renderer_canvas_CanvasGraphics.context.rotate(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + rotationIndex]); var scale = 1.0; if(useScale) scale = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + scaleIndex]; if(useTransform) openfl__$internal_renderer_canvas_CanvasGraphics.context.transform(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 1],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 2],openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + transformIndex + 3],0,0); if(useAlpha) openfl__$internal_renderer_canvas_CanvasGraphics.context.globalAlpha = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c15)[index + alphaIndex]; openfl__$internal_renderer_canvas_CanvasGraphics.context.imageSmoothingEnabled = openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_smooth(c15); openfl__$internal_renderer_canvas_CanvasGraphics.context.drawImage(surface,rect.x,rect.y,rect.width,rect.height,-center.x * scale,-center.y * scale,rect.width * scale,rect.height * scale); openfl__$internal_renderer_canvas_CanvasGraphics.context.restore(); } index += numValues; } if(useBlendAdd) openfl__$internal_renderer_canvas_CanvasGraphics.context.globalCompositeOperation = "source-over"; break; default: data.skip(type); } } } catch( e ) { if( e != "__break__" ) throw e; } if(openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands.get_length() > 0) openfl__$internal_renderer_canvas_CanvasGraphics.endFill(); if(openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands.get_length() > 0) openfl__$internal_renderer_canvas_CanvasGraphics.endStroke(); data.destroy(); graphics.__bitmap = openfl_display_BitmapData.fromCanvas(graphics.__canvas); } graphics.set___dirty(false); } }; openfl__$internal_renderer_canvas_CanvasGraphics.renderMask = function(graphics,renderSession) { if(graphics.__commands.get_length() != 0) { openfl__$internal_renderer_canvas_CanvasGraphics.context = renderSession.context; var positionX = 0.0; var positionY = 0.0; var offsetX = 0; var offsetY = 0; var data = new openfl__$internal_renderer_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 3: var c = data.readCubicCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c); positionY = openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c); break; case 4: var c1 = data.readCurveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.quadraticCurveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c1) - offsetY,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1) - offsetX,openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c1); positionY = openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c1); break; case 5: var c2 = data.readDrawCircle(); openfl__$internal_renderer_canvas_CanvasGraphics.context.arc(openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c2) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c2) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c2),0,Math.PI * 2,true); break; case 6: var c3 = data.readDrawEllipse(); var x = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c3); var y = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c3); var width = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c3); var height = openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c3); x -= offsetX; y -= offsetY; var kappa = .5522848; var ox = width / 2 * kappa; var oy = height / 2 * kappa; var xe = x + width; var ye = y + height; var xm = x + width / 2; var ym = y + height / 2; openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(x,ym); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye); openfl__$internal_renderer_canvas_CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym); break; case 8: var c4 = data.readDrawRect(); openfl__$internal_renderer_canvas_CanvasGraphics.context.rect(openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c4) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c4) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c4),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c4)); break; case 9: var c5 = data.readDrawRoundRect(); openfl__$internal_renderer_canvas_CanvasGraphics.drawRoundRect(openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c5) - offsetX,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c5) - offsetY,openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c5),openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c5)); break; case 16: var c6 = data.readLineTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6) - offsetX,openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c6); positionY = openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c6); break; case 17: var c7 = data.readMoveTo(); openfl__$internal_renderer_canvas_CanvasGraphics.context.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7) - offsetX,openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7) - offsetY); positionX = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c7); positionY = openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c7); break; default: data.skip(type); } } data.destroy(); } }; var openfl__$internal_renderer_canvas_CanvasMaskManager = function(renderSession) { openfl__$internal_renderer_AbstractMaskManager.call(this,renderSession); }; $hxClasses["openfl._internal.renderer.canvas.CanvasMaskManager"] = openfl__$internal_renderer_canvas_CanvasMaskManager; openfl__$internal_renderer_canvas_CanvasMaskManager.__name__ = ["openfl","_internal","renderer","canvas","CanvasMaskManager"]; openfl__$internal_renderer_canvas_CanvasMaskManager.__super__ = openfl__$internal_renderer_AbstractMaskManager; openfl__$internal_renderer_canvas_CanvasMaskManager.prototype = $extend(openfl__$internal_renderer_AbstractMaskManager.prototype,{ pushMask: function(mask) { var context = this.renderSession.context; context.save(); var transform = mask.__getWorldTransform(); context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); context.beginPath(); mask.__renderCanvasMask(this.renderSession); context.clip(); } ,pushRect: function(rect,transform) { var context = this.renderSession.context; context.save(); context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); context.beginPath(); context.rect(rect.x,rect.y,rect.width,rect.height); context.clip(); } ,popMask: function() { this.renderSession.context.restore(); } ,popRect: function() { this.renderSession.context.restore(); } ,__class__: openfl__$internal_renderer_canvas_CanvasMaskManager }); var openfl__$internal_renderer_canvas_CanvasRenderer = function(width,height,context) { openfl__$internal_renderer_AbstractRenderer.call(this,width,height); this.context = context; this.renderSession = new openfl__$internal_renderer_RenderSession(); this.renderSession.context = context; this.renderSession.roundPixels = true; this.renderSession.renderer = this; this.renderSession.maskManager = new openfl__$internal_renderer_canvas_CanvasMaskManager(this.renderSession); }; $hxClasses["openfl._internal.renderer.canvas.CanvasRenderer"] = openfl__$internal_renderer_canvas_CanvasRenderer; openfl__$internal_renderer_canvas_CanvasRenderer.__name__ = ["openfl","_internal","renderer","canvas","CanvasRenderer"]; openfl__$internal_renderer_canvas_CanvasRenderer.__super__ = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_canvas_CanvasRenderer.prototype = $extend(openfl__$internal_renderer_AbstractRenderer.prototype,{ context: null ,render: function(stage) { this.context.setTransform(1,0,0,1,0,0); this.context.globalAlpha = 1; if(!stage.__transparent && stage.__clearBeforeRender) { this.context.fillStyle = stage.__colorString; this.context.fillRect(0,0,stage.stageWidth,stage.stageHeight); } else if(stage.__transparent && stage.__clearBeforeRender) this.context.clearRect(0,0,stage.stageWidth,stage.stageHeight); stage.__renderCanvas(this.renderSession); } ,__class__: openfl__$internal_renderer_canvas_CanvasRenderer }); var openfl__$internal_renderer_canvas_CanvasShape = function() { }; $hxClasses["openfl._internal.renderer.canvas.CanvasShape"] = openfl__$internal_renderer_canvas_CanvasShape; openfl__$internal_renderer_canvas_CanvasShape.__name__ = ["openfl","_internal","renderer","canvas","CanvasShape"]; openfl__$internal_renderer_canvas_CanvasShape.render = function(shape,renderSession) { if(!shape.__renderable || shape.__worldAlpha <= 0) return; var graphics = shape.__graphics; if(graphics != null) { openfl__$internal_renderer_canvas_CanvasGraphics.render(graphics,renderSession); if(graphics.__canvas != null) { var context = renderSession.context; var scrollRect = shape.get_scrollRect(); if(graphics.__bounds.width > 0 && graphics.__bounds.height > 0 && (scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0)) { if(shape.__mask != null) renderSession.maskManager.pushMask(shape.__mask); context.globalAlpha = shape.__worldAlpha; var transform = shape.__renderTransform; if(renderSession.roundPixels) context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx | 0,transform.ty | 0); else context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty); if(scrollRect == null) context.drawImage(graphics.__canvas,graphics.__bounds.x,graphics.__bounds.y); else context.drawImage(graphics.__canvas,Math.ceil(graphics.__bounds.x + scrollRect.x),Math.ceil(graphics.__bounds.y + scrollRect.y),scrollRect.width,scrollRect.height,Math.ceil(graphics.__bounds.x + scrollRect.x),Math.ceil(graphics.__bounds.y + scrollRect.y),scrollRect.width,scrollRect.height); if(shape.__mask != null) renderSession.maskManager.popMask(); } } } }; var openfl__$internal_renderer_canvas_CanvasTextField = function() { }; $hxClasses["openfl._internal.renderer.canvas.CanvasTextField"] = openfl__$internal_renderer_canvas_CanvasTextField; openfl__$internal_renderer_canvas_CanvasTextField.__name__ = ["openfl","_internal","renderer","canvas","CanvasTextField"]; openfl__$internal_renderer_canvas_CanvasTextField.context = null; openfl__$internal_renderer_canvas_CanvasTextField.disableInputMode = function(textEngine) { }; openfl__$internal_renderer_canvas_CanvasTextField.enableInputMode = function(textEngine) { textEngine.__cursorPosition = -1; if(textEngine.__hiddenInput == null) { textEngine.__hiddenInput = window.document.createElement("input"); var hiddenInput = textEngine.__hiddenInput; hiddenInput.type = "text"; hiddenInput.style.position = "absolute"; hiddenInput.style.opacity = "0"; hiddenInput.style.color = "transparent"; hiddenInput.style.left = "0px"; hiddenInput.style.top = "50%"; if(new EReg("(iPad|iPhone|iPod).*OS 8_","gi").match(window.navigator.userAgent)) { hiddenInput.style.fontSize = "0px"; hiddenInput.style.width = "0px"; hiddenInput.style.height = "0px"; } else { hiddenInput.style.width = "1px"; hiddenInput.style.height = "1px"; } hiddenInput.style.pointerEvents = "none"; hiddenInput.style.zIndex = "-10000000"; if(textEngine.maxChars > 0) hiddenInput.maxLength = textEngine.maxChars; window.document.body.appendChild(hiddenInput); hiddenInput.value = textEngine.text; } }; openfl__$internal_renderer_canvas_CanvasTextField.render = function(textField,renderSession) { if(textField.__dirty) { var textEngine = textField.__textEngine; textField.__updateLayout(); if((textEngine.text == null || textEngine.text == "") && !textEngine.background && !textEngine.border && !textEngine.__hasFocus || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != 2) { textField.__graphics.__canvas = null; textField.__graphics.__context = null; textField.__graphics.set___dirty(false); textField.__dirty = false; } else { var bounds = textEngine.bounds; if(textField.__graphics == null || textField.__graphics.__canvas == null) { if(textField.__graphics == null) textField.__graphics = new openfl_display_Graphics(); textField.__graphics.__canvas = window.document.createElement("canvas"); textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d"); textField.__graphics.__bounds = new openfl_geom_Rectangle(0,0,bounds.width,bounds.height); } var graphics = textField.__graphics; openfl__$internal_renderer_canvas_CanvasTextField.context = graphics.__context; if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) { var text = textEngine.text; if(textEngine.displayAsPassword) { var length = text.length; var mask = ""; var _g = 0; while(_g < length) { var i = _g++; mask += "*"; } text = mask; } graphics.__canvas.width = Math.ceil(bounds.width); graphics.__canvas.height = Math.ceil(bounds.height); if(textEngine.antiAliasType != 0 || textEngine.gridFitType != 1) { graphics.__context.mozImageSmoothingEnabled = true; graphics.__context.msImageSmoothingEnabled = true; graphics.__context.imageSmoothingEnabled = true; } else { graphics.__context.mozImageSmoothingEnabled = false; graphics.__context.msImageSmoothingEnabled = false; graphics.__context.imageSmoothingEnabled = false; } if(textEngine.border || textEngine.background) { openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); if(textEngine.background) { openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + StringTools.hex(textEngine.backgroundColor,6); openfl__$internal_renderer_canvas_CanvasTextField.context.fill(); } if(textEngine.border) { openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1; openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + StringTools.hex(textEngine.borderColor,6); openfl__$internal_renderer_canvas_CanvasTextField.context.stroke(); } } openfl__$internal_renderer_canvas_CanvasTextField.context.textBaseline = "top"; openfl__$internal_renderer_canvas_CanvasTextField.context.textAlign = "start"; var scrollX = -textField.get_scrollH(); var scrollY = 0.0; var _g1 = 0; var _g2 = textField.get_scrollV() - 1; while(_g1 < _g2) { var i1 = _g1++; scrollY -= textEngine.lineHeights[i1]; } var advance; var offsetY = 0.0; var applyHack = new EReg("(iPad|iPhone|iPod|Firefox)","g").match(window.navigator.userAgent); var _g3 = 0; var _g11 = textEngine.layoutGroups; while(_g3 < _g11.length) { var group = _g11[_g3]; ++_g3; if(group.lineIndex < textField.get_scrollV() - 1) continue; if(group.lineIndex > textField.get_scrollV() + textEngine.bottomScrollV - 2) break; openfl__$internal_renderer_canvas_CanvasTextField.context.font = openfl__$internal_text_TextEngine.getFont(group.format); openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + StringTools.hex(group.format.color,6); if(applyHack) offsetY = group.format.size * 0.185; openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(text.substring(group.startIndex,group.endIndex),group.offsetX + scrollX,group.offsetY + offsetY + scrollY); if(textField.__caretIndex > -1 && textEngine.selectable) { if(textField.__selectionIndex == textField.__caretIndex) { if(textField.__showCursor && group.startIndex <= textField.__caretIndex && group.endIndex >= textField.__caretIndex) { advance = 0.0; var _g31 = 0; var _g21 = textField.__caretIndex - group.startIndex; while(_g31 < _g21) { var i2 = _g31++; if(group.advances.length <= i2) break; advance += group.advances[i2]; } openfl__$internal_renderer_canvas_CanvasTextField.context.fillRect(group.offsetX + advance,group.offsetY,1,group.height); } } else if(group.startIndex <= textField.__caretIndex && group.endIndex >= textField.__caretIndex || group.startIndex <= textField.__selectionIndex && group.endIndex >= textField.__selectionIndex) { var selectionStart = Std["int"](Math.min(textField.__selectionIndex,textField.__caretIndex)); var selectionEnd = Std["int"](Math.max(textField.__selectionIndex,textField.__caretIndex)); if(group.startIndex > selectionStart) selectionStart = group.startIndex; if(group.endIndex < selectionEnd) selectionEnd = group.endIndex; var start; var end; start = textField.getCharBoundaries(selectionStart); if(selectionEnd >= textEngine.text.length) { end = textField.getCharBoundaries(textEngine.text.length - 1); end.x += end.width + 2; } else end = textField.getCharBoundaries(selectionEnd); if(start != null && end != null) { openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#000000"; openfl__$internal_renderer_canvas_CanvasTextField.context.fillRect(start.x,start.y,end.x - start.x,group.height); openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#FFFFFF"; openfl__$internal_renderer_canvas_CanvasTextField.context.fillText(text.substring(selectionStart,selectionEnd),scrollX + start.x,group.offsetY + offsetY + scrollY); } } } } } else { graphics.__canvas.width = Math.ceil(bounds.width); graphics.__canvas.height = Math.ceil(bounds.height); if(textEngine.border || textEngine.background) { if(textEngine.border) openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1); else openfl__$internal_renderer_canvas_CanvasTextField.context.rect(0,0,bounds.width,bounds.height); if(textEngine.background) { openfl__$internal_renderer_canvas_CanvasTextField.context.fillStyle = "#" + StringTools.hex(textEngine.backgroundColor,6); openfl__$internal_renderer_canvas_CanvasTextField.context.fill(); } if(textEngine.border) { openfl__$internal_renderer_canvas_CanvasTextField.context.lineWidth = 1; openfl__$internal_renderer_canvas_CanvasTextField.context.lineCap = "square"; openfl__$internal_renderer_canvas_CanvasTextField.context.strokeStyle = "#" + StringTools.hex(textEngine.borderColor,6); openfl__$internal_renderer_canvas_CanvasTextField.context.stroke(); } } } graphics.__bitmap = openfl_display_BitmapData.fromCanvas(textField.__graphics.__canvas); textField.__dirty = false; graphics.set___dirty(false); } } }; var openfl__$internal_renderer_console_ConsoleRenderer = function(width,height,ctx) { openfl__$internal_renderer_AbstractRenderer.call(this,width,height); throw new js__$Boot_HaxeError("ConsoleRenderer not supported"); }; $hxClasses["openfl._internal.renderer.console.ConsoleRenderer"] = openfl__$internal_renderer_console_ConsoleRenderer; openfl__$internal_renderer_console_ConsoleRenderer.__name__ = ["openfl","_internal","renderer","console","ConsoleRenderer"]; openfl__$internal_renderer_console_ConsoleRenderer.__super__ = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_console_ConsoleRenderer.prototype = $extend(openfl__$internal_renderer_AbstractRenderer.prototype,{ render: function(stage) { } ,__class__: openfl__$internal_renderer_console_ConsoleRenderer }); var openfl__$internal_renderer_dom_DOMBitmap = function() { }; $hxClasses["openfl._internal.renderer.dom.DOMBitmap"] = openfl__$internal_renderer_dom_DOMBitmap; openfl__$internal_renderer_dom_DOMBitmap.__name__ = ["openfl","_internal","renderer","dom","DOMBitmap"]; openfl__$internal_renderer_dom_DOMBitmap.render = function(bitmap,renderSession) { if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.bitmapData != null && bitmap.bitmapData.__isValid) { if(bitmap.bitmapData.image.buffer.__srcImage != null) openfl__$internal_renderer_dom_DOMBitmap.renderImage(bitmap,renderSession); else openfl__$internal_renderer_dom_DOMBitmap.renderCanvas(bitmap,renderSession); } else { if(bitmap.__image != null) { renderSession.element.removeChild(bitmap.__image); bitmap.__image = null; bitmap.__style = null; } if(bitmap.__canvas != null) { renderSession.element.removeChild(bitmap.__canvas); bitmap.__canvas = null; bitmap.__style = null; } } }; openfl__$internal_renderer_dom_DOMBitmap.renderCanvas = function(bitmap,renderSession) { if(bitmap.__image != null) { renderSession.element.removeChild(bitmap.__image); bitmap.__image = null; } if(bitmap.__canvas == null) { bitmap.__canvas = window.document.createElement("canvas"); bitmap.__context = bitmap.__canvas.getContext("2d"); if(!bitmap.smoothing) { bitmap.__context.mozImageSmoothingEnabled = false; bitmap.__context.msImageSmoothingEnabled = false; bitmap.__context.imageSmoothingEnabled = false; } openfl__$internal_renderer_dom_DOMRenderer.initializeElement(bitmap,bitmap.__canvas,renderSession); } bitmap.bitmapData.__sync(); bitmap.__canvas.width = bitmap.bitmapData.width; bitmap.__canvas.height = bitmap.bitmapData.height; bitmap.__context.globalAlpha = bitmap.__worldAlpha; bitmap.__context.drawImage(bitmap.bitmapData.image.buffer.__srcCanvas,0,0); openfl__$internal_renderer_dom_DOMRenderer.applyStyle(bitmap,renderSession,true,false,true); }; openfl__$internal_renderer_dom_DOMBitmap.renderImage = function(bitmap,renderSession) { if(bitmap.__canvas != null) { renderSession.element.removeChild(bitmap.__canvas); bitmap.__canvas = null; } if(bitmap.__image == null) { bitmap.__image = window.document.createElement("img"); bitmap.__image.src = bitmap.bitmapData.image.buffer.__srcImage.src; openfl__$internal_renderer_dom_DOMRenderer.initializeElement(bitmap,bitmap.__image,renderSession); } openfl__$internal_renderer_dom_DOMRenderer.applyStyle(bitmap,renderSession,true,true,true); }; var openfl__$internal_renderer_dom_DOMMaskManager = function(renderSession) { openfl__$internal_renderer_AbstractMaskManager.call(this,renderSession); }; $hxClasses["openfl._internal.renderer.dom.DOMMaskManager"] = openfl__$internal_renderer_dom_DOMMaskManager; openfl__$internal_renderer_dom_DOMMaskManager.__name__ = ["openfl","_internal","renderer","dom","DOMMaskManager"]; openfl__$internal_renderer_dom_DOMMaskManager.__super__ = openfl__$internal_renderer_AbstractMaskManager; openfl__$internal_renderer_dom_DOMMaskManager.prototype = $extend(openfl__$internal_renderer_AbstractMaskManager.prototype,{ pushMask: function(mask) { } ,pushRect: function(rect,transform) { } ,popMask: function() { } ,__class__: openfl__$internal_renderer_dom_DOMMaskManager }); var openfl__$internal_renderer_dom_DOMRenderer = function(width,height,element) { openfl__$internal_renderer_AbstractRenderer.call(this,width,height); this.element = element; this.renderSession = new openfl__$internal_renderer_RenderSession(); this.renderSession.element = element; this.renderSession.roundPixels = true; var prefix = (function () { var styles = window.getComputedStyle(document.documentElement, ''), pre = (Array.prototype.slice .call(styles) .join('') .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o']) )[1], dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1]; return { dom: dom, lowercase: pre, css: '-' + pre + '-', js: pre[0].toUpperCase() + pre.substr(1) }; })(); this.renderSession.vendorPrefix = prefix.lowercase; if(prefix.lowercase == "webkit") this.renderSession.transformProperty = "-webkit-transform"; else this.renderSession.transformProperty = "transform"; if(prefix.lowercase == "webkit") this.renderSession.transformOriginProperty = "-webkit-transform-origin"; else this.renderSession.transformOriginProperty = "transform-origin"; this.renderSession.maskManager = new openfl__$internal_renderer_dom_DOMMaskManager(this.renderSession); this.renderSession.renderer = this; }; $hxClasses["openfl._internal.renderer.dom.DOMRenderer"] = openfl__$internal_renderer_dom_DOMRenderer; openfl__$internal_renderer_dom_DOMRenderer.__name__ = ["openfl","_internal","renderer","dom","DOMRenderer"]; openfl__$internal_renderer_dom_DOMRenderer.applyStyle = function(displayObject,renderSession,setTransform,setAlpha,setClip) { var style = displayObject.__style; if(setTransform && displayObject.__worldTransformChanged) style.setProperty(renderSession.transformProperty,displayObject.__worldTransform.to3DString(renderSession.roundPixels),null); if(displayObject.__worldZ != ++renderSession.z) { displayObject.__worldZ = renderSession.z; style.setProperty("z-index",displayObject.__worldZ == null?"null":"" + displayObject.__worldZ,null); } if(setAlpha && displayObject.__worldAlphaChanged) { if(displayObject.__worldAlpha < 1) style.setProperty("opacity",displayObject.__worldAlpha == null?"null":"" + displayObject.__worldAlpha,null); else style.removeProperty("opacity"); } if(setClip && displayObject.__worldClipChanged) { if(displayObject.__worldClip == null) style.removeProperty("clip"); else { var clip = openfl_geom_Rectangle.__temp; var matrix = openfl_geom_Matrix.__temp; matrix.copyFrom(displayObject.__worldTransform); matrix.invert(); displayObject.__worldClip.__transform(clip,matrix); style.setProperty("clip","rect(" + clip.y + "px, " + clip.get_right() + "px, " + clip.get_bottom() + "px, " + clip.x + "px)",null); } } }; openfl__$internal_renderer_dom_DOMRenderer.initializeElement = function(displayObject,element,renderSession) { var style = displayObject.__style = element.style; style.setProperty("position","absolute",null); style.setProperty("top","0",null); style.setProperty("left","0",null); style.setProperty(renderSession.transformOriginProperty,"0 0 0",null); renderSession.element.appendChild(element); displayObject.__worldAlphaChanged = true; displayObject.__worldClipChanged = true; displayObject.__worldTransformChanged = true; displayObject.__worldVisibleChanged = true; displayObject.__worldZ = -1; }; openfl__$internal_renderer_dom_DOMRenderer.__super__ = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_dom_DOMRenderer.prototype = $extend(openfl__$internal_renderer_AbstractRenderer.prototype,{ element: null ,render: function(stage) { this.element.style.background = stage.__colorString; this.renderSession.z = 1; stage.__renderDOM(this.renderSession); } ,__class__: openfl__$internal_renderer_dom_DOMRenderer }); var openfl__$internal_renderer_dom_DOMShape = function() { }; $hxClasses["openfl._internal.renderer.dom.DOMShape"] = openfl__$internal_renderer_dom_DOMShape; openfl__$internal_renderer_dom_DOMShape.__name__ = ["openfl","_internal","renderer","dom","DOMShape"]; openfl__$internal_renderer_dom_DOMShape.render = function(shape,renderSession) { var graphics = shape.__graphics; if(shape.stage != null && shape.__worldVisible && shape.__renderable && graphics != null) { if(graphics.__dirty || shape.__worldAlphaChanged || shape.__canvas == null && graphics.__canvas != null) { openfl__$internal_renderer_canvas_CanvasGraphics.render(graphics,renderSession); if(graphics.__canvas != null) { if(shape.__canvas == null) { shape.__canvas = window.document.createElement("canvas"); shape.__context = shape.__canvas.getContext("2d"); openfl__$internal_renderer_dom_DOMRenderer.initializeElement(shape,shape.__canvas,renderSession); } shape.__canvas.width = graphics.__canvas.width; shape.__canvas.height = graphics.__canvas.height; shape.__context.globalAlpha = shape.__worldAlpha; shape.__context.drawImage(graphics.__canvas,0,0); } else if(shape.__canvas != null) { renderSession.element.removeChild(shape.__canvas); shape.__canvas = null; shape.__style = null; } } if(shape.__canvas != null) { if(shape.__worldTransformChanged || graphics.__transformDirty) { graphics.__transformDirty = false; var transform = openfl_geom_Matrix.__temp; transform.identity(); transform.translate(graphics.__bounds.x,graphics.__bounds.y); transform.concat(shape.__worldTransform); shape.__style.setProperty(renderSession.transformProperty,renderSession.roundPixels?"matrix3d(" + transform.a + ", " + transform.b + ", 0, 0, " + transform.c + ", " + transform.d + ", 0, 0, 0, 0, 1, 0, " + (transform.tx | 0) + ", " + (transform.ty | 0) + ", 0, 1)":"matrix3d(" + transform.a + ", " + transform.b + ", 0, 0, " + transform.c + ", " + transform.d + ", 0, 0, 0, 0, 1, 0, " + transform.tx + ", " + transform.ty + ", 0, 1)",null); } openfl__$internal_renderer_dom_DOMRenderer.applyStyle(shape,renderSession,false,false,true); } } else if(shape.__canvas != null) { renderSession.element.removeChild(shape.__canvas); shape.__canvas = null; shape.__style = null; } }; var openfl__$internal_renderer_dom_DOMTextField = function() { }; $hxClasses["openfl._internal.renderer.dom.DOMTextField"] = openfl__$internal_renderer_dom_DOMTextField; openfl__$internal_renderer_dom_DOMTextField.__name__ = ["openfl","_internal","renderer","dom","DOMTextField"]; openfl__$internal_renderer_dom_DOMTextField.measureText = function(textField) { var textEngine = textField.__textEngine; var div = textField.__div; if(div == null) { div = window.document.createElement("div"); div.innerHTML = new EReg("\n","g").replace(textEngine.text,"<br>"); div.style.setProperty("font",openfl__$internal_text_TextEngine.getFont(textField.__textFormat),null); div.style.setProperty("pointer-events","none",null); div.style.position = "absolute"; div.style.top = "110%"; window.document.body.appendChild(div); } textEngine.__measuredWidth = div.clientWidth; if(textField.__div == null) div.style.width = Std.string(textEngine.width - 4) + "px"; textEngine.__measuredHeight = div.clientHeight; if(textField.__div == null) window.document.body.removeChild(div); }; openfl__$internal_renderer_dom_DOMTextField.render = function(textField,renderSession) { var textEngine = textField.__textEngine; if(textField.stage != null && textField.__worldVisible && textField.__renderable) { if(textField.__dirty || textField.__div == null) { if(textEngine.text != "" || textEngine.background || textEngine.border || textEngine.type == 1) { if(textField.__div == null) { textField.__div = window.document.createElement("div"); openfl__$internal_renderer_dom_DOMRenderer.initializeElement(textField,textField.__div,renderSession); textField.__style.setProperty("outline","none",null); textField.__div.addEventListener("input",function(event) { event.preventDefault(); if(textField.get_htmlText() != textField.__div.innerHTML) { textField.set_htmlText(textField.__div.innerHTML); textField.__dirty = false; } },true); } if(textEngine.selectable) textField.__style.setProperty("cursor","text",null); else textField.__style.setProperty("cursor","inherit",null); textField.__div.contentEditable = textEngine.type == 1; var style = textField.__style; textField.__div.innerHTML = textEngine.text; if(textEngine.background) style.setProperty("background-color","#" + StringTools.hex(textEngine.backgroundColor,6),null); else style.removeProperty("background-color"); if(textEngine.border) style.setProperty("border","solid 1px #" + StringTools.hex(textEngine.borderColor,6),null); else style.removeProperty("border"); style.setProperty("font",openfl__$internal_text_TextEngine.getFont(textField.__textFormat),null); style.setProperty("color","#" + StringTools.hex(textField.__textFormat.color,6),null); if(textEngine.autoSize != 2) style.setProperty("width","auto",null); else style.setProperty("width",textEngine.width + "px",null); style.setProperty("height",textEngine.height + "px",null); var _g = textField.__textFormat.align; switch(_g) { case 0: style.setProperty("text-align","center",null); break; case 4: style.setProperty("text-align","right",null); break; default: style.setProperty("text-align","left",null); } textField.__dirty = false; } else if(textField.__div != null) { renderSession.element.removeChild(textField.__div); textField.__div = null; } } if(textField.__div != null) openfl__$internal_renderer_dom_DOMRenderer.applyStyle(textField,renderSession,true,true,false); } else if(textField.__div != null) { renderSession.element.removeChild(textField.__div); textField.__div = null; textField.__style = null; } }; var openfl__$internal_renderer_opengl_GLBitmap = function() { }; $hxClasses["openfl._internal.renderer.opengl.GLBitmap"] = openfl__$internal_renderer_opengl_GLBitmap; openfl__$internal_renderer_opengl_GLBitmap.__name__ = ["openfl","_internal","renderer","opengl","GLBitmap"]; openfl__$internal_renderer_opengl_GLBitmap.render = function(bitmap,renderSession) { if(!bitmap.__renderable || bitmap.__worldAlpha <= 0 || bitmap.bitmapData == null || !bitmap.bitmapData.__isValid) return; renderSession.spriteBatch.renderBitmapData(bitmap.bitmapData,bitmap.smoothing,bitmap.__renderTransform,bitmap.__worldColorTransform,bitmap.__worldAlpha,bitmap.__blendMode,bitmap.__shader,bitmap.pixelSnapping); }; openfl__$internal_renderer_opengl_GLBitmap.pushFramebuffer = function(renderSession,texture,viewPort,smoothing,transparent,clearBuffer,powerOfTwo) { if(powerOfTwo == null) powerOfTwo = true; if(clearBuffer == null) clearBuffer = false; if(transparent == null) transparent = true; var gl = renderSession.gl; if(gl == null) return null; var renderer = renderSession.renderer; var spritebatch = renderSession.spriteBatch; var x = viewPort.x | 0; var y = viewPort.y | 0; var width = viewPort.width | 0; var height = viewPort.height | 0; spritebatch.finish(); if(openfl__$internal_renderer_opengl_GLBitmap.fbData.length <= 0) openfl__$internal_renderer_opengl_GLBitmap.fbData.push({ texture : null, viewPort : null, transparent : renderer.transparent}); if(texture == null) texture = new openfl__$internal_renderer_opengl_utils_PingPongTexture(gl,width,height,smoothing,powerOfTwo); texture.resize(width,height); renderer.transparent = transparent; renderSession.maskManager.saveState(); gl.bindFramebuffer(gl.FRAMEBUFFER,(texture.__swapped?texture.__texture1:texture.__texture0).frameBuffer); renderer.setViewport(x,y,width,height); gl.colorMask(true,true,true,true); renderSession.blendModeManager.setBlendMode(10); if(clearBuffer) (texture.__swapped?texture.__texture1:texture.__texture0).clear(0,0,0,0,null); openfl__$internal_renderer_opengl_GLBitmap.fbData.push({ texture : texture, viewPort : viewPort, transparent : transparent}); return texture; }; openfl__$internal_renderer_opengl_GLBitmap.drawBitmapDrawable = function(renderSession,target,source,matrix,colorTransform,blendMode,clipRect) { var data = openfl__$internal_renderer_opengl_GLBitmap.fbData[openfl__$internal_renderer_opengl_GLBitmap.fbData.length - 1]; if(data == null) throw new js__$Boot_HaxeError("No data to draw to"); var gl = renderSession.gl; if(gl == null) return; var viewPort = data.viewPort; var renderer = renderSession.renderer; var spritebatch = renderSession.spriteBatch; var drawTarget = target != null; var tmpRect; if(clipRect == null) tmpRect = new openfl_geom_Rectangle(viewPort.x,viewPort.y,viewPort.width,viewPort.height); else tmpRect = clipRect.clone(); spritebatch.begin(renderSession,drawTarget?null:tmpRect); if(drawTarget) { target.__worldTransform.identity(); openfl__$internal_renderer_opengl_GLBitmap.flipMatrix(target.__worldTransform,viewPort.height); target.__renderGL(renderSession); spritebatch.stop(); if(target.__texture != null) gl.deleteTexture(target.__texture); target.__texture = null; spritebatch.start(tmpRect); } var ctCache = source.__worldColorTransform; var blendModeCache = source.__blendMode; var cached = source.__cacheAsBitmap; var m; if(matrix != null) m = matrix.clone(); else m = new openfl_geom_Matrix(); openfl__$internal_renderer_opengl_GLBitmap.flipMatrix(m,viewPort.height); if(colorTransform != null) source.__worldColorTransform = colorTransform; else source.__worldColorTransform = new openfl_geom_ColorTransform(); source.__blendMode = blendMode; openfl_display_DisplayObject.__cacheAsBitmapMode = true; source.__updateTransforms(m); source.__updateChildren(false); source.__cacheAsBitmap = false; source.__renderGL(renderSession); source.__cacheAsBitmap = cached; source.__worldColorTransform = ctCache; source.__blendMode = blendModeCache; openfl_display_DisplayObject.__cacheAsBitmapMode = false; source.__updateTransforms(); source.__updateChildren(false); }; openfl__$internal_renderer_opengl_GLBitmap.popFramebuffer = function(renderSession,image) { var gl = renderSession.gl; if(gl == null) return; renderSession.spriteBatch.finish(); openfl__$internal_renderer_opengl_GLBitmap.fbData.pop(); var data = openfl__$internal_renderer_opengl_GLBitmap.fbData[openfl__$internal_renderer_opengl_GLBitmap.fbData.length - 1]; if(data == null) throw new js__$Boot_HaxeError("oh"); var x; var y; var width; var height; if(data.viewPort == null) { x = y = 0; width = renderSession.renderer.width; height = renderSession.renderer.height; } else { x = Math.floor(data.viewPort.x); y = Math.floor(data.viewPort.y); width = Math.ceil(data.viewPort.width); height = Math.ceil(data.viewPort.height); } if(image != null) { if(image.width != width || image.height != height) image.resize(width,height); gl.readPixels(x,y,width,height,gl.RGBA,gl.UNSIGNED_BYTE,image.buffer.data); image.dirty = false; image.set_premultiplied(true); } gl.bindFramebuffer(gl.FRAMEBUFFER,data.texture == null?renderSession.defaultFramebuffer:data.texture.get_framebuffer()); renderSession.renderer.setViewport(x,y,width,height); renderSession.renderer.transparent = data.transparent; renderSession.maskManager.restoreState(); }; openfl__$internal_renderer_opengl_GLBitmap.flipMatrix = function(m,height) { var tx = m.tx; var ty = m.ty; m.tx = 0; m.ty = 0; m.scale(1,-1); m.translate(0,height); m.tx += tx; m.ty -= ty; }; var openfl__$internal_renderer_opengl_GLRenderer = function(width,height,gl,transparent,antialias,preserveDrawingBuffer) { if(preserveDrawingBuffer == null) preserveDrawingBuffer = false; if(antialias == null) antialias = false; if(transparent == null) transparent = false; if(height == null) height = 600; if(width == null) width = 800; this.vpHeight = 0; this.vpWidth = 0; this.vpY = 0; this.vpX = 0; openfl__$internal_renderer_AbstractRenderer.call(this,width,height); this.transparent = transparent; this.preserveDrawingBuffer = preserveDrawingBuffer; this.width = width; this.height = height; this.viewport = new openfl_geom_Rectangle(); this.options = { alpha : transparent, antialias : antialias, premultipliedAlpha : transparent, stencil : true, preserveDrawingBuffer : preserveDrawingBuffer}; this._glContextId = openfl__$internal_renderer_opengl_GLRenderer.glContextId++; this.gl = gl; this.defaultFramebuffer = null; openfl__$internal_renderer_opengl_GLRenderer.glContexts[this._glContextId] = gl; this.projectionMatrix = new openfl_geom_Matrix(); this.projection = new openfl_geom_Point(); this.projection.x = this.width / 2; this.projection.y = -this.height / 2; this.offset = new openfl_geom_Point(0,0); this.resize(this.width,this.height); this.contextLost = false; this.shaderManager = new openfl__$internal_renderer_opengl_utils_ShaderManager(gl); this.spriteBatch = new openfl__$internal_renderer_opengl_utils_SpriteBatch(gl); this.filterManager = new openfl__$internal_renderer_opengl_utils_FilterManager(gl,this.transparent); this.stencilManager = new openfl__$internal_renderer_opengl_utils_StencilManager(gl); this.blendModeManager = new openfl__$internal_renderer_opengl_utils_BlendModeManager(gl); this.renderSession = new openfl__$internal_renderer_RenderSession(); this.renderSession.gl = this.gl; this.renderSession.drawCount = 0; this.renderSession.shaderManager = this.shaderManager; this.renderSession.filterManager = this.filterManager; this.renderSession.blendModeManager = this.blendModeManager; this.renderSession.spriteBatch = this.spriteBatch; this.renderSession.stencilManager = this.stencilManager; this.renderSession.renderer = this; this.renderSession.defaultFramebuffer = this.defaultFramebuffer; this.renderSession.projectionMatrix = this.projectionMatrix; this.maskManager = new openfl__$internal_renderer_opengl_utils_GLMaskManager(this.renderSession); this.renderSession.maskManager = this.maskManager; this.shaderManager.setShader(this.shaderManager.defaultShader); gl.disable(gl.DEPTH_TEST); gl.disable(gl.CULL_FACE); gl.enable(gl.BLEND); gl.colorMask(true,true,true,this.transparent); }; $hxClasses["openfl._internal.renderer.opengl.GLRenderer"] = openfl__$internal_renderer_opengl_GLRenderer; openfl__$internal_renderer_opengl_GLRenderer.__name__ = ["openfl","_internal","renderer","opengl","GLRenderer"]; openfl__$internal_renderer_opengl_GLRenderer.renderBitmap = function(shape,renderSession,smooth) { if(smooth == null) smooth = true; if(!shape.__renderable || shape.__worldAlpha <= 0) return; if(shape.__graphics == null || shape.__graphics.__bitmap == null) return; var rect = openfl_geom_Rectangle.__temp; var matrix = openfl_geom_Matrix.__temp; rect.setEmpty(); matrix.identity(); shape.__getBounds(rect,matrix); var bitmap = shape.__graphics.__bitmap; matrix.translate(shape.__graphics.__bounds.x,shape.__graphics.__bounds.y); matrix.concat(shape.__renderTransform); renderSession.spriteBatch.renderBitmapData(bitmap,smooth,matrix,shape.__worldColorTransform,shape.__worldAlpha,shape.__blendMode,null,0); }; openfl__$internal_renderer_opengl_GLRenderer.__super__ = openfl__$internal_renderer_AbstractRenderer; openfl__$internal_renderer_opengl_GLRenderer.prototype = $extend(openfl__$internal_renderer_AbstractRenderer.prototype,{ blendModeManager: null ,contextLost: null ,defaultFramebuffer: null ,filterManager: null ,gl: null ,_glContextId: null ,maskManager: null ,offset: null ,options: null ,preserveDrawingBuffer: null ,projection: null ,shaderManager: null ,spriteBatch: null ,stencilManager: null ,view: null ,projectionMatrix: null ,__stage: null ,vpX: null ,vpY: null ,vpWidth: null ,vpHeight: null ,destroy: function() { openfl__$internal_renderer_opengl_GLRenderer.glContexts[this._glContextId] = null; this.projection = null; this.offset = null; this.shaderManager.destroy(); this.spriteBatch.destroy(); this.maskManager.destroy(); this.filterManager.destroy(); this.shaderManager = null; this.spriteBatch = null; this.maskManager = null; this.filterManager = null; this.gl = null; this.renderSession = null; } ,setViewport: function(x,y,width,height) { if(!(this.vpX == x && this.vpY == y && this.vpWidth == width && this.vpHeight == height)) { this.vpX = x; this.vpY = y; this.vpWidth = width; this.vpHeight = height; this.gl.viewport(x,y,width,height); this.setOrtho(x,y,width,height); this.viewport.setTo(x,y,width,height); } } ,setOrtho: function(x,y,width,height) { var o = this.projectionMatrix; o.identity(); o.a = 1 / width * 2; o.d = -1 / height * 2; o.tx = -1 - x * o.a; o.ty = 1 - y * o.d; } ,handleContextLost: function(event) { event.preventDefault(); this.contextLost = true; } ,handleContextRestored: function() { var gl = this.gl; openfl__$internal_renderer_opengl_GLRenderer.glContextId++; this.shaderManager.setContext(gl); this.spriteBatch.setContext(gl); this.maskManager.setContext(gl); this.filterManager.setContext(gl); this.renderSession.gl = gl; this.defaultFramebuffer = null; gl.disable(gl.DEPTH_TEST); gl.disable(gl.CULL_FACE); gl.enable(gl.BLEND); gl.colorMask(true,true,true,this.transparent); this.setViewport(0,0,this.width,this.height); this.contextLost = false; } ,render: function(stage) { if(this.contextLost) return; var gl = this.gl; this.setViewport(0,0,this.width,this.height); gl.bindFramebuffer(gl.FRAMEBUFFER,this.defaultFramebuffer); if(this.transparent) gl.clearColor(0,0,0,0); else gl.clearColor(stage.__colorSplit[0],stage.__colorSplit[1],stage.__colorSplit[2],1); gl.clear(gl.COLOR_BUFFER_BIT); this.renderDisplayObject(stage,this.projection); } ,renderDisplayObject: function(displayObject,projection,buffer) { this.renderSession.blendModeManager.setBlendMode(10); this.renderSession.drawCount = 0; this.renderSession.currentBlendMode = null; this.spriteBatch.begin(this.renderSession); this.filterManager.begin(this.renderSession,buffer); displayObject.__renderGL(this.renderSession); this.spriteBatch.finish(); } ,resize: function(width,height) { this.width = width; this.height = height; openfl__$internal_renderer_AbstractRenderer.prototype.resize.call(this,width,height); this.setViewport(0,0,width,height); this.projection.x = width / 2; this.projection.y = -height / 2; } ,__class__: openfl__$internal_renderer_opengl_GLRenderer }); var openfl__$internal_renderer_opengl_shaders2_Shader = function(gl) { this.wrapT = 33071; this.wrapS = 33071; this.compiled = false; this.uniforms = new haxe_ds_StringMap(); this.attributes = new haxe_ds_StringMap(); this.ID = openfl__$internal_renderer_opengl_shaders2_Shader.UID++; this.gl = gl; this.program = null; }; $hxClasses["openfl._internal.renderer.opengl.shaders2.Shader"] = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_Shader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","Shader"]; openfl__$internal_renderer_opengl_shaders2_Shader.compileProgram = function(gl,vertexSrc,fragmentSrc) { var cache = openfl__$internal_renderer_opengl_utils_ShaderManager.compiledShadersCache; var key = haxe_crypto_Md5.encode(vertexSrc + fragmentSrc); if(__map_reserved[key] != null?cache.existsReserved(key):cache.h.hasOwnProperty(key)) return __map_reserved[key] != null?cache.getReserved(key):cache.h[key]; var vertexShader = openfl__$internal_renderer_opengl_shaders2_Shader.compileShader(gl,vertexSrc,gl.VERTEX_SHADER); var fragmentShader = openfl__$internal_renderer_opengl_shaders2_Shader.compileShader(gl,fragmentSrc,gl.FRAGMENT_SHADER); var program = gl.createProgram(); if(vertexShader != null && fragmentShader != null) { gl.attachShader(program,vertexShader); gl.attachShader(program,fragmentShader); gl.linkProgram(program); gl.deleteShader(vertexShader); gl.deleteShader(fragmentShader); if(gl.getProgramParameter(program,gl.LINK_STATUS) == 0) { haxe_Log.trace("Could not compile the program:\n\t" + gl.getProgramInfoLog(program),{ fileName : "Shader.hx", lineNumber : 226, className : "openfl._internal.renderer.opengl.shaders2.Shader", methodName : "compileProgram"}); haxe_Log.trace("VERTEX:\n" + vertexSrc + "\nFRAGMENT:\n" + fragmentSrc,{ fileName : "Shader.hx", lineNumber : 227, className : "openfl._internal.renderer.opengl.shaders2.Shader", methodName : "compileProgram"}); return null; } } if(__map_reserved[key] != null) cache.setReserved(key,program); else cache.h[key] = program; return program; }; openfl__$internal_renderer_opengl_shaders2_Shader.compileShader = function(gl,shaderSrc,type) { var src = shaderSrc; var shader = gl.createShader(type); gl.shaderSource(shader,src); gl.compileShader(shader); if(gl.getShaderParameter(shader,gl.COMPILE_STATUS) == 0) { haxe_Log.trace("Could not compile the shader:\n\t" + gl.getShaderInfoLog(shader),{ fileName : "Shader.hx", lineNumber : 244, className : "openfl._internal.renderer.opengl.shaders2.Shader", methodName : "compileShader"}); haxe_Log.trace(shaderSrc,{ fileName : "Shader.hx", lineNumber : 245, className : "openfl._internal.renderer.opengl.shaders2.Shader", methodName : "compileShader"}); return null; } return shader; }; openfl__$internal_renderer_opengl_shaders2_Shader.prototype = { gl: null ,vertexSrc: null ,fragmentSrc: null ,attributes: null ,uniforms: null ,compiled: null ,ID: null ,program: null ,wrapS: null ,wrapT: null ,smooth: null ,blendMode: null ,vertexString: null ,fragmentString: null ,init: function(force) { if(force == null) force = false; if(this.compiled && !force) return; if(this.vertexSrc != null) this.vertexString = this.vertexSrc.join("\n"); if(this.fragmentSrc != null) this.fragmentString = this.fragmentSrc.join("\n"); if(this.vertexString == null || this.fragmentString == null) throw new js__$Boot_HaxeError("No vertex or fragment source provided"); this.program = openfl__$internal_renderer_opengl_shaders2_Shader.compileProgram(this.gl,this.vertexString,this.fragmentString); if(this.program != null) this.compiled = true; } ,destroy: function() { if(this.program != null) this.gl.deleteProgram(this.program); this.compiled = false; this.attributes = null; } ,applyData: function(shaderData,renderSession) { if(shaderData == null) return; var param; var u; var v; var bd; var $it0 = shaderData.keys(); while( $it0.hasNext() ) { var key = $it0.next(); u = this.getUniformLocation(key); param = __map_reserved[key] != null?shaderData.getReserved(key):shaderData.h[key]; if(param == null) continue; v = param.value; bd = param.bitmap; if(v == null && bd == null) continue; var _g = param.internalType; switch(_g) { case 1: var _g1 = param.size; switch(_g1) { case 1: this.gl.uniform1i(u,v[0] | 0); break; case 2: this.gl.uniform2i(u,v[0] | 0,v[1] | 0); break; case 3: this.gl.uniform3i(u,v[0] | 0,v[1] | 0,v[2] | 0); break; case 4: this.gl.uniform4i(u,v[0] | 0,v[1] | 0,v[2] | 0,v[3] | 0); break; } break; case 2: var _g11 = param.size; switch(_g11) { case 1: this.gl.uniform1f(u,v[0]); break; case 2: this.gl.uniform2f(u,v[0],v[1]); break; case 3: this.gl.uniform3f(u,v[0],v[1],v[2]); break; case 4: this.gl.uniform4f(u,v[0],v[1],v[2],v[3]); break; } break; case 3: var _g12 = param.size; switch(_g12) { case 2: this.gl.uniformMatrix2fv(u,param.transpose,(function($this) { var $r; var array = param.value; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); break; case 3: this.gl.uniformMatrix3fv(u,param.transpose,(function($this) { var $r; var array1 = param.value; var this2; if(array1 != null) this2 = new Float32Array(array1); else this2 = null; $r = this2; return $r; }(this))); break; case 4: this.gl.uniformMatrix4fv(u,param.transpose,(function($this) { var $r; var array2 = param.value; var this3; if(array2 != null) this3 = new Float32Array(array2); else this3 = null; $r = this3; return $r; }(this))); break; } break; case 4: if(bd == null || !bd.__isValid) continue; this.gl.activeTexture(this.gl.TEXTURE0 + renderSession.activeTextures); this.gl.bindTexture(this.gl.TEXTURE_2D,bd.getTexture(this.gl)); this.gl.uniform1i(u,renderSession.activeTextures); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,param.smooth?this.gl.LINEAR:this.gl.NEAREST); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,param.smooth?this.gl.LINEAR:this.gl.NEAREST); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,param.repeatX); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,param.repeatY); renderSession.activeTextures++; break; default: } } } ,getAttribLocation: function(attribute) { if(this.program == null) throw new js__$Boot_HaxeError("Shader isn't initialized"); if(this.attributes.exists(attribute)) return this.attributes.get(attribute); else { var location = this.gl.getAttribLocation(this.program,attribute); this.attributes.set(attribute,location); return location; } } ,getUniformLocation: function(uniform) { if(this.program == null) throw new js__$Boot_HaxeError("Shader isn't initialized"); if(this.uniforms.exists(uniform)) return this.uniforms.get(uniform); else { var location = this.gl.getUniformLocation(this.program,uniform); this.uniforms.set(uniform,location); return location; } } ,enableVertexAttribute: function(attribute,stride,offset) { var location = this.getAttribLocation(attribute.name); this.gl.enableVertexAttribArray(location); this.gl.vertexAttribPointer(location,attribute.components,attribute.type,attribute.normalized,stride,offset * 4); } ,disableVertexAttribute: function(attribute,setDefault) { if(setDefault == null) setDefault = true; var location = this.getAttribLocation(attribute.name); this.gl.disableVertexAttribArray(location); if(setDefault) { var _g = attribute.components; switch(_g) { case 1: this.gl.vertexAttrib1fv(location,attribute.defaultValue.subarray(0,1)); break; case 2: this.gl.vertexAttrib2fv(location,attribute.defaultValue.subarray(0,2)); break; case 3: this.gl.vertexAttrib3fv(location,attribute.defaultValue.subarray(0,3)); break; default: this.gl.vertexAttrib4fv(location,attribute.defaultValue.subarray(0,4)); } } } ,bindVertexArray: function(va) { var offset = 0; var stride = va.get_stride(); var _g = 0; var _g1 = va.attributes; while(_g < _g1.length) { var attribute = _g1[_g]; ++_g; if(attribute.enabled) { this.enableVertexAttribute(attribute,stride,offset); offset += Math.floor(attribute.components * attribute.getElementsBytes() / 4); } else this.disableVertexAttribute(attribute,true); } } ,unbindVertexArray: function(va) { var _g = 0; var _g1 = va.attributes; while(_g < _g1.length) { var attribute = _g1[_g]; ++_g; this.disableVertexAttribute(attribute,false); } } ,__class__: openfl__$internal_renderer_opengl_shaders2_Shader }; var openfl__$internal_renderer_opengl_shaders2_DefaultShader = function(gl) { openfl__$internal_renderer_opengl_shaders2_Shader.call(this,gl); this.vertexSrc = openfl__$internal_renderer_opengl_shaders2_DefaultShader.VERTEX_SRC; this.fragmentSrc = ["#ifdef GL_ES","precision lowp float;","#endif","uniform sampler2D " + "openfl_uSampler0" + ";","uniform vec4 " + "openfl_uColorMultiplier" + ";","uniform vec4 " + "openfl_uColorOffset" + ";","uniform bool " + "openfl_uUseColorTransform" + ";","varying vec2 " + "openfl_vTexCoord" + ";","varying vec4 " + "openfl_vColor" + ";","vec4 colorTransform(const vec4 color, const vec4 tint, const vec4 multiplier, const vec4 offset) {","\tif(!" + "openfl_uUseColorTransform" + ") {","\t\treturn color * tint;","\t}","\tvec4 unmultiply;","\tif (color.a == 0.0) {","\t\tunmultiply = vec4(0.0, 0.0, 0.0, 0.0);","\t} else {"," \tunmultiply = vec4(color.rgb / color.a, color.a);","\t}"," vec4 result = unmultiply * tint * multiplier;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}","void main(void) {"," vec4 tc = texture2D(" + "openfl_uSampler0" + ", " + "openfl_vTexCoord" + ");"," gl_FragColor = colorTransform(tc, " + "openfl_vColor" + ", " + "openfl_uColorMultiplier" + ", " + "openfl_uColorOffset" + ");","}"]; this.init(); }; $hxClasses["openfl._internal.renderer.opengl.shaders2.DefaultShader"] = openfl__$internal_renderer_opengl_shaders2_DefaultShader; openfl__$internal_renderer_opengl_shaders2_DefaultShader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","DefaultShader"]; openfl__$internal_renderer_opengl_shaders2_DefaultShader.__super__ = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_DefaultShader.prototype = $extend(openfl__$internal_renderer_opengl_shaders2_Shader.prototype,{ init: function(force) { if(force == null) force = false; openfl__$internal_renderer_opengl_shaders2_Shader.prototype.init.call(this,force); this.getAttribLocation("openfl_aPosition"); this.getAttribLocation("openfl_aTexCoord0"); this.getAttribLocation("openfl_aColor"); this.getUniformLocation("openfl_uProjectionMatrix"); this.getUniformLocation("openfl_uSampler0"); this.getUniformLocation("openfl_uColorMultiplier"); this.getUniformLocation("openfl_uColorOffset"); this.getUniformLocation("openfl_uUseColorTransform"); } ,__class__: openfl__$internal_renderer_opengl_shaders2_DefaultShader }); var openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader = function(gl) { openfl__$internal_renderer_opengl_shaders2_Shader.call(this,gl); this.vertexSrc = ["attribute vec2 " + "openfl_aPosition" + ";","attribute vec2 " + "openfl_aTexCoord0" + ";","attribute vec4 " + "openfl_aColor" + ";","uniform mat3 " + "openfl_uProjectionMatrix" + ";","varying vec2 vTexCoord;","varying vec4 vColor;","void main(void) {"," gl_Position = vec4((" + "openfl_uProjectionMatrix" + " * vec3(" + "openfl_aPosition" + ", 1.0)).xy, 0.0, 1.0);"," vTexCoord = " + "openfl_aTexCoord0" + ";"," vColor = " + "openfl_aColor" + ".bgra;","}"]; this.fragmentSrc = ["#ifdef GL_ES","precision lowp float;","#endif","uniform sampler2D " + "openfl_uSampler0" + ";","uniform vec3 " + "openfl_uColor" + ";","uniform bool " + "openfl_uUseTexture" + ";","uniform float " + "openfl_uAlpha" + ";","uniform vec4 " + "openfl_uColorMultiplier" + ";","uniform vec4 " + "openfl_uColorOffset" + ";","varying vec2 vTexCoord;","varying vec4 vColor;","vec4 tmp;","vec4 colorTransform(const vec4 color, const vec4 tint, const vec4 multiplier, const vec4 offset) {"," vec4 unmultiply = vec4(color.rgb / color.a, color.a);"," vec4 result = unmultiply * tint * multiplier;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}","void main(void) {"," if(" + "openfl_uUseTexture" + ") {"," tmp = texture2D(" + "openfl_uSampler0" + ", vTexCoord);"," } else {"," tmp = vec4(" + "openfl_uColor" + ", 1.);"," }"," gl_FragColor = colorTransform(tmp, vColor, " + "openfl_uColorMultiplier" + ", " + "openfl_uColorOffset" + ");","}"]; this.init(); }; $hxClasses["openfl._internal.renderer.opengl.shaders2.DrawTrianglesShader"] = openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader; openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","DrawTrianglesShader"]; openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader.__super__ = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader.prototype = $extend(openfl__$internal_renderer_opengl_shaders2_Shader.prototype,{ init: function(force) { if(force == null) force = false; openfl__$internal_renderer_opengl_shaders2_Shader.prototype.init.call(this,force); this.getAttribLocation("openfl_aPosition"); this.getAttribLocation("openfl_aTexCoord0"); this.getAttribLocation("openfl_aColor"); this.getUniformLocation("openfl_uSampler0"); this.getUniformLocation("openfl_uProjectionMatrix"); this.getUniformLocation("openfl_uColor"); this.getUniformLocation("openfl_uAlpha"); this.getUniformLocation("openfl_uUseTexture"); this.getUniformLocation("openfl_uColorMultiplier"); this.getUniformLocation("openfl_uColorOffset"); } ,__class__: openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader }); var openfl__$internal_renderer_opengl_shaders2_FillShader = function(gl) { openfl__$internal_renderer_opengl_shaders2_Shader.call(this,gl); this.vertexSrc = ["attribute vec2 " + "openfl_aPosition" + ";","uniform mat3 " + "openfl_uTranslationMatrix" + ";","uniform mat3 " + "openfl_uProjectionMatrix" + ";","uniform vec4 " + "openfl_uColor" + ";","uniform float " + "openfl_uAlpha" + ";","uniform vec4 " + "openfl_uColorMultiplier" + ";","uniform vec4 " + "openfl_uColorOffset" + ";","varying vec4 vColor;","vec4 colorTransform(const vec4 color, const float alpha, const vec4 multiplier, const vec4 offset) {"," vec4 result = color * multiplier;"," result.a *= alpha;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}","void main(void) {"," gl_Position = vec4((" + "openfl_uProjectionMatrix" + " * " + "openfl_uTranslationMatrix" + " * vec3(" + "openfl_aPosition" + ", 1.0)).xy, 0.0, 1.0);"," vColor = colorTransform(" + "openfl_uColor" + ", " + "openfl_uAlpha" + ", " + "openfl_uColorMultiplier" + ", " + "openfl_uColorOffset" + ");","}"]; this.fragmentSrc = ["#ifdef GL_ES","precision lowp float;","#endif","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"]; this.init(); }; $hxClasses["openfl._internal.renderer.opengl.shaders2.FillShader"] = openfl__$internal_renderer_opengl_shaders2_FillShader; openfl__$internal_renderer_opengl_shaders2_FillShader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","FillShader"]; openfl__$internal_renderer_opengl_shaders2_FillShader.__super__ = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_FillShader.prototype = $extend(openfl__$internal_renderer_opengl_shaders2_Shader.prototype,{ init: function(force) { if(force == null) force = false; openfl__$internal_renderer_opengl_shaders2_Shader.prototype.init.call(this,force); this.getAttribLocation("openfl_aPosition"); this.getUniformLocation("openfl_uTranslationMatrix"); this.getUniformLocation("openfl_uProjectionMatrix"); this.getUniformLocation("openfl_uColor"); this.getUniformLocation("openfl_uColorMultiplier"); this.getUniformLocation("openfl_uColorOffset"); } ,__class__: openfl__$internal_renderer_opengl_shaders2_FillShader }); var openfl__$internal_renderer_opengl_shaders2_PatternFillShader = function(gl) { openfl__$internal_renderer_opengl_shaders2_Shader.call(this,gl); this.vertexSrc = ["attribute vec2 " + "openfl_aPosition" + ";","uniform mat3 " + "openfl_uTranslationMatrix" + ";","uniform mat3 " + "openfl_uProjectionMatrix" + ";","uniform mat3 " + "openfl_uPatternMatrix" + ";","varying vec2 vPosition;","void main(void) {"," gl_Position = vec4((" + "openfl_uProjectionMatrix" + " * " + "openfl_uTranslationMatrix" + " * vec3(" + "openfl_aPosition" + ", 1.0)).xy, 0.0, 1.0);"," vPosition = (" + "openfl_uPatternMatrix" + " * vec3(" + "openfl_aPosition" + ", 1)).xy;","}"]; this.fragmentSrc = ["#ifdef GL_ES","precision lowp float;","#endif","uniform float " + "openfl_uAlpha" + ";","uniform vec2 " + "openfl_uPatternTL" + ";","uniform vec2 " + "openfl_uPatternBR" + ";","uniform sampler2D " + "openfl_uSampler0" + ";","uniform vec4 " + "openfl_uColorMultiplier" + ";","uniform vec4 " + "openfl_uColorOffset" + ";","varying vec2 vPosition;","vec4 colorTransform(const vec4 color, const float alpha, const vec4 multiplier, const vec4 offset) {"," vec4 unmultiply = vec4(color.rgb / color.a, color.a);"," vec4 result = unmultiply * multiplier;"," result.a *= alpha;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}","void main(void) {"," vec2 pos = mix(" + "openfl_uPatternTL" + ", " + "openfl_uPatternBR" + ", vPosition);"," vec4 tcol = texture2D(" + "openfl_uSampler0" + ", pos);"," gl_FragColor = colorTransform(tcol, " + "openfl_uAlpha" + ", " + "openfl_uColorMultiplier" + ", " + "openfl_uColorOffset" + ");","}"]; this.init(); }; $hxClasses["openfl._internal.renderer.opengl.shaders2.PatternFillShader"] = openfl__$internal_renderer_opengl_shaders2_PatternFillShader; openfl__$internal_renderer_opengl_shaders2_PatternFillShader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","PatternFillShader"]; openfl__$internal_renderer_opengl_shaders2_PatternFillShader.__super__ = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_PatternFillShader.prototype = $extend(openfl__$internal_renderer_opengl_shaders2_Shader.prototype,{ init: function(force) { if(force == null) force = false; openfl__$internal_renderer_opengl_shaders2_Shader.prototype.init.call(this,force); this.getAttribLocation("openfl_aPosition"); this.getUniformLocation("openfl_uTranslationMatrix"); this.getUniformLocation("openfl_uPatternMatrix"); this.getUniformLocation("openfl_uProjectionMatrix"); this.getUniformLocation("openfl_uSampler0"); this.getUniformLocation("openfl_uPatternTL"); this.getUniformLocation("openfl_uPatternBR"); this.getUniformLocation("openfl_uAlpha"); this.getUniformLocation("openfl_uColorMultiplier"); this.getUniformLocation("openfl_uColorOffset"); } ,__class__: openfl__$internal_renderer_opengl_shaders2_PatternFillShader }); var openfl__$internal_renderer_opengl_shaders2_PrimitiveShader = function(gl) { openfl__$internal_renderer_opengl_shaders2_Shader.call(this,gl); this.vertexSrc = ["attribute vec2 " + "openfl_aPosition" + ";","attribute vec4 " + "openfl_aColor" + ";","uniform mat3 " + "openfl_uTranslationMatrix" + ";","uniform mat3 " + "openfl_uProjectionMatrix" + ";","uniform vec4 " + "openfl_uColorMultiplier" + ";","uniform vec4 " + "openfl_uColorOffset" + ";","uniform float " + "openfl_uAlpha" + ";","varying vec4 vColor;","vec4 colorTransform(const vec4 color, const float alpha, const vec4 multiplier, const vec4 offset) {"," vec4 result = color * multiplier;"," result.a *= alpha;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}","void main(void) {"," gl_Position = vec4((" + "openfl_uProjectionMatrix" + " * " + "openfl_uTranslationMatrix" + " * vec3(" + "openfl_aPosition" + ", 1.0)).xy, 0.0, 1.0);"," vColor = colorTransform(" + "openfl_aColor" + ", " + "openfl_uAlpha" + ", " + "openfl_uColorMultiplier" + ", " + "openfl_uColorOffset" + ");","}"]; this.fragmentSrc = ["#ifdef GL_ES","precision lowp float;","#endif","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"]; this.init(); }; $hxClasses["openfl._internal.renderer.opengl.shaders2.PrimitiveShader"] = openfl__$internal_renderer_opengl_shaders2_PrimitiveShader; openfl__$internal_renderer_opengl_shaders2_PrimitiveShader.__name__ = ["openfl","_internal","renderer","opengl","shaders2","PrimitiveShader"]; openfl__$internal_renderer_opengl_shaders2_PrimitiveShader.__super__ = openfl__$internal_renderer_opengl_shaders2_Shader; openfl__$internal_renderer_opengl_shaders2_PrimitiveShader.prototype = $extend(openfl__$internal_renderer_opengl_shaders2_Shader.prototype,{ init: function(force) { if(force == null) force = false; openfl__$internal_renderer_opengl_shaders2_Shader.prototype.init.call(this,force); this.getAttribLocation("openfl_aPosition"); this.getAttribLocation("openfl_aColor"); this.getUniformLocation("openfl_uTranslationMatrix"); this.getUniformLocation("openfl_uProjectionMatrix"); this.getUniformLocation("openfl_uAlpha"); this.getUniformLocation("openfl_uColorMultiplier"); this.getUniformLocation("openfl_uColorOffset"); } ,__class__: openfl__$internal_renderer_opengl_shaders2_PrimitiveShader }); var openfl__$internal_renderer_opengl_utils_BlendModeManager = function(gl) { this.gl = gl; this.currentBlendMode = null; }; $hxClasses["openfl._internal.renderer.opengl.utils.BlendModeManager"] = openfl__$internal_renderer_opengl_utils_BlendModeManager; openfl__$internal_renderer_opengl_utils_BlendModeManager.__name__ = ["openfl","_internal","renderer","opengl","utils","BlendModeManager"]; openfl__$internal_renderer_opengl_utils_BlendModeManager.prototype = { currentBlendMode: null ,gl: null ,destroy: function() { this.gl = null; } ,setBlendMode: function(blendMode,force) { if(force == null) force = false; if(blendMode == null) { blendMode = 10; force = true; } if(!force && this.currentBlendMode == blendMode) return false; this.currentBlendMode = blendMode; switch(blendMode) { case 0: this.gl.blendEquation(32774); this.gl.blendFunc(1,1); break; case 9: this.gl.blendEquation(32774); this.gl.blendFunc(774,771); break; case 12: this.gl.blendEquation(32774); this.gl.blendFunc(1,769); break; case 14: this.gl.blendEquation(32779); this.gl.blendFunc(1,1); break; default: this.gl.blendEquation(32774); this.gl.blendFunc(1,771); } return true; } ,__class__: openfl__$internal_renderer_opengl_utils_BlendModeManager }; var openfl__$internal_renderer_opengl_utils_DrawPath = function(makeArray) { if(makeArray == null) makeArray = true; this.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; this.points = null; this.winding = 0; this.isRemovable = true; this.fillIndex = 0; this.line = new openfl__$internal_renderer_opengl_utils_LineStyle(); this.fill = openfl__$internal_renderer_opengl_utils_FillType.None; if(makeArray) this.points = []; }; $hxClasses["openfl._internal.renderer.opengl.utils.DrawPath"] = openfl__$internal_renderer_opengl_utils_DrawPath; openfl__$internal_renderer_opengl_utils_DrawPath.__name__ = ["openfl","_internal","renderer","opengl","utils","DrawPath"]; openfl__$internal_renderer_opengl_utils_DrawPath.getStack = function(graphics,gl) { return openfl__$internal_renderer_opengl_utils_PathBuiler.build(graphics,gl); }; openfl__$internal_renderer_opengl_utils_DrawPath.prototype = { line: null ,fill: null ,fillIndex: null ,isRemovable: null ,winding: null ,points: null ,type: null ,update: function(line,fill,fillIndex,winding) { this.updateLine(line); this.fill = fill; this.fillIndex = fillIndex; this.winding = winding; } ,updateLine: function(line) { this.line.width = line.width; this.line.color = line.color; if(line.alpha == null) this.line.alpha = 1; else this.line.alpha = line.alpha; if(line.scaleMode == null) this.line.scaleMode = 2; else this.line.scaleMode = line.scaleMode; if(line.caps == null) this.line.caps = 1; else this.line.caps = line.caps; if(line.joints == null) this.line.joints = 2; else this.line.joints = line.joints; this.line.miterLimit = line.miterLimit; } ,__class__: openfl__$internal_renderer_opengl_utils_DrawPath }; var openfl__$internal_renderer_opengl_utils_PathBuiler = function() { }; $hxClasses["openfl._internal.renderer.opengl.utils.PathBuiler"] = openfl__$internal_renderer_opengl_utils_PathBuiler; openfl__$internal_renderer_opengl_utils_PathBuiler.__name__ = ["openfl","_internal","renderer","opengl","utils","PathBuiler"]; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = null; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths = null; openfl__$internal_renderer_opengl_utils_PathBuiler.__line = null; openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = null; openfl__$internal_renderer_opengl_utils_PathBuiler.closePath = function() { var l; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null) l = 0; else l = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length; if(l <= 0) return; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type == openfl__$internal_renderer_opengl_utils_GraphicType.Polygon && openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.fill != openfl__$internal_renderer_opengl_utils_FillType.None) { var sx = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points[0]; var sy = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points[1]; var ex = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points[l - 2]; var ey = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points[l - 1]; if(!(sx == ex && sy == ey)) openfl__$internal_renderer_opengl_utils_PathBuiler.lineTo(sx,sy); } }; openfl__$internal_renderer_opengl_utils_PathBuiler.endFill = function() { openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.None; openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex++; }; openfl__$internal_renderer_opengl_utils_PathBuiler.moveTo = function(x,y) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(x); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(y); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); }; openfl__$internal_renderer_opengl_utils_PathBuiler.lineTo = function(x,y) { var points = openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points; var push_point = true; if(points.length > 1) { var lastX = points[points.length - 2]; var lastY = points[points.length - 1]; if(lastX == x && lastY == y) push_point = false; } if(push_point == true) { openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(x); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(y); } }; openfl__$internal_renderer_opengl_utils_PathBuiler.curveTo = function(cx,cy,x,y) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } openfl__$internal_renderer_GraphicsPaths.curveTo(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points,cx,cy,x,y); }; openfl__$internal_renderer_opengl_utils_PathBuiler.cubicCurveTo = function(cx,cy,cx2,cy2,x,y) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } openfl__$internal_renderer_GraphicsPaths.cubicCurveTo(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points,cx,cy,cx2,cy2,x,y); }; openfl__$internal_renderer_opengl_utils_PathBuiler.graphicDataPop = function() { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); }; openfl__$internal_renderer_opengl_utils_PathBuiler.build = function(graphics,gl) { var glStack = null; var bounds = graphics.__bounds; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths = []; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__line = new openfl__$internal_renderer_opengl_utils_LineStyle(); openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.None; openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex = 0; glStack = graphics.__glStack[openfl__$internal_renderer_opengl_GLRenderer.glContextId]; if(glStack == null) glStack = graphics.__glStack[openfl__$internal_renderer_opengl_GLRenderer.glContextId] = new openfl__$internal_renderer_opengl_utils_GLStack(gl); if(!graphics.__visible || graphics.__commands.get_length() == 0 || bounds == null || bounds.width == 0 || bounds.height == 0) { } else { var data = new openfl__$internal_renderer_DrawCommandReader(graphics.__commands); var _g = 0; var _g1 = graphics.__commands.types; while(_g < _g1.length) { var type = _g1[_g]; ++_g; switch(type[1]) { case 0: var c = data.readBeginBitmapFill(); openfl__$internal_renderer_opengl_utils_PathBuiler.endFill(); if(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c) != null) openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.Texture(openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_bitmap(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_matrix(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_repeat(c),openfl__$internal_renderer__$DrawCommandReader_BeginBitmapFillView_$Impl_$.get_smooth(c)); else openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.None; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = []; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } break; case 1: var c1 = data.readBeginFill(); openfl__$internal_renderer_opengl_utils_PathBuiler.endFill(); if(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c1) > 0) openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.Color(openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_color(c1) & 16777215,openfl__$internal_renderer__$DrawCommandReader_BeginFillView_$Impl_$.get_alpha(c1)); else openfl__$internal_renderer_opengl_utils_PathBuiler.__fill = openfl__$internal_renderer_opengl_utils_FillType.None; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = []; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } break; case 3: var c2 = data.readCubicCurveTo(); openfl__$internal_renderer_opengl_utils_PathBuiler.cubicCurveTo(openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX1(c2),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY1(c2),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlX2(c2),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_controlY2(c2),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorX(c2),openfl__$internal_renderer__$DrawCommandReader_CubicCurveToView_$Impl_$.get_anchorY(c2)); break; case 4: var c3 = data.readCurveTo(); openfl__$internal_renderer_opengl_utils_PathBuiler.curveTo(openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlX(c3),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_controlY(c3),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorX(c3),openfl__$internal_renderer__$DrawCommandReader_CurveToView_$Impl_$.get_anchorY(c3)); break; case 5: var c4 = data.readDrawCircle(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Circle; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = [openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_x(c4),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_y(c4),openfl__$internal_renderer__$DrawCommandReader_DrawCircleView_$Impl_$.get_radius(c4)]; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 6: var c5 = data.readDrawEllipse(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Ellipse; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = [openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_x(c5),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_y(c5),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_width(c5),openfl__$internal_renderer__$DrawCommandReader_DrawEllipseView_$Impl_$.get_height(c5)]; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 8: var c6 = data.readDrawRect(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Rectangle(false); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = [openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_x(c6),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_y(c6),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_width(c6),openfl__$internal_renderer__$DrawCommandReader_DrawRectView_$Impl_$.get_height(c6)]; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 9: var c7 = data.readDrawRoundRect(); var x = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_x(c7); var y = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_y(c7); var width = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_width(c7); var height = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_height(c7); var rx = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseWidth(c7); var ry = openfl__$internal_renderer__$DrawCommandReader_DrawRoundRectView_$Impl_$.get_ellipseHeight(c7); if(ry == null) ry = rx; rx *= 0.5; ry *= 0.5; if(rx > width / 2) rx = width / 2; if(ry > height / 2) ry = height / 2; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Rectangle(true); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = [x,y,width,height,rx,ry]; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 12: var c8 = data.readEndFill(); openfl__$internal_renderer_opengl_utils_PathBuiler.endFill(); break; case 15: var c9 = data.readLineStyle(); openfl__$internal_renderer_opengl_utils_PathBuiler.__line = new openfl__$internal_renderer_opengl_utils_LineStyle(); if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c9) == null || (function($this) { var $r; var f = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c9); $r = isNaN(f); return $r; }(this)) || openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c9) < 0) openfl__$internal_renderer_opengl_utils_PathBuiler.__line.width = 0; else if(openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c9) == 0) openfl__$internal_renderer_opengl_utils_PathBuiler.__line.width = 1; else openfl__$internal_renderer_opengl_utils_PathBuiler.__line.width = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_thickness(c9); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.color = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_color(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.alpha = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_alpha(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.scaleMode = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_scaleMode(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.caps = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_caps(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.joints = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_joints(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__line.miterLimit = openfl__$internal_renderer__$DrawCommandReader_LineStyleView_$Impl_$.get_miterLimit(c9); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points = []; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 16: var c10 = data.readLineTo(); openfl__$internal_renderer_opengl_utils_PathBuiler.lineTo(openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_x(c10),openfl__$internal_renderer__$DrawCommandReader_LineToView_$Impl_$.get_y(c10)); break; case 17: var c11 = data.readMoveTo(); openfl__$internal_renderer_opengl_utils_PathBuiler.moveTo(openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_x(c11),openfl__$internal_renderer__$DrawCommandReader_MoveToView_$Impl_$.get_y(c11)); break; case 11: var c12 = data.readDrawTriangles(); var uvtData = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_uvtData(c12); var vertices = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_vertices(c12); var indices = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_indices(c12); var culling = openfl__$internal_renderer__$DrawCommandReader_DrawTrianglesView_$Impl_$.get_culling(c12); var isColor; { var _g2 = openfl__$internal_renderer_opengl_utils_PathBuiler.__fill; switch(_g2[1]) { case 1: isColor = true; break; default: isColor = false; } } if(isColor && uvtData != null) continue; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); if(uvtData == null) { var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; uvtData = this1; { var _g21 = openfl__$internal_renderer_opengl_utils_PathBuiler.__fill; switch(_g21[1]) { case 2: var b = _g21[2]; var _g4 = 0; var _g3 = vertices.length / 2 | 0; while(_g4 < _g3) { var i = _g4++; if(!uvtData.fixed) { uvtData.length++; if(uvtData.data.length < uvtData.length) { var data1; var this3; this3 = new Array(uvtData.data.length + 10); data1 = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(uvtData.data,0,data1,0,uvtData.data.length); uvtData.data = data1; } uvtData.data[uvtData.length - 1] = vertices.data[i * 2] / b.width; } uvtData.length; if(!uvtData.fixed) { uvtData.length++; if(uvtData.data.length < uvtData.length) { var data2; var this4; this4 = new Array(uvtData.data.length + 10); data2 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(uvtData.data,0,data2,0,uvtData.data.length); uvtData.data = data2; } uvtData.data[uvtData.length - 1] = vertices.data[i * 2 + 1] / b.height; } uvtData.length; } break; default: } } } openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.DrawTriangles(vertices,indices,uvtData,culling,null,0); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable = false; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 10: var c13 = data.readDrawTiles(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex++; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(false); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.DrawTiles(openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_sheet(c13),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_tileData(c13),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_smooth(c13),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_flags(c13),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_shader(c13),openfl__$internal_renderer__$DrawCommandReader_DrawTilesView_$Impl_$.get_count(c13)); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable = false; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 7: var c14 = data.readDrawPath(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); var _g22 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_winding(c14); switch(_g22) { case "evenOdd": openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding = 0; break; case "nonZero": openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding = 1; break; default: openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding = 0; } var command; var cx; var cy; var cx2; var cy2; var ax; var ay; var idx = 0; var _g31 = 0; var _g23; var this5 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_commands(c14); _g23 = this5.length; while(_g31 < _g23) { var i1 = _g31++; var this6 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_commands(c14); command = this6.data[i1]; switch(command) { case 1: var this7 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this7.data[idx]; var this8 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this8.data[idx + 1]; idx += 2; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(ax); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(ay); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 4: var this9 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this9.data[idx + 2]; var this10 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this10.data[idx + 3]; idx += 4; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(ax); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(ay); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; case 2: var this11 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this11.data[idx]; var this12 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this12.data[idx + 1]; idx += 2; openfl__$internal_renderer_opengl_utils_PathBuiler.lineTo(ax,ay); break; case 5: var this13 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this13.data[idx + 2]; var this14 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this14.data[idx + 3]; idx += 4; openfl__$internal_renderer_opengl_utils_PathBuiler.lineTo(ax,ay); break; case 3: var this15 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cx = this15.data[idx]; var this16 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cy = this16.data[idx + 1]; var this17 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this17.data[idx + 2]; var this18 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this18.data[idx + 3]; idx += 4; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } openfl__$internal_renderer_GraphicsPaths.curveTo(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points,cx,cy,ax,ay); break; case 6: var this19 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cx = this19.data[idx]; var this20 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cy = this20.data[idx + 1]; var this21 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cx2 = this21.data[idx + 2]; var this22 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); cy2 = this22.data[idx + 3]; var this23 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ax = this23.data[idx + 4]; var this24 = openfl__$internal_renderer__$DrawCommandReader_DrawPathView_$Impl_$.get_data(c14); ay = this24.data[idx + 5]; idx += 6; if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0) { if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.push(0); openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); } openfl__$internal_renderer_GraphicsPaths.cubicCurveTo(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points,cx,cy,cx2,cy2,ax,ay); break; default: } } openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding = 0; break; case 18: var c15 = data.readOverrideMatrix(); if(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable && (openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points == null || openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.points.length == 0)) openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.pop(); else openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath = new openfl__$internal_renderer_opengl_utils_DrawPath(); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.update(openfl__$internal_renderer_opengl_utils_PathBuiler.__line,openfl__$internal_renderer_opengl_utils_PathBuiler.__fill,openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex,openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.type = openfl__$internal_renderer_opengl_utils_GraphicType.OverrideMatrix(openfl__$internal_renderer__$DrawCommandReader_OverrideMatrixView_$Impl_$.get_matrix(c15)); openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath.isRemovable = false; openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths.push(openfl__$internal_renderer_opengl_utils_PathBuiler.__currentPath); break; default: data.skip(type); } } openfl__$internal_renderer_opengl_utils_PathBuiler.closePath(); data.destroy(); } graphics.__drawPaths = openfl__$internal_renderer_opengl_utils_PathBuiler.__drawPaths; return glStack; }; var openfl__$internal_renderer_opengl_utils_LineStyle = function() { this.width = 0; this.color = 0; this.alpha = 1; this.scaleMode = 2; this.caps = 1; this.joints = 2; this.miterLimit = 3; }; $hxClasses["openfl._internal.renderer.opengl.utils.LineStyle"] = openfl__$internal_renderer_opengl_utils_LineStyle; openfl__$internal_renderer_opengl_utils_LineStyle.__name__ = ["openfl","_internal","renderer","opengl","utils","LineStyle"]; openfl__$internal_renderer_opengl_utils_LineStyle.prototype = { width: null ,color: null ,alpha: null ,scaleMode: null ,caps: null ,joints: null ,miterLimit: null ,__class__: openfl__$internal_renderer_opengl_utils_LineStyle }; var openfl__$internal_renderer_opengl_utils_FillType = $hxClasses["openfl._internal.renderer.opengl.utils.FillType"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","FillType"], __constructs__ : ["None","Color","Texture","Gradient"] }; openfl__$internal_renderer_opengl_utils_FillType.None = ["None",0]; openfl__$internal_renderer_opengl_utils_FillType.None.toString = $estr; openfl__$internal_renderer_opengl_utils_FillType.None.__enum__ = openfl__$internal_renderer_opengl_utils_FillType; openfl__$internal_renderer_opengl_utils_FillType.Color = function(color,alpha) { var $x = ["Color",1,color,alpha]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_FillType; $x.toString = $estr; return $x; }; openfl__$internal_renderer_opengl_utils_FillType.Texture = function(bitmap,matrix,repeat,smooth) { var $x = ["Texture",2,bitmap,matrix,repeat,smooth]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_FillType; $x.toString = $estr; return $x; }; openfl__$internal_renderer_opengl_utils_FillType.Gradient = ["Gradient",3]; openfl__$internal_renderer_opengl_utils_FillType.Gradient.toString = $estr; openfl__$internal_renderer_opengl_utils_FillType.Gradient.__enum__ = openfl__$internal_renderer_opengl_utils_FillType; var openfl__$internal_renderer_opengl_utils_FilterManager = function(gl,transparent) { this.transparent = transparent; this.filterStack = []; this.offsetX = 0; this.offsetY = 0; this.setContext(gl); }; $hxClasses["openfl._internal.renderer.opengl.utils.FilterManager"] = openfl__$internal_renderer_opengl_utils_FilterManager; openfl__$internal_renderer_opengl_utils_FilterManager.__name__ = ["openfl","_internal","renderer","opengl","utils","FilterManager"]; openfl__$internal_renderer_opengl_utils_FilterManager.prototype = { buffer: null ,colorArray: null ,colorBuffer: null ,defaultShader: null ,filterStack: null ,gl: null ,height: null ,indexBuffer: null ,offsetX: null ,offsetY: null ,renderSession: null ,texturePool: null ,transparent: null ,uvArray: null ,uvBuffer: null ,vertexArray: null ,vertexBuffer: null ,width: null ,applyFilterPass: function(filter,filterArea,width,height) { } ,begin: function(renderSession,buffer) { this.renderSession = renderSession; this.defaultShader = renderSession.shaderManager.defaultShader; this.width = 0; this.height = 0; this.buffer = buffer; } ,destroy: function() { var gl = this.gl; this.filterStack = null; this.offsetX = 0; this.offsetY = 0; var _g = 0; var _g1 = this.texturePool; while(_g < _g1.length) { var texture = _g1[_g]; ++_g; texture.destroy(); } this.texturePool = null; gl.deleteBuffer(this.vertexBuffer); gl.deleteBuffer(this.uvBuffer); gl.deleteBuffer(this.colorBuffer); gl.deleteBuffer(this.indexBuffer); } ,initShaderBuffers: function() { var gl = this.gl; this.vertexBuffer = gl.createBuffer(); this.uvBuffer = gl.createBuffer(); this.colorBuffer = gl.createBuffer(); this.indexBuffer = gl.createBuffer(); var array = [0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; this.vertexArray = this1; gl.bindBuffer(gl.ARRAY_BUFFER,this.vertexBuffer); gl.bufferData(gl.ARRAY_BUFFER,this.vertexArray,gl.STATIC_DRAW); var array1 = [0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0]; var this2; if(array1 != null) this2 = new Float32Array(array1); else this2 = null; this.uvArray = this2; gl.bindBuffer(gl.ARRAY_BUFFER,this.uvBuffer); gl.bufferData(gl.ARRAY_BUFFER,this.uvArray,gl.STATIC_DRAW); var array2 = [1.0,16777215,1.0,16777215,1.0,16777215,1.0,16777215]; var this3; if(array2 != null) this3 = new Float32Array(array2); else this3 = null; this.colorArray = this3; gl.bindBuffer(gl.ARRAY_BUFFER,this.colorBuffer); gl.bufferData(gl.ARRAY_BUFFER,this.colorArray,gl.STATIC_DRAW); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,(function($this) { var $r; var array3 = [0,1,2,1,3,2]; var this4; if(array3 != null) this4 = new Uint16Array(array3); else this4 = null; $r = this4; return $r; }(this)),gl.STATIC_DRAW); } ,popFilter: function() { } ,pushFilter: function(filterBlock) { } ,setContext: function(gl) { this.gl = gl; this.texturePool = []; this.initShaderBuffers(); } ,__class__: openfl__$internal_renderer_opengl_utils_FilterManager }; var openfl__$internal_renderer_opengl_utils_GLMaskManager = function(renderSession) { openfl__$internal_renderer_AbstractMaskManager.call(this,renderSession); this.setContext(renderSession.gl); this.clips = []; }; $hxClasses["openfl._internal.renderer.opengl.utils.GLMaskManager"] = openfl__$internal_renderer_opengl_utils_GLMaskManager; openfl__$internal_renderer_opengl_utils_GLMaskManager.__name__ = ["openfl","_internal","renderer","opengl","utils","GLMaskManager"]; openfl__$internal_renderer_opengl_utils_GLMaskManager.__super__ = openfl__$internal_renderer_AbstractMaskManager; openfl__$internal_renderer_opengl_utils_GLMaskManager.prototype = $extend(openfl__$internal_renderer_AbstractMaskManager.prototype,{ gl: null ,clips: null ,currentClip: null ,savedClip: null ,destroy: function() { this.gl = null; } ,pushRect: function(rect,transform) { if(rect == null) return; var m = transform.clone(); openfl__$internal_renderer_opengl_GLBitmap.flipMatrix(m,this.renderSession.renderer.viewport.height); var clip = rect.clone(); clip.__transform(clip,m); if(this.currentClip != null) clip = this.currentClip.intersection(clip); var restartBatch = this.currentClip == null || clip.isEmpty() || this.currentClip.containsRect(clip); this.clips.push(clip); this.currentClip = clip; if(restartBatch) { this.renderSession.spriteBatch.stop(); this.renderSession.spriteBatch.start(this.currentClip); } } ,pushMask: function(mask) { this.renderSession.spriteBatch.stop(); this.renderSession.stencilManager.pushMask(mask,this.renderSession); this.renderSession.spriteBatch.start(this.currentClip); } ,popMask: function() { this.renderSession.spriteBatch.stop(); this.renderSession.stencilManager.popMask(null,this.renderSession); this.renderSession.spriteBatch.start(this.currentClip); } ,popRect: function() { this.renderSession.spriteBatch.stop(); this.clips.pop(); this.currentClip = this.clips[this.clips.length - 1]; this.renderSession.spriteBatch.start(this.currentClip); } ,saveState: function() { this.savedClip = this.currentClip; this.currentClip = null; } ,restoreState: function() { this.currentClip = this.savedClip; this.savedClip = null; } ,setContext: function(gl) { if(this.renderSession != null) this.renderSession.gl = gl; this.gl = gl; } ,__class__: openfl__$internal_renderer_opengl_utils_GLMaskManager }); var openfl__$internal_renderer_opengl_utils_VertexAttribute = function(components,type,normalized,name,defaultValue) { if(normalized == null) normalized = false; this.enabled = true; this.normalized = false; this.components = components; this.type = type; this.normalized = normalized; this.name = name; if(defaultValue == null) { var this1; if(components != null) this1 = new Float32Array(components); else this1 = null; this.defaultValue = this1; } else this.defaultValue = defaultValue; }; $hxClasses["openfl._internal.renderer.opengl.utils.VertexAttribute"] = openfl__$internal_renderer_opengl_utils_VertexAttribute; openfl__$internal_renderer_opengl_utils_VertexAttribute.__name__ = ["openfl","_internal","renderer","opengl","utils","VertexAttribute"]; openfl__$internal_renderer_opengl_utils_VertexAttribute.prototype = { components: null ,normalized: null ,type: null ,name: null ,enabled: null ,defaultValue: null ,copy: function() { return new openfl__$internal_renderer_opengl_utils_VertexAttribute(this.components,this.type,this.normalized,this.name,this.defaultValue); } ,getElementsBytes: function() { var _g = this.type; switch(_g) { case 5120:case 5121: return 1; case 5122:case 5123: return 2; default: return 4; } } ,get_elements: function() { return Math.floor(this.components * this.getElementsBytes() / 4); } ,__class__: openfl__$internal_renderer_opengl_utils_VertexAttribute ,__properties__: {get_elements:"get_elements"} }; var openfl_geom_Rectangle = function(x,y,width,height) { if(height == null) height = 0; if(width == null) width = 0; if(y == null) y = 0; if(x == null) x = 0; this.x = x; this.y = y; this.width = width; this.height = height; }; $hxClasses["openfl.geom.Rectangle"] = openfl_geom_Rectangle; openfl_geom_Rectangle.__name__ = ["openfl","geom","Rectangle"]; openfl_geom_Rectangle.prototype = { height: null ,width: null ,x: null ,y: null ,clone: function() { return new openfl_geom_Rectangle(this.x,this.y,this.width,this.height); } ,contains: function(x,y) { return x >= this.x && y >= this.y && x < this.get_right() && y < this.get_bottom(); } ,containsPoint: function(point) { return this.contains(point.x,point.y); } ,containsRect: function(rect) { if(rect.width <= 0 || rect.height <= 0) return rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right() && rect.get_bottom() < this.get_bottom(); else return rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right() && rect.get_bottom() <= this.get_bottom(); } ,copyFrom: function(sourceRect) { this.x = sourceRect.x; this.y = sourceRect.y; this.width = sourceRect.width; this.height = sourceRect.height; } ,equals: function(toCompare) { return toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width && this.height == toCompare.height; } ,inflate: function(dx,dy) { this.x -= dx; this.width += dx * 2; this.y -= dy; this.height += dy * 2; } ,inflatePoint: function(point) { this.inflate(point.x,point.y); } ,intersection: function(toIntersect) { var x0; if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x; var x1; if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right(); if(x1 <= x0) return new openfl_geom_Rectangle(); var y0; if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y; var y1; if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom(); if(y1 <= y0) return new openfl_geom_Rectangle(); return new openfl_geom_Rectangle(x0,y0,x1 - x0,y1 - y0); } ,intersects: function(toIntersect) { var x0; if(this.x < toIntersect.x) x0 = toIntersect.x; else x0 = this.x; var x1; if(this.get_right() > toIntersect.get_right()) x1 = toIntersect.get_right(); else x1 = this.get_right(); if(x1 <= x0) return false; var y0; if(this.y < toIntersect.y) y0 = toIntersect.y; else y0 = this.y; var y1; if(this.get_bottom() > toIntersect.get_bottom()) y1 = toIntersect.get_bottom(); else y1 = this.get_bottom(); return y1 > y0; } ,isEmpty: function() { return this.width <= 0 || this.height <= 0; } ,offset: function(dx,dy) { this.x += dx; this.y += dy; } ,offsetPoint: function(point) { this.x += point.x; this.y += point.y; } ,setEmpty: function() { this.x = this.y = this.width = this.height = 0; } ,setTo: function(xa,ya,widtha,heighta) { this.x = xa; this.y = ya; this.width = widtha; this.height = heighta; } ,toString: function() { return "(x=" + this.x + ", y=" + this.y + ", width=" + this.width + ", height=" + this.height + ")"; } ,union: function(toUnion) { if(this.width == 0 || this.height == 0) return toUnion.clone(); else if(toUnion.width == 0 || toUnion.height == 0) return this.clone(); var x0; if(this.x > toUnion.x) x0 = toUnion.x; else x0 = this.x; var x1; if(this.get_right() < toUnion.get_right()) x1 = toUnion.get_right(); else x1 = this.get_right(); var y0; if(this.y > toUnion.y) y0 = toUnion.y; else y0 = this.y; var y1; if(this.get_bottom() < toUnion.get_bottom()) y1 = toUnion.get_bottom(); else y1 = this.get_bottom(); return new openfl_geom_Rectangle(x0,y0,x1 - x0,y1 - y0); } ,__contract: function(x,y,width,height) { if(this.width == 0 && this.height == 0) return; var cacheRight = this.get_right(); var cacheBottom = this.get_bottom(); if(this.x < x) this.x = x; if(this.y < y) this.y = y; if(this.get_right() > x + width) this.width = x + width - this.x; if(this.get_bottom() > y + height) this.height = y + height - this.y; } ,__expand: function(x,y,width,height) { if(this.width == 0 && this.height == 0) { this.x = x; this.y = y; this.width = width; this.height = height; return; } var cacheRight = this.get_right(); var cacheBottom = this.get_bottom(); if(this.x > x) { this.x = x; this.width = cacheRight - x; } if(this.y > y) { this.y = y; this.height = cacheBottom - y; } if(cacheRight < x + width) this.width = x + width - this.x; if(cacheBottom < y + height) this.height = y + height - this.y; } ,__toLimeRectangle: function() { return new lime_math_Rectangle(this.x,this.y,this.width,this.height); } ,__transform: function(rect,m) { var tx0 = m.a * this.x + m.c * this.y; var tx1 = tx0; var ty0 = m.b * this.x + m.d * this.y; var ty1 = ty0; var tx = m.a * (this.x + this.width) + m.c * this.y; var ty = m.b * (this.x + this.width) + m.d * this.y; if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; tx = m.a * (this.x + this.width) + m.c * (this.y + this.height); ty = m.b * (this.x + this.width) + m.d * (this.y + this.height); if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; tx = m.a * this.x + m.c * (this.y + this.height); ty = m.b * this.x + m.d * (this.y + this.height); if(tx < tx0) tx0 = tx; if(ty < ty0) ty0 = ty; if(tx > tx1) tx1 = tx; if(ty > ty1) ty1 = ty; rect.setTo(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0); } ,get_bottom: function() { return this.y + this.height; } ,set_bottom: function(b) { this.height = b - this.y; return b; } ,get_bottomRight: function() { return new openfl_geom_Point(this.x + this.width,this.y + this.height); } ,set_bottomRight: function(p) { this.width = p.x - this.x; this.height = p.y - this.y; return p.clone(); } ,get_left: function() { return this.x; } ,set_left: function(l) { this.width -= l - this.x; this.x = l; return l; } ,get_right: function() { return this.x + this.width; } ,set_right: function(r) { this.width = r - this.x; return r; } ,get_size: function() { return new openfl_geom_Point(this.width,this.height); } ,set_size: function(p) { this.width = p.x; this.height = p.y; return p.clone(); } ,get_top: function() { return this.y; } ,set_top: function(t) { this.height -= t - this.y; this.y = t; return t; } ,get_topLeft: function() { return new openfl_geom_Point(this.x,this.y); } ,set_topLeft: function(p) { this.x = p.x; this.y = p.y; return p.clone(); } ,__class__: openfl_geom_Rectangle ,__properties__: {set_topLeft:"set_topLeft",get_topLeft:"get_topLeft",set_top:"set_top",get_top:"get_top",set_size:"set_size",get_size:"get_size",set_right:"set_right",get_right:"get_right",set_left:"set_left",get_left:"get_left",set_bottomRight:"set_bottomRight",get_bottomRight:"get_bottomRight",set_bottom:"set_bottom",get_bottom:"get_bottom"} }; var openfl__$internal_renderer_opengl_utils_GraphicsRenderer = function() { }; $hxClasses["openfl._internal.renderer.opengl.utils.GraphicsRenderer"] = openfl__$internal_renderer_opengl_utils_GraphicsRenderer; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.__name__ = ["openfl","_internal","renderer","opengl","utils","GraphicsRenderer"]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.lastVertsBuffer = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.lastBucketMode = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.lastTexture = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.lastTextureRepeat = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.lastTextureSmooth = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.overrideMatrix = null; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildCircle = function(path,glStack,localCoords) { if(localCoords == null) localCoords = false; var rectData = path.points; var x = rectData[0]; var y = rectData[1]; var rx = rectData[2]; var ry; if(rectData.length == 3) ry = rx; else ry = rectData[3]; if(path.type == openfl__$internal_renderer_opengl_utils_GraphicType.Ellipse) { rx /= 2; ry /= 2; x += rx; y += ry; } if(localCoords) { x -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } var totalSegs = 40; var seg = Math.PI * 2 / totalSegs; var bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); if(fill != null) { var verts = fill.verts; var indices = fill.indices; var vertPos = verts.length / 2 | 0; indices.push(vertPos); var _g1 = 0; var _g = totalSegs + 1; while(_g1 < _g) { var i = _g1++; verts.push(x); verts.push(y); verts.push(x + Math.sin(seg * i) * rx); verts.push(y + Math.cos(seg * i) * ry); indices.push(vertPos++); indices.push(vertPos++); } indices.push(vertPos - 1); } if(path.line.width > 0) { var tempPoints = path.points; path.points = []; openfl__$internal_renderer_GraphicsPaths.ellipse(path.points,x,y,rx,ry,totalSegs); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine(path,bucket); path.points = tempPoints; } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildComplexPoly = function(path,glStack,localCoords) { if(localCoords == null) localCoords = false; var bucket = null; if(path.points.length >= 6) { var points = path.points.slice(); if(localCoords) { var _g1 = 0; var _g = points.length / 2 | 0; while(_g1 < _g) { var i = _g1++; points[i * 2] -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; points[i * 2 + 1] -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } } bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); fill.drawMode = glStack.gl.TRIANGLE_FAN; fill.verts = points; var indices = fill.indices; var length = points.length / 2 | 0; var _g2 = 0; while(_g2 < length) { var i1 = _g2++; indices.push(i1); } } if(path.line.width > 0) { if(bucket == null) bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine(path,bucket,localCoords); } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine = function(path,bucket,localCoords) { if(localCoords == null) localCoords = false; var points = path.points; if(points.length == 0) return; var line = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Line); if(localCoords) { var _g1 = 0; var _g = points.length / 2 | 0; while(_g1 < _g) { var i = _g1++; points[i * 2] -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; points[i * 2 + 1] -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } } var firstPoint = new openfl_geom_Point(points[0],points[1]); var lastPoint = new openfl_geom_Point(points[points.length - 2 | 0],points[points.length - 1 | 0]); if(firstPoint.x == lastPoint.x && firstPoint.y == lastPoint.y) { points = points.slice(); points.pop(); points.pop(); lastPoint = new openfl_geom_Point(points[points.length - 2 | 0],points[points.length - 1 | 0]); var midPointX = lastPoint.x + (firstPoint.x - lastPoint.x) * 0.5; var midPointY = lastPoint.y + (firstPoint.y - lastPoint.y) * 0.5; points.unshift(midPointY); points.unshift(midPointX); points.push(midPointX); points.push(midPointY); } var verts = line.verts; var indices = line.indices; var length = points.length / 2 | 0; var indexCount = points.length; var indexStart = verts.length / 6 | 0; var width = path.line.width / 2; var color = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.hex2rgb(path.line.color); var alpha = path.line.alpha; var r = color[0]; var g = color[1]; var b = color[2]; var px; var py; var p1x; var p1y; var p2x; var p2y; var p3x; var p3y; var perpx; var perpy; var perp2x; var perp2y; var perp3x; var perp3y; var a1; var b1; var c1; var a2; var b2; var c2; var denom; var pdist; var dist; p1x = points[0]; p1y = points[1]; p2x = points[2]; p2y = points[3]; perpx = -(p1y - p2y); perpy = p1x - p2x; dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy)); perpx = perpx / dist; perpy = perpy / dist; perpx = perpx * width; perpy = perpy * width; verts.push(p1x - perpx); verts.push(p1y - perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p1x + perpx); verts.push(p1y + perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); var _g11 = 1; var _g2 = length - 1; while(_g11 < _g2) { var i1 = _g11++; p1x = points[(i1 - 1) * 2]; p1y = points[(i1 - 1) * 2 + 1]; p2x = points[i1 * 2]; p2y = points[i1 * 2 + 1]; p3x = points[(i1 + 1) * 2]; p3y = points[(i1 + 1) * 2 + 1]; perpx = -(p1y - p2y); perpy = p1x - p2x; dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy)); perpx = perpx / dist; perpy = perpy / dist; perpx = perpx * width; perpy = perpy * width; perp2x = -(p2y - p3y); perp2y = p2x - p3x; dist = Math.sqrt(Math.abs(perp2x * perp2x + perp2y * perp2y)); perp2x = perp2x / dist; perp2y = perp2y / dist; perp2x = perp2x * width; perp2y = perp2y * width; a1 = -perpy + p1y - (-perpy + p2y); b1 = -perpx + p2x - (-perpx + p1x); c1 = (-perpx + p1x) * (-perpy + p2y) - (-perpx + p2x) * (-perpy + p1y); a2 = -perp2y + p3y - (-perp2y + p2y); b2 = -perp2x + p2x - (-perp2x + p3x); c2 = (-perp2x + p3x) * (-perp2y + p2y) - (-perp2x + p2x) * (-perp2y + p3y); denom = a1 * b2 - a2 * b1; if(Math.abs(denom) < 0.1) { denom += 10.1; verts.push(p2x - perpx); verts.push(p2y - perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p2x + perpx); verts.push(p2y + perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); continue; } px = (b1 * c2 - b2 * c1) / denom; py = (a2 * c1 - a1 * c2) / denom; pdist = (px - p2x) * (px - p2x) + (py - p2y) + (py - p2y); if(pdist > 19600) { perp3x = perpx - perp2x; perp3y = perpy - perp2y; dist = Math.sqrt(Math.abs(perp3x * perp3x + perp3y * perp3y)); perp3x = perp3x / dist; perp3y = perp3y / dist; perp3x = perp3x * width; perp3y = perp3y * width; verts.push(p2x - perp3x); verts.push(p2y - perp3y); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p2x + perp3x); verts.push(p2y + perp3y); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p2x - perp3x); verts.push(p2y - perp3y); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); indexCount++; } else { verts.push(px); verts.push(py); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p2x - (px - p2x)); verts.push(p2y - (py - p2y)); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); } } p1x = points[(length - 2) * 2]; p1y = points[(length - 2) * 2 + 1]; p2x = points[(length - 1) * 2]; p2y = points[(length - 1) * 2 + 1]; perpx = -(p1y - p2y); perpy = p1x - p2x; dist = Math.sqrt(Math.abs(perpx * perpx + perpy * perpy)); if(!isFinite(dist)) haxe_Log.trace(perpx * perpx + perpy * perpy,{ fileName : "GraphicsRenderer.hx", lineNumber : 407, className : "openfl._internal.renderer.opengl.utils.GraphicsRenderer", methodName : "buildLine"}); perpx = perpx / dist; perpy = perpy / dist; perpx = perpx * width; perpy = perpy * width; verts.push(p2x - perpx); verts.push(p2y - perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); verts.push(p2x + perpx); verts.push(p2y + perpy); verts.push(r); verts.push(g); verts.push(b); verts.push(alpha); indices.push(indexStart); var _g3 = 0; while(_g3 < indexCount) { var i2 = _g3++; indices.push(indexStart++); } indices.push(indexStart - 1); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildPoly = function(path,glStack) { if(path.points.length < 6) return; var points = path.points; var l = points.length; var sx = points[0]; var sy = points[1]; var ex = points[l - 2]; var ey = points[l - 1]; if(sx != ex || sy != ey) { points.push(sx); points.push(sy); } var length = points.length / 2 | 0; var bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); var verts = fill.verts; var indices = fill.indices; if(fill != null) { var triangles = []; openfl__$internal_renderer_PolyK.triangulate(triangles,points); var vertPos = verts.length / 2; var i = 0; while(i < triangles.length) { indices.push(triangles[i] + vertPos | 0); indices.push(triangles[i] + vertPos | 0); indices.push(triangles[i + 1] + vertPos | 0); indices.push(triangles[i + 2] + vertPos | 0); indices.push(triangles[i + 2] + vertPos | 0); i += 3; } var _g = 0; while(_g < length) { var i1 = _g++; verts.push(points[i1 * 2]); verts.push(points[i1 * 2 + 1]); } } if(path.line.width > 0) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine(path,bucket); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildRectangle = function(path,glStack,localCoords) { if(localCoords == null) localCoords = false; var rectData = path.points; var x = rectData[0]; var y = rectData[1]; var width = rectData[2]; var height = rectData[3]; if(localCoords) { x -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } var bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); if(fill != null) { var verts = fill.verts; var indices = fill.indices; var vertPos = verts.length / 2 | 0; verts.push(x); verts.push(y); verts.push(x + width); verts.push(y); verts.push(x); verts.push(y + height); verts.push(x + width); verts.push(y + height); indices.push(vertPos); indices.push(vertPos); indices.push(vertPos + 1); indices.push(vertPos + 2); indices.push(vertPos + 3); indices.push(vertPos + 3); } if(path.line.width > 0) { var tempPoints = path.points; path.points = [x,y,x + width,y,x + width,y + height,x,y + height,x,y]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine(path,bucket); path.points = tempPoints; } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildRoundedRectangle = function(path,glStack,localCoords) { if(localCoords == null) localCoords = false; var points = path.points.slice(); var x = points[0]; var y = points[1]; var width = points[2]; var height = points[3]; var rx = points[4]; var ry = points[5]; if(localCoords) { x -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } var recPoints = []; openfl__$internal_renderer_GraphicsPaths.roundRectangle(recPoints,x,y,width,height,rx,ry); var bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); if(fill != null) { var verts = fill.verts; var indices = fill.indices; var vecPos = verts.length / 2; var triangles = []; openfl__$internal_renderer_PolyK.triangulate(triangles,recPoints); var i = 0; while(i < triangles.length) { indices.push(triangles[i] + vecPos | 0); indices.push(triangles[i] + vecPos | 0); indices.push(triangles[i + 1] + vecPos | 0); indices.push(triangles[i + 2] + vecPos | 0); indices.push(triangles[i + 2] + vecPos | 0); i += 3; } i = 0; while(i < recPoints.length) { verts.push(recPoints[i]); verts.push(recPoints[++i]); i++; } } if(path.line.width > 0) { var tempPoints = path.points; path.points = recPoints; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildLine(path,bucket); path.points = tempPoints; } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildDrawTriangles = function(path,object,glStack,localCoords) { if(localCoords == null) localCoords = false; var args = path.type.slice(2); var vertices = args[0]; var indices = args[1]; var uvtData = args[2]; var culling = args[3]; var colors = args[4]; var blendMode = args[5]; var a; var b; var c; var d; var tx; var ty; if(localCoords) { a = 1.0; b = 0.0; c = 0.0; d = 1.0; tx = 0.0; ty = 0.0; } else { a = object.__worldTransform.a; b = object.__worldTransform.b; c = object.__worldTransform.c; d = object.__worldTransform.d; tx = object.__worldTransform.tx; ty = object.__worldTransform.ty; } var hasColors = colors != null && colors.length > 0; var bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); var fill = bucket.getData(openfl__$internal_renderer_opengl_utils_BucketDataType.Fill); var colorAttrib = fill.vertexArray.attributes[2]; colorAttrib.enabled = hasColors; var array = [1,1,1,1]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; colorAttrib.defaultValue = this1; fill.rawVerts = true; fill.glLength = indices.length; fill.stride = Std["int"](fill.vertexArray.get_stride() / 4); var vertsLength = fill.glLength * fill.stride; var verts; if(fill.glVerts == null || fill.glVerts.length < vertsLength) { var this2; if(vertsLength != null) this2 = new Float32Array(vertsLength); else this2 = null; verts = this2; fill.glVerts = verts; } else verts = fill.glVerts; var glColors; var buffer = verts.buffer; var this3; if(buffer != null) this3 = new Uint32Array(buffer,0); else this3 = null; glColors = this3; var v0 = 0; var v1 = 0; var v2 = 0; var i0 = 0; var i1 = 0; var i2 = 0; var x0 = 0.0; var y0 = 0.0; var x1 = 0.0; var y1 = 0.0; var x2 = 0.0; var y2 = 0.0; var idx = 0; var _g1 = 0; var _g = indices.length / 3 | 0; while(_g1 < _g) { var i = _g1++; i0 = indices.data[i * 3]; i1 = indices.data[i * 3 + 1]; i2 = indices.data[i * 3 + 2]; v0 = i0 * 2; v1 = i1 * 2; v2 = i2 * 2; x0 = vertices.data[v0]; y0 = vertices.data[v0 + 1]; x1 = vertices.data[v1]; y1 = vertices.data[v1 + 1]; x2 = vertices.data[v2]; y2 = vertices.data[v2 + 1]; if(localCoords) { x0 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y0 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; x1 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y1 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; x2 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.x; y2 -= openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.y; } switch(culling) { case 2: if(!((x1 - x0) * (y2 - y0) - (y1 - y0) * (x2 - x0) < 0)) continue; break; case 0: if((x1 - x0) * (y2 - y0) - (y1 - y0) * (x2 - x0) < 0) continue; break; default: } var idx1 = idx++; verts[idx1] = a * x0 + c * y0 + tx; var idx2 = idx++; verts[idx2] = b * x0 + d * y0 + ty; var idx3 = idx++; verts[idx3] = uvtData.data[v0]; var idx4 = idx++; verts[idx4] = uvtData.data[v0 + 1]; if(hasColors) { var idx5 = idx++; glColors[idx5] = colors.data[i0]; } var idx6 = idx++; verts[idx6] = a * x1 + c * y1 + tx; var idx7 = idx++; verts[idx7] = b * x1 + d * y1 + ty; var idx8 = idx++; verts[idx8] = uvtData.data[v1]; var idx9 = idx++; verts[idx9] = uvtData.data[v1 + 1]; if(hasColors) { var idx10 = idx++; glColors[idx10] = colors.data[i1]; } var idx11 = idx++; verts[idx11] = a * x2 + c * y2 + tx; var idx12 = idx++; verts[idx12] = b * x2 + d * y2 + ty; var idx13 = idx++; verts[idx13] = uvtData.data[v2]; var idx14 = idx++; verts[idx14] = uvtData.data[v2 + 1]; if(hasColors) { var idx15 = idx++; glColors[idx15] = colors.data[i2]; } } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildDrawTiles = function(path,glStack) { openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.quadraticBezierCurve = function(fromX,fromY,cpX,cpY,toX,toY) { var xa; var ya; var xb; var yb; var x; var y; var n = 20; var points = []; var getPt = function(n1,n2,perc) { var diff = n2 - n1; return n1 + diff * perc; }; var j = 0.0; var _g1 = 0; var _g = n + 1; while(_g1 < _g) { var i = _g1++; j = i / n; xa = getPt(fromX,cpX,j); ya = getPt(fromY,cpY,j); xb = getPt(cpX,toX,j); yb = getPt(cpY,toY,j); x = getPt(xa,xb,j); y = getPt(ya,yb,j); points.push(x); points.push(y); } return points; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.render = function(object,renderSession) { var graphics = object.__graphics; var bounds = graphics.__bounds; var spritebatch = renderSession.spriteBatch; var dirty = graphics.__dirty; if(!graphics.__visible || graphics.__commands.get_length() == 0 || bounds == null || bounds.width == 0 || bounds.height == 0) { graphics.__glStack.splice(0,graphics.__glStack.length); return; } if(dirty) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.updateGraphics(object,object.__graphics,renderSession.gl,object.get_cacheAsBitmap()); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderGraphics(object,renderSession,false); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderGraphics = function(object,renderSession,localCoords) { if(localCoords == null) localCoords = false; var graphics = object.__graphics; var gl = renderSession.gl; var glStack = graphics.__glStack[openfl__$internal_renderer_opengl_GLRenderer.glContextId]; if(glStack == null) return; var bucket; var translationMatrix; if(localCoords) translationMatrix = openfl_geom_Matrix.__identity; else translationMatrix = object.__worldTransform; var clipRect = renderSession.spriteBatch.clipRect; var batchDrawing = renderSession.spriteBatch.drawing; batchDrawing = renderSession.spriteBatch.drawing; var _g1 = 0; var _g = glStack.buckets.length; while(_g1 < _g) { var i = _g1++; batchDrawing = renderSession.spriteBatch.drawing; if(batchDrawing && !localCoords) renderSession.spriteBatch.finish(); renderSession.blendModeManager.setBlendMode(object.__blendMode); if(clipRect != null) { gl.enable(gl.SCISSOR_TEST); gl.scissor(Math.floor(clipRect.x),Math.floor(clipRect.y),Math.floor(clipRect.width),Math.floor(clipRect.height)); } bucket = glStack.buckets[i]; var _g2 = bucket.mode; switch(_g2[1]) { case 1:case 2: renderSession.stencilManager.pushBucket(bucket,renderSession,translationMatrix.toArray(true)); var shader = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareShader(bucket,renderSession,object,translationMatrix.toArray(true)); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderFill(bucket,shader,renderSession); renderSession.stencilManager.popBucket(object,bucket,renderSession); break; case 5: var shader1 = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareShader(bucket,renderSession,object,null); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderDrawTriangles(bucket,shader1,renderSession); break; case 6: if(!batchDrawing) renderSession.spriteBatch.begin(renderSession,clipRect); var args = bucket.graphicType.slice(2); renderSession.spriteBatch.renderTiles(object,args[0],args[1],args[2],args[3],args[4],args[5]); renderSession.spriteBatch.finish(); break; default: } var ct = object.__worldColorTransform; var _g21 = 0; var _g3 = bucket.lines; while(_g21 < _g3.length) { var line = _g3[_g21]; ++_g21; if(line != null && line.verts.length > 0) { var shader2 = renderSession.shaderManager.primitiveShader; renderSession.shaderManager.setShader(shader2); gl.uniformMatrix3fv(shader2.getUniformLocation("openfl_uTranslationMatrix"),false,translationMatrix.toArray(true)); gl.uniformMatrix3fv(shader2.getUniformLocation("openfl_uProjectionMatrix"),false,renderSession.projectionMatrix.toArray(true)); gl.uniform1f(shader2.getUniformLocation("openfl_uAlpha"),1); gl.uniform4f(shader2.getUniformLocation("openfl_uColorMultiplier"),ct.redMultiplier,ct.greenMultiplier,ct.blueMultiplier,ct.alphaMultiplier); gl.uniform4f(shader2.getUniformLocation("openfl_uColorOffset"),ct.redOffset / 255,ct.greenOffset / 255,ct.blueOffset / 255,ct.alphaOffset / 255); line.vertexArray.bind(); shader2.bindVertexArray(line.vertexArray); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,line.indexBuffer); gl.drawElements(gl.TRIANGLE_STRIP,line.indices.length,gl.UNSIGNED_SHORT,0); } } if(clipRect != null) gl.disable(gl.SCISSOR_TEST); batchDrawing = renderSession.spriteBatch.drawing; if(!batchDrawing && !localCoords) renderSession.spriteBatch.begin(renderSession,clipRect); } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.updateGraphics = function(object,graphics,gl,localCoords) { if(localCoords == null) localCoords = false; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectPosition.setTo(object.get_x(),object.get_y()); if(graphics.__bounds == null) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds = new openfl_geom_Rectangle(); else openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.copyFrom(graphics.__bounds); var glStack = null; if(graphics.__dirty) glStack = openfl__$internal_renderer_opengl_utils_DrawPath.getStack(graphics,gl); graphics.set___dirty(false); var _g = 0; var _g1 = glStack.buckets; while(_g < _g1.length) { var data = _g1[_g]; ++_g; data.reset(); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bucketPool.push(data); } glStack.reset(); var _g11 = glStack.lastIndex; var _g2 = graphics.__drawPaths.length; while(_g11 < _g2) { var i = _g11++; var path = graphics.__drawPaths[i]; { var _g21 = path.type; switch(_g21[1]) { case 0: openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildComplexPoly(path,glStack,localCoords); break; case 1: var rounded = _g21[2]; if(rounded) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildRoundedRectangle(path,glStack,localCoords); else openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildRectangle(path,glStack,localCoords); break; case 2:case 3: openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildCircle(path,glStack,localCoords); break; case 4: openfl__$internal_renderer_opengl_utils_GraphicsRenderer.buildDrawTriangles(path,object,glStack,localCoords); break; case 5: openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket(path,glStack); break; case 6: var m = _g21[2]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.overrideMatrix = m; break; } } glStack.lastIndex++; } var _g3 = 0; var _g12 = glStack.buckets; while(_g3 < _g12.length) { var bucket = _g12[_g3]; ++_g3; if(bucket.uploadTileBuffer) bucket.uploadTile(Math.ceil(openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.get_left()),Math.ceil(openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.get_top()),Math.floor(openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.get_right()),Math.floor(openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds.get_bottom())); bucket.optimize(); } glStack.upload(); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareBucket = function(path,glStack) { var bucket = null; { var _g = path.fill; switch(_g[1]) { case 1: var a = _g[3]; var c = _g[2]; bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl__$internal_renderer_opengl_utils_BucketMode.Fill); if(c == null) bucket.color = [1,1,1]; else bucket.color = [(c >> 16 & 255) / 255,(c >> 8 & 255) / 255,(c & 255) / 255]; bucket.color[3] = a; bucket.uploadTileBuffer = true; break; case 2: var s = _g[5]; var r = _g[4]; var m = _g[3]; var b = _g[2]; bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl__$internal_renderer_opengl_utils_BucketMode.PatternFill); bucket.bitmap = b; bucket.textureRepeat = r; bucket.textureSmooth = s; bucket.texture = b.getTexture(glStack.gl); bucket.uploadTileBuffer = true; var pMatrix; if(m == null) pMatrix = new openfl_geom_Matrix(); else pMatrix = m.clone(); pMatrix.invert(); pMatrix.scale(1 / b.width,1 / b.height); var tx = pMatrix.tx; var ty = pMatrix.ty; pMatrix.tx = 0; pMatrix.ty = 0; bucket.textureTL.x = tx; bucket.textureTL.y = ty; bucket.textureBR.x = tx + 1; bucket.textureBR.y = ty + 1; bucket.textureMatrix = pMatrix; break; default: bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.switchBucket(path.fillIndex,glStack,openfl__$internal_renderer_opengl_utils_BucketMode.Line); bucket.uploadTileBuffer = false; } } { var _g1 = path.type; switch(_g1[1]) { case 4: bucket.mode = openfl__$internal_renderer_opengl_utils_BucketMode.DrawTriangles; bucket.uploadTileBuffer = false; break; case 5: bucket.mode = openfl__$internal_renderer_opengl_utils_BucketMode.DrawTiles; bucket.uploadTileBuffer = false; break; default: } } bucket.graphicType = path.type; bucket.overrideMatrix = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.overrideMatrix; return bucket; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.getBucket = function(glStack,mode) { var b = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bucketPool.pop(); if(b == null) b = new openfl__$internal_renderer_opengl_utils_GLBucket(glStack.gl); b.mode = mode; glStack.buckets.push(b); return b; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.switchBucket = function(fillIndex,glStack,mode) { var bucket = null; var _g = 0; var _g1 = glStack.buckets; while(_g < _g1.length) { var b = _g1[_g]; ++_g; if(b.fillIndex == fillIndex) { bucket = b; break; } } if(bucket == null) bucket = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.getBucket(glStack,mode); bucket.dirty = true; bucket.fillIndex = fillIndex; return bucket; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.prepareShader = function(bucket,renderSession,object,translationMatrix) { var gl = renderSession.gl; var shader = null; var _g = bucket.mode; switch(_g[1]) { case 1: shader = renderSession.shaderManager.fillShader; break; case 2: shader = renderSession.shaderManager.patternFillShader; break; case 5: shader = renderSession.shaderManager.drawTrianglesShader; break; default: shader = null; } if(shader == null) return null; var newShader = renderSession.shaderManager.setShader(shader); gl.uniform1f(shader.getUniformLocation("openfl_uAlpha"),object.__worldAlpha); gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uProjectionMatrix"),false,renderSession.projectionMatrix.toArray(true)); var ct = object.__worldColorTransform; gl.uniform4f(shader.getUniformLocation("openfl_uColorMultiplier"),ct.redMultiplier,ct.greenMultiplier,ct.blueMultiplier,ct.alphaMultiplier); gl.uniform4f(shader.getUniformLocation("openfl_uColorOffset"),ct.redOffset / 255,ct.greenOffset / 255,ct.blueOffset / 255,ct.alphaOffset / 255); var _g1 = bucket.mode; switch(_g1[1]) { case 1: gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uTranslationMatrix"),false,translationMatrix); gl.uniform4fv(shader.getUniformLocation("openfl_uColor"),(function($this) { var $r; var array = bucket.color; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); break; case 2: gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uTranslationMatrix"),false,translationMatrix); gl.uniform2f(shader.getUniformLocation("openfl_uPatternTL"),bucket.textureTL.x,bucket.textureTL.y); gl.uniform2f(shader.getUniformLocation("openfl_uPatternBR"),bucket.textureBR.x,bucket.textureBR.y); gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uPatternMatrix"),false,bucket.textureMatrix.toArray(true)); break; case 5: if(bucket.texture != null) gl.uniform1i(shader.getUniformLocation("openfl_uUseTexture"),1); else { gl.uniform1i(shader.getUniformLocation("openfl_uUseTexture"),0); gl.uniform4fv(shader.getUniformLocation("openfl_uColor"),(function($this) { var $r; var array1 = bucket.color; var this2; if(array1 != null) this2 = new Float32Array(array1); else this2 = null; $r = this2; return $r; }(this))); } break; default: } return shader; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderFill = function(bucket,shader,renderSession) { var gl = renderSession.gl; if(bucket.mode == openfl__$internal_renderer_opengl_utils_BucketMode.PatternFill && bucket.texture != null) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bindTexture(gl,bucket); gl.bindBuffer(gl.ARRAY_BUFFER,bucket.tileBuffer); gl.vertexAttribPointer(shader.getAttribLocation("openfl_aPosition"),4,gl.SHORT,false,0,0); gl.drawArrays(gl.TRIANGLE_STRIP,0,4); }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.renderDrawTriangles = function(bucket,shader,renderSession) { var gl = renderSession.gl; var _g = 0; var _g1 = bucket.fills; while(_g < _g1.length) { var fill = _g1[_g]; ++_g; if(fill.available) continue; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bindTexture(gl,bucket); fill.vertexArray.bind(); shader.bindVertexArray(fill.vertexArray); gl.drawArrays(gl.TRIANGLES,fill.glStart,fill.glLength); } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bindTexture = function(gl,bucket) { gl.bindTexture(gl.TEXTURE_2D,bucket.texture); if(bucket.textureRepeat && bucket.bitmap.image.get_powerOfTwo()) { gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.REPEAT); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.REPEAT); } else { gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE); } if(bucket.textureSmooth) { gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR); } else { gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST); } }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.isCCW = function(x1,y1,x2,y2,x3,y3) { return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.hex2rgb = function(hex) { if(hex == null) return [1,1,1]; else return [(hex >> 16 & 255) / 255,(hex >> 8 & 255) / 255,(hex & 255) / 255]; }; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.hex2rgba = function(hex) { if(hex == null) return [1,1,1,1]; else return [(hex >> 16 & 255) / 255,(hex >> 8 & 255) / 255,(hex & 255) / 255,(hex >> 24 & 255) / 255]; }; var openfl__$internal_renderer_opengl_utils_GLStack = function(gl) { this.lastIndex = 0; this.gl = gl; this.buckets = []; this.lastIndex = 0; }; $hxClasses["openfl._internal.renderer.opengl.utils.GLStack"] = openfl__$internal_renderer_opengl_utils_GLStack; openfl__$internal_renderer_opengl_utils_GLStack.__name__ = ["openfl","_internal","renderer","opengl","utils","GLStack"]; openfl__$internal_renderer_opengl_utils_GLStack.prototype = { lastIndex: null ,buckets: null ,gl: null ,reset: function() { this.buckets = []; this.lastIndex = 0; } ,upload: function() { var _g = 0; var _g1 = this.buckets; while(_g < _g1.length) { var bucket = _g1[_g]; ++_g; if(bucket.dirty) bucket.upload(); } } ,__class__: openfl__$internal_renderer_opengl_utils_GLStack }; var openfl__$internal_renderer_opengl_utils_GLBucket = function(gl) { this.uploadTileBuffer = true; this.textureSmooth = true; this.textureRepeat = false; this.lines = []; this.fills = []; this.fillIndex = -1; this.gl = gl; this.color = [0,0,0]; this.lastIndex = 0; this.alpha = 1; this.dirty = true; this.mode = openfl__$internal_renderer_opengl_utils_BucketMode.Fill; this.textureMatrix = new openfl_geom_Matrix(); this.textureTL = new openfl_geom_Point(); this.textureBR = new openfl_geom_Point(1,1); }; $hxClasses["openfl._internal.renderer.opengl.utils.GLBucket"] = openfl__$internal_renderer_opengl_utils_GLBucket; openfl__$internal_renderer_opengl_utils_GLBucket.__name__ = ["openfl","_internal","renderer","opengl","utils","GLBucket"]; openfl__$internal_renderer_opengl_utils_GLBucket.prototype = { gl: null ,color: null ,alpha: null ,dirty: null ,graphicType: null ,lastIndex: null ,fillIndex: null ,mode: null ,fills: null ,lines: null ,bitmap: null ,texture: null ,textureMatrix: null ,textureRepeat: null ,textureSmooth: null ,textureTL: null ,textureBR: null ,overrideMatrix: null ,tileBuffer: null ,glTile: null ,tile: null ,uploadTileBuffer: null ,getData: function(type) { var data; switch(type[1]) { case 1: data = this.fills; break; default: data = this.lines; } var result = null; var remove = false; var _g = 0; while(_g < data.length) { var d = data[_g]; ++_g; if(d.available) { result = d; remove = true; break; } } if(result == null) result = new openfl__$internal_renderer_opengl_utils_GLBucketData(this.gl); result.available = false; result.parent = this; result.type = type; if(remove) HxOverrides.remove(data,result); data.push(result); switch(type[1]) { case 1: var _g1 = this.mode; switch(_g1[1]) { case 1:case 2: result.vertexArray.attributes = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.fillVertexAttributes; break; case 5: result.vertexArray.attributes = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.drawTrianglesVertexAttributes.slice(); result.vertexArray.attributes[2] = result.vertexArray.attributes[2].copy(); break; default: } break; case 0: result.vertexArray.attributes = openfl__$internal_renderer_opengl_utils_GraphicsRenderer.primitiveVertexAttributes; break; } return result; } ,optimize: function() { var _g = this; var data = this.lines; if(data.length > 1) { var result = []; var tmp = null; var last = null; var idx = 0; var vi = 0; var ii = 0; var before = data.length; var _g1 = 0; while(_g1 < data.length) { var d = data[_g1]; ++_g1; if(d.available || d.rawVerts || d.rawIndices) { if(tmp != null) { result.push(tmp); tmp = null; } result.push(d); last = d; continue; } if(last == null || last.drawMode == d.drawMode) { if(tmp == null) tmp = d; else { vi = tmp.verts.length; ii = tmp.indices.length; var _g2 = 0; var _g11 = d.verts.length; while(_g2 < _g11) { var j = _g2++; tmp.verts[j + vi] = d.verts[j]; } var _g21 = 0; var _g12 = d.indices.length; while(_g21 < _g12) { var j1 = _g21++; tmp.indices[j1 + ii] = d.indices[j1] + idx; } } idx = tmp.indices[tmp.indices.length - 1] + 1; last = d; } else { if(tmp != null) { result.push(tmp); tmp = null; } result.push(d); last = d; continue; } } if(result.length == 0 && tmp != null) result.push(tmp); if(result.length > 0) switch(openfl__$internal_renderer_opengl_utils_BucketDataType.Line[1]) { case 1: _g.fills = result; break; default: _g.lines = result; } } } ,reset: function() { var _g = 0; var _g1 = this.fills; while(_g < _g1.length) { var fill = _g1[_g]; ++_g; fill.reset(); } var _g2 = 0; var _g11 = this.lines; while(_g2 < _g11.length) { var line = _g11[_g2]; ++_g2; line.reset(); } this.fillIndex = -1; this.uploadTileBuffer = true; this.graphicType = openfl__$internal_renderer_opengl_utils_GraphicType.Polygon; } ,uploadTile: function(x,y,w,h) { if(this.tileBuffer == null) this.tileBuffer = this.gl.createBuffer(); this.tile = [x,y,0,0,w,y,1,0,x,h,0,1,w,h,1,1]; var array = this.tile; var this1; if(array != null) this1 = new Int16Array(array); else this1 = null; this.glTile = this1; this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.tileBuffer); this.gl.bufferData(this.gl.ARRAY_BUFFER,this.glTile,this.gl.STATIC_DRAW); } ,upload: function() { if(this.mode != openfl__$internal_renderer_opengl_utils_BucketMode.Line) { var _g = 0; var _g1 = this.fills; while(_g < _g1.length) { var fill = _g1[_g]; ++_g; if(!fill.available) fill.upload(); } } var _g2 = 0; var _g11 = this.lines; while(_g2 < _g11.length) { var line = _g11[_g2]; ++_g2; if(!line.available) line.upload(); } this.dirty = false; } ,__class__: openfl__$internal_renderer_opengl_utils_GLBucket }; var openfl__$internal_renderer_opengl_utils_GLBucketData = function(gl) { this.available = false; this.rawIndices = false; this.stride = 0; this.rawVerts = false; this.lastVertsSize = 0; this.glStart = 0; this.glLength = 0; this.gl = gl; this.drawMode = gl.TRIANGLE_STRIP; this.verts = []; this.indices = []; this.vertexArray = new openfl__$internal_renderer_opengl_utils_VertexArray([]); }; $hxClasses["openfl._internal.renderer.opengl.utils.GLBucketData"] = openfl__$internal_renderer_opengl_utils_GLBucketData; openfl__$internal_renderer_opengl_utils_GLBucketData.__name__ = ["openfl","_internal","renderer","opengl","utils","GLBucketData"]; openfl__$internal_renderer_opengl_utils_GLBucketData.prototype = { type: null ,gl: null ,drawMode: null ,glLength: null ,glStart: null ,vertexArray: null ,glVerts: null ,lastVertsSize: null ,verts: null ,rawVerts: null ,stride: null ,indexBuffer: null ,glIndices: null ,indices: null ,rawIndices: null ,available: null ,parent: null ,reset: function() { this.available = true; this.verts = []; this.indices = []; this.glLength = 0; this.glStart = 0; this.stride = 0; this.rawVerts = false; this.rawIndices = false; this.drawMode = this.gl.TRIANGLE_STRIP; } ,upload: function() { if(this.rawVerts && this.glVerts != null && this.glVerts.length > 0 || this.verts.length > 0) { if(!this.rawVerts) { var array = this.verts; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; this.glVerts = this1; } this.vertexArray.buffer = this.glVerts.buffer; if(this.glVerts.length <= this.lastVertsSize) { this.vertexArray.bind(); var end = this.glLength * this.stride; if(this.glLength > 0 && this.lastVertsSize > end) { var view = this.glVerts.subarray(0,end); this.vertexArray.upload(view); } else this.vertexArray.upload(this.glVerts); } else { this.vertexArray.setContext(this.gl,this.glVerts); this.lastVertsSize = this.glVerts.length; } } if(this.glLength == 0 && (this.rawIndices && this.glIndices != null && this.glIndices.length > 0 || this.indices.length > 0)) { if(this.indexBuffer == null) this.indexBuffer = this.gl.createBuffer(); if(!this.rawIndices) { var array1 = this.indices; var this2; if(array1 != null) this2 = new Uint16Array(array1); else this2 = null; this.glIndices = this2; } this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer); this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER,this.glIndices,this.gl.STREAM_DRAW); } } ,__class__: openfl__$internal_renderer_opengl_utils_GLBucketData }; var openfl__$internal_renderer_opengl_utils_BucketMode = $hxClasses["openfl._internal.renderer.opengl.utils.BucketMode"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","BucketMode"], __constructs__ : ["None","Fill","PatternFill","Line","PatternLine","DrawTriangles","DrawTiles"] }; openfl__$internal_renderer_opengl_utils_BucketMode.None = ["None",0]; openfl__$internal_renderer_opengl_utils_BucketMode.None.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.None.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.Fill = ["Fill",1]; openfl__$internal_renderer_opengl_utils_BucketMode.Fill.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.Fill.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.PatternFill = ["PatternFill",2]; openfl__$internal_renderer_opengl_utils_BucketMode.PatternFill.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.PatternFill.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.Line = ["Line",3]; openfl__$internal_renderer_opengl_utils_BucketMode.Line.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.Line.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.PatternLine = ["PatternLine",4]; openfl__$internal_renderer_opengl_utils_BucketMode.PatternLine.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.PatternLine.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTriangles = ["DrawTriangles",5]; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTriangles.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTriangles.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTiles = ["DrawTiles",6]; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTiles.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketMode.DrawTiles.__enum__ = openfl__$internal_renderer_opengl_utils_BucketMode; var openfl__$internal_renderer_opengl_utils_BucketDataType = $hxClasses["openfl._internal.renderer.opengl.utils.BucketDataType"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","BucketDataType"], __constructs__ : ["Line","Fill"] }; openfl__$internal_renderer_opengl_utils_BucketDataType.Line = ["Line",0]; openfl__$internal_renderer_opengl_utils_BucketDataType.Line.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketDataType.Line.__enum__ = openfl__$internal_renderer_opengl_utils_BucketDataType; openfl__$internal_renderer_opengl_utils_BucketDataType.Fill = ["Fill",1]; openfl__$internal_renderer_opengl_utils_BucketDataType.Fill.toString = $estr; openfl__$internal_renderer_opengl_utils_BucketDataType.Fill.__enum__ = openfl__$internal_renderer_opengl_utils_BucketDataType; var openfl__$internal_renderer_opengl_utils_GLGraphicsData = function(gl) { this.indices = []; this.data = []; this.lastIndex = 0; this.mode = 0; this.dirty = true; this.alpha = 1.0; this.tint = [1.0,1.0,1.0]; this.gl = gl; this.dataBuffer = gl.createBuffer(); this.indexBuffer = gl.createBuffer(); }; $hxClasses["openfl._internal.renderer.opengl.utils.GLGraphicsData"] = openfl__$internal_renderer_opengl_utils_GLGraphicsData; openfl__$internal_renderer_opengl_utils_GLGraphicsData.__name__ = ["openfl","_internal","renderer","opengl","utils","GLGraphicsData"]; openfl__$internal_renderer_opengl_utils_GLGraphicsData.prototype = { gl: null ,tint: null ,alpha: null ,dirty: null ,mode: null ,lastIndex: null ,data: null ,glData: null ,dataBuffer: null ,indices: null ,glIndices: null ,indexBuffer: null ,reset: function() { this.data = []; this.indices = []; this.lastIndex = 0; } ,upload: function() { var elements = this.data; var this1; if(elements != null) this1 = new Float32Array(elements); else this1 = null; this.glData = this1; this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.dataBuffer); this.gl.bufferData(this.gl.ARRAY_BUFFER,this.glData,this.gl.STATIC_DRAW); var elements1 = this.indices; var this2; if(elements1 != null) this2 = new Uint16Array(elements1); else this2 = null; this.glIndices = this2; this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer); this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER,this.glIndices,this.gl.STATIC_DRAW); this.dirty = false; } ,__class__: openfl__$internal_renderer_opengl_utils_GLGraphicsData }; var openfl__$internal_renderer_opengl_utils_GraphicType = $hxClasses["openfl._internal.renderer.opengl.utils.GraphicType"] = { __ename__ : ["openfl","_internal","renderer","opengl","utils","GraphicType"], __constructs__ : ["Polygon","Rectangle","Circle","Ellipse","DrawTriangles","DrawTiles","OverrideMatrix"] }; openfl__$internal_renderer_opengl_utils_GraphicType.Polygon = ["Polygon",0]; openfl__$internal_renderer_opengl_utils_GraphicType.Polygon.toString = $estr; openfl__$internal_renderer_opengl_utils_GraphicType.Polygon.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; openfl__$internal_renderer_opengl_utils_GraphicType.Rectangle = function(rounded) { var $x = ["Rectangle",1,rounded]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; $x.toString = $estr; return $x; }; openfl__$internal_renderer_opengl_utils_GraphicType.Circle = ["Circle",2]; openfl__$internal_renderer_opengl_utils_GraphicType.Circle.toString = $estr; openfl__$internal_renderer_opengl_utils_GraphicType.Circle.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; openfl__$internal_renderer_opengl_utils_GraphicType.Ellipse = ["Ellipse",3]; openfl__$internal_renderer_opengl_utils_GraphicType.Ellipse.toString = $estr; openfl__$internal_renderer_opengl_utils_GraphicType.Ellipse.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; openfl__$internal_renderer_opengl_utils_GraphicType.DrawTriangles = function(vertices,indices,uvtData,culling,colors,blendMode) { var $x = ["DrawTriangles",4,vertices,indices,uvtData,culling,colors,blendMode]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; $x.toString = $estr; return $x; }; openfl__$internal_renderer_opengl_utils_GraphicType.DrawTiles = function(sheet,tileData,smooth,flags,shader,count) { var $x = ["DrawTiles",5,sheet,tileData,smooth,flags,shader,count]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; $x.toString = $estr; return $x; }; openfl__$internal_renderer_opengl_utils_GraphicType.OverrideMatrix = function(matrix) { var $x = ["OverrideMatrix",6,matrix]; $x.__enum__ = openfl__$internal_renderer_opengl_utils_GraphicType; $x.toString = $estr; return $x; }; var openfl__$internal_renderer_opengl_utils_PingPongTexture = function(gl,width,height,smoothing,powerOfTwo) { if(powerOfTwo == null) powerOfTwo = true; if(smoothing == null) smoothing = true; this.__swapped = false; this.powerOfTwo = true; this.useOldTexture = false; this.gl = gl; this.width = width; this.height = height; this.smoothing = smoothing; this.powerOfTwo = powerOfTwo; this.set_renderTexture(new openfl__$internal_renderer_opengl_utils_RenderTexture(gl,width,height,smoothing,powerOfTwo)); }; $hxClasses["openfl._internal.renderer.opengl.utils.PingPongTexture"] = openfl__$internal_renderer_opengl_utils_PingPongTexture; openfl__$internal_renderer_opengl_utils_PingPongTexture.__name__ = ["openfl","_internal","renderer","opengl","utils","PingPongTexture"]; openfl__$internal_renderer_opengl_utils_PingPongTexture.prototype = { gl: null ,width: null ,height: null ,smoothing: null ,useOldTexture: null ,powerOfTwo: null ,__swapped: null ,__texture0: null ,__texture1: null ,swap: function() { this.__swapped = !this.__swapped; if((this.__swapped?this.__texture1:this.__texture0) == null) this.set_renderTexture(new openfl__$internal_renderer_opengl_utils_RenderTexture(this.gl,this.width,this.height,this.smoothing,this.powerOfTwo)); } ,clear: function(r,g,b,a,mask) { if(a == null) a = 0; if(b == null) b = 0; if(g == null) g = 0; if(r == null) r = 0; (this.__swapped?this.__texture1:this.__texture0).clear(r,g,b,a,mask); } ,resize: function(width,height) { this.width = width; this.height = height; (this.__swapped?this.__texture1:this.__texture0).resize(width,height); } ,destroy: function() { if(this.__texture0 != null) { this.__texture0.destroy(); this.__texture0 = null; } if(this.__texture1 != null) { this.__texture1.destroy(); this.__texture1 = null; } this.__swapped = false; } ,get_renderTexture: function() { if(this.__swapped) return this.__texture1; else return this.__texture0; } ,set_renderTexture: function(v) { if(this.__swapped) return this.__texture1 = v; else return this.__texture0 = v; } ,get_oldRenderTexture: function() { if(this.__swapped) return this.__texture0; else return this.__texture1; } ,set_oldRenderTexture: function(v) { if(this.__swapped) return this.__texture0 = v; else return this.__texture1 = v; } ,get_framebuffer: function() { return (this.__swapped?this.__texture1:this.__texture0).frameBuffer; } ,get_texture: function() { if(this.useOldTexture) return (this.__swapped?this.__texture0:this.__texture1).texture; else return (this.__swapped?this.__texture1:this.__texture0).texture; } ,get___otherTexture: function() { if(this.__swapped) return this.__texture0; else return this.__texture1; } ,__class__: openfl__$internal_renderer_opengl_utils_PingPongTexture ,__properties__: {get___otherTexture:"get___otherTexture",get_texture:"get_texture",get_framebuffer:"get_framebuffer",set_oldRenderTexture:"set_oldRenderTexture",get_oldRenderTexture:"get_oldRenderTexture",set_renderTexture:"set_renderTexture",get_renderTexture:"get_renderTexture"} }; var openfl__$internal_renderer_opengl_utils_RenderTexture = function(gl,width,height,smoothing,powerOfTwo) { if(powerOfTwo == null) powerOfTwo = true; if(smoothing == null) smoothing = true; this.powerOfTwo = true; this.gl = gl; this.powerOfTwo = powerOfTwo; this.frameBuffer = gl.createFramebuffer(); this.texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D,this.texture); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,smoothing?gl.LINEAR:gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,smoothing?gl.LINEAR:gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE); gl.bindFramebuffer(gl.FRAMEBUFFER,this.frameBuffer); gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,this.texture,0); this.renderBuffer = gl.createRenderbuffer(); gl.bindRenderbuffer(gl.RENDERBUFFER,this.renderBuffer); gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_STENCIL_ATTACHMENT,gl.RENDERBUFFER,this.renderBuffer); this.resize(width,height); }; $hxClasses["openfl._internal.renderer.opengl.utils.RenderTexture"] = openfl__$internal_renderer_opengl_utils_RenderTexture; openfl__$internal_renderer_opengl_utils_RenderTexture.__name__ = ["openfl","_internal","renderer","opengl","utils","RenderTexture"]; openfl__$internal_renderer_opengl_utils_RenderTexture.prototype = { gl: null ,frameBuffer: null ,renderBuffer: null ,texture: null ,smoothing: null ,width: null ,height: null ,powerOfTwo: null ,__width: null ,__height: null ,__uvData: null ,clear: function(r,g,b,a,mask) { if(a == null) a = 0; if(b == null) b = 0; if(g == null) g = 0; if(r == null) r = 0; this.gl.clearColor(r,g,b,a); this.gl.clear(mask == null?this.gl.COLOR_BUFFER_BIT:mask); } ,destroy: function() { if(this.frameBuffer != null) this.gl.deleteFramebuffer(this.frameBuffer); if(this.texture != null) this.gl.deleteTexture(this.texture); this.frameBuffer = null; this.texture = null; } ,resize: function(width,height) { if(this.width == width && this.height == height) return; this.width = width; this.height = height; var pow2W = width; var pow2H = height; if(this.powerOfTwo) { pow2W = this.powOfTwo(width); pow2H = this.powOfTwo(height); } var lastW = this.__width; var lastH = this.__height; this.__width = pow2W; this.__height = pow2H; this.createUVs(); if(lastW == pow2W && lastH == pow2H) return; this.gl.bindTexture(this.gl.TEXTURE_2D,this.texture); this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.__width,this.__height,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,null); this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,this.renderBuffer); this.gl.renderbufferStorage(this.gl.RENDERBUFFER,this.gl.DEPTH_STENCIL,this.__width,this.__height); } ,createUVs: function() { if(this.__uvData == null) this.__uvData = new openfl_display_TextureUvs(); var w = this.width / this.__width; var h = this.height / this.__height; this.__uvData.x0 = 0; this.__uvData.y0 = 0; this.__uvData.x1 = w; this.__uvData.y1 = 0; this.__uvData.x2 = w; this.__uvData.y2 = h; this.__uvData.x3 = 0; this.__uvData.y3 = h; } ,powOfTwo: function(value) { var n = 1; while(n < value) n <<= 1; return n; } ,__class__: openfl__$internal_renderer_opengl_utils_RenderTexture }; var openfl__$internal_renderer_opengl_utils_ShaderManager = function(gl) { this.setContext(gl); }; $hxClasses["openfl._internal.renderer.opengl.utils.ShaderManager"] = openfl__$internal_renderer_opengl_utils_ShaderManager; openfl__$internal_renderer_opengl_utils_ShaderManager.__name__ = ["openfl","_internal","renderer","opengl","utils","ShaderManager"]; openfl__$internal_renderer_opengl_utils_ShaderManager.prototype = { gl: null ,currentShader: null ,defaultShader: null ,fillShader: null ,patternFillShader: null ,drawTrianglesShader: null ,primitiveShader: null ,setContext: function(gl) { this.gl = gl; this.defaultShader = new openfl__$internal_renderer_opengl_shaders2_DefaultShader(gl); this.fillShader = new openfl__$internal_renderer_opengl_shaders2_FillShader(gl); this.patternFillShader = new openfl__$internal_renderer_opengl_shaders2_PatternFillShader(gl); this.drawTrianglesShader = new openfl__$internal_renderer_opengl_shaders2_DrawTrianglesShader(gl); this.primitiveShader = new openfl__$internal_renderer_opengl_shaders2_PrimitiveShader(gl); this.setShader(this.defaultShader,true); } ,destroy: function() { this.defaultShader.destroy(); this.fillShader.destroy(); this.patternFillShader.destroy(); this.drawTrianglesShader.destroy(); this.primitiveShader.destroy(); this.gl = null; } ,setShader: function(shader,force) { if(force == null) force = false; if(shader == null) { this.currentShader = null; this.gl.useProgram(null); return true; } if(this.currentShader != null && !force && this.currentShader.ID == shader.ID) return false; this.currentShader = shader; this.gl.useProgram(shader.program); return true; } ,__class__: openfl__$internal_renderer_opengl_utils_ShaderManager }; var openfl__$internal_renderer_opengl_utils_SpriteBatch = function(gl,maxSprites) { if(maxSprites == null) maxSprites = 2000; this.colorTransform = new openfl_geom_ColorTransform(); this.uvs = new openfl_display_TextureUvs(); this.matrix = new openfl_geom_Matrix(); this.lastEnableColor = true; this.enableColor = true; this.attributes = []; this.writtenVertexBytes = 0; this.drawing = false; this.dirty = true; this.states = []; this.maxSprites = maxSprites; this.attributes.push(new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aPosition")); this.attributes.push(new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aTexCoord0")); this.attributes.push(new openfl__$internal_renderer_opengl_utils_VertexAttribute(4,5121,true,"openfl_aColor")); var array = [1,1,1,1]; var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; this.attributes[2].defaultValue = this1; this.maxElementsPerVertex = 0; var _g = 0; var _g1 = this.attributes; while(_g < _g1.length) { var a = _g1[_g]; ++_g; this.maxElementsPerVertex += Math.floor(a.components * a.getElementsBytes() / 4); } this.vertexArraySize = maxSprites * this.maxElementsPerVertex * 4 * 4; this.indexArraySize = maxSprites * 6; this.vertexArray = new openfl__$internal_renderer_opengl_utils_VertexArray(this.attributes,this.vertexArraySize,false); var buffer = this.vertexArray.buffer; var this2; if(buffer != null) this2 = new Float32Array(buffer,0); else this2 = null; this.positions = this2; var buffer1 = this.vertexArray.buffer; var this3; if(buffer1 != null) this3 = new Uint32Array(buffer1,0); else this3 = null; this.colors = this3; var elements = this.indexArraySize; var this4; if(elements != null) this4 = new Uint16Array(elements); else this4 = null; this.indices = this4; var i = 0; var j = 0; while(i < this.indexArraySize) { this.indices[i] = j; this.indices[i + 1] = j + 1; this.indices[i + 2] = j + 2; this.indices[i + 3] = j; this.indices[i + 4] = j + 2; this.indices[i + 5] = j + 3; i += 6; j += 4; } this.currentState = new openfl__$internal_renderer_opengl_utils__$SpriteBatch_State(); this.dirty = true; this.drawing = false; this.batchedSprites = 0; this.setContext(gl); }; $hxClasses["openfl._internal.renderer.opengl.utils.SpriteBatch"] = openfl__$internal_renderer_opengl_utils_SpriteBatch; openfl__$internal_renderer_opengl_utils_SpriteBatch.__name__ = ["openfl","_internal","renderer","opengl","utils","SpriteBatch"]; openfl__$internal_renderer_opengl_utils_SpriteBatch.prototype = { gl: null ,renderSession: null ,states: null ,currentState: null ,vertexArray: null ,positions: null ,colors: null ,indexBuffer: null ,indices: null ,dirty: null ,drawing: null ,clipRect: null ,maxSprites: null ,batchedSprites: null ,vertexArraySize: null ,indexArraySize: null ,maxElementsPerVertex: null ,elementsPerVertex: null ,writtenVertexBytes: null ,shader: null ,attributes: null ,enableColor: null ,lastEnableColor: null ,matrix: null ,uvs: null ,colorTransform: null ,destroy: function() { this.vertexArray.destroy(); this.vertexArray = null; this.indices = null; this.gl.deleteBuffer(this.indexBuffer); this.currentState.destroy(); var _g = 0; var _g1 = this.states; while(_g < _g1.length) { var state = _g1[_g]; ++_g; state.destroy(); } this.colorTransform = null; this.gl = null; } ,begin: function(renderSession,clipRect) { this.renderSession = renderSession; this.shader = renderSession.shaderManager.defaultShader; this.drawing = true; this.start(clipRect); } ,finish: function() { this.stop(); this.clipRect = null; this.drawing = false; } ,start: function(clipRect) { if(!this.drawing) this.stop(); this.dirty = true; this.clipRect = clipRect; } ,stop: function() { this.flush(); } ,renderBitmapData: function(bitmapData,smoothing,matrix,ct,alpha,blendMode,flashShader,pixelSnapping,bgra) { if(bgra == null) bgra = false; if(alpha == null) alpha = 1; if(bitmapData == null) return; var texture = bitmapData.getTexture(this.gl); if(this.batchedSprites >= this.maxSprites) this.flush(); var uvs = bitmapData.__uvData; if(uvs == null) return; this.prepareShader(flashShader,bitmapData); var color = ((alpha * 255 | 0) & 255) << 24 | 16777215; this.enableColor = true; if(this.enableColor != this.lastEnableColor) { this.flush(); this.lastEnableColor = this.enableColor; } this.attributes[2].enabled = this.lastEnableColor; this.elementsPerVertex = this.getElementsPerVertex(); var index = this.batchedSprites * 4 * this.elementsPerVertex; this.fillVertices(index,bitmapData.width,bitmapData.height,matrix,uvs,color,pixelSnapping); this.setState(this.batchedSprites,texture,smoothing,blendMode,ct,flashShader,true); this.batchedSprites++; } ,renderTiles: function(object,sheet,tileData,smooth,flags,flashShader,count) { if(count == null) count = -1; if(flags == null) flags = 0; if(smooth == null) smooth = false; var texture = sheet.__bitmap.getTexture(this.gl); if(texture == null) return; var useScale = (flags & 1) > 0; var useRotation = (flags & 2) > 0; var useTransform = (flags & 16) > 0; var useRGB = (flags & 4) > 0; var useAlpha = (flags & 8) > 0; var useRect = (flags & 32) > 0; var useOrigin = (flags & 64) > 0; var useRGBOffset = (flags & 128) > 0; var blendMode; var _g = flags & 983040; switch(_g) { case 65536: blendMode = 0; break; case 131072: blendMode = 9; break; case 262144: blendMode = 12; break; case 524288: blendMode = 14; break; default: var _g1 = flags & 15728640; switch(_g1) { case 1048576: blendMode = 2; break; case 2097152: blendMode = 8; break; case 4194304: blendMode = 11; break; case 8388608: blendMode = 5; break; default: var _g2 = flags & 251658240; switch(_g2) { case 16777216: blendMode = 3; break; case 33554432: blendMode = 6; break; default: blendMode = 10; } } } if(useTransform) { useScale = false; useRotation = false; } var scaleIndex = 0; var rotationIndex = 0; var rgbIndex = 0; var rgbOffsetIndex = 0; var alphaIndex = 0; var transformIndex = 0; var numValues = 3; if(useRect) if(useOrigin) numValues = 8; else numValues = 6; if(useScale) { scaleIndex = numValues; numValues++; } if(useRotation) { rotationIndex = numValues; numValues++; } if(useTransform) { transformIndex = numValues; numValues += 4; } if(useRGB) { rgbIndex = numValues; numValues += 3; } if(useAlpha) { alphaIndex = numValues; numValues++; } if(useRGBOffset) { rgbOffsetIndex = numValues; numValues += 4; } var totalCount = tileData.length; if(count >= 0 && totalCount > count) totalCount = count; var itemCount = Math.ceil(totalCount / numValues); var iIndex = 0; var tileID = -1; var rect = sheet.__rectTile; var tileUV = sheet.__rectUV; var center = sheet.__point; var x = 0.0; var y = 0.0; var alpha = 1.0; var tint = 16777215; var color = -1; var scale = 1.0; var rotation = 0.0; var cosTheta = 1.0; var sinTheta = 0.0; var a = 0.0; var b = 0.0; var c = 0.0; var d = 0.0; var tx = 0.0; var ty = 0.0; var ox = 0.0; var oy = 0.0; var oMatrix = object.__worldTransform; var bIndex = 0; var tMa = 1.0; var tMb = 0.0; var tMc = 0.0; var tMd = 1.0; var tMtx = 0.0; var tMty = 0.0; var oMa = oMatrix.a; var oMb = oMatrix.b; var oMc = oMatrix.c; var oMd = oMatrix.d; var oMtx = oMatrix.tx; var oMty = oMatrix.ty; var rx = 0.0; var ry = 0.0; var rw = 0.0; var rh = 0.0; var tuvx = 0.0; var tuvy = 0.0; var tuvw = 0.0; var tuvh = 0.0; this.enableColor = true; if(this.enableColor != this.lastEnableColor) { this.flush(); this.lastEnableColor = this.enableColor; } this.attributes[2].enabled = this.lastEnableColor; this.elementsPerVertex = this.getElementsPerVertex(); this.prepareShader(flashShader,null); while(iIndex < totalCount) { if(this.batchedSprites >= this.maxSprites) this.flush(); x = tileData[iIndex]; y = tileData[iIndex + 1]; if(useRect) { tileID = -1; rect.x = tileData[iIndex + 2]; rect.y = tileData[iIndex + 3]; rect.width = tileData[iIndex + 4]; rect.height = tileData[iIndex + 5]; if(useOrigin) { center.x = tileData[iIndex + 6]; center.y = tileData[iIndex + 7]; } else center.setTo(0,0); rw = rect.width; rh = rect.height; tuvx = rect.get_left() / sheet.__bitmap.width; tuvy = rect.get_top() / sheet.__bitmap.height; tuvw = rect.get_right() / sheet.__bitmap.width; tuvh = rect.get_bottom() / sheet.__bitmap.height; } else { tileID = (tileData[iIndex + 2] == null?0:tileData[iIndex + 2]) | 0; rect = sheet.__tileRects[tileID]; center = sheet.__centerPoints[tileID]; tileUV = sheet.__tileUVs[tileID]; if(rect != null) { rw = rect.width; rh = rect.height; tuvx = tileUV.x; tuvy = tileUV.y; tuvw = tileUV.width; tuvh = tileUV.height; } } if(rect != null && rect.width > 0 && rect.height > 0 && center != null) { alpha = 1; tint = 16777215; scale = 1.0; rotation = 0.0; cosTheta = 1.0; sinTheta = 0.0; if(useAlpha) alpha = tileData[iIndex + alphaIndex] * object.__worldAlpha; else alpha = object.__worldAlpha; if(useRGB) tint = (tileData[iIndex + rgbIndex] * 255 | 0) << 16 | (tileData[iIndex + rgbIndex + 1] * 255 | 0) << 8 | (tileData[iIndex + rgbIndex + 2] * 255 | 0); var wct = object.__worldColorTransform; this.colorTransform.redMultiplier = wct.redMultiplier; this.colorTransform.greenMultiplier = wct.greenMultiplier; this.colorTransform.blueMultiplier = wct.blueMultiplier; this.colorTransform.alphaMultiplier = wct.alphaMultiplier; this.colorTransform.redOffset = wct.redOffset; this.colorTransform.greenOffset = wct.greenOffset; this.colorTransform.blueOffset = wct.blueOffset; this.colorTransform.alphaOffset = wct.alphaOffset; if(useRGBOffset) { this.colorTransform.redOffset += tileData[iIndex + rgbOffsetIndex]; this.colorTransform.greenOffset += tileData[iIndex + rgbOffsetIndex + 1]; this.colorTransform.blueOffset += tileData[iIndex + rgbOffsetIndex + 2]; this.colorTransform.alphaOffset += tileData[iIndex + rgbOffsetIndex + 3]; } if(useScale) scale = tileData[iIndex + scaleIndex]; if(useRotation) { rotation = tileData[iIndex + rotationIndex]; cosTheta = Math.cos(rotation); sinTheta = Math.sin(rotation); } if(useTransform) { a = tileData[iIndex + transformIndex]; b = tileData[iIndex + transformIndex + 1]; c = tileData[iIndex + transformIndex + 2]; d = tileData[iIndex + transformIndex + 3]; } else { a = scale * cosTheta; b = scale * sinTheta; c = -b; d = a; } ox = center.x * a + center.y * c; oy = center.x * b + center.y * d; tx = x - ox; ty = y - oy; tMa = (a * oMa + b * oMc) * rw; tMb = (a * oMb + b * oMd) * rw; tMc = (c * oMa + d * oMc) * rh; tMd = (c * oMb + d * oMd) * rh; tMtx = tx * oMa + ty * oMc + oMtx; tMty = tx * oMb + ty * oMd + oMty; bIndex = this.batchedSprites * 4 * this.elementsPerVertex; this.positions[bIndex] = tMtx; this.positions[bIndex + 1] = tMty; this.positions[bIndex + 5] = tMa + tMtx; this.positions[bIndex + 6] = tMb + tMty; this.positions[bIndex + 10] = tMa + tMc + tMtx; this.positions[bIndex + 11] = tMd + tMb + tMty; this.positions[bIndex + 15] = tMc + tMtx; this.positions[bIndex + 16] = tMd + tMty; var val; var val1; var val2 = this.colors[bIndex + 19] = ((alpha * 255 | 0) & 255) << 24 | tint; val1 = this.colors[bIndex + 14] = val2; val = this.colors[bIndex + 9] = val1; this.colors[bIndex + 4] = val; this.positions[bIndex + 2] = tuvx; this.positions[bIndex + 3] = tuvy; this.positions[bIndex + 7] = tuvw; this.positions[bIndex + 8] = tuvy; this.positions[bIndex + 12] = tuvw; this.positions[bIndex + 13] = tuvh; this.positions[bIndex + 17] = tuvx; this.positions[bIndex + 18] = tuvh; this.writtenVertexBytes = bIndex + 20; this.setState(this.batchedSprites,texture,smooth,blendMode,this.colorTransform,flashShader,false); this.batchedSprites++; } iIndex += numValues; } } ,fillVertices: function(index,width,height,matrix,uvs,color,pixelSnapping) { if(color == null) color = -1; var a = matrix.a; var b = matrix.b; var c = matrix.c; var d = matrix.d; var tx = matrix.tx; var ty = matrix.ty; if(pixelSnapping == null || pixelSnapping == 2) { this.positions[index] = tx; this.positions[index + 1] = ty; this.positions[index + 5] = a * width + tx; this.positions[index + 6] = b * width + ty; this.positions[index + 10] = a * width + c * height + tx; this.positions[index + 11] = d * height + b * width + ty; this.positions[index + 15] = c * height + tx; this.positions[index + 16] = d * height + ty; } else { var val = Math.round(tx); this.positions[index] = val; var val1 = Math.round(ty); this.positions[index + 1] = val1; var val2 = Math.round(a * width + tx); this.positions[index + 5] = val2; var val3 = Math.round(b * width + ty); this.positions[index + 6] = val3; var val4 = Math.round(a * width + c * height + tx); this.positions[index + 10] = val4; var val5 = Math.round(d * height + b * width + ty); this.positions[index + 11] = val5; var val6 = Math.round(c * height + tx); this.positions[index + 15] = val6; var val7 = Math.round(d * height + ty); this.positions[index + 16] = val7; } if(this.enableColor) { var val8; var val9; var val10 = this.colors[index + 19] = color; val9 = this.colors[index + 14] = val10; val8 = this.colors[index + 9] = val9; this.colors[index + 4] = val8; } this.positions[index + 2] = uvs.x0; this.positions[index + 3] = uvs.y0; this.positions[index + 7] = uvs.x1; this.positions[index + 8] = uvs.y1; this.positions[index + 12] = uvs.x2; this.positions[index + 13] = uvs.y2; this.positions[index + 17] = uvs.x3; this.positions[index + 18] = uvs.y3; this.writtenVertexBytes = index + 20; } ,enableAttributes: function(color) { if(color == null) color = -1; this.enableColor = color != -1; if(this.enableColor != this.lastEnableColor) { this.flush(); this.lastEnableColor = this.enableColor; } this.attributes[2].enabled = this.lastEnableColor; this.elementsPerVertex = this.getElementsPerVertex(); } ,flush: function() { if(this.batchedSprites == 0) return; if(this.clipRect != null) { this.gl.enable(this.gl.SCISSOR_TEST); this.gl.scissor(Math.floor(this.clipRect.x),Math.floor(this.clipRect.y),Math.ceil(this.clipRect.width),Math.ceil(this.clipRect.height)); } if(this.dirty) { this.dirty = false; this.renderSession.activeTextures = 1; this.vertexArray.bind(); this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer); } if(this.writtenVertexBytes > this.vertexArraySize * 0.5) this.vertexArray.upload(this.positions); else { var view = this.positions.subarray(0,this.writtenVertexBytes); this.vertexArray.upload(view); } var nextState; var batchSize = 0; var start = 0; this.currentState.shader = null; this.currentState.shaderData = null; this.currentState.texture = null; this.currentState.textureSmooth = false; this.currentState.blendMode = this.renderSession.blendModeManager.currentBlendMode; this.currentState.colorTransform = null; this.currentState.skipColorTransformAlpha = false; var _g1 = 0; var _g = this.batchedSprites; while(_g1 < _g) { var i = _g1++; nextState = this.states[i]; this.currentState.skipColorTransformAlpha = nextState.skipColorTransformAlpha; if(!nextState.equals(this.currentState)) { this.renderBatch(this.currentState,batchSize,start); start = i; batchSize = 0; this.currentState.shader = nextState.shader; this.currentState.shaderData = nextState.shaderData; this.currentState.texture = nextState.texture; this.currentState.textureSmooth = nextState.textureSmooth; this.currentState.blendMode = nextState.blendMode; this.currentState.skipColorTransform = nextState.skipColorTransform; if(this.currentState.skipColorTransform) this.currentState.colorTransform = null; else this.currentState.colorTransform = nextState.colorTransform; } batchSize++; } this.renderBatch(this.currentState,batchSize,start); this.batchedSprites = 0; this.writtenVertexBytes = 0; if(this.clipRect != null) this.gl.disable(this.gl.SCISSOR_TEST); } ,renderBatch: function(state,size,start) { if(size == 0 || state.texture == null) return; var shader; if(state.shader == null) shader = this.renderSession.shaderManager.defaultShader; else shader = state.shader; this.renderSession.shaderManager.setShader(shader); shader.bindVertexArray(this.vertexArray); this.renderSession.blendModeManager.setBlendMode(shader.blendMode != null?shader.blendMode:state.blendMode); this.gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uProjectionMatrix"),false,this.renderSession.projectionMatrix.toArray(true)); if(state.colorTransform != null) { this.gl.uniform1i(shader.getUniformLocation("openfl_uUseColorTransform"),1); var ct = state.colorTransform; this.gl.uniform4f(shader.getUniformLocation("openfl_uColorMultiplier"),ct.redMultiplier,ct.greenMultiplier,ct.blueMultiplier,state.skipColorTransformAlpha?1:ct.alphaMultiplier); this.gl.uniform4f(shader.getUniformLocation("openfl_uColorOffset"),ct.redOffset / 255.,ct.greenOffset / 255.,ct.blueOffset / 255.,ct.alphaOffset / 255.); } else { this.gl.uniform1i(shader.getUniformLocation("openfl_uUseColorTransform"),0); this.gl.uniform4f(shader.getUniformLocation("openfl_uColorMultiplier"),1,1,1,1); this.gl.uniform4f(shader.getUniformLocation("openfl_uColorOffset"),0,0,0,0); } this.gl.activeTexture(this.gl.TEXTURE0); this.gl.bindTexture(this.gl.TEXTURE_2D,state.texture); this.gl.uniform1i(shader.getUniformLocation("openfl_uSampler0"),0); if(shader.smooth != null && shader.smooth || state.textureSmooth) { this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR); } else { this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST); } this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,shader.wrapS); this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,shader.wrapT); shader.applyData(state.shaderData,this.renderSession); this.gl.drawElements(this.gl.TRIANGLES,size * 6,this.gl.UNSIGNED_SHORT,start * 6 * 2); this.renderSession.drawCount++; } ,setState: function(index,texture,smooth,blendMode,colorTransform,shader,skipAlpha) { if(skipAlpha == null) skipAlpha = false; if(smooth == null) smooth = false; var state = this.states[index]; if(state == null) state = this.states[index] = new openfl__$internal_renderer_opengl_utils__$SpriteBatch_State(); state.texture = texture; state.textureSmooth = smooth; state.blendMode = blendMode; state.skipColorTransform = colorTransform != null && colorTransform.__isDefault(); if(!state.skipColorTransform) { state.colorTransform.redMultiplier = colorTransform.redMultiplier; state.colorTransform.greenMultiplier = colorTransform.greenMultiplier; state.colorTransform.blueMultiplier = colorTransform.blueMultiplier; state.colorTransform.alphaMultiplier = colorTransform.alphaMultiplier; state.colorTransform.redOffset = colorTransform.redOffset; state.colorTransform.greenOffset = colorTransform.greenOffset; state.colorTransform.blueOffset = colorTransform.blueOffset; state.colorTransform.alphaOffset = colorTransform.alphaOffset; } state.skipColorTransformAlpha = skipAlpha; if(shader == null) { state.shader = null; state.shaderData = null; } else { state.shader = shader.__shader; state.shaderData = shader.data; } } ,setContext: function(gl) { this.gl = gl; this.vertexArray.setContext(gl,this.positions); this.indexBuffer = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,this.indexBuffer); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,this.indices,gl.STATIC_DRAW); } ,prepareShader: function(flashShader,bd) { if(flashShader != null) { flashShader.__init(this.gl); flashShader.__shader.wrapS = flashShader.repeatX; flashShader.__shader.wrapT = flashShader.repeatY; flashShader.__shader.smooth = flashShader.smooth; flashShader.__shader.blendMode = flashShader.blendMode; var objSize = flashShader.data.get(openfl_display_Shader.uObjectSize); var texSize = flashShader.data.get(openfl_display_Shader.uTextureSize); if(bd != null) { objSize.value[0] = bd.width; objSize.value[1] = bd.height; if(bd.__pingPongTexture != null) { texSize.value[0] = bd.__pingPongTexture.get_renderTexture().__width; texSize.value[1] = bd.__pingPongTexture.get_renderTexture().__height; } else { texSize.value[0] = bd.width; texSize.value[1] = bd.height; } } else { objSize.value[0] = 0; objSize.value[1] = 0; texSize.value[0] = 0; texSize.value[1] = 0; } } } ,getElementsPerVertex: function() { var r = 0; var _g = 0; var _g1 = this.attributes; while(_g < _g1.length) { var a = _g1[_g]; ++_g; if(a.enabled) r += Math.floor(a.components * a.getElementsBytes() / 4); } return r; } ,__class__: openfl__$internal_renderer_opengl_utils_SpriteBatch }; var openfl__$internal_renderer_opengl_utils__$SpriteBatch_State = function() { this.skipColorTransformAlpha = false; this.skipColorTransform = false; this.colorTransform = new openfl_geom_ColorTransform(); this.textureSmooth = true; }; $hxClasses["openfl._internal.renderer.opengl.utils._SpriteBatch.State"] = openfl__$internal_renderer_opengl_utils__$SpriteBatch_State; openfl__$internal_renderer_opengl_utils__$SpriteBatch_State.__name__ = ["openfl","_internal","renderer","opengl","utils","_SpriteBatch","State"]; openfl__$internal_renderer_opengl_utils__$SpriteBatch_State.prototype = { texture: null ,textureSmooth: null ,blendMode: null ,colorTransform: null ,skipColorTransform: null ,skipColorTransformAlpha: null ,shader: null ,shaderData: null ,equals: function(other) { return (this.shader == null && other.shader == null || this.shader != null && other.shader != null && this.shader.ID == other.shader.ID) && this.texture == other.texture && this.textureSmooth == other.textureSmooth && this.blendMode == other.blendMode && (this.skipColorTransform && other.skipColorTransform || !this.skipColorTransform && !other.skipColorTransform && this.colorTransform.__equals(other.colorTransform,this.skipColorTransformAlpha)); } ,destroy: function() { this.texture = null; this.colorTransform = null; } ,__class__: openfl__$internal_renderer_opengl_utils__$SpriteBatch_State }; var openfl__$internal_renderer_opengl_utils_StencilManager = function(gl) { this.stencilMask = 0; this.stencilStack = []; this.setContext(gl); this.reverse = true; this.count = 0; }; $hxClasses["openfl._internal.renderer.opengl.utils.StencilManager"] = openfl__$internal_renderer_opengl_utils_StencilManager; openfl__$internal_renderer_opengl_utils_StencilManager.__name__ = ["openfl","_internal","renderer","opengl","utils","StencilManager"]; openfl__$internal_renderer_opengl_utils_StencilManager.prototype = { count: null ,gl: null ,reverse: null ,stencilStack: null ,stencilMask: null ,prepareGraphics: function(fill,renderSession,translationMatrix) { var shader = renderSession.shaderManager.fillShader; renderSession.shaderManager.setShader(shader); this.gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uTranslationMatrix"),false,translationMatrix); this.gl.uniformMatrix3fv(shader.getUniformLocation("openfl_uProjectionMatrix"),false,renderSession.projectionMatrix.toArray(true)); fill.vertexArray.bind(); shader.bindVertexArray(fill.vertexArray); this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,fill.indexBuffer); } ,pushBucket: function(bucket,renderSession,translationMatrix,isMask) { if(isMask == null) isMask = false; if(!isMask) { this.gl.enable(this.gl.STENCIL_TEST); this.gl.clear(this.gl.STENCIL_BUFFER_BIT); this.gl.stencilMask(255); this.gl.colorMask(false,false,false,false); this.gl.stencilFunc(this.gl.NEVER,1,255); this.gl.stencilOp(this.gl.INVERT,this.gl.KEEP,this.gl.KEEP); this.gl.clear(this.gl.STENCIL_BUFFER_BIT); } var _g = 0; var _g1 = bucket.fills; while(_g < _g1.length) { var fill = _g1[_g]; ++_g; if(fill.available) continue; this.prepareGraphics(fill,renderSession,translationMatrix); this.gl.drawElements(fill.drawMode,fill.glIndices.length,this.gl.UNSIGNED_SHORT,0); } if(!isMask) { this.gl.colorMask(true,true,true,renderSession.renderer.transparent); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP); this.gl.stencilFunc(this.gl.EQUAL,255,255); } } ,popBucket: function(object,bucket,renderSession) { this.gl.disable(this.gl.STENCIL_TEST); } ,pushMask: function(object,renderSession) { var maskGraphics = object.__maskGraphics; if(maskGraphics == null || maskGraphics.__commands.get_length() <= 0) return; if(this.stencilMask == 0) { this.gl.enable(this.gl.STENCIL_TEST); this.gl.clear(this.gl.STENCIL_BUFFER_BIT); } this.stencilMask++; if(maskGraphics.__dirty) openfl__$internal_renderer_opengl_utils_GraphicsRenderer.updateGraphics(object,maskGraphics,renderSession.gl); var func; if(this.stencilMask == 1) func = this.gl.NEVER; else func = this.gl.EQUAL; var ref = this.stencilMask; var mask = 255 - this.stencilMask; this.gl.stencilMask(255); this.gl.colorMask(false,false,false,false); this.gl.stencilFunc(func,ref,mask); this.gl.stencilOp(this.gl.REPLACE,this.gl.KEEP,this.gl.KEEP); var glStack = maskGraphics.__glStack[openfl__$internal_renderer_opengl_GLRenderer.glContextId]; var bucket; var translationMatrix = object.__worldTransform; var _g1 = 0; var _g = glStack.buckets.length; while(_g1 < _g) { var i = _g1++; bucket = glStack.buckets[i]; if(bucket.overrideMatrix != null) translationMatrix = bucket.overrideMatrix; else translationMatrix = object.__worldTransform; var _g2 = bucket.mode; switch(_g2[1]) { case 1:case 2: this.pushBucket(bucket,renderSession,translationMatrix.toArray(true),true); break; default: } } this.gl.colorMask(true,true,true,renderSession.renderer.transparent); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP); this.gl.stencilFunc(this.gl.EQUAL,this.stencilMask,255); } ,popMask: function(object,renderSession) { this.stencilMask--; if(this.stencilMask <= 0) { this.gl.disable(this.gl.STENCIL_TEST); this.stencilMask = 0; } } ,bindGraphics: function(object,glData,renderSession) { } ,destroy: function() { this.stencilStack = null; this.gl = null; } ,popStencil: function(object,glData,renderSession) { this.stencilStack.pop(); this.count--; if(this.stencilStack.length == 0) this.gl.disable(this.gl.STENCIL_TEST); else { var level = this.count; this.bindGraphics(object,glData,renderSession); this.gl.colorMask(false,false,false,false); if(glData.mode == 1) { this.reverse = !this.reverse; if(this.reverse) { this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR); } else { this.gl.stencilFunc(this.gl.EQUAL,level + 1,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR); } this.gl.drawElements(this.gl.TRIANGLE_FAN,4,this.gl.UNSIGNED_SHORT,(glData.indices.length - 4) * 2); this.gl.stencilFunc(this.gl.ALWAYS,0,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INVERT); this.gl.drawElements(this.gl.TRIANGLE_FAN,glData.indices.length - 4,this.gl.UNSIGNED_SHORT,0); if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); else this.gl.stencilFunc(this.gl.EQUAL,level,255); } else { if(!this.reverse) { this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR); } else { this.gl.stencilFunc(this.gl.EQUAL,level + 1,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR); } this.gl.drawElements(this.gl.TRIANGLE_STRIP,glData.indices.length,this.gl.UNSIGNED_SHORT,0); if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); else this.gl.stencilFunc(this.gl.EQUAL,level,255); } this.gl.colorMask(true,true,true,true); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP); } } ,pushStencil: function(object,glData,renderSession) { this.bindGraphics(object,glData,renderSession); if(this.stencilStack.length == 0) { this.gl.enable(this.gl.STENCIL_TEST); this.gl.clear(this.gl.STENCIL_BUFFER_BIT); this.reverse = true; this.count = 0; } this.stencilStack.push(glData); var level = this.count; this.gl.colorMask(false,false,false,false); this.gl.stencilFunc(this.gl.ALWAYS,0,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INVERT); if(glData.mode == 1) { this.gl.drawElements(this.gl.TRIANGLE_FAN,glData.indices.length - 4,this.gl.UNSIGNED_SHORT,0); if(this.reverse) { this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR); } else { this.gl.stencilFunc(this.gl.EQUAL,level,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR); } this.gl.drawElements(this.gl.TRIANGLE_FAN,4,this.gl.UNSIGNED_SHORT,(glData.indices.length - 4) * 2); if(this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); else this.gl.stencilFunc(this.gl.EQUAL,level + 1,255); this.reverse = !this.reverse; } else { if(!this.reverse) { this.gl.stencilFunc(this.gl.EQUAL,255 - level,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR); } else { this.gl.stencilFunc(this.gl.EQUAL,level,255); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR); } this.gl.drawElements(this.gl.TRIANGLE_STRIP,glData.indices.length,this.gl.UNSIGNED_SHORT,0); if(!this.reverse) this.gl.stencilFunc(this.gl.EQUAL,255 - (level + 1),255); else this.gl.stencilFunc(this.gl.EQUAL,level + 1,255); } this.gl.colorMask(true,true,true,true); this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP); this.count++; } ,setContext: function(gl) { this.gl = gl; } ,__class__: openfl__$internal_renderer_opengl_utils_StencilManager }; var openfl__$internal_renderer_opengl_utils_VertexArray = function(attributes,size,isStatic) { if(isStatic == null) isStatic = false; if(size == null) size = 0; this.isStatic = false; this.size = 0; this.attributes = []; this.size = size; this.attributes = attributes; if(size > 0) this.buffer = new ArrayBuffer(size); this.isStatic = isStatic; }; $hxClasses["openfl._internal.renderer.opengl.utils.VertexArray"] = openfl__$internal_renderer_opengl_utils_VertexArray; openfl__$internal_renderer_opengl_utils_VertexArray.__name__ = ["openfl","_internal","renderer","opengl","utils","VertexArray"]; openfl__$internal_renderer_opengl_utils_VertexArray.prototype = { gl: null ,glBuffer: null ,attributes: null ,buffer: null ,size: null ,isStatic: null ,bind: function() { this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.glBuffer); } ,unbind: function() { this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null); } ,upload: function(view) { this.gl.bufferSubData(this.gl.ARRAY_BUFFER,0,view); } ,destroy: function() { this.gl.deleteBuffer(this.glBuffer); this.buffer = null; } ,setContext: function(gl,view) { this.gl = gl; this.glBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER,this.glBuffer); gl.bufferData(gl.ARRAY_BUFFER,view,this.isStatic?gl.STATIC_DRAW:gl.DYNAMIC_DRAW); } ,get_stride: function() { var s = 0; var _g = 0; var _g1 = this.attributes; while(_g < _g1.length) { var a = _g1[_g]; ++_g; if(a.enabled) s += Math.floor(a.components * a.getElementsBytes() / 4) * 4; } return s; } ,__class__: openfl__$internal_renderer_opengl_utils_VertexArray ,__properties__: {get_stride:"get_stride"} }; var openfl__$internal_text_TextEngine = function(textField) { this.textField = textField; this.width = 100; this.height = 100; this.text = ""; this.bounds = new openfl_geom_Rectangle(0,0,0,0); this.type = 0; this.autoSize = 2; this.displayAsPassword = false; this.embedFonts = false; this.selectable = true; this.borderColor = 0; this.border = false; this.backgroundColor = 16777215; this.background = false; this.gridFitType = 1; this.maxChars = 0; this.multiline = false; this.sharpness = 0; this.scrollH = 0; this.scrollV = 1; this.wordWrap = false; this.lineAscents = []; this.lineBreaks = []; this.lineDescents = []; this.lineLeadings = []; this.lineHeights = []; this.lineWidths = []; this.layoutGroups = []; this.textFormatRanges = []; openfl__$internal_text_TextEngine.__canvas = window.document.createElement("canvas"); openfl__$internal_text_TextEngine.__context = openfl__$internal_text_TextEngine.__canvas.getContext("2d"); }; $hxClasses["openfl._internal.text.TextEngine"] = openfl__$internal_text_TextEngine; openfl__$internal_text_TextEngine.__name__ = ["openfl","_internal","text","TextEngine"]; openfl__$internal_text_TextEngine.__canvas = null; openfl__$internal_text_TextEngine.__context = null; openfl__$internal_text_TextEngine.findFont = function(name) { return null; }; openfl__$internal_text_TextEngine.getFont = function(format) { var font; if(format.italic) font = "italic "; else font = "normal "; font += "normal "; if(format.bold) font += "bold "; else font += "normal "; font += format.size + "px"; font += "/" + (format.size + format.leading + 6) + "px "; font += "" + (function($this) { var $r; var _g = format.font; $r = (function($this) { var $r; switch(_g) { case "_sans": $r = "sans-serif"; break; case "_serif": $r = "serif"; break; case "_typewriter": $r = "monospace"; break; default: $r = "'" + format.font + "'"; } return $r; }($this)); return $r; }(this)); return font; }; openfl__$internal_text_TextEngine.getFontInstance = function(format) { return null; }; openfl__$internal_text_TextEngine.prototype = { antiAliasType: null ,autoSize: null ,background: null ,backgroundColor: null ,border: null ,borderColor: null ,bottomScrollV: null ,bounds: null ,caretIndex: null ,displayAsPassword: null ,embedFonts: null ,gridFitType: null ,height: null ,layoutGroups: null ,lineAscents: null ,lineBreaks: null ,lineDescents: null ,lineLeadings: null ,lineHeights: null ,lineWidths: null ,maxChars: null ,maxScrollH: null ,maxScrollV: null ,multiline: null ,numLines: null ,restrict: null ,scrollH: null ,scrollV: null ,selectable: null ,sharpness: null ,text: null ,textHeight: null ,textFormatRanges: null ,textWidth: null ,type: null ,width: null ,wordWrap: null ,textField: null ,__cursorPosition: null ,__cursorTimer: null ,__hasFocus: null ,__isKeyDown: null ,__measuredHeight: null ,__measuredWidth: null ,__selectionStart: null ,__showCursor: null ,__textFormat: null ,__textLayout: null ,__texture: null ,__tileData: null ,__tileDataLength: null ,__tilesheets: null ,__cairoFont: null ,__font: null ,__hiddenInput: null ,getBounds: function() { var padding; if(this.border) padding = 1; else padding = 0; this.bounds.width = this.width + padding; this.bounds.height = this.height + padding; } ,getLine: function(index) { if(index < 0 || index > this.lineBreaks.length + 1) return null; if(this.lineBreaks.length == 0) return this.text; else return this.text.substring(index > 0?this.lineBreaks[index - 1]:0,this.lineBreaks[index]); } ,getLineMeasurements: function() { this.lineAscents.splice(0,this.lineAscents.length); this.lineDescents.splice(0,this.lineDescents.length); this.lineLeadings.splice(0,this.lineLeadings.length); this.lineHeights.splice(0,this.lineHeights.length); this.lineWidths.splice(0,this.lineWidths.length); var currentLineAscent = 0.0; var currentLineDescent = 0.0; var currentLineLeading = null; var currentLineHeight = 0.0; var currentLineWidth = 0.0; this.textWidth = 0; this.textHeight = 0; this.numLines = 1; this.bottomScrollV = 0; this.maxScrollH = 0; var _g = 0; var _g1 = this.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; while(group.lineIndex > this.numLines - 1) { this.lineAscents.push(currentLineAscent); this.lineDescents.push(currentLineDescent); this.lineLeadings.push(currentLineLeading != null?currentLineLeading:0); this.lineHeights.push(currentLineHeight); this.lineWidths.push(currentLineWidth); currentLineAscent = 0; currentLineDescent = 0; currentLineLeading = null; currentLineHeight = 0; currentLineWidth = 0; this.numLines++; if(this.textHeight <= this.height - 2) this.bottomScrollV++; } currentLineAscent = Math.max(currentLineAscent,group.ascent); currentLineDescent = Math.max(currentLineDescent,group.descent); if(currentLineLeading == null) currentLineLeading = group.leading; else currentLineLeading = Std["int"](Math.max(currentLineLeading,group.leading)); currentLineHeight = Math.max(currentLineHeight,group.height); currentLineWidth = group.offsetX - 2 + group.width; if(currentLineWidth > this.textWidth) this.textWidth = currentLineWidth; this.textHeight = group.offsetY - 2 + group.ascent + group.descent; } this.lineAscents.push(currentLineAscent); this.lineDescents.push(currentLineDescent); this.lineLeadings.push(currentLineLeading != null?currentLineLeading:0); this.lineHeights.push(currentLineHeight); this.lineWidths.push(currentLineWidth); if(this.numLines == 1) { this.bottomScrollV = 1; if(currentLineLeading > 0) this.textHeight += currentLineLeading; } else if(this.textHeight <= this.height - 2) this.bottomScrollV++; if(this.textWidth > this.width - 4) this.maxScrollH = this.textWidth - this.width + 4 | 0; else this.maxScrollH = 0; this.maxScrollV = this.numLines - this.bottomScrollV + 1; } ,getLayoutGroups: function() { var _g = this; this.layoutGroups.splice(0,this.layoutGroups.length); var rangeIndex = -1; var formatRange = null; var font = null; var currentFormat = openfl_text_TextField.__defaultTextFormat.clone(); var leading = 0; var ascent = 0.0; var descent = 0.0; var layoutGroup; var advances; var widthValue; var heightValue = 0.0; var spaceWidth = 0.0; var previousSpaceIndex = 0; var spaceIndex = this.text.indexOf(" "); var breakIndex = this.text.indexOf("\n"); var marginRight = 0.0; var offsetX = 2.0; var offsetY = 2.0; var textIndex = 0; var lineIndex = 0; var lineFormat = null; if(rangeIndex < _g.textFormatRanges.length - 1) { rangeIndex++; formatRange = _g.textFormatRanges[rangeIndex]; currentFormat.__merge(formatRange.format); openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(currentFormat); ascent = currentFormat.size; descent = currentFormat.size * 0.185; leading = currentFormat.leading; heightValue = ascent + descent + leading; if(spaceIndex > -1) spaceWidth = openfl__$internal_text_TextEngine.__context.measureText(" ").width; } lineFormat = formatRange.format; var wrap; while(textIndex < this.text.length) if(breakIndex > -1 && (spaceIndex == -1 || breakIndex < spaceIndex) && formatRange.end >= breakIndex) { layoutGroup = new openfl__$internal_text_TextLayoutGroup(formatRange.format,textIndex,breakIndex); var text = this.text; var advances1 = []; var _g1 = textIndex; while(_g1 < breakIndex) { var i = _g1++; advances1.push(openfl__$internal_text_TextEngine.__context.measureText(text.charAt(i)).width); } layoutGroup.advances = advances1; layoutGroup.offsetX = offsetX; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY; var advances2 = layoutGroup.advances; var width = 0.0; var _g2 = 0; while(_g2 < advances2.length) { var advance = advances2[_g2]; ++_g2; width += advance; } layoutGroup.width = width; layoutGroup.height = heightValue; this.layoutGroups.push(layoutGroup); offsetY += heightValue; offsetX = 2; if(this.wordWrap && layoutGroup.offsetX + layoutGroup.width > this.width - 2) { layoutGroup.offsetY = offsetY; layoutGroup.offsetX = offsetX; offsetY += heightValue; lineIndex++; } textIndex = breakIndex + 1; breakIndex = this.text.indexOf("\n",textIndex); lineIndex++; if(formatRange.end == breakIndex) { if(rangeIndex < _g.textFormatRanges.length - 1) { rangeIndex++; formatRange = _g.textFormatRanges[rangeIndex]; currentFormat.__merge(formatRange.format); openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(currentFormat); ascent = currentFormat.size; descent = currentFormat.size * 0.185; leading = currentFormat.leading; heightValue = ascent + descent + leading; if(spaceIndex > -1) spaceWidth = openfl__$internal_text_TextEngine.__context.measureText(" ").width; } lineFormat = formatRange.format; } } else if(formatRange.end >= spaceIndex && spaceIndex > -1) { layoutGroup = null; wrap = false; while(true) { if(spaceIndex == -1) spaceIndex = formatRange.end; var text1 = this.text; var advances3 = []; var _g3 = textIndex; while(_g3 < spaceIndex) { var i1 = _g3++; advances3.push(openfl__$internal_text_TextEngine.__context.measureText(text1.charAt(i1)).width); } advances = advances3; var width1 = 0.0; var _g4 = 0; while(_g4 < advances.length) { var advance1 = advances[_g4]; ++_g4; width1 += advance1; } widthValue = width1; if(this.wordWrap) { if(offsetX + widthValue > this.width - 2) wrap = true; } if(wrap) { offsetY += heightValue; var i2 = this.layoutGroups.length - 1; var offsetCount = 0; while(true) { layoutGroup = this.layoutGroups[i2]; if(i2 > 0 && layoutGroup.startIndex > previousSpaceIndex) offsetCount++; else break; i2--; } lineIndex++; offsetX = 2; if(offsetCount > 0) { var bumpX = this.layoutGroups[this.layoutGroups.length - offsetCount].offsetX; var _g11 = this.layoutGroups.length - offsetCount; var _g5 = this.layoutGroups.length; while(_g11 < _g5) { var i3 = _g11++; layoutGroup = this.layoutGroups[i3]; layoutGroup.offsetX -= bumpX; layoutGroup.offsetY = offsetY; layoutGroup.lineIndex = lineIndex; offsetX += layoutGroup.width; } } layoutGroup = new openfl__$internal_text_TextLayoutGroup(formatRange.format,textIndex,spaceIndex); layoutGroup.advances = advances; layoutGroup.offsetX = offsetX; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY; layoutGroup.width = widthValue; layoutGroup.height = heightValue; this.layoutGroups.push(layoutGroup); offsetX = widthValue + spaceWidth; marginRight = spaceWidth; wrap = false; } else { if(layoutGroup != null && textIndex == spaceIndex) { if(formatRange.format.align != 2) layoutGroup.endIndex = spaceIndex; layoutGroup.advances.push(spaceWidth); marginRight += spaceWidth; } else if(layoutGroup == null || lineFormat.align == 2) { layoutGroup = new openfl__$internal_text_TextLayoutGroup(formatRange.format,textIndex,spaceIndex); layoutGroup.advances = advances; layoutGroup.offsetX = offsetX; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY; layoutGroup.width = widthValue; layoutGroup.height = heightValue; this.layoutGroups.push(layoutGroup); layoutGroup.advances.push(spaceWidth); marginRight = spaceWidth; } else { layoutGroup.endIndex = spaceIndex; layoutGroup.advances = layoutGroup.advances.concat(advances); layoutGroup.width += marginRight + widthValue; layoutGroup.advances.push(spaceWidth); marginRight = spaceWidth; } offsetX += widthValue + spaceWidth; } textIndex = spaceIndex + 1; previousSpaceIndex = spaceIndex; spaceIndex = this.text.indexOf(" ",previousSpaceIndex + 1); if(formatRange.end <= previousSpaceIndex) { layoutGroup = null; if(rangeIndex < _g.textFormatRanges.length - 1) { rangeIndex++; formatRange = _g.textFormatRanges[rangeIndex]; currentFormat.__merge(formatRange.format); openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(currentFormat); ascent = currentFormat.size; descent = currentFormat.size * 0.185; leading = currentFormat.leading; heightValue = ascent + descent + leading; if(spaceIndex > -1) spaceWidth = openfl__$internal_text_TextEngine.__context.measureText(" ").width; } } if(spaceIndex > breakIndex && breakIndex > -1 || textIndex > this.text.length || spaceIndex > formatRange.end || spaceIndex == -1 && breakIndex > -1) break; } } else { if(textIndex >= formatRange.end) break; layoutGroup = new openfl__$internal_text_TextLayoutGroup(formatRange.format,textIndex,formatRange.end); var text2 = this.text; var advances4 = []; var _g6 = textIndex; while(_g6 < formatRange.end) { var i4 = _g6++; advances4.push(openfl__$internal_text_TextEngine.__context.measureText(text2.charAt(i4)).width); } layoutGroup.advances = advances4; layoutGroup.offsetX = offsetX; layoutGroup.ascent = ascent; layoutGroup.descent = descent; layoutGroup.leading = leading; layoutGroup.lineIndex = lineIndex; layoutGroup.offsetY = offsetY; var advances5 = layoutGroup.advances; var width2 = 0.0; var _g7 = 0; while(_g7 < advances5.length) { var advance2 = advances5[_g7]; ++_g7; width2 += advance2; } layoutGroup.width = width2; layoutGroup.height = heightValue; this.layoutGroups.push(layoutGroup); offsetX += layoutGroup.width; textIndex = formatRange.end; if(rangeIndex < _g.textFormatRanges.length - 1) { rangeIndex++; formatRange = _g.textFormatRanges[rangeIndex]; currentFormat.__merge(formatRange.format); openfl__$internal_text_TextEngine.__context.font = openfl__$internal_text_TextEngine.getFont(currentFormat); ascent = currentFormat.size; descent = currentFormat.size * 0.185; leading = currentFormat.leading; heightValue = ascent + descent + leading; if(spaceIndex > -1) spaceWidth = openfl__$internal_text_TextEngine.__context.measureText(" ").width; } } } ,setTextAlignment: function() { var lineIndex = -1; var offsetX = 0.0; var group; var lineLength; var _g1 = 0; var _g = this.layoutGroups.length; while(_g1 < _g) { var i = _g1++; group = this.layoutGroups[i]; if(group.lineIndex != lineIndex) { lineIndex = group.lineIndex; var _g2 = group.format.align; switch(_g2) { case 0: if(this.lineWidths[lineIndex] < this.width - 4) offsetX = Math.round((this.width - 4 - this.lineWidths[lineIndex]) / 2); else offsetX = 0; break; case 4: if(this.lineWidths[lineIndex] < this.width - 4) offsetX = Math.round(this.width - 4 - this.lineWidths[lineIndex]); else offsetX = 0; break; case 2: if(this.lineWidths[lineIndex] < this.width - 4) { lineLength = 1; var _g4 = i + 1; var _g3 = this.layoutGroups.length; while(_g4 < _g3) { var j = _g4++; if(this.layoutGroups[j].lineIndex == lineIndex) lineLength++; else break; } if(lineLength > 1) { group = this.layoutGroups[i + lineLength - 1]; if(group.endIndex < this.text.length && this.text.charAt(group.endIndex) != "\n") { offsetX = (this.width - 4 - this.lineWidths[lineIndex]) / (lineLength - 1); var _g31 = 1; while(_g31 < lineLength) { var j1 = _g31++; this.layoutGroups[i + j1].offsetX += offsetX * j1; } } } } offsetX = 0; break; default: offsetX = 0; } } if(offsetX > 0) group.offsetX += offsetX; } } ,update: function() { if(this.text == null || StringTools.trim(this.text) == "" || this.textFormatRanges.length == 0) { this.lineAscents.splice(0,this.lineAscents.length); this.lineBreaks.splice(0,this.lineBreaks.length); this.lineDescents.splice(0,this.lineDescents.length); this.lineLeadings.splice(0,this.lineLeadings.length); this.lineHeights.splice(0,this.lineHeights.length); this.lineWidths.splice(0,this.lineWidths.length); this.layoutGroups.splice(0,this.layoutGroups.length); this.textWidth = 0; this.textHeight = 0; this.numLines = 1; this.maxScrollH = 0; this.maxScrollV = 1; this.bottomScrollV = 1; } else { this.getLayoutGroups(); this.getLineMeasurements(); this.setTextAlignment(); } this.getBounds(); } ,__class__: openfl__$internal_text_TextEngine }; var openfl__$internal_text_TextFormatRange = function(format,start,end) { this.format = format; this.start = start; this.end = end; }; $hxClasses["openfl._internal.text.TextFormatRange"] = openfl__$internal_text_TextFormatRange; openfl__$internal_text_TextFormatRange.__name__ = ["openfl","_internal","text","TextFormatRange"]; openfl__$internal_text_TextFormatRange.prototype = { end: null ,format: null ,start: null ,__class__: openfl__$internal_text_TextFormatRange }; var openfl__$internal_text_TextLayoutGroup = function(format,startIndex,endIndex) { this.format = format; this.startIndex = startIndex; this.endIndex = endIndex; }; $hxClasses["openfl._internal.text.TextLayoutGroup"] = openfl__$internal_text_TextLayoutGroup; openfl__$internal_text_TextLayoutGroup.__name__ = ["openfl","_internal","text","TextLayoutGroup"]; openfl__$internal_text_TextLayoutGroup.prototype = { advances: null ,ascent: null ,descent: null ,endIndex: null ,format: null ,height: null ,leading: null ,lineIndex: null ,offsetX: null ,offsetY: null ,startIndex: null ,width: null ,__class__: openfl__$internal_text_TextLayoutGroup }; var openfl_display_Application = function() { lime_app_Application.call(this); if(openfl_Lib.application == null) openfl_Lib.application = this; }; $hxClasses["openfl.display.Application"] = openfl_display_Application; openfl_display_Application.__name__ = ["openfl","display","Application"]; openfl_display_Application.__super__ = lime_app_Application; openfl_display_Application.prototype = $extend(lime_app_Application.prototype,{ create: function(config) { this.config = config; this.backend.create(config); if(config != null) { if(Object.prototype.hasOwnProperty.call(config,"fps")) this.backend.setFrameRate(config.fps); if(Object.prototype.hasOwnProperty.call(config,"windows")) { var _g = 0; var _g1 = config.windows; while(_g < _g1.length) { var windowConfig = _g1[_g]; ++_g; var $window = new openfl_display_Window(windowConfig); this.createWindow($window); break; } } if(this.preloader == null || this.preloader.complete) this.onPreloadComplete(); } } ,__class__: openfl_display_Application }); var openfl_display_TextureUvs = function() { this.y3 = 0; this.y2 = 0; this.y1 = 0; this.y0 = 0; this.x3 = 0; this.x2 = 0; this.x1 = 0; this.x0 = 0; }; $hxClasses["openfl.display.TextureUvs"] = openfl_display_TextureUvs; openfl_display_TextureUvs.__name__ = ["openfl","display","TextureUvs"]; openfl_display_TextureUvs.prototype = { x0: null ,x1: null ,x2: null ,x3: null ,y0: null ,y1: null ,y2: null ,y3: null ,reset: function() { this.x0 = this.x1 = this.x2 = this.x3 = this.y0 = this.y1 = this.y2 = this.y3 = 0; } ,__class__: openfl_display_TextureUvs }; var openfl_display__$BlendMode_BlendMode_$Impl_$ = {}; $hxClasses["openfl.display._BlendMode.BlendMode_Impl_"] = openfl_display__$BlendMode_BlendMode_$Impl_$; openfl_display__$BlendMode_BlendMode_$Impl_$.__name__ = ["openfl","display","_BlendMode","BlendMode_Impl_"]; openfl_display__$BlendMode_BlendMode_$Impl_$.fromString = function(value) { switch(value) { case "add": return 0; case "alpha": return 1; case "darken": return 2; case "difference": return 3; case "erase": return 4; case "hardlight": return 5; case "invert": return 6; case "layer": return 7; case "lighten": return 8; case "multiply": return 9; case "normal": return 10; case "overlay": return 11; case "screen": return 12; case "shader": return 13; case "subtract": return 14; default: return null; } }; openfl_display__$BlendMode_BlendMode_$Impl_$.toString = function(value) { switch(value) { case 0: return "add"; case 1: return "alpha"; case 2: return "darken"; case 3: return "difference"; case 4: return "erase"; case 5: return "hardlight"; case 6: return "invert"; case 7: return "layer"; case 8: return "lighten"; case 9: return "multiply"; case 10: return "normal"; case 11: return "overlay"; case 12: return "screen"; case 13: return "shader"; case 14: return "subtract"; default: return null; } }; var openfl_display__$CapsStyle_CapsStyle_$Impl_$ = {}; $hxClasses["openfl.display._CapsStyle.CapsStyle_Impl_"] = openfl_display__$CapsStyle_CapsStyle_$Impl_$; openfl_display__$CapsStyle_CapsStyle_$Impl_$.__name__ = ["openfl","display","_CapsStyle","CapsStyle_Impl_"]; openfl_display__$CapsStyle_CapsStyle_$Impl_$.fromString = function(value) { switch(value) { case "none": return 0; case "round": return 1; case "square": return 2; default: return null; } }; openfl_display__$CapsStyle_CapsStyle_$Impl_$.toString = function(value) { switch(value) { case 0: return "none"; case 1: return "round"; case 2: return "square"; default: return null; } }; var openfl_display_DirectRenderer = function(type) { if(type == null) type = "DirectRenderer"; openfl_display_DisplayObject.call(this); }; $hxClasses["openfl.display.DirectRenderer"] = openfl_display_DirectRenderer; openfl_display_DirectRenderer.__name__ = ["openfl","display","DirectRenderer"]; openfl_display_DirectRenderer.__super__ = openfl_display_DisplayObject; openfl_display_DirectRenderer.prototype = $extend(openfl_display_DisplayObject.prototype,{ __render: null ,get_render: function() { return this.__render; } ,set_render: function(value) { return this.__render = value; } ,__class__: openfl_display_DirectRenderer ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{set_render:"set_render",get_render:"get_render"}) }); var openfl_text_TextField = function() { openfl_display_InteractiveObject.call(this); this.__caretIndex = -1; this.__graphics = new openfl_display_Graphics(); this.__textEngine = new openfl__$internal_text_TextEngine(this); this.__layoutDirty = true; this.__tabEnabled = true; if(openfl_text_TextField.__defaultTextFormat == null) { openfl_text_TextField.__defaultTextFormat = new openfl_text_TextFormat("Times New Roman",12,0,false,false,false,"","",3,0,0,0,0); openfl_text_TextField.__defaultTextFormat.blockIndent = 0; openfl_text_TextField.__defaultTextFormat.bullet = false; openfl_text_TextField.__defaultTextFormat.letterSpacing = 0; openfl_text_TextField.__defaultTextFormat.kerning = false; } this.__textFormat = openfl_text_TextField.__defaultTextFormat.clone(); this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(this.__textFormat,0,0)); this.addEventListener("mouseDown",$bind(this,this.this_onMouseDown)); }; $hxClasses["openfl.text.TextField"] = openfl_text_TextField; openfl_text_TextField.__name__ = ["openfl","text","TextField"]; openfl_text_TextField.__defaultTextFormat = null; openfl_text_TextField.__super__ = openfl_display_InteractiveObject; openfl_text_TextField.prototype = $extend(openfl_display_InteractiveObject.prototype,{ bottomScrollV: null ,caretIndex: null ,length: null ,maxScrollH: null ,maxScrollV: null ,numLines: null ,selectionBeginIndex: null ,selectionEndIndex: null ,textHeight: null ,textWidth: null ,__bounds: null ,__caretIndex: null ,__cursorTimer: null ,__dirty: null ,__inputEnabled: null ,__isHTML: null ,__layoutDirty: null ,__selectionIndex: null ,__showCursor: null ,__textEngine: null ,__textFormat: null ,__div: null ,appendText: function(text) { this.__textEngine.text += text; this.__textEngine.textFormatRanges[this.__textEngine.textFormatRanges.length - 1].end = this.__textEngine.text.length; this.__dirty = true; this.__layoutDirty = true; } ,getCharBoundaries: function(charIndex) { if(charIndex < 0 || charIndex > this.__textEngine.text.length - 1) return null; this.__updateLayout(); var _g = 0; var _g1 = this.__textEngine.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(charIndex >= group.startIndex && charIndex <= group.endIndex) { var x = group.offsetX; var _g3 = 0; var _g2 = charIndex - group.startIndex; while(_g3 < _g2) { var i = _g3++; x += group.advances[i]; } return new openfl_geom_Rectangle(x,group.offsetY,group.advances[charIndex - group.startIndex],group.ascent + group.descent); } } return null; } ,getCharIndexAtPoint: function(x,y) { if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) return -1; this.__updateLayout(); x += this.get_scrollH(); var _g1 = 0; var _g = this.get_scrollV() - 1; while(_g1 < _g) { var i = _g1++; y += this.__textEngine.lineHeights[i]; } var _g2 = 0; var _g11 = this.__textEngine.layoutGroups; while(_g2 < _g11.length) { var group = _g11[_g2]; ++_g2; if(y >= group.offsetY && y <= group.offsetY + group.height) { if(x >= group.offsetX && x <= group.offsetX + group.width) { var advance = 0.0; var _g3 = 0; var _g21 = group.advances.length; while(_g3 < _g21) { var i1 = _g3++; advance += group.advances[i1]; if(x <= group.offsetX + advance) return group.startIndex + i1; } return group.endIndex; } } } return -1; } ,getFirstCharInParagraph: function(charIndex) { if(charIndex < 0 || charIndex > this.__textEngine.text.length - 1) return 0; var index = this.__textEngine.text.indexOf("\n"); var startIndex = 0; while(index > -1) { if(index <= charIndex) startIndex = index + 1; else if(index > charIndex) break; index = this.__textEngine.text.indexOf("\n",index + 1); } return startIndex; } ,getLineIndexAtPoint: function(x,y) { this.__updateLayout(); if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) return -1; var _g1 = 0; var _g = this.get_scrollV() - 1; while(_g1 < _g) { var i = _g1++; y += this.__textEngine.lineHeights[i]; } var _g2 = 0; var _g11 = this.__textEngine.layoutGroups; while(_g2 < _g11.length) { var group = _g11[_g2]; ++_g2; if(y >= group.offsetY && y <= group.offsetY + group.height) return group.lineIndex; } return -1; } ,getLineIndexOfChar: function(charIndex) { if(charIndex < 0 || charIndex > this.__textEngine.text.length - 1) return -1; this.__updateLayout(); var _g = 0; var _g1 = this.__textEngine.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.startIndex <= charIndex && group.endIndex >= charIndex) return group.lineIndex; } return -1; } ,getLineLength: function(lineIndex) { this.__updateLayout(); if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) return 0; var startIndex = -1; var endIndex = -1; var _g = 0; var _g1 = this.__textEngine.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.lineIndex == lineIndex) { if(startIndex == -1) startIndex = group.startIndex; } else if(group.lineIndex == lineIndex + 1) { endIndex = group.startIndex; break; } } if(endIndex == -1) endIndex = this.__textEngine.text.length; return endIndex - startIndex; } ,getLineMetrics: function(lineIndex) { this.__updateLayout(); var ascender = this.__textEngine.lineAscents[lineIndex]; var descender = this.__textEngine.lineDescents[lineIndex]; var leading = this.__textEngine.lineLeadings[lineIndex]; var lineHeight = this.__textEngine.lineHeights[lineIndex]; var lineWidth = this.__textEngine.lineWidths[lineIndex]; var margin; var _g = this.__textFormat.align; switch(_g) { case 3:case 2:case 5: margin = 2; break; case 4:case 1: margin = this.__textEngine.width - lineWidth - 2; break; case 0: margin = (this.__textEngine.width - lineWidth) / 2; break; } return new openfl_text_TextLineMetrics(margin,lineWidth,lineHeight,ascender,descender,leading); } ,getLineOffset: function(lineIndex) { this.__updateLayout(); if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) return -1; var _g = 0; var _g1 = this.__textEngine.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.lineIndex == lineIndex) return group.startIndex; } return 0; } ,getLineText: function(lineIndex) { this.__updateLayout(); if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) return null; var startIndex = -1; var endIndex = -1; var _g = 0; var _g1 = this.__textEngine.layoutGroups; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.lineIndex == lineIndex) { if(startIndex == -1) startIndex = group.startIndex; } else if(group.lineIndex == lineIndex + 1) { endIndex = group.startIndex; break; } } if(endIndex == -1) endIndex = this.__textEngine.text.length; return this.__textEngine.text.substring(startIndex,endIndex); } ,getParagraphLength: function(charIndex) { if(charIndex < 0 || charIndex > this.__textEngine.text.length - 1) return 0; var startIndex = this.getFirstCharInParagraph(charIndex); var endIndex = this.__textEngine.text.indexOf("\n",charIndex) + 1; if(endIndex == 0) endIndex = this.__textEngine.text.length; return endIndex - startIndex; } ,getTextFormat: function(beginIndex,endIndex) { if(endIndex == null) endIndex = 0; if(beginIndex == null) beginIndex = 0; var format = null; var _g = 0; var _g1 = this.__textEngine.textFormatRanges; while(_g < _g1.length) { var group = _g1[_g]; ++_g; if(group.start <= beginIndex && group.end >= beginIndex || group.start <= endIndex && group.end >= endIndex) { if(format == null) format = group.format.clone(); else { if(group.format.font != format.font) format.font = null; if(group.format.size != format.size) format.size = null; if(group.format.color != format.color) format.color = null; if(group.format.bold != format.bold) format.bold = null; if(group.format.italic != format.italic) format.italic = null; if(group.format.underline != format.underline) format.underline = null; if(group.format.url != format.url) format.url = null; if(group.format.target != format.target) format.target = null; if(group.format.align != format.align) format.align = null; if(group.format.leftMargin != format.leftMargin) format.leftMargin = null; if(group.format.rightMargin != format.rightMargin) format.rightMargin = null; if(group.format.indent != format.indent) format.indent = null; if(group.format.leading != format.leading) format.leading = null; if(group.format.blockIndent != format.blockIndent) format.blockIndent = null; if(group.format.bullet != format.bullet) format.bullet = null; if(group.format.kerning != format.kerning) format.kerning = null; if(group.format.letterSpacing != format.letterSpacing) format.letterSpacing = null; if(group.format.tabStops != format.tabStops) format.tabStops = null; } } } return format; } ,replaceSelectedText: function(value) { if(value == "" && this.__selectionIndex == this.__caretIndex) return; var startIndex; if(this.__caretIndex < this.__selectionIndex) startIndex = this.__caretIndex; else startIndex = this.__selectionIndex; var endIndex; if(this.__caretIndex > this.__selectionIndex) endIndex = this.__caretIndex; else endIndex = this.__selectionIndex; this.replaceText(startIndex,endIndex,value); this.__caretIndex = startIndex + value.length; this.__selectionIndex = this.__caretIndex; } ,replaceText: function(beginIndex,endIndex,newText) { if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__textEngine.text.length || newText == null) return; this.__textEngine.text = this.__textEngine.text.substring(0,beginIndex) + newText + this.__textEngine.text.substring(endIndex); var offset = newText.length - (endIndex - beginIndex); var i = 0; var range; while(i < this.__textEngine.textFormatRanges.length) { range = this.__textEngine.textFormatRanges[i]; if(range.start <= beginIndex && range.end >= endIndex) { range.end += offset; i++; } else if(range.start >= beginIndex && range.end <= endIndex) { this.__textEngine.textFormatRanges.splice(i,1); offset -= range.end - range.start; } else if(range.start > beginIndex && range.start <= endIndex) { range.start += offset; i++; } else i++; } this.__dirty = true; this.__layoutDirty = true; } ,setSelection: function(beginIndex,endIndex) { this.__selectionIndex = beginIndex; this.__caretIndex = endIndex; } ,setTextFormat: function(format,beginIndex,endIndex) { if(endIndex == null) endIndex = 0; if(beginIndex == null) beginIndex = 0; if(format.font != null) this.__textFormat.font = format.font; if(format.size != null) this.__textFormat.size = format.size; if(format.color != null) this.__textFormat.color = format.color; if(format.bold != null) this.__textFormat.bold = format.bold; if(format.italic != null) this.__textFormat.italic = format.italic; if(format.underline != null) this.__textFormat.underline = format.underline; if(format.url != null) this.__textFormat.url = format.url; if(format.target != null) this.__textFormat.target = format.target; if(format.align != null) this.__textFormat.align = format.align; if(format.leftMargin != null) this.__textFormat.leftMargin = format.leftMargin; if(format.rightMargin != null) this.__textFormat.rightMargin = format.rightMargin; if(format.indent != null) this.__textFormat.indent = format.indent; if(format.leading != null) this.__textFormat.leading = format.leading; if(format.blockIndent != null) this.__textFormat.blockIndent = format.blockIndent; if(format.bullet != null) this.__textFormat.bullet = format.bullet; if(format.kerning != null) this.__textFormat.kerning = format.kerning; if(format.letterSpacing != null) this.__textFormat.letterSpacing = format.letterSpacing; if(format.tabStops != null) this.__textFormat.tabStops = format.tabStops; this.__dirty = true; this.__layoutDirty = true; } ,__getBounds: function(rect,matrix) { this.__updateLayout(); var bounds = openfl_geom_Rectangle.__temp; this.__textEngine.bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); } ,__getCursor: function() { if(this.__textEngine.selectable) return lime_ui_MouseCursor.TEXT; else return null; } ,__getPosition: function(x,y) { this.__updateLayout(); x += this.get_scrollH(); var _g1 = 0; var _g = this.get_scrollV() - 1; while(_g1 < _g) { var i = _g1++; y += this.__textEngine.lineHeights[i]; } if(y > this.__textEngine.textHeight) y = this.__textEngine.textHeight; var firstGroup = true; var group; var nextGroup; var _g11 = 0; var _g2 = this.__textEngine.layoutGroups.length; while(_g11 < _g2) { var i1 = _g11++; group = this.__textEngine.layoutGroups[i1]; if(i1 < this.__textEngine.layoutGroups.length - 1) nextGroup = this.__textEngine.layoutGroups[i1 + 1]; else nextGroup = null; if(firstGroup) { if(y < group.offsetY) y = group.offsetY; if(x < group.offsetX) x = group.offsetX; firstGroup = false; } if(y >= group.offsetY && y <= group.offsetY + group.height || nextGroup == null) { if(x >= group.offsetX && x <= group.offsetX + group.width || (nextGroup == null || nextGroup.lineIndex != group.lineIndex)) { var advance = 0.0; var _g3 = 0; var _g21 = group.advances.length; while(_g3 < _g21) { var i2 = _g3++; advance += group.advances[i2]; if(x <= group.offsetX + advance) { if(x <= group.offsetX + (advance - group.advances[i2]) + group.advances[i2] / 2) return group.startIndex + i2; else if(group.startIndex + i2 < group.endIndex) return group.startIndex + i2 + 1; else return group.endIndex; } } return group.endIndex; } } } return this.__textEngine.text.length; } ,__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) { if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) return false; if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) return false; this.__getWorldTransform(); this.__updateLayout(); var px = this.__worldTransform.__transformInverseX(x,y); var py = this.__worldTransform.__transformInverseY(x,y); if(this.__textEngine.bounds.contains(px,py)) { if(stack != null) stack.push(hitObject); return true; } return false; } ,__hitTestMask: function(x,y) { this.__getWorldTransform(); this.__updateLayout(); var px = this.__worldTransform.__transformInverseX(x,y); var py = this.__worldTransform.__transformInverseY(x,y); if(this.__textEngine.bounds.contains(px,py)) return true; return false; } ,__renderCairo: function(renderSession) { openfl__$internal_renderer_cairo_CairoTextField.render(this,renderSession); openfl_display_InteractiveObject.prototype.__renderCairo.call(this,renderSession); } ,__renderCanvas: function(renderSession) { openfl__$internal_renderer_canvas_CanvasTextField.render(this,renderSession); if(this.__textEngine.antiAliasType == 0 && this.__textEngine.gridFitType == 1) { var smoothingEnabled = renderSession.context.imageSmoothingEnabled; if(smoothingEnabled) { renderSession.context.mozImageSmoothingEnabled = false; renderSession.context.msImageSmoothingEnabled = false; renderSession.context.imageSmoothingEnabled = false; } openfl_display_InteractiveObject.prototype.__renderCanvas.call(this,renderSession); if(smoothingEnabled) { renderSession.context.mozImageSmoothingEnabled = true; renderSession.context.msImageSmoothingEnabled = true; renderSession.context.imageSmoothingEnabled = true; } } else openfl_display_InteractiveObject.prototype.__renderCanvas.call(this,renderSession); } ,__renderDOM: function(renderSession) { openfl__$internal_renderer_dom_DOMTextField.render(this,renderSession); } ,__renderGL: function(renderSession) { if(this.__cacheAsBitmap) { this.__cacheGL(renderSession); return; } if(this.__scrollRect != null) renderSession.maskManager.pushRect(this.__scrollRect,this.__renderTransform); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.pushMask(this); openfl__$internal_renderer_canvas_CanvasTextField.render(this,renderSession); openfl__$internal_renderer_opengl_GLRenderer.renderBitmap(this,renderSession,this.__textEngine.antiAliasType != 0 || this.__textEngine.gridFitType != 1); if(this.__mask != null && this.__maskGraphics != null && this.__maskGraphics.__commands.get_length() > 0) renderSession.maskManager.popMask(); if(this.__scrollRect != null) renderSession.maskManager.popRect(); } ,__startCursorTimer: function() { this.__cursorTimer = haxe_Timer.delay($bind(this,this.__startCursorTimer),600); this.__showCursor = !this.__showCursor; this.__dirty = true; } ,__startTextInput: function() { if(this.__caretIndex < 0) { this.__caretIndex = this.__textEngine.text.length; this.__selectionIndex = this.__caretIndex; } if(this.stage != null) { this.stage.window.backend.setEnableTextEvents(true); if(!this.__inputEnabled) { this.stage.window.backend.setEnableTextEvents(true); if(!this.stage.window.onTextInput.has($bind(this,this.window_onTextInput))) { this.stage.window.onTextInput.add($bind(this,this.window_onTextInput)); this.stage.window.onKeyDown.add($bind(this,this.window_onKeyDown)); } this.__inputEnabled = true; this.__startCursorTimer(); } } } ,__stopCursorTimer: function() { if(this.__cursorTimer != null) { this.__cursorTimer.stop(); this.__cursorTimer = null; } if(this.__showCursor) { this.__showCursor = false; this.__dirty = true; } } ,__stopTextInput: function() { if(this.__inputEnabled && this.stage != null) { this.stage.window.backend.setEnableTextEvents(false); this.stage.window.onTextInput.remove($bind(this,this.window_onTextInput)); this.stage.window.onKeyDown.remove($bind(this,this.window_onKeyDown)); this.__inputEnabled = false; this.__stopCursorTimer(); } } ,__updateLayout: function() { if(this.__layoutDirty) { this.__textEngine.update(); if(this.__textEngine.autoSize != 2) { var cacheWidth = this.__textEngine.width; var cacheHeight = this.__textEngine.height; var _g = this.__textEngine.autoSize; switch(_g) { case 1:case 3:case 0: if(!this.__textEngine.wordWrap) this.__textEngine.width = this.__textEngine.textWidth + 4; this.__textEngine.height = this.__textEngine.textHeight + 4; break; default: } if(this.__textEngine.width != cacheWidth) { var _g1 = this.__textEngine.autoSize; switch(_g1) { case 3: var _g11 = this; _g11.set_x(_g11.get_x() + (cacheWidth - this.__textEngine.width)); break; case 0: var _g12 = this; _g12.set_x(_g12.get_x() + (cacheWidth - this.__textEngine.width) / 2); break; default: } } this.__textEngine.getBounds(); } this.__layoutDirty = false; } } ,get_antiAliasType: function() { return this.__textEngine.antiAliasType; } ,set_antiAliasType: function(value) { if(value != this.__textEngine.antiAliasType) { } return this.__textEngine.antiAliasType = value; } ,get_autoSize: function() { return this.__textEngine.autoSize; } ,set_autoSize: function(value) { if(value != this.__textEngine.autoSize) { this.__dirty = true; this.__layoutDirty = true; } return this.__textEngine.autoSize = value; } ,get_background: function() { return this.__textEngine.background; } ,set_background: function(value) { if(value != this.__textEngine.background) this.__dirty = true; return this.__textEngine.background = value; } ,get_backgroundColor: function() { return this.__textEngine.backgroundColor; } ,set_backgroundColor: function(value) { if(value != this.__textEngine.backgroundColor) this.__dirty = true; return this.__textEngine.backgroundColor = value; } ,get_border: function() { return this.__textEngine.border; } ,set_border: function(value) { if(value != this.__textEngine.border) this.__dirty = true; return this.__textEngine.border = value; } ,get_borderColor: function() { return this.__textEngine.borderColor; } ,set_borderColor: function(value) { if(value != this.__textEngine.borderColor) this.__dirty = true; return this.__textEngine.borderColor = value; } ,get_bottomScrollV: function() { this.__updateLayout(); return this.__textEngine.bottomScrollV; } ,get_caretIndex: function() { return this.__caretIndex; } ,get_defaultTextFormat: function() { return this.__textFormat.clone(); } ,set_defaultTextFormat: function(value) { this.__textFormat.__merge(value); this.__layoutDirty = true; this.__dirty = true; return value; } ,get_displayAsPassword: function() { return this.__textEngine.displayAsPassword; } ,set_displayAsPassword: function(value) { if(value != this.__textEngine.displayAsPassword) { this.__dirty = true; this.__layoutDirty = true; } return this.__textEngine.displayAsPassword = value; } ,get_embedFonts: function() { return this.__textEngine.embedFonts; } ,set_embedFonts: function(value) { return this.__textEngine.embedFonts = value; } ,get_gridFitType: function() { return this.__textEngine.gridFitType; } ,set_gridFitType: function(value) { return this.__textEngine.gridFitType = value; } ,get_height: function() { this.__updateLayout(); return this.__textEngine.height; } ,set_height: function(value) { if(this.get_scaleY() != 1 || value != this.__textEngine.height) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } this.__dirty = true; this.__layoutDirty = true; } this.set_scaleY(1); return this.__textEngine.height = value; } ,get_htmlText: function() { return this.__textEngine.text; } ,set_htmlText: function(value) { if(!this.__isHTML || this.__textEngine.text != value) { this.__dirty = true; this.__layoutDirty = true; } this.__isHTML = true; if(this.__div == null) { value = new EReg("<br>","g").replace(value,"\n"); value = new EReg("<br/>","g").replace(value,"\n"); var segments = value.split("<font"); if(segments.length == 1) { value = new EReg("<.*?>","g").replace(value,""); if(this.__textEngine.textFormatRanges.length > 1) this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.length - 1); var range = this.__textEngine.textFormatRanges[0]; range.format = this.__textFormat; range.start = 0; range.end = value.length; return this.__textEngine.text = value; } else { this.__textEngine.textFormatRanges.splice(0,this.__textEngine.textFormatRanges.length); value = ""; var _g = 0; while(_g < segments.length) { var segment = segments[_g]; ++_g; if(segment == "") continue; var closeFontIndex = segment.indexOf("</font>"); if(closeFontIndex > -1) { var start = segment.indexOf(">") + 1; var end = closeFontIndex; var format = this.__textFormat.clone(); var faceIndex = segment.indexOf("face="); var colorIndex = segment.indexOf("color="); var sizeIndex = segment.indexOf("size="); if(faceIndex > -1 && faceIndex < start) { var len = segment.indexOf("\"",faceIndex); format.font = HxOverrides.substr(segment,faceIndex + 6,len); } if(colorIndex > -1 && colorIndex < start) format.color = Std.parseInt("0x" + HxOverrides.substr(segment,colorIndex + 8,6)); if(sizeIndex > -1 && sizeIndex < start) format.size = Std.parseInt((function($this) { var $r; var len1 = segment.indexOf("\"",sizeIndex); $r = HxOverrides.substr(segment,sizeIndex + 6,len1); return $r; }(this))); var sub = segment.substring(start,end); sub = new EReg("<.*?>","g").replace(sub,""); this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(format,value.length,value.length + sub.length)); value += sub; if(closeFontIndex + 7 < segment.length) { sub = HxOverrides.substr(segment,closeFontIndex + 7,null); this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(this.__textFormat,value.length,value.length + sub.length)); value += sub; } } else { this.__textEngine.textFormatRanges.push(new openfl__$internal_text_TextFormatRange(this.__textFormat,value.length,value.length + segment.length)); value += segment; } } } } return this.__textEngine.text = value; } ,get_length: function() { if(this.__textEngine.text != null) return this.__textEngine.text.length; return 0; } ,get_maxChars: function() { return this.__textEngine.maxChars; } ,set_maxChars: function(value) { if(value != this.__textEngine.maxChars) { this.__dirty = true; this.__layoutDirty = true; } return this.__textEngine.maxChars = value; } ,get_maxScrollH: function() { this.__updateLayout(); return this.__textEngine.maxScrollH; } ,get_maxScrollV: function() { this.__updateLayout(); return this.__textEngine.maxScrollV; } ,get_multiline: function() { return this.__textEngine.multiline; } ,set_multiline: function(value) { if(value != this.__textEngine.multiline) { this.__dirty = true; this.__layoutDirty = true; } return this.__textEngine.multiline = value; } ,get_numLines: function() { this.__updateLayout(); return this.__textEngine.numLines; } ,get_restrict: function() { return this.__textEngine.restrict; } ,set_restrict: function(value) { return this.__textEngine.restrict = value; } ,get_scrollH: function() { return this.__textEngine.scrollH; } ,set_scrollH: function(value) { if(value > this.__textEngine.maxScrollH) value = this.__textEngine.maxScrollH; if(value < 0) value = 0; if(value != this.__textEngine.scrollH) this.__dirty = true; return this.__textEngine.scrollH = value; } ,get_scrollV: function() { return this.__textEngine.scrollV; } ,set_scrollV: function(value) { if(value > this.__textEngine.maxScrollV) value = this.__textEngine.maxScrollV; if(value < 1) value = 1; if(value != this.__textEngine.scrollV) this.__dirty = true; return this.__textEngine.scrollV = value; } ,get_selectable: function() { return this.__textEngine.selectable; } ,set_selectable: function(value) { if(value != this.__textEngine.selectable && this.get_type() == 1) { if(this.stage != null && this.stage.get_focus() == this) this.__startTextInput(); else if(!value) this.__stopTextInput(); } return this.__textEngine.selectable = value; } ,get_selectionBeginIndex: function() { return Std["int"](Math.min(this.__caretIndex,this.__selectionIndex)); } ,get_selectionEndIndex: function() { return Std["int"](Math.max(this.__caretIndex,this.__selectionIndex)); } ,get_sharpness: function() { return this.__textEngine.sharpness; } ,set_sharpness: function(value) { if(value != this.__textEngine.sharpness) this.__dirty = true; return this.__textEngine.sharpness = value; } ,get_text: function() { return this.__textEngine.text; } ,set_text: function(value) { if(this.__isHTML || this.__textEngine.text != value) { this.__dirty = true; this.__layoutDirty = true; } else return value; if(this.__textEngine.textFormatRanges.length > 1) this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.length - 1); var range = this.__textEngine.textFormatRanges[0]; range.format = this.__textFormat; range.start = 0; range.end = value.length; this.__isHTML = false; return this.__textEngine.text = value; } ,get_textColor: function() { return this.__textFormat.color; } ,set_textColor: function(value) { if(value != this.__textFormat.color) this.__dirty = true; var _g = 0; var _g1 = this.__textEngine.textFormatRanges; while(_g < _g1.length) { var range = _g1[_g]; ++_g; range.format.color = value; } return this.__textFormat.color = value; } ,get_textWidth: function() { this.__updateLayout(); return this.__textEngine.textWidth; } ,get_textHeight: function() { this.__updateLayout(); return this.__textEngine.textHeight; } ,get_type: function() { return this.__textEngine.type; } ,set_type: function(value) { if(value != this.__textEngine.type) { if(value == 1) { this.addEventListener("focusIn",$bind(this,this.this_onFocusIn)); this.addEventListener("focusOut",$bind(this,this.this_onFocusOut)); this.addEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); this.this_onFocusIn(null); } else { this.removeEventListener("focusIn",$bind(this,this.this_onFocusIn)); this.removeEventListener("focusOut",$bind(this,this.this_onFocusOut)); this.removeEventListener("addedToStage",$bind(this,this.this_onAddedToStage)); this.__stopTextInput(); } this.__dirty = true; } return this.__textEngine.type = value; } ,get_width: function() { this.__updateLayout(); return this.__textEngine.width; } ,set_width: function(value) { if(this.get_scaleX() != 1 || this.__textEngine.width != value) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } this.__dirty = true; this.__layoutDirty = true; } this.set_scaleX(1); return this.__textEngine.width = value; } ,get_wordWrap: function() { return this.__textEngine.wordWrap; } ,set_wordWrap: function(value) { if(value != this.__textEngine.wordWrap) { this.__dirty = true; this.__layoutDirty = true; } return this.__textEngine.wordWrap = value; } ,stage_onMouseMove: function(event) { if(this.stage == null) return; if(this.__textEngine.selectable && this.__selectionIndex >= 0) { this.__updateLayout(); var position = this.__getPosition(this.get_mouseX(),this.get_mouseY()); if(position != this.__caretIndex) { this.__caretIndex = position; this.__dirty = true; } } } ,stage_onMouseUp: function(event) { if(this.stage == null) return; this.stage.removeEventListener("mouseMove",$bind(this,this.stage_onMouseMove)); this.stage.removeEventListener("mouseUp",$bind(this,this.stage_onMouseUp)); if(this.stage.get_focus() == this) { this.__getWorldTransform(); this.__updateLayout(); var px = this.__worldTransform.__transformInverseX(this.get_x(),this.get_y()); var py = this.__worldTransform.__transformInverseY(this.get_x(),this.get_y()); var upPos = this.__getPosition(this.get_mouseX(),this.get_mouseY()); var leftPos; var rightPos; leftPos = Std["int"](Math.min(this.__selectionIndex,upPos)); rightPos = Std["int"](Math.max(this.__selectionIndex,upPos)); this.__selectionIndex = leftPos; this.__caretIndex = rightPos; if(this.__inputEnabled) { this.this_onFocusIn(null); this.__stopCursorTimer(); this.__startCursorTimer(); } } } ,this_onAddedToStage: function(event) { this.this_onFocusIn(null); } ,this_onFocusIn: function(event) { if(this.get_selectable() && this.get_type() == 1 && this.stage != null && this.stage.get_focus() == this) this.__startTextInput(); } ,this_onFocusOut: function(event) { this.__stopTextInput(); } ,this_onMouseDown: function(event) { if(!this.get_selectable()) return; this.__updateLayout(); this.__caretIndex = this.__getPosition(this.get_mouseX(),this.get_mouseY()); this.__selectionIndex = this.__caretIndex; this.__dirty = true; this.stage.addEventListener("mouseMove",$bind(this,this.stage_onMouseMove)); this.stage.addEventListener("mouseUp",$bind(this,this.stage_onMouseUp)); } ,window_onKeyDown: function(key,modifier) { switch(key) { case 8: if(this.__selectionIndex == this.__caretIndex && this.__caretIndex > 0) this.__selectionIndex = this.__caretIndex - 1; if(this.__selectionIndex != this.__caretIndex) { this.replaceSelectedText(""); this.__selectionIndex = this.__caretIndex; this.dispatchEvent(new openfl_events_Event("change",true)); } break; case 127: if(this.__selectionIndex == this.__caretIndex && this.__caretIndex < this.__textEngine.text.length) this.__selectionIndex = this.__caretIndex + 1; if(this.__selectionIndex != this.__caretIndex) { this.replaceSelectedText(""); this.__selectionIndex = this.__caretIndex; this.dispatchEvent(new openfl_events_Event("change",true)); } break; case 1073741904: if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) { if(this.__caretIndex > 0) this.__caretIndex--; } else { if(this.__selectionIndex == this.__caretIndex) { if(this.__caretIndex > 0) this.__caretIndex--; } else this.__caretIndex = Std["int"](Math.min(this.__caretIndex,this.__selectionIndex)); this.__selectionIndex = this.__caretIndex; } this.__stopCursorTimer(); this.__startCursorTimer(); break; case 1073741903: if(lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)) { if(this.__caretIndex < this.__textEngine.text.length) this.__caretIndex++; } else { if(this.__selectionIndex == this.__caretIndex) { if(this.__caretIndex < this.__textEngine.text.length) this.__caretIndex++; } else this.__caretIndex = Std["int"](Math.max(this.__caretIndex,this.__selectionIndex)); this.__selectionIndex = this.__caretIndex; } this.__stopCursorTimer(); this.__startCursorTimer(); break; case 99: if(modifier == 64 || modifier == 128) lime_system_Clipboard.set_text(this.__textEngine.text.substring(this.__caretIndex,this.__selectionIndex)); break; case 120: if(modifier == 64 || modifier == 128) { lime_system_Clipboard.set_text(this.__textEngine.text.substring(this.__caretIndex,this.__selectionIndex)); if(this.__caretIndex != this.__selectionIndex) { this.replaceSelectedText(""); this.dispatchEvent(new openfl_events_Event("change",true)); } } break; case 118: if(modifier == 64 || modifier == 128) { var text = lime_system_Clipboard.get_text(); if(text != null) this.replaceSelectedText(text); else this.replaceSelectedText(""); this.dispatchEvent(new openfl_events_Event("change",true)); } else this.__textEngine.textFormatRanges[this.__textEngine.textFormatRanges.length - 1].end = this.__textEngine.text.length; break; default: } } ,window_onTextInput: function(value) { this.replaceSelectedText(value); this.dispatchEvent(new openfl_events_Event("change",true)); } ,__class__: openfl_text_TextField ,__properties__: $extend(openfl_display_InteractiveObject.prototype.__properties__,{set_wordWrap:"set_wordWrap",get_wordWrap:"get_wordWrap",set_type:"set_type",get_type:"get_type",get_textWidth:"get_textWidth",get_textHeight:"get_textHeight",set_textColor:"set_textColor",get_textColor:"get_textColor",set_text:"set_text",get_text:"get_text",set_sharpness:"set_sharpness",get_sharpness:"get_sharpness",get_selectionEndIndex:"get_selectionEndIndex",get_selectionBeginIndex:"get_selectionBeginIndex",set_selectable:"set_selectable",get_selectable:"get_selectable",set_scrollV:"set_scrollV",get_scrollV:"get_scrollV",set_scrollH:"set_scrollH",get_scrollH:"get_scrollH",set_restrict:"set_restrict",get_restrict:"get_restrict",get_numLines:"get_numLines",set_multiline:"set_multiline",get_multiline:"get_multiline",get_maxScrollV:"get_maxScrollV",get_maxScrollH:"get_maxScrollH",set_maxChars:"set_maxChars",get_maxChars:"get_maxChars",get_length:"get_length",set_htmlText:"set_htmlText",get_htmlText:"get_htmlText",set_gridFitType:"set_gridFitType",get_gridFitType:"get_gridFitType",set_embedFonts:"set_embedFonts",get_embedFonts:"get_embedFonts",set_displayAsPassword:"set_displayAsPassword",get_displayAsPassword:"get_displayAsPassword",set_defaultTextFormat:"set_defaultTextFormat",get_defaultTextFormat:"get_defaultTextFormat",get_caretIndex:"get_caretIndex",get_bottomScrollV:"get_bottomScrollV",set_borderColor:"set_borderColor",get_borderColor:"get_borderColor",set_border:"set_border",get_border:"get_border",set_backgroundColor:"set_backgroundColor",get_backgroundColor:"get_backgroundColor",set_background:"set_background",get_background:"get_background",set_autoSize:"set_autoSize",get_autoSize:"get_autoSize",set_antiAliasType:"set_antiAliasType",get_antiAliasType:"get_antiAliasType"}) }); var openfl_display_FPS = function(x,y,color) { if(color == null) color = 0; if(y == null) y = 10; if(x == null) x = 10; openfl_text_TextField.call(this); this.set_x(x); this.set_y(y); this.currentFPS = 0; this.set_selectable(false); this.mouseEnabled = false; this.set_defaultTextFormat(new openfl_text_TextFormat("_sans",12,color)); this.set_text("FPS: "); this.cacheCount = 0; this.times = []; this.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame)); }; $hxClasses["openfl.display.FPS"] = openfl_display_FPS; openfl_display_FPS.__name__ = ["openfl","display","FPS"]; openfl_display_FPS.__super__ = openfl_text_TextField; openfl_display_FPS.prototype = $extend(openfl_text_TextField.prototype,{ currentFPS: null ,cacheCount: null ,times: null ,this_onEnterFrame: function(event) { var currentTime = haxe_Timer.stamp(); this.times.push(currentTime); while(this.times[0] < currentTime - 1) this.times.shift(); var currentCount = this.times.length; this.currentFPS = Math.round((currentCount + this.cacheCount) / 2); if(currentCount != this.cacheCount) this.set_text("FPS: " + this.currentFPS); this.cacheCount = currentCount; } ,__class__: openfl_display_FPS }); var openfl_display_FrameLabel = function(name,frame) { openfl_events_EventDispatcher.call(this); this.__name = name; this.__frame = frame; }; $hxClasses["openfl.display.FrameLabel"] = openfl_display_FrameLabel; openfl_display_FrameLabel.__name__ = ["openfl","display","FrameLabel"]; openfl_display_FrameLabel.__super__ = openfl_events_EventDispatcher; openfl_display_FrameLabel.prototype = $extend(openfl_events_EventDispatcher.prototype,{ frame: null ,name: null ,__frame: null ,__name: null ,get_frame: function() { return this.__frame; } ,get_name: function() { return this.__name; } ,__class__: openfl_display_FrameLabel ,__properties__: {get_name:"get_name",get_frame:"get_frame"} }); var openfl_display__$GradientType_GradientType_$Impl_$ = {}; $hxClasses["openfl.display._GradientType.GradientType_Impl_"] = openfl_display__$GradientType_GradientType_$Impl_$; openfl_display__$GradientType_GradientType_$Impl_$.__name__ = ["openfl","display","_GradientType","GradientType_Impl_"]; openfl_display__$GradientType_GradientType_$Impl_$.fromString = function(value) { switch(value) { case "linear": return 0; case "radial": return 1; default: return null; } }; openfl_display__$GradientType_GradientType_$Impl_$.toString = function(value) { switch(value) { case 0: return "linear"; case 1: return "radial"; default: return null; } }; var openfl_display_Graphics = function() { this.__glStack = []; this.__dirty = true; this.__commands = new openfl__$internal_renderer_DrawCommandBuffer(); this.__strokePadding = 0; this.__positionX = 0; this.__positionY = 0; this.__hardware = true; this.moveTo(0,0); }; $hxClasses["openfl.display.Graphics"] = openfl_display_Graphics; openfl_display_Graphics.__name__ = ["openfl","display","Graphics"]; openfl_display_Graphics.prototype = { __hardware: null ,__bounds: null ,__commands: null ,__dirty: null ,__glStack: null ,__drawPaths: null ,__image: null ,__positionX: null ,__positionY: null ,__strokePadding: null ,__transformDirty: null ,__visible: null ,__cachedTexture: null ,__owner: null ,__canvas: null ,__context: null ,__bitmap: null ,beginBitmapFill: function(bitmap,matrix,repeat,smooth) { if(smooth == null) smooth = false; if(repeat == null) repeat = true; this.__commands.beginBitmapFill(bitmap,matrix != null?matrix.clone():null,repeat,smooth); this.__visible = true; } ,beginFill: function(color,alpha) { if(alpha == null) alpha = 1; if(color == null) color = 0; this.__commands.beginFill(color & 16777215,alpha); if(alpha > 0) this.__visible = true; } ,beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { if(focalPointRatio == null) focalPointRatio = 0; if(interpolationMethod == null) interpolationMethod = 1; if(spreadMethod == null) spreadMethod = 0; this.__commands.beginGradientFill(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio); this.__hardware = false; var _g = 0; while(_g < alphas.length) { var alpha = alphas[_g]; ++_g; if(alpha > 0) { this.__visible = true; break; } } } ,clear: function() { this.__commands.clear(); this.__strokePadding = 0; if(this.__bounds != null) { this.set___dirty(true); this.__transformDirty = true; this.__bounds = null; } this.__visible = false; this.__hardware = true; this.moveTo(0,0); } ,copyFrom: function(sourceGraphics) { if(sourceGraphics.__bounds != null) this.__bounds = sourceGraphics.__bounds.clone(); else this.__bounds = null; this.__commands = sourceGraphics.__commands.copy(); this.set___dirty(true); this.__strokePadding = sourceGraphics.__strokePadding; this.__positionX = sourceGraphics.__positionX; this.__positionY = sourceGraphics.__positionY; this.__transformDirty = true; this.__visible = sourceGraphics.__visible; } ,cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) { this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding); var ix1; var iy1; var ix2; var iy2; ix1 = anchorX; ix2 = anchorX; if(!((controlX1 < anchorX && controlX1 > this.__positionX || controlX1 > anchorX && controlX1 < this.__positionX) && (controlX2 < anchorX && controlX2 > this.__positionX || controlX2 > anchorX && controlX2 < this.__positionX))) { var u = 2 * this.__positionX - 4 * controlX1 + 2 * controlX2; var v = controlX1 - this.__positionX; var w = -this.__positionX + 3 * controlX1 + anchorX - 3 * controlX2; var t1 = (-u + Math.sqrt(u * u - 4 * v * w)) / (2 * w); var t2 = (-u - Math.sqrt(u * u - 4 * v * w)) / (2 * w); if(t1 > 0 && t1 < 1) ix1 = this.__calculateBezierCubicPoint(t1,this.__positionX,controlX1,controlX2,anchorX); if(t2 > 0 && t2 < 1) ix2 = this.__calculateBezierCubicPoint(t2,this.__positionX,controlX1,controlX2,anchorX); } iy1 = anchorY; iy2 = anchorY; if(!((controlY1 < anchorY && controlY1 > this.__positionX || controlY1 > anchorY && controlY1 < this.__positionX) && (controlY2 < anchorY && controlY2 > this.__positionX || controlY2 > anchorY && controlY2 < this.__positionX))) { var u1 = 2 * this.__positionX - 4 * controlY1 + 2 * controlY2; var v1 = controlY1 - this.__positionX; var w1 = -this.__positionX + 3 * controlY1 + anchorY - 3 * controlY2; var t11 = (-u1 + Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1); var t21 = (-u1 - Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1); if(t11 > 0 && t11 < 1) iy1 = this.__calculateBezierCubicPoint(t11,this.__positionX,controlY1,controlY2,anchorY); if(t21 > 0 && t21 < 1) iy2 = this.__calculateBezierCubicPoint(t21,this.__positionX,controlY1,controlY2,anchorY); } this.__inflateBounds(ix1 - this.__strokePadding,iy1 - this.__strokePadding); this.__inflateBounds(ix1 + this.__strokePadding,iy1 + this.__strokePadding); this.__inflateBounds(ix2 - this.__strokePadding,iy2 - this.__strokePadding); this.__inflateBounds(ix2 + this.__strokePadding,iy2 + this.__strokePadding); this.__positionX = anchorX; this.__positionY = anchorY; this.__commands.cubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY); this.__hardware = false; this.set___dirty(true); } ,curveTo: function(controlX,controlY,anchorX,anchorY) { this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding); var ix; var iy; if(controlX < anchorX && controlX > this.__positionX || controlX > anchorX && controlX < this.__positionX) ix = anchorX; else { var tx = (this.__positionX - controlX) / (this.__positionX - 2 * controlX + anchorX); ix = this.__calculateBezierQuadPoint(tx,this.__positionX,controlX,anchorX); } if(controlY < anchorY && controlY > this.__positionY || controlY > anchorY && controlY < this.__positionY) iy = anchorY; else { var ty = (this.__positionY - controlY) / (this.__positionY - 2 * controlY + anchorY); iy = this.__calculateBezierQuadPoint(ty,this.__positionY,controlY,anchorY); } this.__inflateBounds(ix - this.__strokePadding,iy - this.__strokePadding); this.__inflateBounds(ix + this.__strokePadding,iy + this.__strokePadding); this.__positionX = anchorX; this.__positionY = anchorY; this.__commands.curveTo(controlX,controlY,anchorX,anchorY); this.__hardware = false; this.set___dirty(true); } ,drawCircle: function(x,y,radius) { if(radius <= 0) return; this.__inflateBounds(x - radius - this.__strokePadding,y - radius - this.__strokePadding); this.__inflateBounds(x + radius + this.__strokePadding,y + radius + this.__strokePadding); this.__commands.drawCircle(x,y,radius); this.__hardware = false; this.set___dirty(true); } ,drawEllipse: function(x,y,width,height) { if(width <= 0 || height <= 0) return; this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding); this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding); this.__commands.drawEllipse(x,y,width,height); this.__hardware = false; this.set___dirty(true); } ,drawGraphicsData: function(graphicsData) { var fill; var bitmapFill; var gradientFill; var stroke; var path; var _g = 0; while(_g < graphicsData.length) { var graphics = graphicsData.data[_g]; ++_g; if(js_Boot.__instanceof(graphics,openfl_display_GraphicsSolidFill)) { fill = graphics; this.beginFill(fill.color,fill.alpha); } else if(js_Boot.__instanceof(graphics,openfl_display_GraphicsBitmapFill)) { bitmapFill = graphics; this.beginBitmapFill(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth); } else if(js_Boot.__instanceof(graphics,openfl_display_GraphicsGradientFill)) { gradientFill = graphics; this.beginGradientFill(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio); } else if(js_Boot.__instanceof(graphics,openfl_display_GraphicsStroke)) { stroke = graphics; if(js_Boot.__instanceof(stroke.fill,openfl_display_GraphicsSolidFill)) { fill = stroke.fill; this.lineStyle(stroke.thickness,fill.color,fill.alpha,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit); } else { this.lineStyle(stroke.thickness,0,1,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit); if(js_Boot.__instanceof(stroke.fill,openfl_display_GraphicsBitmapFill)) { bitmapFill = stroke.fill; this.lineBitmapStyle(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth); } else if(js_Boot.__instanceof(stroke.fill,openfl_display_GraphicsGradientFill)) { gradientFill = stroke.fill; this.lineGradientStyle(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio); } } } else if(js_Boot.__instanceof(graphics,openfl_display_GraphicsPath)) { path = graphics; this.drawPath(path.commands,path.data,path.winding); } else if(js_Boot.__instanceof(graphics,openfl_display_GraphicsEndFill)) this.endFill(); } } ,drawPath: function(commands,data,winding) { if(winding == null) winding = "evenOdd"; var dataIndex = 0; var _g = 0; try { while(_g < commands.length) { var command = commands.data[_g]; ++_g; if(command != null) switch(command) { case 1: this.moveTo(data.data[dataIndex],data.data[dataIndex + 1]); dataIndex += 2; break; case 2: this.lineTo(data.data[dataIndex],data.data[dataIndex + 1]); dataIndex += 2; break; case 4: this.moveTo(data.data[dataIndex + 2],data.data[dataIndex + 3]); throw "__break__"; dataIndex += 4; break; case 5: this.lineTo(data.data[dataIndex + 2],data.data[dataIndex + 3]); throw "__break__"; dataIndex += 4; break; case 3: this.curveTo(data.data[dataIndex],data.data[dataIndex + 1],data.data[dataIndex + 2],data.data[dataIndex + 3]); dataIndex += 4; break; case 6: this.cubicCurveTo(data.data[dataIndex],data.data[dataIndex + 1],data.data[dataIndex + 2],data.data[dataIndex + 3],data.data[dataIndex + 4],data.data[dataIndex + 5]); dataIndex += 6; break; default: } else { } } } catch( e ) { if( e != "__break__" ) throw e; } } ,drawRect: function(x,y,width,height) { if(width <= 0 || height <= 0) return; this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding); this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding); this.__commands.drawRect(x,y,width,height); this.set___dirty(true); } ,drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) { if(width <= 0 || height <= 0) return; this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding); this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding); this.__commands.drawRoundRect(x,y,width,height,ellipseWidth,ellipseHeight); this.__hardware = false; this.set___dirty(true); } ,drawRoundRectComplex: function(x,y,width,height,topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius) { openfl_Lib.notImplemented("Graphics.drawRoundRectComplex"); } ,drawTiles: function(sheet,tileData,smooth,flags,shader,count) { if(count == null) count = -1; if(flags == null) flags = 0; if(smooth == null) smooth = false; var useScale = (flags & 1) > 0; var useRotation = (flags & 2) > 0; var useRGB = (flags & 4) > 0; var useAlpha = (flags & 8) > 0; var useTransform = (flags & 16) > 0; var useColorTransform = (flags & 128) > 0; var useRect = (flags & 32) > 0; var useOrigin = (flags & 64) > 0; var rect = openfl_geom_Rectangle.__temp; var matrix = openfl_geom_Matrix.__temp; var numValues = 3; var totalCount = count; if(count < 0) totalCount = tileData.length; if(useTransform || useScale || useRotation || useRGB || useAlpha || useColorTransform) { var scaleIndex = 0; var rotationIndex = 0; var transformIndex = 0; if(useRect) if(useOrigin) numValues = 8; else numValues = 6; if(useScale) { scaleIndex = numValues; numValues++; } if(useRotation) { rotationIndex = numValues; numValues++; } if(useTransform) { transformIndex = numValues; numValues += 4; } if(useRGB) numValues += 3; if(useAlpha) numValues++; if(useColorTransform) numValues += 4; var itemCount = totalCount / numValues | 0; var index = 0; var cacheID = -1; var x; var y; var id; var scale; var rotation; var tileWidth; var tileHeight; var originX; var originY; var tile = null; var tilePoint = null; while(index < totalCount) { x = tileData[index]; y = tileData[index + 1]; if(!useRect) id = tileData[index + 2] | 0; else id = -1; scale = 1.0; rotation = 0.0; if(useScale) scale = tileData[index + scaleIndex]; if(useRotation) rotation = tileData[index + rotationIndex]; if(id < 0) tile = null; else if(!useRect && cacheID != id) { cacheID = id; tile = sheet.__tileRects[id]; tilePoint = sheet.__centerPoints[id]; } else if(useRect) { tile = sheet.__rectTile; tile.setTo(tileData[index + 2],tileData[index + 3],tileData[index + 4],tileData[index + 5]); tilePoint = sheet.__point; if(useOrigin) tilePoint.setTo(tileData[index + 6] / tile.width,tileData[index + 7] / tile.height); else tilePoint.setTo(0,0); } if(tile != null) { if(useTransform) { rect.setTo(0,0,tile.width,tile.height); matrix.setTo(tileData[index + transformIndex],tileData[index + transformIndex + 1],tileData[index + transformIndex + 2],tileData[index + transformIndex + 3],0,0); originX = tilePoint.x * scale; originY = tilePoint.y * scale; matrix.translate(x - (originX * matrix.a + originY * matrix.c + matrix.tx),y - (originX * matrix.b + originY * matrix.d + matrix.ty)); rect.__transform(rect,matrix); this.__inflateBounds(rect.x,rect.y); this.__inflateBounds(rect.get_right(),rect.get_bottom()); } else { tileWidth = tile.width * scale; tileHeight = tile.height * scale; x -= tilePoint.x * tileWidth; y -= tilePoint.y * tileHeight; if(rotation != 0) { rect.setTo(0,0,tileWidth,tileHeight); matrix.identity(); matrix.rotate(rotation); matrix.translate(x,y); rect.__transform(rect,matrix); this.__inflateBounds(rect.x,rect.y); this.__inflateBounds(rect.get_right(),rect.get_bottom()); } else { this.__inflateBounds(x,y); this.__inflateBounds(x + tileWidth,y + tileHeight); } } } index += numValues; } } else { var x1; var y1; var id1; var tile1; var centerPoint; var originX1; var originY1; var rect1 = openfl_geom_Rectangle.__temp; var index1 = 0; while(index1 < totalCount) { x1 = tileData[index1++]; y1 = tileData[index1++]; if(!useRect) id1 = Std["int"](tileData[index1++]); else id1 = -1; originX1 = 0.0; originY1 = 0.0; if(useRect) { rect1.setTo(tileData[index1++],tileData[index1++],tileData[index1++],tileData[index1++]); if(useOrigin) { originX1 = tileData[index1++]; originY1 = tileData[index1++]; } this.__inflateBounds(x1 - originX1,y1 - originY1); this.__inflateBounds(x1 - originX1 + rect1.width,y1 - originY1 + rect1.height); } else { tile1 = sheet.__tileRects[id1]; if(tile1 != null) { centerPoint = sheet.__centerPoints[id1]; originX1 = centerPoint.x * tile1.width; originY1 = centerPoint.y * tile1.height; this.__inflateBounds(x1 - originX1,y1 - originY1); this.__inflateBounds(x1 - originX1 + tile1.width,y1 - originY1 + tile1.height); } } } } this.__commands.drawTiles(sheet,tileData,smooth,flags,shader,count); this.set___dirty(true); this.__visible = true; } ,drawTriangles: function(vertices,indices,uvtData,culling) { if(culling == null) culling = 1; var vlen = vertices.length / 2 | 0; if(culling == null) culling = 1; if(indices == null) { if(vlen % 3 != 0) throw new js__$Boot_HaxeError(new openfl_errors_ArgumentError("Not enough vertices to close a triangle.")); var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; indices = this1; var _g = 0; while(_g < vlen) { var i = _g++; if(!indices.fixed) { indices.length++; if(indices.data.length < indices.length) { var data; var this3; this3 = new Array(indices.data.length + 10); data = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(indices.data,0,data,0,indices.data.length); indices.data = data; } indices.data[indices.length - 1] = i; } indices.length; } } this.__inflateBounds(0,0); var tmpx = -Infinity; var tmpy = -Infinity; var maxX = -Infinity; var maxY = -Infinity; var _g1 = 0; while(_g1 < vlen) { var i1 = _g1++; tmpx = vertices.data[i1 * 2]; tmpy = vertices.data[i1 * 2 + 1]; if(maxX < tmpx) maxX = tmpx; if(maxY < tmpy) maxY = tmpy; } this.__inflateBounds(maxX,maxY); this.__commands.drawTriangles(vertices,indices,uvtData,culling); this.set___dirty(true); this.__visible = true; } ,endFill: function() { this.__commands.endFill(); } ,lineBitmapStyle: function(bitmap,matrix,repeat,smooth) { if(smooth == null) smooth = false; if(repeat == null) repeat = true; this.__commands.lineBitmapStyle(bitmap,matrix != null?matrix.clone():null,repeat,smooth); } ,lineGradientStyle: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { if(focalPointRatio == null) focalPointRatio = 0; if(interpolationMethod == null) interpolationMethod = 1; if(spreadMethod == null) spreadMethod = 0; this.__commands.lineGradientStyle(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio); } ,lineStyle: function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) { if(miterLimit == null) miterLimit = 3; if(scaleMode == null) scaleMode = 2; if(pixelHinting == null) pixelHinting = false; if(alpha == null) alpha = 1; if(color == null) color = 0; if(thickness != null) { if(joints == 1) { if(thickness > this.__strokePadding) this.__strokePadding = thickness; } else if(thickness / 2 > this.__strokePadding) this.__strokePadding = thickness / 2; } this.__commands.lineStyle(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit); if(thickness != null) this.__visible = true; } ,lineTo: function(x,y) { this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding); this.__positionX = x; this.__positionY = y; this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding * 2,this.__positionY + this.__strokePadding); this.__commands.lineTo(x,y); this.__hardware = false; this.set___dirty(true); } ,moveTo: function(x,y) { this.__positionX = x; this.__positionY = y; this.__commands.moveTo(x,y); } ,__calculateBezierCubicPoint: function(t,p1,p2,p3,p4) { var iT = 1 - t; return p1 * (iT * iT * iT) + 3 * p2 * t * (iT * iT) + 3 * p3 * iT * (t * t) + p4 * (t * t * t); } ,__calculateBezierQuadPoint: function(t,p1,p2,p3) { var iT = 1 - t; return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3; } ,__getBounds: function(rect,matrix) { if(this.__bounds == null) return; var bounds = openfl_geom_Rectangle.__temp; this.__bounds.__transform(bounds,matrix); rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height); } ,__hitTest: function(x,y,shapeFlag,matrix) { if(this.__bounds == null) return false; var px = matrix.__transformInverseX(x,y); var py = matrix.__transformInverseY(x,y); if(px > this.__bounds.x && py > this.__bounds.y && this.__bounds.contains(px,py)) { if(shapeFlag) return openfl__$internal_renderer_canvas_CanvasGraphics.hitTest(this,px,py); return true; } return false; } ,__inflateBounds: function(x,y) { if(this.__bounds == null) { this.__bounds = new openfl_geom_Rectangle(x,y,0,0); this.__transformDirty = true; return; } if(x < this.__bounds.x) { this.__bounds.width += this.__bounds.x - x; this.__bounds.x = x; this.__transformDirty = true; } if(y < this.__bounds.y) { this.__bounds.height += this.__bounds.y - y; this.__bounds.y = y; this.__transformDirty = true; } if(x > this.__bounds.x + this.__bounds.width) this.__bounds.width = x - this.__bounds.x; if(y > this.__bounds.y + this.__bounds.height) this.__bounds.height = y - this.__bounds.y; } ,set___dirty: function(value) { if(value && this.__owner != null) this.__owner.__setRenderDirty(); return this.__dirty = value; } ,__class__: openfl_display_Graphics ,__properties__: {set___dirty:"set___dirty"} }; var openfl_display_IGraphicsFill = function() { }; $hxClasses["openfl.display.IGraphicsFill"] = openfl_display_IGraphicsFill; openfl_display_IGraphicsFill.__name__ = ["openfl","display","IGraphicsFill"]; openfl_display_IGraphicsFill.prototype = { __graphicsFillType: null ,__class__: openfl_display_IGraphicsFill }; var openfl_display_IGraphicsData = function() { }; $hxClasses["openfl.display.IGraphicsData"] = openfl_display_IGraphicsData; openfl_display_IGraphicsData.__name__ = ["openfl","display","IGraphicsData"]; openfl_display_IGraphicsData.prototype = { __graphicsDataType: null ,__class__: openfl_display_IGraphicsData }; var openfl_display_GraphicsBitmapFill = function(bitmapData,matrix,repeat,smooth) { if(smooth == null) smooth = false; if(repeat == null) repeat = true; this.bitmapData = bitmapData; this.matrix = matrix; this.repeat = repeat; this.smooth = smooth; this.__graphicsDataType = openfl_display_GraphicsDataType.BITMAP; this.__graphicsFillType = openfl_display_GraphicsFillType.BITMAP_FILL; }; $hxClasses["openfl.display.GraphicsBitmapFill"] = openfl_display_GraphicsBitmapFill; openfl_display_GraphicsBitmapFill.__name__ = ["openfl","display","GraphicsBitmapFill"]; openfl_display_GraphicsBitmapFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData]; openfl_display_GraphicsBitmapFill.prototype = { bitmapData: null ,matrix: null ,repeat: null ,smooth: null ,__graphicsDataType: null ,__graphicsFillType: null ,__class__: openfl_display_GraphicsBitmapFill }; var openfl_display_GraphicsEndFill = function() { this.__graphicsDataType = openfl_display_GraphicsDataType.END; this.__graphicsFillType = openfl_display_GraphicsFillType.END_FILL; }; $hxClasses["openfl.display.GraphicsEndFill"] = openfl_display_GraphicsEndFill; openfl_display_GraphicsEndFill.__name__ = ["openfl","display","GraphicsEndFill"]; openfl_display_GraphicsEndFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData]; openfl_display_GraphicsEndFill.prototype = { __graphicsDataType: null ,__graphicsFillType: null ,__class__: openfl_display_GraphicsEndFill }; var openfl_display_GraphicsGradientFill = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) { if(focalPointRatio == null) focalPointRatio = 0; if(type == null) type = 0; if(spreadMethod == null) spreadMethod = 0; if(interpolationMethod == null) interpolationMethod = 1; this.type = type; this.colors = colors; this.alphas = alphas; this.ratios = ratios; this.matrix = matrix; this.spreadMethod = spreadMethod; this.interpolationMethod = interpolationMethod; this.focalPointRatio = focalPointRatio; this.__graphicsDataType = openfl_display_GraphicsDataType.GRADIENT; this.__graphicsFillType = openfl_display_GraphicsFillType.GRADIENT_FILL; }; $hxClasses["openfl.display.GraphicsGradientFill"] = openfl_display_GraphicsGradientFill; openfl_display_GraphicsGradientFill.__name__ = ["openfl","display","GraphicsGradientFill"]; openfl_display_GraphicsGradientFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData]; openfl_display_GraphicsGradientFill.prototype = { alphas: null ,colors: null ,focalPointRatio: null ,interpolationMethod: null ,matrix: null ,ratios: null ,spreadMethod: null ,type: null ,__graphicsDataType: null ,__graphicsFillType: null ,__class__: openfl_display_GraphicsGradientFill }; var openfl_display_IGraphicsPath = function() { }; $hxClasses["openfl.display.IGraphicsPath"] = openfl_display_IGraphicsPath; openfl_display_IGraphicsPath.__name__ = ["openfl","display","IGraphicsPath"]; var openfl_display_GraphicsPath = function(commands,data,winding) { if(winding == null) winding = "evenOdd"; this.commands = commands; this.data = data; this.winding = winding; this.__graphicsDataType = openfl_display_GraphicsDataType.PATH; }; $hxClasses["openfl.display.GraphicsPath"] = openfl_display_GraphicsPath; openfl_display_GraphicsPath.__name__ = ["openfl","display","GraphicsPath"]; openfl_display_GraphicsPath.__interfaces__ = [openfl_display_IGraphicsPath,openfl_display_IGraphicsData]; openfl_display_GraphicsPath.prototype = { commands: null ,data: null ,winding: null ,__graphicsDataType: null ,curveTo: function(controlX,controlY,anchorX,anchorY) { if(this.commands != null && this.data != null) { var this1 = this.commands; if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = 3; } this1.length; var this3 = this.data; if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } this3.data[this3.length - 1] = anchorX; } this3.length; var this5 = this.data; if(!this5.fixed) { this5.length++; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } this5.data[this5.length - 1] = anchorY; } this5.length; var this7 = this.data; if(!this7.fixed) { this7.length++; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } this7.data[this7.length - 1] = controlX; } this7.length; var this9 = this.data; if(!this9.fixed) { this9.length++; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } this9.data[this9.length - 1] = controlY; } this9.length; } } ,lineTo: function(x,y) { if(this.commands != null && this.data != null) { var this1 = this.commands; if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = 2; } this1.length; var this3 = this.data; if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } this3.data[this3.length - 1] = x; } this3.length; var this5 = this.data; if(!this5.fixed) { this5.length++; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } this5.data[this5.length - 1] = y; } this5.length; } } ,moveTo: function(x,y) { if(this.commands != null && this.data != null) { var this1 = this.commands; if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = 1; } this1.length; var this3 = this.data; if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } this3.data[this3.length - 1] = x; } this3.length; var this5 = this.data; if(!this5.fixed) { this5.length++; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } this5.data[this5.length - 1] = y; } this5.length; } } ,wideLineTo: function(x,y) { if(this.commands != null && this.data != null) { var this1 = this.commands; if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = 2; } this1.length; var this3 = this.data; if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } this3.data[this3.length - 1] = x; } this3.length; var this5 = this.data; if(!this5.fixed) { this5.length++; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } this5.data[this5.length - 1] = y; } this5.length; } } ,wideMoveTo: function(x,y) { if(this.commands != null && this.data != null) { var this1 = this.commands; if(!this1.fixed) { this1.length++; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } this1.data[this1.length - 1] = 1; } this1.length; var this3 = this.data; if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } this3.data[this3.length - 1] = x; } this3.length; var this5 = this.data; if(!this5.fixed) { this5.length++; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } this5.data[this5.length - 1] = y; } this5.length; } } ,__class__: openfl_display_GraphicsPath }; var openfl_display_GraphicsSolidFill = function(color,alpha) { if(alpha == null) alpha = 1; if(color == null) color = 0; this.alpha = alpha; this.color = color; this.__graphicsDataType = openfl_display_GraphicsDataType.SOLID; this.__graphicsFillType = openfl_display_GraphicsFillType.SOLID_FILL; }; $hxClasses["openfl.display.GraphicsSolidFill"] = openfl_display_GraphicsSolidFill; openfl_display_GraphicsSolidFill.__name__ = ["openfl","display","GraphicsSolidFill"]; openfl_display_GraphicsSolidFill.__interfaces__ = [openfl_display_IGraphicsFill,openfl_display_IGraphicsData]; openfl_display_GraphicsSolidFill.prototype = { alpha: null ,color: null ,__graphicsDataType: null ,__graphicsFillType: null ,__class__: openfl_display_GraphicsSolidFill }; var openfl_display_IGraphicsStroke = function() { }; $hxClasses["openfl.display.IGraphicsStroke"] = openfl_display_IGraphicsStroke; openfl_display_IGraphicsStroke.__name__ = ["openfl","display","IGraphicsStroke"]; var openfl_display_GraphicsStroke = function(thickness,pixelHinting,scaleMode,caps,joints,miterLimit,fill) { if(miterLimit == null) miterLimit = 3; if(pixelHinting == null) pixelHinting = false; if(thickness == null) thickness = 0.0; if(caps != null) this.caps = caps; else this.caps = 0; this.fill = fill; if(joints != null) this.joints = joints; else this.joints = 2; this.miterLimit = miterLimit; this.pixelHinting = pixelHinting; if(scaleMode != null) this.scaleMode = scaleMode; else this.scaleMode = 2; this.thickness = thickness; this.__graphicsDataType = openfl_display_GraphicsDataType.STROKE; }; $hxClasses["openfl.display.GraphicsStroke"] = openfl_display_GraphicsStroke; openfl_display_GraphicsStroke.__name__ = ["openfl","display","GraphicsStroke"]; openfl_display_GraphicsStroke.__interfaces__ = [openfl_display_IGraphicsStroke,openfl_display_IGraphicsData]; openfl_display_GraphicsStroke.prototype = { caps: null ,fill: null ,joints: null ,miterLimit: null ,pixelHinting: null ,scaleMode: null ,thickness: null ,__graphicsDataType: null ,__class__: openfl_display_GraphicsStroke }; var openfl_display_GraphicsDataType = $hxClasses["openfl.display.GraphicsDataType"] = { __ename__ : ["openfl","display","GraphicsDataType"], __constructs__ : ["STROKE","SOLID","GRADIENT","PATH","BITMAP","END"] }; openfl_display_GraphicsDataType.STROKE = ["STROKE",0]; openfl_display_GraphicsDataType.STROKE.toString = $estr; openfl_display_GraphicsDataType.STROKE.__enum__ = openfl_display_GraphicsDataType; openfl_display_GraphicsDataType.SOLID = ["SOLID",1]; openfl_display_GraphicsDataType.SOLID.toString = $estr; openfl_display_GraphicsDataType.SOLID.__enum__ = openfl_display_GraphicsDataType; openfl_display_GraphicsDataType.GRADIENT = ["GRADIENT",2]; openfl_display_GraphicsDataType.GRADIENT.toString = $estr; openfl_display_GraphicsDataType.GRADIENT.__enum__ = openfl_display_GraphicsDataType; openfl_display_GraphicsDataType.PATH = ["PATH",3]; openfl_display_GraphicsDataType.PATH.toString = $estr; openfl_display_GraphicsDataType.PATH.__enum__ = openfl_display_GraphicsDataType; openfl_display_GraphicsDataType.BITMAP = ["BITMAP",4]; openfl_display_GraphicsDataType.BITMAP.toString = $estr; openfl_display_GraphicsDataType.BITMAP.__enum__ = openfl_display_GraphicsDataType; openfl_display_GraphicsDataType.END = ["END",5]; openfl_display_GraphicsDataType.END.toString = $estr; openfl_display_GraphicsDataType.END.__enum__ = openfl_display_GraphicsDataType; var openfl_display_GraphicsFillType = $hxClasses["openfl.display.GraphicsFillType"] = { __ename__ : ["openfl","display","GraphicsFillType"], __constructs__ : ["SOLID_FILL","GRADIENT_FILL","BITMAP_FILL","END_FILL"] }; openfl_display_GraphicsFillType.SOLID_FILL = ["SOLID_FILL",0]; openfl_display_GraphicsFillType.SOLID_FILL.toString = $estr; openfl_display_GraphicsFillType.SOLID_FILL.__enum__ = openfl_display_GraphicsFillType; openfl_display_GraphicsFillType.GRADIENT_FILL = ["GRADIENT_FILL",1]; openfl_display_GraphicsFillType.GRADIENT_FILL.toString = $estr; openfl_display_GraphicsFillType.GRADIENT_FILL.__enum__ = openfl_display_GraphicsFillType; openfl_display_GraphicsFillType.BITMAP_FILL = ["BITMAP_FILL",2]; openfl_display_GraphicsFillType.BITMAP_FILL.toString = $estr; openfl_display_GraphicsFillType.BITMAP_FILL.__enum__ = openfl_display_GraphicsFillType; openfl_display_GraphicsFillType.END_FILL = ["END_FILL",3]; openfl_display_GraphicsFillType.END_FILL.toString = $estr; openfl_display_GraphicsFillType.END_FILL.__enum__ = openfl_display_GraphicsFillType; var openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$ = {}; $hxClasses["openfl.display._InterpolationMethod.InterpolationMethod_Impl_"] = openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$; openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.__name__ = ["openfl","display","_InterpolationMethod","InterpolationMethod_Impl_"]; openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.fromString = function(value) { switch(value) { case "linearRGB": return 0; case "rgb": return 1; default: return null; } }; openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.toString = function(value) { switch(value) { case 0: return "linearRGB"; case 1: return "rgb"; default: return null; } }; var openfl_display_JPEGEncoderOptions = function(quality) { if(quality == null) quality = 80; this.quality = quality; }; $hxClasses["openfl.display.JPEGEncoderOptions"] = openfl_display_JPEGEncoderOptions; openfl_display_JPEGEncoderOptions.__name__ = ["openfl","display","JPEGEncoderOptions"]; openfl_display_JPEGEncoderOptions.prototype = { quality: null ,__class__: openfl_display_JPEGEncoderOptions }; var openfl_display__$JointStyle_JointStyle_$Impl_$ = {}; $hxClasses["openfl.display._JointStyle.JointStyle_Impl_"] = openfl_display__$JointStyle_JointStyle_$Impl_$; openfl_display__$JointStyle_JointStyle_$Impl_$.__name__ = ["openfl","display","_JointStyle","JointStyle_Impl_"]; openfl_display__$JointStyle_JointStyle_$Impl_$.fromString = function(value) { switch(value) { case "bevel": return 0; case "miter": return 1; case "round": return 2; default: return null; } }; openfl_display__$JointStyle_JointStyle_$Impl_$.toString = function(value) { switch(value) { case 0: return "bevel"; case 1: return "miter"; case 2: return "round"; default: return null; } }; var openfl_display__$LineScaleMode_LineScaleMode_$Impl_$ = {}; $hxClasses["openfl.display._LineScaleMode.LineScaleMode_Impl_"] = openfl_display__$LineScaleMode_LineScaleMode_$Impl_$; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.__name__ = ["openfl","display","_LineScaleMode","LineScaleMode_Impl_"]; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.fromString = function(value) { switch(value) { case "horizontal": return 0; case "none": return 1; case "normal": return 2; case "vertical": return 3; default: return null; } }; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.toString = function(value) { switch(value) { case 0: return "horizontal"; case 1: return "none"; case 2: return "normal"; case 3: return "vertical"; default: return null; } }; var openfl_display_Loader = function() { openfl_display_DisplayObjectContainer.call(this); this.contentLoaderInfo = openfl_display_LoaderInfo.create(this); }; $hxClasses["openfl.display.Loader"] = openfl_display_Loader; openfl_display_Loader.__name__ = ["openfl","display","Loader"]; openfl_display_Loader.__super__ = openfl_display_DisplayObjectContainer; openfl_display_Loader.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{ content: null ,contentLoaderInfo: null ,mImage: null ,mShape: null ,close: function() { openfl_Lib.notImplemented("Loader.close"); } ,load: function(request,context) { var extension = ""; var parts = request.url.split("."); if(parts.length > 0) extension = parts[parts.length - 1].toLowerCase(); if(extension.indexOf("?") != -1) extension = extension.split("?")[0]; var transparent = true; this.contentLoaderInfo.url = request.url; if(request.contentType == null || request.contentType == "") switch(extension) { case "swf": this.contentLoaderInfo.contentType = "application/x-shockwave-flash"; break; case "jpg":case "jpeg": transparent = false; this.contentLoaderInfo.contentType = "image/jpeg"; break; case "png": this.contentLoaderInfo.contentType = "image/png"; break; case "gif": this.contentLoaderInfo.contentType = "image/gif"; break; default: this.contentLoaderInfo.contentType = "application/x-www-form-urlencoded"; } else this.contentLoaderInfo.contentType = request.contentType; var worker = new lime_system_BackgroundWorker(); worker.doWork.add(function(_) { var path = request.url; openfl_display_BitmapData.fromFile(path,function(bitmapData) { worker.sendComplete(bitmapData); },function() { worker.sendError("ioError"); }); }); worker.onError.add($bind(this,this.BitmapData_onError)); worker.onComplete.add($bind(this,this.BitmapData_onLoad)); worker.run(); } ,loadBytes: function(buffer,context) { var worker = new lime_system_BackgroundWorker(); worker.doWork.add(function(_) { openfl_display_BitmapData.fromBytes(buffer,null,function(bitmapData) { worker.sendComplete(bitmapData); }); }); worker.onComplete.add($bind(this,this.BitmapData_onLoad)); worker.run(); } ,unload: function() { if(this.get_numChildren() > 0) { while(this.get_numChildren() > 0) this.removeChildAt(0); this.content = null; this.contentLoaderInfo.url = null; this.contentLoaderInfo.contentType = null; this.contentLoaderInfo.content = null; this.contentLoaderInfo.bytesLoaded = 0; this.contentLoaderInfo.bytesTotal = 0; this.contentLoaderInfo.width = 0; this.contentLoaderInfo.height = 0; var event = new openfl_events_Event("unload"); event.currentTarget = this; this.__dispatchEvent(event); } } ,unloadAndStop: function(gc) { if(gc == null) gc = true; openfl_Lib.notImplemented("Loader.unloadAndStop"); } ,BitmapData_onLoad: function(bitmapData) { this.contentLoaderInfo.content = new openfl_display_Bitmap(bitmapData); this.content = this.contentLoaderInfo.content; this.addChild(this.contentLoaderInfo.content); var event = new openfl_events_Event("complete"); event.target = this.contentLoaderInfo; event.currentTarget = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(event); } ,BitmapData_onError: function(_) { var event = new openfl_events_IOErrorEvent("ioError"); event.target = this.contentLoaderInfo; event.currentTarget = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(event); } ,__class__: openfl_display_Loader }); var openfl_display_OpenGLView = function() { openfl_display_DirectRenderer.call(this,"OpenGLView"); if(!this.__added) { this.__added = true; haxe_Log.trace("Warning: OpenGLView is not available in HTML5 canvas rendering mode",{ fileName : "OpenGLView.hx", lineNumber : 76, className : "openfl.display.OpenGLView", methodName : "new"}); haxe_Log.trace("Please compile your project using -Ddom or -Dwebgl (beta) to enable",{ fileName : "OpenGLView.hx", lineNumber : 77, className : "openfl.display.OpenGLView", methodName : "new"}); } }; $hxClasses["openfl.display.OpenGLView"] = openfl_display_OpenGLView; openfl_display_OpenGLView.__name__ = ["openfl","display","OpenGLView"]; openfl_display_OpenGLView.__properties__ = {get_isSupported:"get_isSupported"} openfl_display_OpenGLView.isSupported = null; openfl_display_OpenGLView.get_isSupported = function() { return false; }; openfl_display_OpenGLView.__super__ = openfl_display_DirectRenderer; openfl_display_OpenGLView.prototype = $extend(openfl_display_DirectRenderer.prototype,{ __added: null ,__initialized: null ,__renderCanvas: function(renderSession) { } ,__renderDOM: function(renderSession) { if(this.stage != null && this.__worldVisible && this.__renderable) { if(!this.__added) { renderSession.element.appendChild(this.__canvas); this.__added = true; openfl__$internal_renderer_dom_DOMRenderer.initializeElement(this,this.__canvas,renderSession); } if(this.__context != null) { var rect = null; if(this.get_scrollRect() == null) rect = new openfl_geom_Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight); else rect = new openfl_geom_Rectangle(this.get_x() + this.get_scrollRect().x,this.get_y() + this.get_scrollRect().y,this.get_scrollRect().width,this.get_scrollRect().height); if(this.__render != null) this.__render(rect); } } else if(this.__added) { renderSession.element.removeChild(this.__canvas); this.__added = false; } } ,__renderGL: function(renderSession) { if(this.stage != null && this.__renderable) { var rect = null; if(this.get_scrollRect() == null) rect = new openfl_geom_Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight); else rect = new openfl_geom_Rectangle(this.get_x() + this.get_scrollRect().x,this.get_y() + this.get_scrollRect().y,this.get_scrollRect().width,this.get_scrollRect().height); if(this.__render != null) this.__render(rect); renderSession.shaderManager.setShader(null); renderSession.blendModeManager.setBlendMode(null); } } ,__class__: openfl_display_OpenGLView }); var openfl_display_PNGEncoderOptions = function(fastCompression) { if(fastCompression == null) fastCompression = false; this.fastCompression = fastCompression; }; $hxClasses["openfl.display.PNGEncoderOptions"] = openfl_display_PNGEncoderOptions; openfl_display_PNGEncoderOptions.__name__ = ["openfl","display","PNGEncoderOptions"]; openfl_display_PNGEncoderOptions.prototype = { fastCompression: null ,__class__: openfl_display_PNGEncoderOptions }; var openfl_display__$PixelSnapping_PixelSnapping_$Impl_$ = {}; $hxClasses["openfl.display._PixelSnapping.PixelSnapping_Impl_"] = openfl_display__$PixelSnapping_PixelSnapping_$Impl_$; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.__name__ = ["openfl","display","_PixelSnapping","PixelSnapping_Impl_"]; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.fromString = function(value) { switch(value) { case "always": return 0; case "auto": return 1; case "never": return 2; default: return null; } }; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.toString = function(value) { switch(value) { case 0: return "always"; case 1: return "auto"; case 2: return "never"; default: return null; } }; var openfl_display_Preloader = function(display) { lime_app_Preloader.call(this); if(display != null) { this.display = display; openfl_Lib.current.addChild(display); if(js_Boot.__instanceof(display,NMEPreloader)) (js_Boot.__cast(display , NMEPreloader)).onInit(); } }; $hxClasses["openfl.display.Preloader"] = openfl_display_Preloader; openfl_display_Preloader.__name__ = ["openfl","display","Preloader"]; openfl_display_Preloader.__super__ = lime_app_Preloader; openfl_display_Preloader.prototype = $extend(lime_app_Preloader.prototype,{ display: null ,displayComplete: null ,load: function(urls,types) { var sounds = []; var url = null; var _g1 = 0; var _g = urls.length; while(_g1 < _g) { var i = _g1++; url = urls[i]; var _g2 = types[i]; switch(_g2) { case "MUSIC":case "SOUND": var sound = haxe_io_Path.withoutExtension(url); if(!HxOverrides.remove(sounds,sound)) this.total++; sounds.push(sound); break; default: } } var _g3 = 0; while(_g3 < sounds.length) { var soundName = sounds[_g3]; ++_g3; var sound1 = new openfl_media_Sound(); sound1.addEventListener("complete",$bind(this,this.sound_onComplete)); sound1.addEventListener("ioError",$bind(this,this.sound_onIOError)); sound1.load(new openfl_net_URLRequest(soundName + ".ogg")); } lime_app_Preloader.prototype.load.call(this,urls,types); } ,start: function() { if(this.display != null && js_Boot.__instanceof(this.display,NMEPreloader)) { this.display.addEventListener("complete",$bind(this,this.display_onComplete)); (js_Boot.__cast(this.display , NMEPreloader)).onLoaded(); } else lime_app_Preloader.prototype.start.call(this); } ,update: function(loaded,total) { if(this.display != null && js_Boot.__instanceof(this.display,NMEPreloader)) (js_Boot.__cast(this.display , NMEPreloader)).onUpdate(loaded,total); } ,display_onComplete: function(event) { this.display.removeEventListener("complete",$bind(this,this.display_onComplete)); openfl_Lib.current.removeChild(this.display); openfl_Lib.current.stage.set_focus(null); this.display = null; lime_app_Preloader.prototype.start.call(this); } ,sound_onComplete: function(event) { this.loaded++; this.onProgress.dispatch(this.loaded,this.total); if(this.loaded == this.total) this.start(); } ,sound_onIOError: function(event) { this.loaded++; this.onProgress.dispatch(this.loaded,this.total); if(this.loaded == this.total) this.start(); } ,__class__: openfl_display_Preloader }); var openfl_display_Shader = function(precision) { if(precision == null) precision = 1; this.__dirty = true; this.repeatY = 33071; this.repeatX = 33071; this.precision = 1; this.precision = precision; this.data = new haxe_ds_StringMap(); var value = new openfl_display_GLShaderParameter("vec2"); this.data.set(openfl_display_Shader.uObjectSize,value); var value1 = new openfl_display_GLShaderParameter("vec2"); this.data.set(openfl_display_Shader.uTextureSize,value1); }; $hxClasses["openfl.display.Shader"] = openfl_display_Shader; openfl_display_Shader.__name__ = ["openfl","display","Shader"]; openfl_display_Shader.prototype = { precision: null ,data: null ,repeatX: null ,repeatY: null ,smooth: null ,blendMode: null ,__dirty: null ,__fragmentCode: null ,__vertexCode: null ,__shader: null ,__init: function(gl) { var dirty = this.__dirty; if(dirty) { if(this.__shader != null) this.__shader.destroy(); this.__shader = new openfl__$internal_renderer_opengl_shaders2_Shader(gl); if(this.__vertexCode != null) this.__shader.vertexString = this.__vertexCode; else this.__shader.vertexString = openfl__$internal_renderer_opengl_shaders2_DefaultShader.VERTEX_SRC.join("\n"); this.__shader.fragmentString = this.__fragmentCode; this.__dirty = false; } this.__shader.init(dirty); } ,__buildFragmentCode: function(code) { var output = []; output.push("#ifdef GL_ES"); output.push((function($this) { var $r; var _g = $this.precision; $r = (function($this) { var $r; switch(_g) { case 2: $r = "precision highp float;"; break; case 1: $r = "precision mediump float;"; break; default: $r = "precision lowp float;"; } return $r; }($this)); return $r; }(this))); output.push("#endif"); output = output.concat(openfl_display_Shader.fragmentHeader); output.push(code); this.__fragmentCode = output.join("\n"); } ,__buildVertexCode: function(code) { var output = []; output.push("#ifdef GL_ES"); output.push((function($this) { var $r; var _g = $this.precision; $r = (function($this) { var $r; switch(_g) { case 2: $r = "precision highp float;"; break; case 1: $r = "precision mediump float;"; break; default: $r = "precision lowp float;"; } return $r; }($this)); return $r; }(this))); output.push("#endif"); output = output.concat(openfl_display_Shader.vertexHeader); output.push(code); this.__vertexCode = output.join("\n"); } ,__class__: openfl_display_Shader }; var openfl_display_GLShaderParameter = function(type,arraySize) { this.internalType = 0; this.transpose = false; this.repeatY = 33071; this.repeatX = 33071; this.smooth = false; this.arraySize = 0; this.size = 0; this.type = type; if(arraySize == null) this.arraySize = 0; else this.arraySize = arraySize; this.__init(); }; $hxClasses["openfl.display.GLShaderParameter"] = openfl_display_GLShaderParameter; openfl_display_GLShaderParameter.__name__ = ["openfl","display","GLShaderParameter"]; openfl_display_GLShaderParameter.prototype = { type: null ,size: null ,arraySize: null ,value: null ,bitmap: null ,smooth: null ,repeatX: null ,repeatY: null ,transpose: null ,internalType: null ,__init: function() { var _g = this.type; var v = _g; var m = _g; switch(_g) { case "bool": this.internalType = 1; this.size = 1; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); this.value = [0.0]; break; case "int": this.internalType = 1; this.size = 1; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); this.value = [0.0]; break; case "float": this.internalType = 2; this.size = 1; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); this.value = [0.0]; break; case "sampler2D": if(v.indexOf("vec") > -1) { if(StringTools.startsWith(this.type,"b") || StringTools.startsWith(this.type,"i")) this.internalType = 1; else this.internalType = 2; var s = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s; this.set_value((function($this) { var $r; var _g1 = []; { var _g3 = 0; var _g2 = $this.size; while(_g3 < _g2) { var i = _g3++; _g1.push(0.0); } } $r = _g1; return $r; }(this))); } else if(m.indexOf("mat") > -1) { this.internalType = 3; var s1 = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s1; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); var _g11 = this.size; switch(_g11) { case 2: this.value = [1,0,1,0]; break; case 3: this.value = [1,0,0,0,1,0,0,0,1]; break; case 4: this.value = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]; break; default: this.value = [0]; } } else { this.internalType = 4; this.size = 0; } break; case "samplerCube": if(v.indexOf("vec") > -1) { if(StringTools.startsWith(this.type,"b") || StringTools.startsWith(this.type,"i")) this.internalType = 1; else this.internalType = 2; var s2 = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s2; this.set_value((function($this) { var $r; var _g12 = []; { var _g31 = 0; var _g21 = $this.size; while(_g31 < _g21) { var i1 = _g31++; _g12.push(0.0); } } $r = _g12; return $r; }(this))); } else if(m.indexOf("mat") > -1) { this.internalType = 3; var s3 = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s3; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); var _g13 = this.size; switch(_g13) { case 2: this.value = [1,0,1,0]; break; case 3: this.value = [1,0,0,0,1,0,0,0,1]; break; case 4: this.value = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]; break; default: this.value = [0]; } } else { this.internalType = 4; this.size = 0; } break; default: if(v.indexOf("vec") > -1) { if(StringTools.startsWith(this.type,"b") || StringTools.startsWith(this.type,"i")) this.internalType = 1; else this.internalType = 2; var s4 = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s4; this.set_value((function($this) { var $r; var _g14 = []; { var _g32 = 0; var _g22 = $this.size; while(_g32 < _g22) { var i2 = _g32++; _g14.push(0.0); } } $r = _g14; return $r; }(this))); } else if(m.indexOf("mat") > -1) { this.internalType = 3; var s5 = Std.parseInt(this.type.charAt(this.type.length - 1)); this.size = s5; if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); var _g15 = this.size; switch(_g15) { case 2: this.value = [1,0,1,0]; break; case 3: this.value = [1,0,0,0,1,0,0,0,1]; break; case 4: this.value = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]; break; default: this.value = [0]; } } else { this.internalType = 0; haxe_Log.trace("Can't initialize value for type " + this.type,{ fileName : "Shader.hx", lineNumber : 307, className : "openfl.display.GLShaderParameter", methodName : "__init"}); } } } ,set_value: function(v) { if(this.internalType == 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a value, use bitmap instead"); return this.value = v; } ,set_bitmap: function(v) { if(this.internalType != 4) throw new js__$Boot_HaxeError("This parameter doesn't accept a bitmap, use value instead"); return this.bitmap = v; } ,__class__: openfl_display_GLShaderParameter ,__properties__: {set_bitmap:"set_bitmap",set_value:"set_value"} }; var openfl_display_Shape = function() { openfl_display_DisplayObject.call(this); }; $hxClasses["openfl.display.Shape"] = openfl_display_Shape; openfl_display_Shape.__name__ = ["openfl","display","Shape"]; openfl_display_Shape.__super__ = openfl_display_DisplayObject; openfl_display_Shape.prototype = $extend(openfl_display_DisplayObject.prototype,{ graphics: null ,get_graphics: function() { if(this.__graphics == null) { this.__graphics = new openfl_display_Graphics(); this.__graphics.__owner = this; } return this.__graphics; } ,__class__: openfl_display_Shape ,__properties__: $extend(openfl_display_DisplayObject.prototype.__properties__,{get_graphics:"get_graphics"}) }); var openfl_display__$SpreadMethod_SpreadMethod_$Impl_$ = {}; $hxClasses["openfl.display._SpreadMethod.SpreadMethod_Impl_"] = openfl_display__$SpreadMethod_SpreadMethod_$Impl_$; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.__name__ = ["openfl","display","_SpreadMethod","SpreadMethod_Impl_"]; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.fromString = function(value) { switch(value) { case "pad": return 0; case "reflect": return 1; case "repeat": return 2; default: return null; } }; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.toString = function(value) { switch(value) { case 0: return "pad"; case 1: return "reflect"; case 2: return "repeat"; default: return null; } }; var openfl_display_Stage = function(window,color) { openfl_display_DisplayObjectContainer.call(this); this.application = window.application; this.window = window; if(color == null) { this.__transparent = true; this.set_color(0); } else this.set_color(color); this.set_name(null); this.__deltaTime = 0; this.__displayState = 2; this.__mouseX = 0; this.__mouseY = 0; this.__lastClickTime = 0; this.stageWidth = window.__width * window.__scale | 0; this.stageHeight = window.__height * window.__scale | 0; this.stage = this; this.align = 6; this.allowsFullScreen = false; this.allowsFullScreenInteractive = false; this.quality = 1; this.scaleMode = 2; this.stageFocusRect = true; this.__macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform); this.__clearBeforeRender = true; this.__stack = []; this.__mouseOutStack = []; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; this.stage3Ds = this1; var this3 = this.stage3Ds; var x = new openfl_display_Stage3D(); if(!this3.fixed) { this3.length++; if(this3.data.length < this3.length) { var data; var this4; this4 = new Array(this3.data.length + 10); data = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data,0,this3.data.length); this3.data = data; } this3.data[this3.length - 1] = x; } this3.length; if(openfl_Lib.current.stage == null) this.stage.addChild(openfl_Lib.current); }; $hxClasses["openfl.display.Stage"] = openfl_display_Stage; openfl_display_Stage.__name__ = ["openfl","display","Stage"]; openfl_display_Stage.__interfaces__ = [lime_app_IModule]; openfl_display_Stage.__super__ = openfl_display_DisplayObjectContainer; openfl_display_Stage.prototype = $extend(openfl_display_DisplayObjectContainer.prototype,{ align: null ,allowsFullScreen: null ,allowsFullScreenInteractive: null ,application: null ,quality: null ,scaleMode: null ,stage3Ds: null ,stageFocusRect: null ,stageHeight: null ,stageWidth: null ,window: null ,__clearBeforeRender: null ,__color: null ,__colorSplit: null ,__colorString: null ,__deltaTime: null ,__dirty: null ,__displayState: null ,__dragBounds: null ,__dragObject: null ,__dragOffsetX: null ,__dragOffsetY: null ,__focus: null ,__fullscreen: null ,__invalidated: null ,__lastClickTime: null ,__macKeyboard: null ,__mouseDownLeft: null ,__mouseDownMiddle: null ,__mouseDownRight: null ,__mouseOutStack: null ,__mouseX: null ,__mouseY: null ,__originalWidth: null ,__originalHeight: null ,__renderer: null ,__rendering: null ,__stack: null ,__transparent: null ,__wasDirty: null ,globalToLocal: function(pos) { return pos.clone(); } ,invalidate: function() { this.__invalidated = true; } ,localToGlobal: function(pos) { return pos.clone(); } ,onGamepadAxisMove: function(gamepad,axis,value) { openfl_ui_GameInput.__onGamepadAxisMove(gamepad,axis,value); } ,onGamepadButtonDown: function(gamepad,button) { openfl_ui_GameInput.__onGamepadButtonDown(gamepad,button); } ,onGamepadButtonUp: function(gamepad,button) { openfl_ui_GameInput.__onGamepadButtonUp(gamepad,button); } ,onGamepadConnect: function(gamepad) { openfl_ui_GameInput.__onGamepadConnect(gamepad); } ,onGamepadDisconnect: function(gamepad) { openfl_ui_GameInput.__onGamepadDisconnect(gamepad); } ,onJoystickAxisMove: function(joystick,axis,value) { } ,onJoystickButtonDown: function(joystick,button) { } ,onJoystickButtonUp: function(joystick,button) { } ,onJoystickConnect: function(joystick) { } ,onJoystickDisconnect: function(joystick) { } ,onJoystickHatMove: function(joystick,hat,position) { } ,onJoystickTrackballMove: function(joystick,trackball,value) { } ,onKeyDown: function(window,keyCode,modifier) { if(this.window == null || this.window != window) return; this.__onKey("keyDown",keyCode,modifier); } ,onKeyUp: function(window,keyCode,modifier) { if(this.window == null || this.window != window) return; this.__onKey("keyUp",keyCode,modifier); } ,onModuleExit: function(code) { if(this.window != null) { var event = new openfl_events_Event("deactivate"); this.__broadcast(event,true); } } ,onMouseDown: function(window,x,y,button) { if(this.window == null || this.window != window) return; var type; switch(button) { case 1: type = "middleMouseDown"; break; case 2: type = "rightMouseDown"; break; default: type = "mouseDown"; } this.__onMouse(type,x * window.__scale | 0,y * window.__scale | 0,button); } ,onMouseMove: function(window,x,y) { if(this.window == null || this.window != window) return; this.__onMouse("mouseMove",x * window.__scale | 0,y * window.__scale | 0,0); } ,onMouseMoveRelative: function(window,x,y) { } ,onMouseUp: function(window,x,y,button) { if(this.window == null || this.window != window) return; var type; switch(button) { case 1: type = "middleMouseUp"; break; case 2: type = "rightMouseUp"; break; default: type = "mouseUp"; } this.__onMouse(type,x * window.__scale | 0,y * window.__scale | 0,button); } ,onMouseWheel: function(window,deltaX,deltaY) { if(this.window == null || this.window != window) return; this.__onMouseWheel(deltaX * window.__scale | 0,deltaY * window.__scale | 0); } ,onPreloadComplete: function() { } ,onPreloadProgress: function(loaded,total) { } ,onRenderContextLost: function(renderer) { } ,onRenderContextRestored: function(renderer,context) { } ,onTextEdit: function(window,text,start,length) { } ,onTextInput: function(window,text) { if(this.window == null || this.window != window) return; var stack = []; if(this.__focus == null) this.__getInteractive(stack); else this.__focus.__getInteractive(stack); var event = new openfl_events_TextEvent("textInput",true,false,text); if(stack.length > 0) { stack.reverse(); this.__fireEvent(event,stack); } else this.__broadcast(event,true); } ,onTouchMove: function(touch) { this.__onTouch("touchMove",touch); } ,onTouchEnd: function(touch) { this.__onTouch("touchEnd",touch); } ,onTouchStart: function(touch) { this.__onTouch("touchBegin",touch); } ,onWindowActivate: function(window) { if(this.window == null || this.window != window) return; var event = new openfl_events_Event("activate"); this.__broadcast(event,true); } ,onWindowClose: function(window) { if(this.window == window) this.window = null; } ,onWindowCreate: function(window) { if(this.window == null || this.window != window) return; if(window.renderer != null) { var _g = window.renderer.context; switch(_g[1]) { case 0: var gl = _g[2]; break; case 1: var context = _g[2]; this.__renderer = new openfl__$internal_renderer_canvas_CanvasRenderer(this.stageWidth,this.stageHeight,context); break; case 2: var element = _g[2]; break; case 4: var cairo = _g[2]; break; case 5: var ctx = _g[2]; break; default: } } } ,onWindowDeactivate: function(window) { if(this.window == null || this.window != window) return; var event = new openfl_events_Event("deactivate"); this.__broadcast(event,true); } ,onWindowDropFile: function(window,file) { } ,onWindowEnter: function(window) { } ,onWindowFocusIn: function(window) { if(this.window == null || this.window != window) return; var event = new openfl_events_FocusEvent("focusIn",true,false,null,false,0); this.__broadcast(event,true); } ,onWindowFocusOut: function(window) { if(this.window == null || this.window != window) return; var event = new openfl_events_FocusEvent("focusOut",true,false,null,false,0); this.__broadcast(event,true); } ,onWindowFullscreen: function(window) { if(this.window == null || this.window != window) return; if(this.__displayState == 2) this.__displayState = 1; } ,onWindowLeave: function(window) { if(this.window == null || this.window != window) return; this.__dispatchEvent(new openfl_events_Event("mouseLeave")); } ,onWindowMinimize: function(window) { } ,onWindowMove: function(window,x,y) { } ,onWindowResize: function(window,width,height) { if(this.window == null || this.window != window) return; if(this.__displayState != 2 && !window.__fullscreen) this.__displayState = 2; this.stageWidth = width * window.__scale | 0; this.stageHeight = height * window.__scale | 0; if(this.__renderer != null) this.__renderer.resize(this.stageWidth,this.stageHeight); var event = new openfl_events_Event("resize"); this.__broadcast(event,false); } ,onWindowRestore: function(window) { } ,render: function(renderer) { if(renderer.window == null || renderer.window != this.window) return; if(this.application != null && this.application.windows.length > 0) { if(!this.__transformDirty) { this.__transformDirty = true; openfl_display_DisplayObject.__worldTransformDirty++; } if(!this.__renderDirty) { this.__updateCachedBitmap = true; this.__updateFilters = this.get_filters() != null && this.get_filters().length > 0; this.__renderDirty = true; openfl_display_DisplayObject.__worldRenderDirty++; } } if(this.__rendering) return; this.__rendering = true; this.__broadcast(new openfl_events_Event("enterFrame"),true); if(this.__invalidated) { this.__invalidated = false; this.__broadcast(new openfl_events_Event("render"),true); } this.__renderable = true; this.__enterFrame(this.__deltaTime); this.__deltaTime = 0; this.__update(false,true); if(this.__renderer != null) { { var _g = renderer.context; switch(_g[1]) { case 4: var cairo = _g[2]; (js_Boot.__cast(this.__renderer , openfl__$internal_renderer_cairo_CairoRenderer)).cairo = cairo; this.__renderer.renderSession.cairo = cairo; break; default: } } this.__renderer.render(this); } this.__rendering = false; } ,update: function(deltaTime) { this.__deltaTime = deltaTime; } ,__drag: function(mouse) { var parent = this.__dragObject.parent; if(parent != null) mouse = parent.globalToLocal(mouse); var x = mouse.x + this.__dragOffsetX; var y = mouse.y + this.__dragOffsetY; if(this.__dragBounds != null) { if(x < this.__dragBounds.x) x = this.__dragBounds.x; else if(x > this.__dragBounds.get_right()) x = this.__dragBounds.get_right(); if(y < this.__dragBounds.y) y = this.__dragBounds.y; else if(y > this.__dragBounds.get_bottom()) y = this.__dragBounds.get_bottom(); } this.__dragObject.set_x(x); this.__dragObject.set_y(y); } ,__fireEvent: function(event,stack) { var length = stack.length; if(length == 0) { event.eventPhase = 2; event.target.__broadcast(event,false); } else { event.eventPhase = 1; event.target = stack[stack.length - 1]; var _g1 = 0; var _g = length - 1; while(_g1 < _g) { var i = _g1++; stack[i].__broadcast(event,false); if(event.__isCanceled) return; } event.eventPhase = 2; event.target.__broadcast(event,false); if(event.__isCanceled) return; if(event.bubbles) { event.eventPhase = 3; var i1 = length - 2; while(i1 >= 0) { stack[i1].__broadcast(event,false); if(event.__isCanceled) return; i1--; } } } } ,__getInteractive: function(stack) { if(stack != null) stack.push(this); return true; } ,__onKey: function(type,keyCode,modifier) { openfl_events_MouseEvent.__altKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_altKey(modifier); openfl_events_MouseEvent.__commandKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier); openfl_events_MouseEvent.__ctrlKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier); openfl_events_MouseEvent.__shiftKey = lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier); var stack = []; if(this.__focus == null) this.__getInteractive(stack); else this.__focus.__getInteractive(stack); if(stack.length > 0) { var keyLocation; switch(keyCode) { case 1073742048:case 1073742049:case 1073742050:case 1073742051: keyLocation = 1; break; case 1073742052:case 1073742053:case 1073742054:case 1073742055: keyLocation = 2; break; case 1073741908:case 1073741909:case 1073741910:case 1073741911:case 1073741912:case 1073741913:case 1073741914:case 1073741915:case 1073741916:case 1073741917:case 1073741918:case 1073741919:case 1073741920:case 1073741921:case 1073741922:case 1073741923:case 1073742044: keyLocation = 3; break; default: keyLocation = 0; } var keyCode1; switch(keyCode) { case 8: keyCode1 = 8; break; case 9: keyCode1 = 9; break; case 13: keyCode1 = 13; break; case 27: keyCode1 = 27; break; case 32: keyCode1 = 32; break; case 33: keyCode1 = 49; break; case 34: keyCode1 = 222; break; case 35: keyCode1 = 51; break; case 36: keyCode1 = 52; break; case 37: keyCode1 = 53; break; case 38: keyCode1 = 55; break; case 39: keyCode1 = 222; break; case 40: keyCode1 = 57; break; case 41: keyCode1 = 48; break; case 42: keyCode1 = 56; break; case 44: keyCode1 = 188; break; case 45: keyCode1 = 189; break; case 46: keyCode1 = 190; break; case 47: keyCode1 = 191; break; case 48: keyCode1 = 48; break; case 49: keyCode1 = 49; break; case 50: keyCode1 = 50; break; case 51: keyCode1 = 51; break; case 52: keyCode1 = 52; break; case 53: keyCode1 = 53; break; case 54: keyCode1 = 54; break; case 55: keyCode1 = 55; break; case 56: keyCode1 = 56; break; case 57: keyCode1 = 57; break; case 58: keyCode1 = 186; break; case 59: keyCode1 = 186; break; case 60: keyCode1 = 60; break; case 61: keyCode1 = 187; break; case 62: keyCode1 = 190; break; case 63: keyCode1 = 191; break; case 64: keyCode1 = 50; break; case 91: keyCode1 = 219; break; case 92: keyCode1 = 220; break; case 93: keyCode1 = 221; break; case 94: keyCode1 = 54; break; case 95: keyCode1 = 189; break; case 96: keyCode1 = 192; break; case 97: keyCode1 = 65; break; case 98: keyCode1 = 66; break; case 99: keyCode1 = 67; break; case 100: keyCode1 = 68; break; case 101: keyCode1 = 69; break; case 102: keyCode1 = 70; break; case 103: keyCode1 = 71; break; case 104: keyCode1 = 72; break; case 105: keyCode1 = 73; break; case 106: keyCode1 = 74; break; case 107: keyCode1 = 75; break; case 108: keyCode1 = 76; break; case 109: keyCode1 = 77; break; case 110: keyCode1 = 78; break; case 111: keyCode1 = 79; break; case 112: keyCode1 = 80; break; case 113: keyCode1 = 81; break; case 114: keyCode1 = 82; break; case 115: keyCode1 = 83; break; case 116: keyCode1 = 84; break; case 117: keyCode1 = 85; break; case 118: keyCode1 = 86; break; case 119: keyCode1 = 87; break; case 120: keyCode1 = 88; break; case 121: keyCode1 = 89; break; case 122: keyCode1 = 90; break; case 127: keyCode1 = 46; break; case 1073741881: keyCode1 = 20; break; case 1073741882: keyCode1 = 112; break; case 1073741883: keyCode1 = 113; break; case 1073741884: keyCode1 = 114; break; case 1073741885: keyCode1 = 115; break; case 1073741886: keyCode1 = 116; break; case 1073741887: keyCode1 = 117; break; case 1073741888: keyCode1 = 118; break; case 1073741889: keyCode1 = 119; break; case 1073741890: keyCode1 = 120; break; case 1073741891: keyCode1 = 121; break; case 1073741892: keyCode1 = 122; break; case 1073741893: keyCode1 = 123; break; case 1073741894: keyCode1 = 301; break; case 1073741895: keyCode1 = 145; break; case 1073741896: keyCode1 = 19; break; case 1073741897: keyCode1 = 45; break; case 1073741898: keyCode1 = 36; break; case 1073741899: keyCode1 = 33; break; case 1073741901: keyCode1 = 35; break; case 1073741902: keyCode1 = 34; break; case 1073741903: keyCode1 = 39; break; case 1073741904: keyCode1 = 37; break; case 1073741905: keyCode1 = 40; break; case 1073741906: keyCode1 = 38; break; case 1073741907: keyCode1 = 144; break; case 1073741908: keyCode1 = 111; break; case 1073741909: keyCode1 = 106; break; case 1073741910: keyCode1 = 109; break; case 1073741911: keyCode1 = 107; break; case 1073741912: keyCode1 = 108; break; case 1073741913: keyCode1 = 97; break; case 1073741914: keyCode1 = 98; break; case 1073741915: keyCode1 = 99; break; case 1073741916: keyCode1 = 100; break; case 1073741917: keyCode1 = 101; break; case 1073741918: keyCode1 = 102; break; case 1073741919: keyCode1 = 103; break; case 1073741920: keyCode1 = 104; break; case 1073741921: keyCode1 = 105; break; case 1073741922: keyCode1 = 96; break; case 1073741923: keyCode1 = 110; break; case 1073741925: keyCode1 = 302; break; case 1073741928: keyCode1 = 124; break; case 1073741929: keyCode1 = 125; break; case 1073741930: keyCode1 = 126; break; case 1073741982: keyCode1 = 13; break; case 1073742044: keyCode1 = 110; break; case 1073742048: keyCode1 = 17; break; case 1073742049: keyCode1 = 16; break; case 1073742050: keyCode1 = 18; break; case 1073742051: keyCode1 = 15; break; case 1073742052: keyCode1 = 17; break; case 1073742053: keyCode1 = 16; break; case 1073742054: keyCode1 = 18; break; case 1073742055: keyCode1 = 15; break; default: keyCode1 = keyCode; } var charCode = openfl_ui_Keyboard.__getCharCode(keyCode1,lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier)); var event = new openfl_events_KeyboardEvent(type,true,false,charCode,keyCode1,keyLocation,this.__macKeyboard?lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier) || lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier):lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_altKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_shiftKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_ctrlKey(modifier),lime_ui__$KeyModifier_KeyModifier_$Impl_$.get_metaKey(modifier)); stack.reverse(); this.__fireEvent(event,stack); if(event.__isCanceled) { if(type == "keyDown") this.window.onKeyDown.cancel(); else this.window.onKeyUp.cancel(); } } } ,__onMouse: function(type,x,y,button) { if(button > 2) return; this.__mouseX = x; this.__mouseY = y; var stack = []; var target = null; var targetPoint = new openfl_geom_Point(x,y); if(this.__hitTest(x,y,true,stack,true,this)) target = stack[stack.length - 1]; else { target = this; stack = [this]; } if(target == null) target = this; var clickType = null; switch(type) { case "mouseDown": if(target.get_tabEnabled()) this.set_focus(target); else this.set_focus(null); this.__mouseDownLeft = target; break; case "middleMouseDown": this.__mouseDownMiddle = target; break; case "rightMouseDown": this.__mouseDownRight = target; break; case "mouseUp": if(this.__mouseDownLeft == target) clickType = "click"; this.__mouseDownLeft = null; break; case "middleMouseUp": if(this.__mouseDownMiddle == target) clickType = "middleClick"; this.__mouseDownMiddle = null; break; case "rightMouseUp": if(this.__mouseDownRight == target) clickType = "rightClick"; this.__mouseDownRight = null; break; default: } this.__fireEvent(openfl_events_MouseEvent.__create(type,button,this.__mouseX,this.__mouseY,target == this?targetPoint:target.globalToLocal(targetPoint),target),stack); if(clickType != null) { this.__fireEvent(openfl_events_MouseEvent.__create(clickType,button,this.__mouseX,this.__mouseY,target == this?targetPoint:target.globalToLocal(targetPoint),target),stack); if(type == "mouseUp" && (js_Boot.__cast(target , openfl_display_InteractiveObject)).doubleClickEnabled) { var currentTime = openfl_Lib.getTimer(); if(currentTime - this.__lastClickTime < 500) { this.__fireEvent(openfl_events_MouseEvent.__create("doubleClick",button,this.__mouseX,this.__mouseY,target == this?targetPoint:target.globalToLocal(targetPoint),target),stack); this.__lastClickTime = 0; } else this.__lastClickTime = currentTime; } } var cursor = null; var _g = 0; while(_g < stack.length) { var target1 = stack[_g]; ++_g; cursor = target1.__getCursor(); if(cursor != null) { lime_ui_Mouse.set_cursor(cursor); break; } } if(cursor == null) lime_ui_Mouse.set_cursor(lime_ui_MouseCursor.ARROW); var event; var localPoint; var _g1 = 0; var _g11 = this.__mouseOutStack; while(_g1 < _g11.length) { var target2 = _g11[_g1]; ++_g1; if(HxOverrides.indexOf(stack,target2,0) == -1) { HxOverrides.remove(this.__mouseOutStack,target2); localPoint = target2.globalToLocal(targetPoint); event = openfl_events_MouseEvent.__create("mouseOut",button,this.__mouseX,this.__mouseY,localPoint,target2); event.bubbles = false; target2.__dispatchEvent(event); } } var _g2 = 0; while(_g2 < stack.length) { var target3 = stack[_g2]; ++_g2; if(HxOverrides.indexOf(this.__mouseOutStack,target3,0) == -1) { if(target3.hasEventListener("mouseOver")) { localPoint = target3.globalToLocal(targetPoint); event = openfl_events_MouseEvent.__create("mouseOver",button,this.__mouseX,this.__mouseY,localPoint,target3); event.bubbles = false; target3.__dispatchEvent(event); } if(target3.hasEventListener("mouseOut")) this.__mouseOutStack.push(target3); } } if(this.__dragObject != null) this.__drag(targetPoint); } ,__onMouseWheel: function(deltaX,deltaY) { var x = this.__mouseX; var y = this.__mouseY; var stack = []; if(!this.__hitTest(x,y,false,stack,true,this)) stack = [this]; var target = stack[stack.length - 1]; var targetPoint = new openfl_geom_Point(x,y); var delta = deltaY | 0; this.__fireEvent(openfl_events_MouseEvent.__create("mouseWheel",0,this.__mouseX,this.__mouseY,target == this?targetPoint:target.globalToLocal(targetPoint),target,delta),stack); } ,__onTouch: function(type,touch) { var point = new openfl_geom_Point(touch.x * this.stageWidth,touch.y * this.stageHeight); this.__mouseX = point.x; this.__mouseY = point.y; var __stack = []; if(this.__hitTest(this.__mouseX,this.__mouseY,false,__stack,true,this)) { var target = __stack[__stack.length - 1]; if(target == null) target = this; var localPoint = target.globalToLocal(point); var touchEvent = openfl_events_TouchEvent.__create(type,null,this.__mouseX,this.__mouseY,localPoint,target); touchEvent.touchPointID = touch.id; touchEvent.isPrimaryTouchPoint = true; this.__fireEvent(touchEvent,__stack); } else { var touchEvent1 = openfl_events_TouchEvent.__create(type,null,this.__mouseX,this.__mouseY,point,this); touchEvent1.touchPointID = touch.id; touchEvent1.isPrimaryTouchPoint = true; this.__fireEvent(touchEvent1,[this.stage]); } } ,__resize: function() { } ,__startDrag: function(sprite,lockCenter,bounds) { if(bounds == null) this.__dragBounds = null; else this.__dragBounds = bounds.clone(); this.__dragObject = sprite; if(this.__dragObject != null) { if(lockCenter) { this.__dragOffsetX = -this.__dragObject.get_width() / 2; this.__dragOffsetY = -this.__dragObject.get_height() / 2; } else { var mouse = new openfl_geom_Point(this.get_mouseX(),this.get_mouseY()); var parent = this.__dragObject.parent; if(parent != null) mouse = parent.globalToLocal(mouse); this.__dragOffsetX = this.__dragObject.get_x() - mouse.x; this.__dragOffsetY = this.__dragObject.get_y() - mouse.y; } } } ,__stopDrag: function(sprite) { this.__dragBounds = null; this.__dragObject = null; } ,__update: function(transformOnly,updateChildren,maskGrahpics) { if(transformOnly) { if(openfl_display_DisplayObject.__worldTransformDirty > 0) { openfl_display_DisplayObjectContainer.prototype.__update.call(this,true,updateChildren,maskGrahpics); if(updateChildren) { openfl_display_DisplayObject.__worldTransformDirty = 0; this.__dirty = true; } } } else if(openfl_display_DisplayObject.__worldTransformDirty > 0 || this.__dirty || openfl_display_DisplayObject.__worldRenderDirty > 0) { openfl_display_DisplayObjectContainer.prototype.__update.call(this,false,updateChildren,maskGrahpics); if(updateChildren) { openfl_display_DisplayObject.__worldTransformDirty = 0; openfl_display_DisplayObject.__worldRenderDirty = 0; this.__dirty = false; } } } ,get_mouseX: function() { return this.__mouseX; } ,get_mouseY: function() { return this.__mouseY; } ,canvas_onContextLost: function(event) { } ,canvas_onContextRestored: function(event) { } ,get_color: function() { return this.__color; } ,set_color: function(value) { var r = (value & 16711680) >>> 16; var g = (value & 65280) >>> 8; var b = value & 255; this.__colorSplit = [r / 255,g / 255,b / 255]; this.__colorString = "#" + StringTools.hex(value,6); return this.__color = value; } ,get_displayState: function() { return this.__displayState; } ,set_displayState: function(value) { if(this.window != null) switch(value) { case 2: if(this.window.__fullscreen) { this.window.set_fullscreen(false); this.stageWidth = this.window.__width * this.window.__scale | 0; this.stageHeight = this.window.__height * this.window.__scale | 0; this.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,false,true)); } break; default: if(!this.window.__fullscreen) { this.window.set_fullscreen(true); this.stageWidth = this.window.__width * this.window.__scale | 0; this.stageHeight = this.window.__height * this.window.__scale | 0; this.dispatchEvent(new openfl_events_FullScreenEvent("fullScreen",false,false,true,true)); } } return this.__displayState = value; } ,get_focus: function() { return this.__focus; } ,set_focus: function(value) { if(value != this.__focus) { var oldFocus = this.__focus; this.__focus = value; if(oldFocus != null) { var event = new openfl_events_FocusEvent("focusOut",true,false,this.__focus,false,0); this.__stack = []; oldFocus.__getInteractive(this.__stack); this.__stack.reverse(); this.__fireEvent(event,this.__stack); } if(this.__focus != null) { var event1 = new openfl_events_FocusEvent("focusIn",true,false,oldFocus,false,0); this.__stack = []; value.__getInteractive(this.__stack); this.__stack.reverse(); this.__fireEvent(event1,this.__stack); } } return this.__focus; } ,get_frameRate: function() { if(this.application != null) return this.application.backend.getFrameRate(); return 0; } ,set_frameRate: function(value) { if(this.application != null) return this.application.backend.setFrameRate(value); return value; } ,__class__: openfl_display_Stage ,__properties__: $extend(openfl_display_DisplayObjectContainer.prototype.__properties__,{set_frameRate:"set_frameRate",get_frameRate:"get_frameRate",set_focus:"set_focus",get_focus:"get_focus",set_displayState:"set_displayState",get_displayState:"get_displayState",set_color:"set_color",get_color:"get_color"}) }); var openfl_display_Stage3D = function() { openfl_events_EventDispatcher.call(this); }; $hxClasses["openfl.display.Stage3D"] = openfl_display_Stage3D; openfl_display_Stage3D.__name__ = ["openfl","display","Stage3D"]; openfl_display_Stage3D.__super__ = openfl_events_EventDispatcher; openfl_display_Stage3D.prototype = $extend(openfl_events_EventDispatcher.prototype,{ context3D: null ,visible: null ,x: null ,y: null ,requestContext3D: function(context3DRenderMode) { if(context3DRenderMode == null) context3DRenderMode = ""; var _g = this; if(openfl_display_OpenGLView.get_isSupported()) haxe_Timer.delay(function() { _g.context3D = new openfl_display3D_Context3D(); _g.dispatchEvent(new openfl_events_Event("context3DCreate")); },1); else haxe_Timer.delay(function() { _g.dispatchEvent(new openfl_events_ErrorEvent("error")); },1); } ,__class__: openfl_display_Stage3D }); var openfl_display__$StageAlign_StageAlign_$Impl_$ = {}; $hxClasses["openfl.display._StageAlign.StageAlign_Impl_"] = openfl_display__$StageAlign_StageAlign_$Impl_$; openfl_display__$StageAlign_StageAlign_$Impl_$.__name__ = ["openfl","display","_StageAlign","StageAlign_Impl_"]; openfl_display__$StageAlign_StageAlign_$Impl_$.fromString = function(value) { switch(value) { case "bottom": return 0; case "bottomLeft": return 1; case "bottomRight": return 2; case "left": return 3; case "right": return 4; case "top": return 5; case "topLeft": return 6; case "topRight": return 7; default: return null; } }; openfl_display__$StageAlign_StageAlign_$Impl_$.toString = function(value) { switch(value) { case 0: return "bottom"; case 1: return "bottomLeft"; case 2: return "bottomRight"; case 3: return "left"; case 4: return "right"; case 5: return "top"; case 6: return "topLeft"; case 7: return "topRight"; default: return null; } }; var openfl_display__$StageDisplayState_StageDisplayState_$Impl_$ = {}; $hxClasses["openfl.display._StageDisplayState.StageDisplayState_Impl_"] = openfl_display__$StageDisplayState_StageDisplayState_$Impl_$; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.__name__ = ["openfl","display","_StageDisplayState","StageDisplayState_Impl_"]; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.fromString = function(value) { switch(value) { case "fullScreen": return 0; case "fullScreenInteractive": return 1; case "normal": return 2; default: return null; } }; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.toString = function(value) { switch(value) { case 0: return "fullScreen"; case 1: return "fullScreenInteractive"; case 2: return "normal"; default: return null; } }; var openfl_display__$StageQuality_StageQuality_$Impl_$ = {}; $hxClasses["openfl.display._StageQuality.StageQuality_Impl_"] = openfl_display__$StageQuality_StageQuality_$Impl_$; openfl_display__$StageQuality_StageQuality_$Impl_$.__name__ = ["openfl","display","_StageQuality","StageQuality_Impl_"]; openfl_display__$StageQuality_StageQuality_$Impl_$.fromString = function(value) { switch(value) { case "best": return 0; case "high": return 1; case "low": return 2; case "medium": return 3; default: return null; } }; openfl_display__$StageQuality_StageQuality_$Impl_$.toString = function(value) { switch(value) { case 0: return "best"; case 1: return "high"; case 2: return "low"; case 3: return "medium"; default: return null; } }; var openfl_display__$StageScaleMode_StageScaleMode_$Impl_$ = {}; $hxClasses["openfl.display._StageScaleMode.StageScaleMode_Impl_"] = openfl_display__$StageScaleMode_StageScaleMode_$Impl_$; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.__name__ = ["openfl","display","_StageScaleMode","StageScaleMode_Impl_"]; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.fromString = function(value) { switch(value) { case "exactFit": return 0; case "noBorder": return 1; case "noScale": return 2; case "showAll": return 3; default: return null; } }; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.toString = function(value) { switch(value) { case 0: return "exactFit"; case 1: return "noBorder"; case 2: return "noScale"; case 3: return "showAll"; default: return null; } }; var openfl_display_Tilesheet = function(image) { this.__bitmap = image; this.__centerPoints = []; this.__tileRects = []; this.__tileUVs = []; this.__rectTile = new openfl_geom_Rectangle(); this.__rectUV = new openfl_geom_Rectangle(); this.__point = new openfl_geom_Point(); }; $hxClasses["openfl.display.Tilesheet"] = openfl_display_Tilesheet; openfl_display_Tilesheet.__name__ = ["openfl","display","Tilesheet"]; openfl_display_Tilesheet.prototype = { __bitmap: null ,__centerPoints: null ,__tileRects: null ,__tileUVs: null ,__rectTile: null ,__rectUV: null ,__point: null ,addTileRect: function(rectangle,centerPoint) { this.__tileRects.push(rectangle); if(centerPoint == null) centerPoint = openfl_display_Tilesheet.__defaultPoint; this.__centerPoints.push(centerPoint); this.__tileUVs.push(new openfl_geom_Rectangle(rectangle.get_left() / this.__bitmap.width,rectangle.get_top() / this.__bitmap.height,rectangle.get_right() / this.__bitmap.width,rectangle.get_bottom() / this.__bitmap.height)); return this.__tileRects.length - 1; } ,drawTiles: function(graphics,tileData,smooth,flags,count) { if(count == null) count = -1; if(flags == null) flags = 0; if(smooth == null) smooth = false; graphics.drawTiles(this,tileData,smooth,flags,null,count); } ,getTileCenter: function(index) { return this.__centerPoints[index]; } ,getTileRect: function(index) { return this.__tileRects[index]; } ,getTileUVs: function(index) { return this.__tileUVs[index]; } ,__class__: openfl_display_Tilesheet }; var openfl_display__$TriangleCulling_TriangleCulling_$Impl_$ = {}; $hxClasses["openfl.display._TriangleCulling.TriangleCulling_Impl_"] = openfl_display__$TriangleCulling_TriangleCulling_$Impl_$; openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.__name__ = ["openfl","display","_TriangleCulling","TriangleCulling_Impl_"]; openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.fromString = function(value) { switch(value) { case "negative": return 0; case "none": return 1; case "positive": return 2; default: return null; } }; openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.toString = function(value) { switch(value) { case 0: return "negative"; case 1: return "none"; case 2: return "positive"; default: return null; } }; var openfl_display_Window = function(config) { lime_ui_Window.call(this,config); }; $hxClasses["openfl.display.Window"] = openfl_display_Window; openfl_display_Window.__name__ = ["openfl","display","Window"]; openfl_display_Window.__super__ = lime_ui_Window; openfl_display_Window.prototype = $extend(lime_ui_Window.prototype,{ create: function(application) { lime_ui_Window.prototype.create.call(this,application); this.stage = new openfl_display_Stage(this,Object.prototype.hasOwnProperty.call(this.config,"background")?this.config.background:16777215); application.addModule(this.stage); } ,__class__: openfl_display_Window }); var openfl_display3D_Context3D = function() { this.disposed = false; this.stencilCompareMode = 519; this.stencilRef = 0; this.stencilReadMask = 255; this._yFlip = 1; this.vertexBuffersCreated = []; this.indexBuffersCreated = []; this.programsCreated = []; this.texturesCreated = []; this.samplerParameters = []; var _g1 = 0; var _g = openfl_display3D_Context3D.MAX_SAMPLERS; while(_g1 < _g) { var i = _g1++; this.samplerParameters[i] = new openfl_display3D__$Context3D_SamplerState(); this.samplerParameters[i].wrap = openfl_display3D_Context3DWrapMode.CLAMP; this.samplerParameters[i].filter = openfl_display3D_Context3DTextureFilter.LINEAR; this.samplerParameters[i].mipfilter = openfl_display3D_Context3DMipFilter.MIPNONE; } var stage = openfl_Lib.current.stage; this.ogl = new openfl_display_OpenGLView(); this.ogl.set_scrollRect(new openfl_geom_Rectangle(0,0,stage.stageWidth,stage.stageHeight)); this.scrollRect = this.ogl.get_scrollRect().clone(); this.ogl.set_width(stage.stageWidth); this.ogl.set_height(stage.stageHeight); stage.addChildAt(this.ogl,0); lime_graphics_opengl_GL.context.pixelStorei(37440,1); lime_graphics_opengl_GL.context.pixelStorei(37441,1); }; $hxClasses["openfl.display3D.Context3D"] = openfl_display3D_Context3D; openfl_display3D_Context3D.__name__ = ["openfl","display3D","Context3D"]; openfl_display3D_Context3D.prototype = { driverInfo: null ,enableErrorChecking: null ,blendDestinationFactor: null ,blendEnabled: null ,blendSourceFactor: null ,currentProgram: null ,disposed: null ,drawing: null ,framebuffer: null ,indexBuffersCreated: null ,ogl: null ,programsCreated: null ,renderbuffer: null ,samplerParameters: null ,scrollRect: null ,stencilbuffer: null ,stencilCompareMode: null ,stencilRef: null ,stencilReadMask: null ,texturesCreated: null ,vertexBuffersCreated: null ,_yFlip: null ,backBufferDepthAndStencil: null ,rttDepthAndStencil: null ,scissorRectangle: null ,renderToTexture: null ,rttWidth: null ,rttHeight: null ,clear: function(red,green,blue,alpha,depth,stencil,mask) { if(mask == null) mask = 17664; if(stencil == null) stencil = 0; if(depth == null) depth = 1; if(alpha == null) alpha = 1; if(blue == null) blue = 0; if(green == null) green = 0; if(red == null) red = 0; if(!this.drawing) { this.__updateBlendStatus(); this.drawing = true; } if(this.scissorRectangle != null) lime_graphics_opengl_GL.context.disable(3089); lime_graphics_opengl_GL.context.clearColor(red,green,blue,alpha); lime_graphics_opengl_GL.context.clearDepth(depth); lime_graphics_opengl_GL.context.clearStencil(stencil); lime_graphics_opengl_GL.context.clear(mask); if(this.scissorRectangle != null) lime_graphics_opengl_GL.context.enable(3089); } ,configureBackBuffer: function(width,height,antiAlias,enableDepthAndStencil) { if(enableDepthAndStencil == null) enableDepthAndStencil = true; this.backBufferDepthAndStencil = enableDepthAndStencil; this.updateDepthAndStencilState(); this.setBackBufferViewPort(null,null,width,height); this.updateScissorRectangle(); } ,setBackBufferViewPort: function(x,y,width,height) { if(x == null) x = this.scrollRect.x | 0; if(y == null) y = this.scrollRect.y | 0; if(width == null) width = this.scrollRect.width | 0; if(height == null) height = this.scrollRect.height | 0; this.scrollRect.x = x; this.scrollRect.y = y; this.scrollRect.width = width; this.scrollRect.height = height; this.ogl.set_width(x + width); this.ogl.set_height(y + height); this.updateBackBufferViewPort(); } ,updateBackBufferViewPort: function() { if(!this.renderToTexture) lime_graphics_opengl_GL.context.viewport(this.scrollRect.x | 0,this.scrollRect.y | 0,this.scrollRect.width | 0,this.scrollRect.height | 0); } ,updateDepthAndStencilState: function() { var depthAndStencil; if(this.renderToTexture) depthAndStencil = this.rttDepthAndStencil; else depthAndStencil = this.backBufferDepthAndStencil; if(depthAndStencil) { if(lime_app_Application.current.windows[0].config.depthBuffer) lime_graphics_opengl_GL.context.enable(2929); if(lime_app_Application.current.windows[0].config.stencilBuffer) lime_graphics_opengl_GL.context.enable(2960); } else { lime_graphics_opengl_GL.context.disable(2929); lime_graphics_opengl_GL.context.disable(2960); } } ,createCubeTexture: function(size,format,optimizeForRenderToTexture,streamingLevels) { if(streamingLevels == null) streamingLevels = 0; var texture = new openfl_display3D_textures_CubeTexture(this,lime_graphics_opengl_GL.context.createTexture(),size); this.texturesCreated.push(texture); return texture; } ,createIndexBuffer: function(numIndices,bufferUsage) { if(bufferUsage == null) bufferUsage = openfl_display3D_Context3DBufferUsage.STATIC_DRAW; var indexBuffer = new openfl_display3D_IndexBuffer3D(this,lime_graphics_opengl_GL.context.createBuffer(),numIndices,bufferUsage == openfl_display3D_Context3DBufferUsage.STATIC_DRAW?35044:35048); this.indexBuffersCreated.push(indexBuffer); return indexBuffer; } ,createProgram: function() { var program = new openfl_display3D_Program3D(this,lime_graphics_opengl_GL.context.createProgram()); this.programsCreated.push(program); return program; } ,createRectangleTexture: function(width,height,format,optimizeForRenderToTexture) { var texture = new openfl_display3D_textures_RectangleTexture(this,lime_graphics_opengl_GL.context.createTexture(),optimizeForRenderToTexture,width,height); this.texturesCreated.push(texture); return texture; } ,createTexture: function(width,height,format,optimizeForRenderToTexture,streamingLevels) { if(streamingLevels == null) streamingLevels = 0; var texture = new openfl_display3D_textures_Texture(this,lime_graphics_opengl_GL.context.createTexture(),optimizeForRenderToTexture,width,height); this.texturesCreated.push(texture); return texture; } ,createVertexBuffer: function(numVertices,data32PerVertex,bufferUsage) { if(bufferUsage == null) bufferUsage = openfl_display3D_Context3DBufferUsage.STATIC_DRAW; var vertexBuffer = new openfl_display3D_VertexBuffer3D(this,lime_graphics_opengl_GL.context.createBuffer(),numVertices,data32PerVertex,bufferUsage == openfl_display3D_Context3DBufferUsage.STATIC_DRAW?35044:35048); this.vertexBuffersCreated.push(vertexBuffer); return vertexBuffer; } ,__deleteTexture: function(texture) { if(texture.glTexture == null) return; HxOverrides.remove(this.texturesCreated,texture); lime_graphics_opengl_GL.context.deleteTexture(texture.glTexture); texture.glTexture = null; } ,__deleteVertexBuffer: function(buffer) { if(buffer.glBuffer == null) return; HxOverrides.remove(this.vertexBuffersCreated,buffer); lime_graphics_opengl_GL.context.deleteBuffer(buffer.glBuffer); buffer.glBuffer = null; } ,__deleteIndexBuffer: function(buffer) { if(buffer.glBuffer == null) return; HxOverrides.remove(this.indexBuffersCreated,buffer); lime_graphics_opengl_GL.context.deleteBuffer(buffer.glBuffer); buffer.glBuffer = null; } ,__deleteProgram: function(program) { if(program.glProgram == null) return; HxOverrides.remove(this.programsCreated,program); lime_graphics_opengl_GL.context.deleteProgram(program.glProgram); program.glProgram = null; } ,dispose: function() { var _g = 0; var _g1 = this.vertexBuffersCreated; while(_g < _g1.length) { var vertexBuffer = _g1[_g]; ++_g; vertexBuffer.dispose(); } this.vertexBuffersCreated = null; var _g2 = 0; var _g11 = this.indexBuffersCreated; while(_g2 < _g11.length) { var indexBuffer = _g11[_g2]; ++_g2; indexBuffer.dispose(); } this.indexBuffersCreated = null; var _g3 = 0; var _g12 = this.programsCreated; while(_g3 < _g12.length) { var program = _g12[_g3]; ++_g3; program.dispose(); } this.programsCreated = null; this.samplerParameters = null; var _g4 = 0; var _g13 = this.texturesCreated; while(_g4 < _g13.length) { var texture = _g13[_g4]; ++_g4; texture.dispose(); } this.texturesCreated = null; if(this.framebuffer != null) { lime_graphics_opengl_GL.context.deleteFramebuffer(this.framebuffer); this.framebuffer = null; } if(this.renderbuffer != null) { lime_graphics_opengl_GL.context.deleteRenderbuffer(this.renderbuffer); this.renderbuffer = null; } this.disposed = true; } ,drawToBitmapData: function(destination) { } ,drawTriangles: function(indexBuffer,firstIndex,numTriangles) { if(numTriangles == null) numTriangles = -1; if(firstIndex == null) firstIndex = 0; var location = lime_graphics_opengl_GL.context.getUniformLocation(this.currentProgram.glProgram,"yflip"); lime_graphics_opengl_GL.context.uniform1f(location,this._yFlip); if(!this.drawing) throw new js__$Boot_HaxeError(new openfl_errors_Error("Need to clear before drawing if the buffer has not been cleared since the last present() call.")); var numIndices; if(numTriangles == -1) numIndices = indexBuffer.numIndices; else numIndices = numTriangles * 3; var byteOffset = firstIndex * 2; lime_graphics_opengl_GL.context.bindBuffer(34963,indexBuffer.glBuffer); lime_graphics_opengl_GL.context.drawElements(4,numIndices,5123,byteOffset); } ,present: function() { this.drawing = false; lime_graphics_opengl_GL.context.useProgram(null); lime_graphics_opengl_GL.context.bindBuffer(34962,null); lime_graphics_opengl_GL.context.disable(2884); if(this.framebuffer != null) lime_graphics_opengl_GL.context.bindFramebuffer(36160,null); if(this.renderbuffer != null) lime_graphics_opengl_GL.context.bindRenderbuffer(36161,null); } ,removeRenderMethod: function(func) { this.ogl.set_render(null); } ,setBlendFactors: function(sourceFactor,destinationFactor) { this.blendEnabled = true; this.blendSourceFactor = sourceFactor; this.blendDestinationFactor = destinationFactor; this.__updateBlendStatus(); } ,setColorMask: function(red,green,blue,alpha) { lime_graphics_opengl_GL.context.colorMask(red,green,blue,alpha); } ,setCulling: function(triangleFaceToCull) { if(triangleFaceToCull == 0) lime_graphics_opengl_GL.context.disable(2884); else { lime_graphics_opengl_GL.context.enable(2884); switch(triangleFaceToCull) { case 1029: lime_graphics_opengl_GL.context.cullFace(1029); break; case 1028: lime_graphics_opengl_GL.context.cullFace(1028); break; case 1032: lime_graphics_opengl_GL.context.cullFace(1032); break; default: throw new js__$Boot_HaxeError("Unknown Context3DTriangleFace type."); } } switch(triangleFaceToCull) { case 1029: this._yFlip = -1; break; case 1028: this._yFlip = 1; break; case 1032: this._yFlip = 1; break; case 0: this._yFlip = 1; break; default: throw new js__$Boot_HaxeError("Unknown culling mode " + triangleFaceToCull + "."); } } ,setDepthTest: function(depthMask,passCompareMode) { lime_graphics_opengl_GL.context.depthFunc(passCompareMode); lime_graphics_opengl_GL.context.depthMask(depthMask); } ,setGLSLProgramConstantsFromByteArray: function(locationName,data,byteArrayOffset) { if(byteArrayOffset == null) byteArrayOffset = 0; data.position = byteArrayOffset; var location = lime_graphics_opengl_GL.context.getUniformLocation(this.currentProgram.glProgram,locationName); lime_graphics_opengl_GL.uniform4f(location,data.readFloat(),data.readFloat(),data.readFloat(),data.readFloat()); } ,setGLSLProgramConstantsFromMatrix: function(locationName,matrix,transposedMatrix) { if(transposedMatrix == null) transposedMatrix = false; var location = lime_graphics_opengl_GL.context.getUniformLocation(this.currentProgram.glProgram,locationName); lime_graphics_opengl_GL.uniformMatrix4fv(location,!transposedMatrix,(function($this) { var $r; var array; { var this2 = matrix.rawData; var value = []; var _g1 = 0; var _g = this2.data.length; while(_g1 < _g) { var i = _g1++; value.push(this2.data[i]); } array = value; } var this1; if(array != null) this1 = new Float32Array(array); else this1 = null; $r = this1; return $r; }(this))); } ,setGLSLProgramConstantsFromVector4: function(locationName,data,startIndex) { if(startIndex == null) startIndex = 0; var location = lime_graphics_opengl_GL.context.getUniformLocation(this.currentProgram.glProgram,locationName); lime_graphics_opengl_GL.context.uniform4f(location,data[startIndex],data[startIndex + 1],data[startIndex + 2],data[startIndex + 3]); } ,setGLSLTextureAt: function(locationName,texture,textureIndex) { switch(textureIndex) { case 0: lime_graphics_opengl_GL.context.activeTexture(33984); break; case 1: lime_graphics_opengl_GL.context.activeTexture(33985); break; case 2: lime_graphics_opengl_GL.context.activeTexture(33986); break; case 3: lime_graphics_opengl_GL.context.activeTexture(33987); break; case 4: lime_graphics_opengl_GL.context.activeTexture(33988); break; case 5: lime_graphics_opengl_GL.context.activeTexture(33989); break; case 6: lime_graphics_opengl_GL.context.activeTexture(33990); break; case 7: lime_graphics_opengl_GL.context.activeTexture(33991); break; default: throw new js__$Boot_HaxeError("Does not support texture8 or more"); } if(texture == null) { lime_graphics_opengl_GL.context.bindTexture(3553,null); lime_graphics_opengl_GL.context.bindTexture(34067,null); return; } var location = lime_graphics_opengl_GL.context.getUniformLocation(this.currentProgram.glProgram,locationName); if(js_Boot.__instanceof(texture,openfl_display3D_textures_Texture)) { lime_graphics_opengl_GL.bindTexture(3553,(js_Boot.__cast(texture , openfl_display3D_textures_Texture)).glTexture); lime_graphics_opengl_GL.context.uniform1i(location,textureIndex); } else if(js_Boot.__instanceof(texture,openfl_display3D_textures_RectangleTexture)) { lime_graphics_opengl_GL.bindTexture(3553,(js_Boot.__cast(texture , openfl_display3D_textures_RectangleTexture)).glTexture); lime_graphics_opengl_GL.context.uniform1i(location,textureIndex); } else if(js_Boot.__instanceof(texture,openfl_display3D_textures_CubeTexture)) { lime_graphics_opengl_GL.bindTexture(34067,(js_Boot.__cast(texture , openfl_display3D_textures_CubeTexture)).glTexture); lime_graphics_opengl_GL.context.uniform1i(location,textureIndex); } else throw new js__$Boot_HaxeError("Texture of type " + Type.getClassName(texture == null?null:js_Boot.getClass(texture)) + " not supported yet"); var parameters = this.samplerParameters[textureIndex]; if(parameters != null) this.setTextureParameters(texture,parameters.wrap,parameters.filter,parameters.mipfilter); else this.setTextureParameters(texture,openfl_display3D_Context3DWrapMode.CLAMP,openfl_display3D_Context3DTextureFilter.NEAREST,openfl_display3D_Context3DMipFilter.MIPNONE); } ,setGLSLVertexBufferAt: function(locationName,buffer,bufferOffset,format) { if(bufferOffset == null) bufferOffset = 0; var location; if(this.currentProgram != null && this.currentProgram.glProgram != null) location = lime_graphics_opengl_GL.context.getAttribLocation(this.currentProgram.glProgram,locationName); else location = -1; if(location == -1) return; if(buffer == null) { if(location > -1) lime_graphics_opengl_GL.context.disableVertexAttribArray(location); return; } lime_graphics_opengl_GL.context.bindBuffer(34962,buffer.glBuffer); var dimension = 4; var type = 5126; var numBytes = 4; if(format == openfl_display3D_Context3DVertexBufferFormat.BYTES_4) { dimension = 4; type = 5126; numBytes = 4; } else if(format == openfl_display3D_Context3DVertexBufferFormat.FLOAT_1) { dimension = 1; type = 5126; numBytes = 4; } else if(format == openfl_display3D_Context3DVertexBufferFormat.FLOAT_2) { dimension = 2; type = 5126; numBytes = 4; } else if(format == openfl_display3D_Context3DVertexBufferFormat.FLOAT_3) { dimension = 3; type = 5126; numBytes = 4; } else if(format == openfl_display3D_Context3DVertexBufferFormat.FLOAT_4) { dimension = 4; type = 5126; numBytes = 4; } else throw new js__$Boot_HaxeError("Buffer format " + Std.string(format) + " is not supported"); lime_graphics_opengl_GL.context.enableVertexAttribArray(location); lime_graphics_opengl_GL.context.vertexAttribPointer(location,dimension,type,false,buffer.data32PerVertex * numBytes,bufferOffset * numBytes); } ,setProgram: function(program3D) { var glProgram = null; if(program3D != null) glProgram = program3D.glProgram; lime_graphics_opengl_GL.context.useProgram(glProgram); this.currentProgram = program3D; } ,setProgramConstantsFromByteArray: function(programType,firstRegister,numRegisters,data,byteArrayOffset) { data.position = byteArrayOffset; var _g = 0; while(_g < numRegisters) { var i = _g++; var locationName = this.__getUniformLocationNameFromAgalRegisterIndex(programType,firstRegister + i); this.setGLSLProgramConstantsFromByteArray(locationName,data); } } ,setProgramConstantsFromMatrix: function(programType,firstRegister,matrix,transposedMatrix) { if(transposedMatrix == null) transposedMatrix = false; var d = matrix.rawData; if(transposedMatrix) { this.setProgramConstantsFromVector(programType,firstRegister,[d.data[0],d.data[4],d.data[8],d.data[12]],1); this.setProgramConstantsFromVector(programType,firstRegister + 1,[d.data[1],d.data[5],d.data[9],d.data[13]],1); this.setProgramConstantsFromVector(programType,firstRegister + 2,[d.data[2],d.data[6],d.data[10],d.data[14]],1); this.setProgramConstantsFromVector(programType,firstRegister + 3,[d.data[3],d.data[7],d.data[11],d.data[15]],1); } else { this.setProgramConstantsFromVector(programType,firstRegister,[d.data[0],d.data[1],d.data[2],d.data[3]],1); this.setProgramConstantsFromVector(programType,firstRegister + 1,[d.data[4],d.data[5],d.data[6],d.data[7]],1); this.setProgramConstantsFromVector(programType,firstRegister + 2,[d.data[8],d.data[9],d.data[10],d.data[11]],1); this.setProgramConstantsFromVector(programType,firstRegister + 3,[d.data[12],d.data[13],d.data[14],d.data[15]],1); } } ,setProgramConstantsFromVector: function(programType,firstRegister,data,numRegisters) { if(numRegisters == null) numRegisters = 1; var _g = 0; while(_g < numRegisters) { var i = _g++; var currentIndex = i * 4; var locationName = this.__getUniformLocationNameFromAgalRegisterIndex(programType,firstRegister + i); this.setGLSLProgramConstantsFromVector4(locationName,data,currentIndex); } } ,setRenderMethod: function(func) { this.ogl.set_render(function(rect) { func(null); }); } ,setRenderToBackBuffer: function() { lime_graphics_opengl_GL.context.disable(2929); lime_graphics_opengl_GL.context.disable(2960); lime_graphics_opengl_GL.context.disable(3089); lime_graphics_opengl_GL.context.bindFramebuffer(36160,null); if(this.framebuffer != null) lime_graphics_opengl_GL.context.bindFramebuffer(36160,null); if(this.renderbuffer != null) lime_graphics_opengl_GL.context.bindRenderbuffer(36161,null); this.renderToTexture = false; this.updateBackBufferViewPort(); this.updateScissorRectangle(); this.updateDepthAndStencilState(); } ,setRenderToTexture: function(texture,enableDepthAndStencil,antiAlias,surfaceSelector) { if(surfaceSelector == null) surfaceSelector = 0; if(antiAlias == null) antiAlias = 0; if(enableDepthAndStencil == null) enableDepthAndStencil = false; if(this.framebuffer == null) this.framebuffer = lime_graphics_opengl_GL.context.createFramebuffer(); lime_graphics_opengl_GL.context.bindFramebuffer(36160,this.framebuffer); if(this.renderbuffer == null) this.renderbuffer = lime_graphics_opengl_GL.context.createRenderbuffer(); lime_graphics_opengl_GL.context.bindRenderbuffer(36161,this.renderbuffer); if(enableDepthAndStencil) lime_graphics_opengl_GL.context.renderbufferStorage(36161,34041,texture.width,texture.height); lime_graphics_opengl_GL.context.framebufferTexture2D(36160,36064,3553,texture.glTexture,0); lime_graphics_opengl_GL.context.renderbufferStorage(36161,34041,texture.width,texture.height); lime_graphics_opengl_GL.context.framebufferRenderbuffer(36160,33306,36161,this.renderbuffer); if(enableDepthAndStencil) { lime_graphics_opengl_GL.context.enable(2929); lime_graphics_opengl_GL.context.enable(2960); } lime_graphics_opengl_GL.context.bindTexture(3553,texture.glTexture); lime_graphics_opengl_GL.context.texImage2D(3553,0,6408,texture.width,texture.height,0,6408,5121,null); lime_graphics_opengl_GL.context.texParameteri(3553,10240,9729); lime_graphics_opengl_GL.context.texParameteri(3553,10241,9985); lime_graphics_opengl_GL.context.viewport(0,0,texture.width,texture.height); this.renderToTexture = true; this.rttDepthAndStencil = enableDepthAndStencil; this.rttWidth = texture.width; this.rttHeight = texture.height; this.updateScissorRectangle(); this.updateDepthAndStencilState(); } ,setSamplerStateAt: function(sampler,wrap,filter,mipfilter) { if(0 <= sampler && sampler < openfl_display3D_Context3D.MAX_SAMPLERS) { this.samplerParameters[sampler].wrap = wrap; this.samplerParameters[sampler].filter = filter; this.samplerParameters[sampler].mipfilter = mipfilter; } else throw new js__$Boot_HaxeError("Sampler is out of bounds."); } ,setScissorRectangle: function(rectangle) { this.scissorRectangle = rectangle; if(rectangle == null) { lime_graphics_opengl_GL.context.disable(3089); return; } lime_graphics_opengl_GL.context.enable(3089); this.updateScissorRectangle(); } ,updateScissorRectangle: function() { if(this.scissorRectangle == null) return; var height; if(this.renderToTexture) height = this.rttHeight; else height = this.scrollRect.height | 0; lime_graphics_opengl_GL.context.scissor(this.scissorRectangle.x | 0,height - (this.scissorRectangle.y | 0) - (this.scissorRectangle.height | 0) | 0,this.scissorRectangle.width | 0,this.scissorRectangle.height | 0); } ,setStencilActions: function(triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) { this.stencilCompareMode = compareMode; lime_graphics_opengl_GL.context.stencilOp(actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail); lime_graphics_opengl_GL.context.stencilFunc(this.stencilCompareMode,this.stencilRef,this.stencilReadMask); } ,setStencilReferenceValue: function(referenceValue,readMask,writeMask) { if(writeMask == null) writeMask = 255; if(readMask == null) readMask = 255; this.stencilReadMask = readMask; this.stencilRef = referenceValue; lime_graphics_opengl_GL.context.stencilFunc(this.stencilCompareMode,this.stencilRef,this.stencilReadMask); lime_graphics_opengl_GL.context.stencilMask(writeMask); } ,setTextureAt: function(sampler,texture) { var locationName = "fs" + sampler; this.setGLSLTextureAt(locationName,texture,sampler); } ,setTextureParameters: function(texture,wrap,filter,mipfilter) { if(!openfl_display3D_Context3D.anisotropySupportTested) { var ext = lime_graphics_opengl_GL.context.getExtension("EXT_texture_filter_anisotropic"); if(ext == null || Reflect.field(ext,"MAX_TEXTURE_MAX_ANISOTROPY_EXT") == null) ext = lime_graphics_opengl_GL.context.getExtension("MOZ_EXT_texture_filter_anisotropic"); if(ext == null || Reflect.field(ext,"MAX_TEXTURE_MAX_ANISOTROPY_EXT") == null) ext = lime_graphics_opengl_GL.context.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); openfl_display3D_Context3D.supportsAnisotropy = ext != null; if(openfl_display3D_Context3D.supportsAnisotropy) { openfl_display3D_Context3D.maxSupportedAnisotropy = lime_graphics_opengl_GL.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT); lime_graphics_opengl_GL.context.texParameteri(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,openfl_display3D_Context3D.maxSupportedAnisotropy); } openfl_display3D_Context3D.anisotropySupportTested = true; } if(js_Boot.__instanceof(texture,openfl_display3D_textures_Texture)) { switch(wrap[1]) { case 0: lime_graphics_opengl_GL.context.texParameteri(3553,10242,33071); lime_graphics_opengl_GL.context.texParameteri(3553,10243,33071); break; case 1: lime_graphics_opengl_GL.context.texParameteri(3553,10242,10497); lime_graphics_opengl_GL.context.texParameteri(3553,10243,10497); break; } switch(filter[1]) { case 4: lime_graphics_opengl_GL.context.texParameteri(3553,10240,9729); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 5: lime_graphics_opengl_GL.context.texParameteri(3553,10240,9728); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 0: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(2,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):2); break; case 1: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(4,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):4); break; case 2: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(8,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):8); break; case 3: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(16,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):16); break; } switch(mipfilter[1]) { case 0: lime_graphics_opengl_GL.context.texParameteri(3553,10241,9987); break; case 1: lime_graphics_opengl_GL.context.texParameteri(3553,10241,9984); break; case 2: lime_graphics_opengl_GL.context.texParameteri(3553,10241,filter == openfl_display3D_Context3DTextureFilter.NEAREST?9728:9729); break; } var tex = texture; if(mipfilter != openfl_display3D_Context3DMipFilter.MIPNONE && !tex.mipmapsGenerated) { lime_graphics_opengl_GL.context.generateMipmap(3553); tex.mipmapsGenerated = true; } } else if(js_Boot.__instanceof(texture,openfl_display3D_textures_RectangleTexture)) { lime_graphics_opengl_GL.context.texParameteri(3553,10242,33071); lime_graphics_opengl_GL.context.texParameteri(3553,10243,33071); switch(filter[1]) { case 4: lime_graphics_opengl_GL.context.texParameteri(3553,10240,9729); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 5: lime_graphics_opengl_GL.context.texParameteri(3553,10240,9728); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 0: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(2,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):2); break; case 1: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(4,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):4); break; case 2: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(8,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):8); break; case 3: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(3553,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(16,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):16); break; } lime_graphics_opengl_GL.context.texParameteri(3553,10241,filter == openfl_display3D_Context3DTextureFilter.NEAREST?9728:9729); } else if(js_Boot.__instanceof(texture,openfl_display3D_textures_CubeTexture)) { switch(wrap[1]) { case 0: lime_graphics_opengl_GL.context.texParameteri(34067,10242,33071); lime_graphics_opengl_GL.context.texParameteri(34067,10243,33071); break; case 1: lime_graphics_opengl_GL.context.texParameteri(34067,10242,10497); lime_graphics_opengl_GL.context.texParameteri(34067,10243,10497); break; } switch(filter[1]) { case 4: lime_graphics_opengl_GL.context.texParameteri(34067,10240,9729); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 5: lime_graphics_opengl_GL.context.texParameteri(34067,10240,9728); if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.context.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,1); break; case 0: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(2,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):2); break; case 1: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(4,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):4); break; case 2: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(8,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):8); break; case 3: if(openfl_display3D_Context3D.supportsAnisotropy) lime_graphics_opengl_GL.texParameterf(34067,openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT,_$UInt_UInt_$Impl_$.gt(16,openfl_display3D_Context3D.maxSupportedAnisotropy)?_$UInt_UInt_$Impl_$.toFloat(openfl_display3D_Context3D.maxSupportedAnisotropy):16); break; } switch(mipfilter[1]) { case 0: lime_graphics_opengl_GL.context.texParameteri(34067,10241,9987); break; case 1: lime_graphics_opengl_GL.context.texParameteri(34067,10241,9984); break; case 2: lime_graphics_opengl_GL.context.texParameteri(34067,10241,filter == openfl_display3D_Context3DTextureFilter.NEAREST?9728:9729); break; } var cubetex = texture; if(mipfilter != openfl_display3D_Context3DMipFilter.MIPNONE && !cubetex.mipmapsGenerated) { lime_graphics_opengl_GL.context.generateMipmap(34067); cubetex.mipmapsGenerated = true; } } else throw new js__$Boot_HaxeError("Texture of type " + Type.getClassName(texture == null?null:js_Boot.getClass(texture)) + " not supported yet"); } ,setVertexBufferAt: function(index,buffer,bufferOffset,format) { if(bufferOffset == null) bufferOffset = 0; var locationName = "va" + index; this.setGLSLVertexBufferAt(locationName,buffer,bufferOffset,format); } ,__getUniformLocationNameFromAgalRegisterIndex: function(programType,firstRegister) { if(programType == openfl_display3D_Context3DProgramType.VERTEX) return "vc" + firstRegister; else if(programType == openfl_display3D_Context3DProgramType.FRAGMENT) return "fc" + firstRegister; throw new js__$Boot_HaxeError("Program Type " + Std.string(programType) + " not supported"); } ,__updateBlendStatus: function() { if(this.blendEnabled) { lime_graphics_opengl_GL.context.enable(3042); lime_graphics_opengl_GL.context.blendEquation(32774); lime_graphics_opengl_GL.context.blendFunc(this.blendSourceFactor,this.blendDestinationFactor); } else lime_graphics_opengl_GL.context.disable(3042); } ,__class__: openfl_display3D_Context3D }; var openfl_display3D__$Context3D_SamplerState = function() { }; $hxClasses["openfl.display3D._Context3D.SamplerState"] = openfl_display3D__$Context3D_SamplerState; openfl_display3D__$Context3D_SamplerState.__name__ = ["openfl","display3D","_Context3D","SamplerState"]; openfl_display3D__$Context3D_SamplerState.prototype = { wrap: null ,filter: null ,mipfilter: null ,__class__: openfl_display3D__$Context3D_SamplerState }; var openfl_display3D_Context3DBufferUsage = $hxClasses["openfl.display3D.Context3DBufferUsage"] = { __ename__ : ["openfl","display3D","Context3DBufferUsage"], __constructs__ : ["STATIC_DRAW","DYNAMIC_DRAW"] }; openfl_display3D_Context3DBufferUsage.STATIC_DRAW = ["STATIC_DRAW",0]; openfl_display3D_Context3DBufferUsage.STATIC_DRAW.toString = $estr; openfl_display3D_Context3DBufferUsage.STATIC_DRAW.__enum__ = openfl_display3D_Context3DBufferUsage; openfl_display3D_Context3DBufferUsage.DYNAMIC_DRAW = ["DYNAMIC_DRAW",1]; openfl_display3D_Context3DBufferUsage.DYNAMIC_DRAW.toString = $estr; openfl_display3D_Context3DBufferUsage.DYNAMIC_DRAW.__enum__ = openfl_display3D_Context3DBufferUsage; var openfl_display3D_Context3DClearMask = function() { }; $hxClasses["openfl.display3D.Context3DClearMask"] = openfl_display3D_Context3DClearMask; openfl_display3D_Context3DClearMask.__name__ = ["openfl","display3D","Context3DClearMask"]; var openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$ = {}; $hxClasses["openfl.display3D._Context3DCompareMode.Context3DCompareMode_Impl_"] = openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.__name__ = ["openfl","display3D","_Context3DCompareMode","Context3DCompareMode_Impl_"]; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$._new = function(a) { return a; }; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.fromInt = function(s) { return s; }; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.toInt = function(this1) { return this1; }; var openfl_display3D_Context3DMipFilter = $hxClasses["openfl.display3D.Context3DMipFilter"] = { __ename__ : ["openfl","display3D","Context3DMipFilter"], __constructs__ : ["MIPLINEAR","MIPNEAREST","MIPNONE"] }; openfl_display3D_Context3DMipFilter.MIPLINEAR = ["MIPLINEAR",0]; openfl_display3D_Context3DMipFilter.MIPLINEAR.toString = $estr; openfl_display3D_Context3DMipFilter.MIPLINEAR.__enum__ = openfl_display3D_Context3DMipFilter; openfl_display3D_Context3DMipFilter.MIPNEAREST = ["MIPNEAREST",1]; openfl_display3D_Context3DMipFilter.MIPNEAREST.toString = $estr; openfl_display3D_Context3DMipFilter.MIPNEAREST.__enum__ = openfl_display3D_Context3DMipFilter; openfl_display3D_Context3DMipFilter.MIPNONE = ["MIPNONE",2]; openfl_display3D_Context3DMipFilter.MIPNONE.toString = $estr; openfl_display3D_Context3DMipFilter.MIPNONE.__enum__ = openfl_display3D_Context3DMipFilter; var openfl_display3D_Context3DProgramType = $hxClasses["openfl.display3D.Context3DProgramType"] = { __ename__ : ["openfl","display3D","Context3DProgramType"], __constructs__ : ["VERTEX","FRAGMENT"] }; openfl_display3D_Context3DProgramType.VERTEX = ["VERTEX",0]; openfl_display3D_Context3DProgramType.VERTEX.toString = $estr; openfl_display3D_Context3DProgramType.VERTEX.__enum__ = openfl_display3D_Context3DProgramType; openfl_display3D_Context3DProgramType.FRAGMENT = ["FRAGMENT",1]; openfl_display3D_Context3DProgramType.FRAGMENT.toString = $estr; openfl_display3D_Context3DProgramType.FRAGMENT.__enum__ = openfl_display3D_Context3DProgramType; var openfl_display3D_Context3DTextureFilter = $hxClasses["openfl.display3D.Context3DTextureFilter"] = { __ename__ : ["openfl","display3D","Context3DTextureFilter"], __constructs__ : ["ANISOTROPIC2X","ANISOTROPIC4X","ANISOTROPIC8X","ANISOTROPIC16X","LINEAR","NEAREST"] }; openfl_display3D_Context3DTextureFilter.ANISOTROPIC2X = ["ANISOTROPIC2X",0]; openfl_display3D_Context3DTextureFilter.ANISOTROPIC2X.toString = $estr; openfl_display3D_Context3DTextureFilter.ANISOTROPIC2X.__enum__ = openfl_display3D_Context3DTextureFilter; openfl_display3D_Context3DTextureFilter.ANISOTROPIC4X = ["ANISOTROPIC4X",1]; openfl_display3D_Context3DTextureFilter.ANISOTROPIC4X.toString = $estr; openfl_display3D_Context3DTextureFilter.ANISOTROPIC4X.__enum__ = openfl_display3D_Context3DTextureFilter; openfl_display3D_Context3DTextureFilter.ANISOTROPIC8X = ["ANISOTROPIC8X",2]; openfl_display3D_Context3DTextureFilter.ANISOTROPIC8X.toString = $estr; openfl_display3D_Context3DTextureFilter.ANISOTROPIC8X.__enum__ = openfl_display3D_Context3DTextureFilter; openfl_display3D_Context3DTextureFilter.ANISOTROPIC16X = ["ANISOTROPIC16X",3]; openfl_display3D_Context3DTextureFilter.ANISOTROPIC16X.toString = $estr; openfl_display3D_Context3DTextureFilter.ANISOTROPIC16X.__enum__ = openfl_display3D_Context3DTextureFilter; openfl_display3D_Context3DTextureFilter.LINEAR = ["LINEAR",4]; openfl_display3D_Context3DTextureFilter.LINEAR.toString = $estr; openfl_display3D_Context3DTextureFilter.LINEAR.__enum__ = openfl_display3D_Context3DTextureFilter; openfl_display3D_Context3DTextureFilter.NEAREST = ["NEAREST",5]; openfl_display3D_Context3DTextureFilter.NEAREST.toString = $estr; openfl_display3D_Context3DTextureFilter.NEAREST.__enum__ = openfl_display3D_Context3DTextureFilter; var openfl_display3D_Context3DTextureFormat = $hxClasses["openfl.display3D.Context3DTextureFormat"] = { __ename__ : ["openfl","display3D","Context3DTextureFormat"], __constructs__ : ["BGRA","COMPRESSED","COMPRESSED_ALPHA"] }; openfl_display3D_Context3DTextureFormat.BGRA = ["BGRA",0]; openfl_display3D_Context3DTextureFormat.BGRA.toString = $estr; openfl_display3D_Context3DTextureFormat.BGRA.__enum__ = openfl_display3D_Context3DTextureFormat; openfl_display3D_Context3DTextureFormat.COMPRESSED = ["COMPRESSED",1]; openfl_display3D_Context3DTextureFormat.COMPRESSED.toString = $estr; openfl_display3D_Context3DTextureFormat.COMPRESSED.__enum__ = openfl_display3D_Context3DTextureFormat; openfl_display3D_Context3DTextureFormat.COMPRESSED_ALPHA = ["COMPRESSED_ALPHA",2]; openfl_display3D_Context3DTextureFormat.COMPRESSED_ALPHA.toString = $estr; openfl_display3D_Context3DTextureFormat.COMPRESSED_ALPHA.__enum__ = openfl_display3D_Context3DTextureFormat; var openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$ = {}; $hxClasses["openfl.display3D._Context3DTriangleFace.Context3DTriangleFace_Impl_"] = openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.__name__ = ["openfl","display3D","_Context3DTriangleFace","Context3DTriangleFace_Impl_"]; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$._new = function(a) { return a; }; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.fromInt = function(s) { return s; }; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.toInt = function(this1) { return this1; }; var openfl_display3D_Context3DVertexBufferFormat = $hxClasses["openfl.display3D.Context3DVertexBufferFormat"] = { __ename__ : ["openfl","display3D","Context3DVertexBufferFormat"], __constructs__ : ["BYTES_4","FLOAT_1","FLOAT_2","FLOAT_3","FLOAT_4"] }; openfl_display3D_Context3DVertexBufferFormat.BYTES_4 = ["BYTES_4",0]; openfl_display3D_Context3DVertexBufferFormat.BYTES_4.toString = $estr; openfl_display3D_Context3DVertexBufferFormat.BYTES_4.__enum__ = openfl_display3D_Context3DVertexBufferFormat; openfl_display3D_Context3DVertexBufferFormat.FLOAT_1 = ["FLOAT_1",1]; openfl_display3D_Context3DVertexBufferFormat.FLOAT_1.toString = $estr; openfl_display3D_Context3DVertexBufferFormat.FLOAT_1.__enum__ = openfl_display3D_Context3DVertexBufferFormat; openfl_display3D_Context3DVertexBufferFormat.FLOAT_2 = ["FLOAT_2",2]; openfl_display3D_Context3DVertexBufferFormat.FLOAT_2.toString = $estr; openfl_display3D_Context3DVertexBufferFormat.FLOAT_2.__enum__ = openfl_display3D_Context3DVertexBufferFormat; openfl_display3D_Context3DVertexBufferFormat.FLOAT_3 = ["FLOAT_3",3]; openfl_display3D_Context3DVertexBufferFormat.FLOAT_3.toString = $estr; openfl_display3D_Context3DVertexBufferFormat.FLOAT_3.__enum__ = openfl_display3D_Context3DVertexBufferFormat; openfl_display3D_Context3DVertexBufferFormat.FLOAT_4 = ["FLOAT_4",4]; openfl_display3D_Context3DVertexBufferFormat.FLOAT_4.toString = $estr; openfl_display3D_Context3DVertexBufferFormat.FLOAT_4.__enum__ = openfl_display3D_Context3DVertexBufferFormat; var openfl_display3D_Context3DWrapMode = $hxClasses["openfl.display3D.Context3DWrapMode"] = { __ename__ : ["openfl","display3D","Context3DWrapMode"], __constructs__ : ["CLAMP","REPEAT"] }; openfl_display3D_Context3DWrapMode.CLAMP = ["CLAMP",0]; openfl_display3D_Context3DWrapMode.CLAMP.toString = $estr; openfl_display3D_Context3DWrapMode.CLAMP.__enum__ = openfl_display3D_Context3DWrapMode; openfl_display3D_Context3DWrapMode.REPEAT = ["REPEAT",1]; openfl_display3D_Context3DWrapMode.REPEAT.toString = $estr; openfl_display3D_Context3DWrapMode.REPEAT.__enum__ = openfl_display3D_Context3DWrapMode; var openfl_display3D_IndexBuffer3D = function(context,glBuffer,numIndices,bufferUsage) { this.context = context; this.glBuffer = glBuffer; this.numIndices = numIndices; this.bufferUsage = bufferUsage; }; $hxClasses["openfl.display3D.IndexBuffer3D"] = openfl_display3D_IndexBuffer3D; openfl_display3D_IndexBuffer3D.__name__ = ["openfl","display3D","IndexBuffer3D"]; openfl_display3D_IndexBuffer3D.prototype = { context: null ,glBuffer: null ,numIndices: null ,bufferUsage: null ,dispose: function() { this.context.__deleteIndexBuffer(this); } ,uploadFromByteArray: function(byteArray,byteArrayOffset,startOffset,count) { var bytesPerIndex = 2; lime_graphics_opengl_GL.context.bindBuffer(34963,this.glBuffer); var length = count * bytesPerIndex; var offset = byteArrayOffset + startOffset * bytesPerIndex; var indices; var this1; if(length != null) this1 = new Int16Array(length); else this1 = null; indices = this1; byteArray.position = offset; var i = 0; while(byteArray.position < length + offset) { var val = byteArray.readUnsignedByte(); indices[i] = val; i++; } lime_graphics_opengl_GL.context.bufferData(34963,indices,this.bufferUsage); } ,uploadFromVector: function(data,startOffset,count) { lime_graphics_opengl_GL.context.bindBuffer(34963,this.glBuffer); var indices; var this1; if(count != null) this1 = new Int16Array(count); else this1 = null; indices = this1; var _g1 = startOffset; var _g = startOffset + count; while(_g1 < _g) { var i = _g1++; indices[i] = data.data[i]; } lime_graphics_opengl_GL.context.bufferData(34963,indices,this.bufferUsage); } ,uploadFromInt16Array: function(data) { lime_graphics_opengl_GL.context.bindBuffer(34963,this.glBuffer); lime_graphics_opengl_GL.context.bufferData(34963,data,this.bufferUsage); } ,__class__: openfl_display3D_IndexBuffer3D }; var openfl_display3D_Program3D = function(context,program) { this.context = context; this.glProgram = program; }; $hxClasses["openfl.display3D.Program3D"] = openfl_display3D_Program3D; openfl_display3D_Program3D.__name__ = ["openfl","display3D","Program3D"]; openfl_display3D_Program3D.prototype = { context: null ,glProgram: null ,dispose: function() { this.context.__deleteProgram(this); } ,upload: function(vertexShader,fragmentShader) { lime_graphics_opengl_GL.context.attachShader(this.glProgram,vertexShader); lime_graphics_opengl_GL.context.attachShader(this.glProgram,fragmentShader); lime_graphics_opengl_GL.context.linkProgram(this.glProgram); if(lime_graphics_opengl_GL.context.getProgramParameter(this.glProgram,35714) == 0) { var result = lime_graphics_opengl_GL.context.getProgramInfoLog(this.glProgram); if(result != "") throw new js__$Boot_HaxeError(result); } } ,__class__: openfl_display3D_Program3D }; var openfl_display3D_VertexBuffer3D = function(context,glBuffer,numVertices,data32PerVertex,bufferUsage) { this.context = context; this.glBuffer = glBuffer; this.numVertices = numVertices; this.data32PerVertex = data32PerVertex; this.bufferUsage = bufferUsage; }; $hxClasses["openfl.display3D.VertexBuffer3D"] = openfl_display3D_VertexBuffer3D; openfl_display3D_VertexBuffer3D.__name__ = ["openfl","display3D","VertexBuffer3D"]; openfl_display3D_VertexBuffer3D.prototype = { context: null ,data32PerVertex: null ,glBuffer: null ,numVertices: null ,bufferUsage: null ,dispose: function() { this.context.__deleteVertexBuffer(this); } ,uploadFromByteArray: function(byteArray,byteArrayOffset,startOffset,count) { var bytesPerVertex = this.data32PerVertex * 4; lime_graphics_opengl_GL.context.bindBuffer(34962,this.glBuffer); var length = count * bytesPerVertex; var offset = byteArrayOffset + startOffset * bytesPerVertex; var float32Array; var this1; if(length != null) this1 = new Float32Array(length); else this1 = null; float32Array = this1; byteArray.position = offset; var i = 0; while(byteArray.position < length + offset) { var val = byteArray.readUnsignedByte(); float32Array[i] = val; i++; } lime_graphics_opengl_GL.context.bufferData(34962,float32Array,this.bufferUsage); } ,uploadFromFloat32Array: function(data) { lime_graphics_opengl_GL.context.bindBuffer(34962,this.glBuffer); lime_graphics_opengl_GL.context.bufferData(34962,data,this.bufferUsage); } ,uploadFromVector: function(data,startVertex,numVertices) { var bytesPerVertex = this.data32PerVertex * 4; lime_graphics_opengl_GL.context.bindBuffer(34962,this.glBuffer); var length = numVertices * this.data32PerVertex; var offset = startVertex; var float32Array; var this1; if(length != null) this1 = new Float32Array(length); else this1 = null; float32Array = this1; var _g1 = startVertex; var _g = startVertex + length; while(_g1 < _g) { var i = _g1++; float32Array[i] = data.data[i]; } lime_graphics_opengl_GL.context.bufferData(34962,float32Array,this.bufferUsage); float32Array = null; } ,__class__: openfl_display3D_VertexBuffer3D }; var openfl_display3D_textures_TextureBase = function(context,glTexture,width,height) { if(height == null) height = 0; if(width == null) width = 0; openfl_events_EventDispatcher.call(this); this.context = context; this.width = width; this.height = height; this.glTexture = glTexture; }; $hxClasses["openfl.display3D.textures.TextureBase"] = openfl_display3D_textures_TextureBase; openfl_display3D_textures_TextureBase.__name__ = ["openfl","display3D","textures","TextureBase"]; openfl_display3D_textures_TextureBase.__super__ = openfl_events_EventDispatcher; openfl_display3D_textures_TextureBase.prototype = $extend(openfl_events_EventDispatcher.prototype,{ context: null ,height: null ,frameBuffer: null ,glTexture: null ,width: null ,dispose: function() { this.context.__deleteTexture(this); } ,__class__: openfl_display3D_textures_TextureBase }); var openfl_display3D_textures_CubeTexture = function(context,glTexture,size) { openfl_display3D_textures_TextureBase.call(this,context,glTexture,size,size); this.size = size; this.mipmapsGenerated = false; this._textures = []; var _g = 0; while(_g < 6) { var i = _g++; this._textures[i] = lime_graphics_opengl_GL.context.createTexture(); } }; $hxClasses["openfl.display3D.textures.CubeTexture"] = openfl_display3D_textures_CubeTexture; openfl_display3D_textures_CubeTexture.__name__ = ["openfl","display3D","textures","CubeTexture"]; openfl_display3D_textures_CubeTexture.__super__ = openfl_display3D_textures_TextureBase; openfl_display3D_textures_CubeTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{ size: null ,_textures: null ,mipmapsGenerated: null ,glTextureAt: function(index) { return this._textures[index]; } ,uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) { if(async == null) async = false; } ,uploadFromBitmapData: function(bitmapData,side,miplevel) { if(miplevel == null) miplevel = 0; var source = bitmapData.image.get_data(); lime_graphics_opengl_GL.context.bindTexture(34067,this.glTexture); switch(side) { case 0: lime_graphics_opengl_GL.context.texImage2D(34069,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; case 1: lime_graphics_opengl_GL.context.texImage2D(34070,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; case 2: lime_graphics_opengl_GL.context.texImage2D(34071,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; case 3: lime_graphics_opengl_GL.context.texImage2D(34072,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; case 4: lime_graphics_opengl_GL.context.texImage2D(34073,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; case 5: lime_graphics_opengl_GL.context.texImage2D(34074,miplevel,6408,bitmapData.width,bitmapData.height,0,6408,5121,source); break; default: throw new js__$Boot_HaxeError("unknown side type"); } lime_graphics_opengl_GL.context.bindTexture(34067,null); } ,uploadFromByteArray: function(data,byteArrayOffset,side,miplevel) { if(miplevel == null) miplevel = 0; } ,__class__: openfl_display3D_textures_CubeTexture }); var openfl_display3D_textures_RectangleTexture = function(context,glTexture,optimize,width,height) { this.optimizeForRenderToTexture = optimize; if(this.optimizeForRenderToTexture == null) this.optimizeForRenderToTexture = false; openfl_display3D_textures_TextureBase.call(this,context,glTexture,width,height); }; $hxClasses["openfl.display3D.textures.RectangleTexture"] = openfl_display3D_textures_RectangleTexture; openfl_display3D_textures_RectangleTexture.__name__ = ["openfl","display3D","textures","RectangleTexture"]; openfl_display3D_textures_RectangleTexture.__super__ = openfl_display3D_textures_TextureBase; openfl_display3D_textures_RectangleTexture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{ optimizeForRenderToTexture: null ,uploadFromBitmapData: function(bitmapData,miplevel) { if(miplevel == null) miplevel = 0; var p = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromArrayBuffer(bitmapData.image.get_data().buffer); this.width = bitmapData.width; this.height = bitmapData.height; this.uploadFromByteArray(p,0); } ,uploadFromByteArray: function(data,byteArrayOffset) { lime_graphics_opengl_GL.context.bindTexture(3553,this.glTexture); if(this.optimizeForRenderToTexture) lime_graphics_opengl_GL.context.pixelStorei(37440,1); lime_graphics_opengl_GL.context.texParameteri(3553,10240,9728); lime_graphics_opengl_GL.context.texParameteri(3553,10241,9728); lime_graphics_opengl_GL.context.texParameteri(3553,10242,33071); lime_graphics_opengl_GL.context.texParameteri(3553,10243,33071); var source; var elements = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(data); var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; source = this1; data.position = byteArrayOffset; var i = 0; while(data.position < openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(data)) { var val = data.readUnsignedByte(); source[i] = val; i++; } lime_graphics_opengl_GL.context.texImage2D(3553,0,6408,this.width,this.height,0,6408,5121,source); lime_graphics_opengl_GL.context.bindTexture(3553,null); } ,__class__: openfl_display3D_textures_RectangleTexture }); var openfl_display3D_textures_Texture = function(context,glTexture,optimize,width,height) { this.optimizeForRenderToTexture = optimize; this.mipmapsGenerated = false; if(openfl_display3D_textures_Texture.internalFormat == -1) openfl_display3D_textures_Texture.internalFormat = 6408; if(this.optimizeForRenderToTexture == null) this.optimizeForRenderToTexture = false; openfl_display3D_textures_TextureBase.call(this,context,glTexture,width,height); }; $hxClasses["openfl.display3D.textures.Texture"] = openfl_display3D_textures_Texture; openfl_display3D_textures_Texture.__name__ = ["openfl","display3D","textures","Texture"]; openfl_display3D_textures_Texture.__super__ = openfl_display3D_textures_TextureBase; openfl_display3D_textures_Texture.prototype = $extend(openfl_display3D_textures_TextureBase.prototype,{ optimizeForRenderToTexture: null ,mipmapsGenerated: null ,uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) { if(async == null) async = false; } ,uploadFromBitmapData: function(bitmapData,miplevel) { if(miplevel == null) miplevel = 0; var image = bitmapData.image; if(!image.get_premultiplied() && image.get_transparent()) { image = image.clone(); image.set_premultiplied(true); } this.width = image.width; this.height = image.height; this.uploadFromUInt8Array(image.get_data(),miplevel); } ,uploadFromByteArray: function(data,byteArrayOffset,miplevel) { if(miplevel == null) miplevel = 0; var source; var elements = openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(data); var this1; if(elements != null) this1 = new Uint8Array(elements); else this1 = null; source = this1; data.position = byteArrayOffset; var i = 0; while(data.position < openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(data)) { var val = data.readUnsignedByte(); source[i] = val; i++; } this.uploadFromUInt8Array(source,miplevel); } ,uploadFromUInt8Array: function(data,miplevel) { if(miplevel == null) miplevel = 0; lime_graphics_opengl_GL.context.bindTexture(3553,this.glTexture); if(this.optimizeForRenderToTexture) { lime_graphics_opengl_GL.context.pixelStorei(37440,1); lime_graphics_opengl_GL.context.texParameteri(3553,10240,9728); lime_graphics_opengl_GL.context.texParameteri(3553,10241,9728); lime_graphics_opengl_GL.context.texParameteri(3553,10242,33071); lime_graphics_opengl_GL.context.texParameteri(3553,10243,33071); } lime_graphics_opengl_GL.context.texImage2D(3553,miplevel,openfl_display3D_textures_Texture.internalFormat,this.width,this.height,0,openfl_display3D_textures_Texture.internalFormat,5121,data); lime_graphics_opengl_GL.context.bindTexture(3553,null); } ,__class__: openfl_display3D_textures_Texture }); var openfl_errors_Error = function(message,id) { if(id == null) id = 0; if(message == null) message = ""; this.message = message; this.errorID = id; this.name = "Error"; }; $hxClasses["openfl.errors.Error"] = openfl_errors_Error; openfl_errors_Error.__name__ = ["openfl","errors","Error"]; openfl_errors_Error.prototype = { errorID: null ,message: null ,name: null ,getStackTrace: function() { return haxe_CallStack.toString(haxe_CallStack.exceptionStack()); } ,toString: function() { if(this.message != null) return this.message; else return "Error"; } ,__class__: openfl_errors_Error }; var openfl_errors_ArgumentError = function(message) { if(message == null) message = ""; openfl_errors_Error.call(this,message); this.name = "ArgumentError"; }; $hxClasses["openfl.errors.ArgumentError"] = openfl_errors_ArgumentError; openfl_errors_ArgumentError.__name__ = ["openfl","errors","ArgumentError"]; openfl_errors_ArgumentError.__super__ = openfl_errors_Error; openfl_errors_ArgumentError.prototype = $extend(openfl_errors_Error.prototype,{ __class__: openfl_errors_ArgumentError }); var openfl_errors_IOError = function(message) { if(message == null) message = ""; openfl_errors_Error.call(this,message); this.name = "IOError"; }; $hxClasses["openfl.errors.IOError"] = openfl_errors_IOError; openfl_errors_IOError.__name__ = ["openfl","errors","IOError"]; openfl_errors_IOError.__super__ = openfl_errors_Error; openfl_errors_IOError.prototype = $extend(openfl_errors_Error.prototype,{ __class__: openfl_errors_IOError }); var openfl_errors_EOFError = function() { openfl_errors_IOError.call(this,"End of file was encountered"); this.name = "EOFError"; this.errorID = 2030; }; $hxClasses["openfl.errors.EOFError"] = openfl_errors_EOFError; openfl_errors_EOFError.__name__ = ["openfl","errors","EOFError"]; openfl_errors_EOFError.__super__ = openfl_errors_IOError; openfl_errors_EOFError.prototype = $extend(openfl_errors_IOError.prototype,{ __class__: openfl_errors_EOFError }); var openfl_errors_RangeError = function(message) { if(message == null) message = ""; openfl_errors_Error.call(this,message,0); this.name = "RangeError"; }; $hxClasses["openfl.errors.RangeError"] = openfl_errors_RangeError; openfl_errors_RangeError.__name__ = ["openfl","errors","RangeError"]; openfl_errors_RangeError.__super__ = openfl_errors_Error; openfl_errors_RangeError.prototype = $extend(openfl_errors_Error.prototype,{ __class__: openfl_errors_RangeError }); var openfl_errors_TypeError = function(message) { if(message == null) message = ""; openfl_errors_Error.call(this,message,0); this.name = "TypeError"; }; $hxClasses["openfl.errors.TypeError"] = openfl_errors_TypeError; openfl_errors_TypeError.__name__ = ["openfl","errors","TypeError"]; openfl_errors_TypeError.__super__ = openfl_errors_Error; openfl_errors_TypeError.prototype = $extend(openfl_errors_Error.prototype,{ __class__: openfl_errors_TypeError }); var openfl_events_Event = function(type,bubbles,cancelable) { if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; this.type = type; this.bubbles = bubbles; this.cancelable = cancelable; this.eventPhase = 2; }; $hxClasses["openfl.events.Event"] = openfl_events_Event; openfl_events_Event.__name__ = ["openfl","events","Event"]; openfl_events_Event.prototype = { bubbles: null ,cancelable: null ,currentTarget: null ,eventPhase: null ,target: null ,type: null ,__isCanceled: null ,__isCanceledNow: null ,__preventDefault: null ,clone: function() { var event = new openfl_events_Event(this.type,this.bubbles,this.cancelable); event.eventPhase = this.eventPhase; event.target = this.target; event.currentTarget = this.currentTarget; return event; } ,formatToString: function(className,p1,p2,p3,p4,p5) { var parameters = []; if(p1 != null) parameters.push(p1); if(p2 != null) parameters.push(p2); if(p3 != null) parameters.push(p3); if(p4 != null) parameters.push(p4); if(p5 != null) parameters.push(p5); return $bind(this,this.__formatToString).apply(this,[className,parameters]); } ,isDefaultPrevented: function() { return this.__preventDefault; } ,preventDefault: function() { if(this.cancelable) this.__preventDefault = true; } ,stopImmediatePropagation: function() { this.__isCanceled = true; this.__isCanceledNow = true; } ,stopPropagation: function() { this.__isCanceled = true; } ,toString: function() { return this.__formatToString("Event",["type","bubbles","cancelable"]); } ,__formatToString: function(className,parameters) { var output = "[" + className; var arg = null; var _g = 0; while(_g < parameters.length) { var param = parameters[_g]; ++_g; arg = Reflect.field(this,param); if(typeof(arg) == "string") output += " " + param + "=\"" + Std.string(arg) + "\""; else output += " " + param + "=" + Std.string(arg); } output += "]"; return output; } ,__class__: openfl_events_Event }; var openfl_events_ActivityEvent = function(type,bubbles,cancelable,activating) { if(activating == null) activating = false; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_Event.call(this,type,bubbles,cancelable); this.activating = activating; }; $hxClasses["openfl.events.ActivityEvent"] = openfl_events_ActivityEvent; openfl_events_ActivityEvent.__name__ = ["openfl","events","ActivityEvent"]; openfl_events_ActivityEvent.__super__ = openfl_events_Event; openfl_events_ActivityEvent.prototype = $extend(openfl_events_Event.prototype,{ activating: null ,clone: function() { var event = new openfl_events_ActivityEvent(this.type,this.bubbles,this.cancelable,this.activating); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("ActivityEvent",["type","bubbles","cancelable","activating"]); } ,__class__: openfl_events_ActivityEvent }); var openfl_events_TextEvent = function(type,bubbles,cancelable,text) { if(text == null) text = ""; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_Event.call(this,type,bubbles,cancelable); this.text = text; }; $hxClasses["openfl.events.TextEvent"] = openfl_events_TextEvent; openfl_events_TextEvent.__name__ = ["openfl","events","TextEvent"]; openfl_events_TextEvent.__super__ = openfl_events_Event; openfl_events_TextEvent.prototype = $extend(openfl_events_Event.prototype,{ text: null ,clone: function() { var event = new openfl_events_TextEvent(this.type,this.bubbles,this.cancelable,this.text); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("TextEvent",["type","bubbles","cancelable","text"]); } ,__class__: openfl_events_TextEvent }); var openfl_events_ErrorEvent = function(type,bubbles,cancelable,text,id) { if(id == null) id = 0; if(text == null) text = ""; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_TextEvent.call(this,type,bubbles,cancelable,text); this.errorID = id; }; $hxClasses["openfl.events.ErrorEvent"] = openfl_events_ErrorEvent; openfl_events_ErrorEvent.__name__ = ["openfl","events","ErrorEvent"]; openfl_events_ErrorEvent.__super__ = openfl_events_TextEvent; openfl_events_ErrorEvent.prototype = $extend(openfl_events_TextEvent.prototype,{ errorID: null ,clone: function() { var event = new openfl_events_ErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("ErrorEvent",["type","bubbles","cancelable","text","errorID"]); } ,__class__: openfl_events_ErrorEvent }); var openfl_events__$EventDispatcher_Listener = function(callback,useCapture,priority) { this.callback = callback; this.useCapture = useCapture; this.priority = priority; }; $hxClasses["openfl.events._EventDispatcher.Listener"] = openfl_events__$EventDispatcher_Listener; openfl_events__$EventDispatcher_Listener.__name__ = ["openfl","events","_EventDispatcher","Listener"]; openfl_events__$EventDispatcher_Listener.prototype = { callback: null ,priority: null ,useCapture: null ,match: function(callback,useCapture) { return Reflect.compareMethods(this.callback,callback) && this.useCapture == useCapture; } ,__class__: openfl_events__$EventDispatcher_Listener }; var openfl_events_FocusEvent = function(type,bubbles,cancelable,relatedObject,shiftKey,keyCode) { if(keyCode == null) keyCode = 0; if(shiftKey == null) shiftKey = false; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_Event.call(this,type,bubbles,cancelable); this.keyCode = keyCode; this.shiftKey = shiftKey; this.relatedObject = relatedObject; }; $hxClasses["openfl.events.FocusEvent"] = openfl_events_FocusEvent; openfl_events_FocusEvent.__name__ = ["openfl","events","FocusEvent"]; openfl_events_FocusEvent.__super__ = openfl_events_Event; openfl_events_FocusEvent.prototype = $extend(openfl_events_Event.prototype,{ keyCode: null ,relatedObject: null ,shiftKey: null ,clone: function() { var event = new openfl_events_FocusEvent(this.type,this.bubbles,this.cancelable,this.relatedObject,this.shiftKey,this.keyCode); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("FocusEvent",["type","bubbles","cancelable","relatedObject","shiftKey","keyCode"]); } ,__class__: openfl_events_FocusEvent }); var openfl_events_FullScreenEvent = function(type,bubbles,cancelable,fullScreen,interactive) { if(interactive == null) interactive = false; if(fullScreen == null) fullScreen = false; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_ActivityEvent.call(this,type,bubbles,cancelable); this.fullScreen = fullScreen; this.interactive = interactive; }; $hxClasses["openfl.events.FullScreenEvent"] = openfl_events_FullScreenEvent; openfl_events_FullScreenEvent.__name__ = ["openfl","events","FullScreenEvent"]; openfl_events_FullScreenEvent.__super__ = openfl_events_ActivityEvent; openfl_events_FullScreenEvent.prototype = $extend(openfl_events_ActivityEvent.prototype,{ fullScreen: null ,interactive: null ,clone: function() { var event = new openfl_events_FullScreenEvent(this.type,this.bubbles,this.cancelable,this.fullScreen,this.interactive); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("FullscreenEvent",["type","bubbles","cancelable","fullscreen","interactive"]); } ,__class__: openfl_events_FullScreenEvent }); var openfl_events_GameInputEvent = function(type,bubbles,cancelable,device) { if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = true; openfl_events_Event.call(this,type,bubbles,cancelable); this.device = device; }; $hxClasses["openfl.events.GameInputEvent"] = openfl_events_GameInputEvent; openfl_events_GameInputEvent.__name__ = ["openfl","events","GameInputEvent"]; openfl_events_GameInputEvent.__super__ = openfl_events_Event; openfl_events_GameInputEvent.prototype = $extend(openfl_events_Event.prototype,{ device: null ,clone: function() { var event = new openfl_events_GameInputEvent(this.type,this.bubbles,this.cancelable,this.device); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("GameInputEvent",["type","bubbles","cancelable","device"]); } ,__class__: openfl_events_GameInputEvent }); var openfl_events_HTTPStatusEvent = function(type,bubbles,cancelable,status,redirected) { if(redirected == null) redirected = false; if(status == null) status = 0; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; this.status = status; this.redirected = redirected; openfl_events_Event.call(this,type,bubbles,cancelable); }; $hxClasses["openfl.events.HTTPStatusEvent"] = openfl_events_HTTPStatusEvent; openfl_events_HTTPStatusEvent.__name__ = ["openfl","events","HTTPStatusEvent"]; openfl_events_HTTPStatusEvent.__super__ = openfl_events_Event; openfl_events_HTTPStatusEvent.prototype = $extend(openfl_events_Event.prototype,{ redirected: null ,responseHeaders: null ,responseURL: null ,status: null ,clone: function() { var event = new openfl_events_HTTPStatusEvent(this.type,this.bubbles,null,this.status,this.redirected); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("HTTPStatusEvent",["type","bubbles","cancelable","status","redirected"]); } ,__class__: openfl_events_HTTPStatusEvent }); var openfl_events_IOErrorEvent = function(type,bubbles,cancelable,text,id) { if(id == null) id = 0; if(text == null) text = ""; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = true; openfl_events_ErrorEvent.call(this,type,bubbles,cancelable,text,id); }; $hxClasses["openfl.events.IOErrorEvent"] = openfl_events_IOErrorEvent; openfl_events_IOErrorEvent.__name__ = ["openfl","events","IOErrorEvent"]; openfl_events_IOErrorEvent.__super__ = openfl_events_ErrorEvent; openfl_events_IOErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{ clone: function() { var event = new openfl_events_IOErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("IOErrorEvent",["type","bubbles","cancelable","text","errorID"]); } ,__class__: openfl_events_IOErrorEvent }); var openfl_events_KeyboardEvent = function(type,bubbles,cancelable,charCodeValue,keyCodeValue,keyLocationValue,ctrlKeyValue,altKeyValue,shiftKeyValue,controlKeyValue,commandKeyValue) { if(commandKeyValue == null) commandKeyValue = false; if(controlKeyValue == null) controlKeyValue = false; if(shiftKeyValue == null) shiftKeyValue = false; if(altKeyValue == null) altKeyValue = false; if(ctrlKeyValue == null) ctrlKeyValue = false; if(keyCodeValue == null) keyCodeValue = 0; if(charCodeValue == null) charCodeValue = 0; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_Event.call(this,type,bubbles,cancelable); this.charCode = charCodeValue; this.keyCode = keyCodeValue; if(keyLocationValue != null) this.keyLocation = keyLocationValue; else this.keyLocation = 0; this.ctrlKey = ctrlKeyValue; this.altKey = altKeyValue; this.shiftKey = shiftKeyValue; this.controlKey = controlKeyValue; this.commandKey = commandKeyValue; }; $hxClasses["openfl.events.KeyboardEvent"] = openfl_events_KeyboardEvent; openfl_events_KeyboardEvent.__name__ = ["openfl","events","KeyboardEvent"]; openfl_events_KeyboardEvent.__super__ = openfl_events_Event; openfl_events_KeyboardEvent.prototype = $extend(openfl_events_Event.prototype,{ altKey: null ,charCode: null ,ctrlKey: null ,commandKey: null ,controlKey: null ,keyCode: null ,keyLocation: null ,shiftKey: null ,clone: function() { var event = new openfl_events_KeyboardEvent(this.type,this.bubbles,this.cancelable,this.charCode,this.keyCode,this.keyLocation,this.ctrlKey,this.altKey,this.shiftKey,this.controlKey,this.commandKey); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("KeyboardEvent",["type","bubbles","cancelable","charCode","keyCode","keyLocation","ctrlKey","altKey","shiftKey"]); } ,__class__: openfl_events_KeyboardEvent }); var openfl_events_MouseEvent = function(type,bubbles,cancelable,localX,localY,relatedObject,ctrlKey,altKey,shiftKey,buttonDown,delta,commandKey,clickCount) { if(clickCount == null) clickCount = 0; if(commandKey == null) commandKey = false; if(delta == null) delta = 0; if(buttonDown == null) buttonDown = false; if(shiftKey == null) shiftKey = false; if(altKey == null) altKey = false; if(ctrlKey == null) ctrlKey = false; if(localY == null) localY = 0; if(localX == null) localX = 0; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = true; openfl_events_Event.call(this,type,bubbles,cancelable); this.shiftKey = shiftKey; this.altKey = altKey; this.ctrlKey = ctrlKey; this.bubbles = bubbles; this.relatedObject = relatedObject; this.delta = delta; this.localX = localX; this.localY = localY; this.buttonDown = buttonDown; this.commandKey = commandKey; this.clickCount = clickCount; }; $hxClasses["openfl.events.MouseEvent"] = openfl_events_MouseEvent; openfl_events_MouseEvent.__name__ = ["openfl","events","MouseEvent"]; openfl_events_MouseEvent.__altKey = null; openfl_events_MouseEvent.__buttonDown = null; openfl_events_MouseEvent.__commandKey = null; openfl_events_MouseEvent.__ctrlKey = null; openfl_events_MouseEvent.__shiftKey = null; openfl_events_MouseEvent.__create = function(type,button,stageX,stageY,local,target,delta) { if(delta == null) delta = 0; switch(type) { case "mouseDown": openfl_events_MouseEvent.__buttonDown = true; break; case "mouseUp": openfl_events_MouseEvent.__buttonDown = false; break; default: } var event = new openfl_events_MouseEvent(type,true,false,local.x,local.y,null,openfl_events_MouseEvent.__ctrlKey,openfl_events_MouseEvent.__altKey,openfl_events_MouseEvent.__shiftKey,openfl_events_MouseEvent.__buttonDown,delta,openfl_events_MouseEvent.__commandKey); event.stageX = stageX; event.stageY = stageY; event.target = target; return event; }; openfl_events_MouseEvent.__super__ = openfl_events_Event; openfl_events_MouseEvent.prototype = $extend(openfl_events_Event.prototype,{ altKey: null ,buttonDown: null ,commandKey: null ,clickCount: null ,ctrlKey: null ,delta: null ,localX: null ,localY: null ,relatedObject: null ,shiftKey: null ,stageX: null ,stageY: null ,clone: function() { var event = new openfl_events_MouseEvent(this.type,this.bubbles,this.cancelable,this.localX,this.localY,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.buttonDown,this.delta,this.commandKey,this.clickCount); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("MouseEvent",["type","bubbles","cancelable","localX","localY","relatedObject","ctrlKey","altKey","shiftKey","buttonDown","delta"]); } ,updateAfterEvent: function() { } ,__class__: openfl_events_MouseEvent }); var openfl_events_NetStatusEvent = function(type,bubbles,cancelable,info) { if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; this.info = info; openfl_events_Event.call(this,type,bubbles,cancelable); }; $hxClasses["openfl.events.NetStatusEvent"] = openfl_events_NetStatusEvent; openfl_events_NetStatusEvent.__name__ = ["openfl","events","NetStatusEvent"]; openfl_events_NetStatusEvent.__super__ = openfl_events_Event; openfl_events_NetStatusEvent.prototype = $extend(openfl_events_Event.prototype,{ info: null ,clone: function() { var event = new openfl_events_NetStatusEvent(this.type,this.bubbles,this.cancelable,this.info); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("NetStatusEvent",["type","bubbles","cancelable","info"]); } ,__class__: openfl_events_NetStatusEvent }); var openfl_events_ProgressEvent = function(type,bubbles,cancelable,bytesLoaded,bytesTotal) { if(bytesTotal == null) bytesTotal = 0; if(bytesLoaded == null) bytesLoaded = 0; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_Event.call(this,type,bubbles,cancelable); this.bytesLoaded = bytesLoaded; this.bytesTotal = bytesTotal; }; $hxClasses["openfl.events.ProgressEvent"] = openfl_events_ProgressEvent; openfl_events_ProgressEvent.__name__ = ["openfl","events","ProgressEvent"]; openfl_events_ProgressEvent.__super__ = openfl_events_Event; openfl_events_ProgressEvent.prototype = $extend(openfl_events_Event.prototype,{ bytesLoaded: null ,bytesTotal: null ,clone: function() { var event = new openfl_events_ProgressEvent(this.type,this.bubbles,this.cancelable,this.bytesLoaded,this.bytesTotal); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("ProgressEvent",["type","bubbles","cancelable","bytesLoaded","bytesTotal"]); } ,__class__: openfl_events_ProgressEvent }); var openfl_events_SecurityErrorEvent = function(type,bubbles,cancelable,text,id) { if(id == null) id = 0; if(text == null) text = ""; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = false; openfl_events_ErrorEvent.call(this,type,bubbles,cancelable,text,id); }; $hxClasses["openfl.events.SecurityErrorEvent"] = openfl_events_SecurityErrorEvent; openfl_events_SecurityErrorEvent.__name__ = ["openfl","events","SecurityErrorEvent"]; openfl_events_SecurityErrorEvent.__super__ = openfl_events_ErrorEvent; openfl_events_SecurityErrorEvent.prototype = $extend(openfl_events_ErrorEvent.prototype,{ clone: function() { var event = new openfl_events_SecurityErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("SecurityErrorEvent",["type","bubbles","cancelable","text","errorID"]); } ,__class__: openfl_events_SecurityErrorEvent }); var openfl_events_TouchEvent = function(type,bubbles,cancelable,touchPointID,isPrimaryTouchPoint,localX,localY,sizeX,sizeY,pressure,relatedObject,ctrlKey,altKey,shiftKey,commandKey,controlKey,timestamp,touchIntent,samples,isTouchPointCanceled) { if(isTouchPointCanceled == null) isTouchPointCanceled = false; if(timestamp == null) timestamp = 0; if(controlKey == null) controlKey = false; if(commandKey == null) commandKey = false; if(shiftKey == null) shiftKey = false; if(altKey == null) altKey = false; if(ctrlKey == null) ctrlKey = false; if(pressure == null) pressure = 0; if(sizeY == null) sizeY = 0; if(sizeX == null) sizeX = 0; if(localY == null) localY = 0; if(localX == null) localX = 0; if(isPrimaryTouchPoint == null) isPrimaryTouchPoint = false; if(touchPointID == null) touchPointID = 0; if(cancelable == null) cancelable = false; if(bubbles == null) bubbles = true; openfl_events_Event.call(this,type,bubbles,cancelable); this.touchPointID = touchPointID; this.isPrimaryTouchPoint = isPrimaryTouchPoint; this.localX = localX; this.localY = localY; this.sizeX = sizeX; this.sizeY = sizeY; this.pressure = pressure; this.relatedObject = relatedObject; this.ctrlKey = ctrlKey; this.altKey = altKey; this.shiftKey = shiftKey; this.commandKey = commandKey; this.controlKey = controlKey; }; $hxClasses["openfl.events.TouchEvent"] = openfl_events_TouchEvent; openfl_events_TouchEvent.__name__ = ["openfl","events","TouchEvent"]; openfl_events_TouchEvent.__create = function(type,touch,stageX,stageY,local,target) { var evt = new openfl_events_TouchEvent(type,true,false,0,true,local.x,local.y,1,1,1); evt.stageX = stageX; evt.stageY = stageY; evt.target = target; return evt; }; openfl_events_TouchEvent.__super__ = openfl_events_Event; openfl_events_TouchEvent.prototype = $extend(openfl_events_Event.prototype,{ altKey: null ,commandKey: null ,controlKey: null ,ctrlKey: null ,delta: null ,isPrimaryTouchPoint: null ,localX: null ,localY: null ,pressure: null ,relatedObject: null ,shiftKey: null ,sizeX: null ,sizeY: null ,stageX: null ,stageY: null ,touchPointID: null ,clone: function() { var event = new openfl_events_TouchEvent(this.type,this.bubbles,this.cancelable,this.touchPointID,this.isPrimaryTouchPoint,this.localX,this.localY,this.sizeX,this.sizeY,this.pressure,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.commandKey,this.controlKey); event.target = this.target; event.currentTarget = this.currentTarget; event.eventPhase = this.eventPhase; return event; } ,toString: function() { return this.__formatToString("TouchEvent",["type","bubbles","cancelable","touchPointID","isPrimaryTouchPoint","localX","localY","sizeX","sizeY","pressure","relatedObject","ctrlKey","altKey","shiftKey","commandKey","controlKey"]); } ,updateAfterEvent: function() { } ,__class__: openfl_events_TouchEvent }); var openfl_external_ExternalInterface = function() { }; $hxClasses["openfl.external.ExternalInterface"] = openfl_external_ExternalInterface; openfl_external_ExternalInterface.__name__ = ["openfl","external","ExternalInterface"]; openfl_external_ExternalInterface.objectID = null; openfl_external_ExternalInterface.addCallback = function(functionName,closure) { if(openfl_Lib.application.windows[0].backend.element != null) openfl_Lib.application.windows[0].backend.element[functionName] = closure; }; openfl_external_ExternalInterface.call = function(functionName,p1,p2,p3,p4,p5) { var callResponse = null; var thisArg = functionName.split(".").slice(0,-1).join("."); if(thisArg.length > 0) functionName += ".bind(" + thisArg + ")"; if(p1 == null) callResponse = eval(functionName)(); else if(p2 == null) callResponse = eval(functionName)(p1); else if(p3 == null) callResponse = eval(functionName)(p1,p2); else if(p4 == null) callResponse = eval(functionName)(p1,p2,p3); else if(p5 == null) callResponse = eval(functionName)(p1,p2,p3,p4); else callResponse = eval(functionName)(p1,p2,p3,p4,p5); return callResponse; }; var openfl_filters_BitmapFilter = function() { this.__saveLastFilter = false; this.__passes = 0; this.__dirty = true; }; $hxClasses["openfl.filters.BitmapFilter"] = openfl_filters_BitmapFilter; openfl_filters_BitmapFilter.__name__ = ["openfl","filters","BitmapFilter"]; openfl_filters_BitmapFilter.__tmpRenderTexture = null; openfl_filters_BitmapFilter.__applyFilters = function(filters,renderSession,source,target,sourceRect,destPoint) { var same = target == source && target.__usingPingPongTexture; if(same) target.__pingPongTexture.useOldTexture = true; if(sourceRect == null) sourceRect = source.rect; var lastFilterOutput = null; var useLastFilter = false; var srcShader = source.__shader; var _g = 0; while(_g < filters.length) { var filter = filters[_g]; ++_g; useLastFilter = false; if(filter.__saveLastFilter) { target.__pingPongTexture.swap(); target.__drawGL(renderSession,source,null,null,null,sourceRect,true,!target.__usingPingPongTexture,true); lastFilterOutput = target.__pingPongTexture.get_oldRenderTexture(); target.__pingPongTexture.set_oldRenderTexture(openfl_filters_BitmapFilter.__tmpRenderTexture); } var _g2 = 0; var _g1 = filter.__passes; while(_g2 < _g1) { var pass = _g2++; useLastFilter = filter.__saveLastFilter && filter.__useLastFilter(pass); if(same && !useLastFilter) target.__pingPongTexture.swap(); if(useLastFilter) { openfl_filters_BitmapFilter.__tmpRenderTexture = target.__pingPongTexture.get_oldRenderTexture(); target.__pingPongTexture.set_oldRenderTexture(lastFilterOutput); } source.__shader = filter.__preparePass(pass); target.__drawGL(renderSession,source,null,null,null,sourceRect,true,!target.__usingPingPongTexture,!useLastFilter); } } source.__shader = srcShader; if(same) target.__pingPongTexture.useOldTexture = false; }; openfl_filters_BitmapFilter.__expandBounds = function(filters,rect,matrix) { var r = openfl_geom_Rectangle.__temp; r.setEmpty(); var _g = 0; while(_g < filters.length) { var filter = filters[_g]; ++_g; filter.__growBounds(r); } r.__transform(r,matrix); rect.__expand(r.x,r.y,r.width,r.height); }; openfl_filters_BitmapFilter.prototype = { __dirty: null ,__passes: null ,__saveLastFilter: null ,clone: function() { return new openfl_filters_BitmapFilter(); } ,__applyFilter: function(sourceData,targetData,sourceRect,destPoint) { } ,__growBounds: function(rect) { } ,__preparePass: function(pass) { return null; } ,__useLastFilter: function(pass) { return false; } ,__class__: openfl_filters_BitmapFilter }; var openfl_filters_BlurFilter = function(blurX,blurY,quality) { if(quality == null) quality = 1; if(blurY == null) blurY = 4; if(blurX == null) blurX = 4; openfl_filters_BitmapFilter.call(this); this.blurX = blurX; this.blurY = blurY; this.set_quality(quality); this.__blurShader = new openfl_filters__$BlurFilter_BlurShader(); this.__blurShader.smooth = true; }; $hxClasses["openfl.filters.BlurFilter"] = openfl_filters_BlurFilter; openfl_filters_BlurFilter.__name__ = ["openfl","filters","BlurFilter"]; openfl_filters_BlurFilter.__super__ = openfl_filters_BitmapFilter; openfl_filters_BlurFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{ blurX: null ,blurY: null ,quality: null ,__blurShader: null ,clone: function() { return new openfl_filters_BlurFilter(this.blurX,this.blurY,this.quality); } ,__growBounds: function(rect) { rect.x += -this.blurX * 0.5 * this.quality; rect.y += -this.blurY * 0.5 * this.quality; rect.width += this.blurX * 0.5 * this.quality; rect.height += this.blurY * 0.5 * this.quality; } ,__preparePass: function(pass) { var even = pass % 2 == 0; var scale = Math.pow(0.5,pass >> 1); if(even) this.__blurShader.__uRadius.value[0] = scale * this.blurX; else this.__blurShader.__uRadius.value[0] = 0; if(even) this.__blurShader.__uRadius.value[1] = 0; else this.__blurShader.__uRadius.value[1] = scale * this.blurY; return this.__blurShader; } ,set_quality: function(value) { this.__passes = value * 2; return this.quality = value; } ,__class__: openfl_filters_BlurFilter ,__properties__: {set_quality:"set_quality"} }); var openfl_filters__$BlurFilter_BlurShader = function() { this.__uRadius = new openfl_display_GLShaderParameter("vec2",0); this.fragment = ["varying vec2 vBlurCoords[7];","void main(void)","{","vec4 sum = vec4(0.0);","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]) * 0.00443;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]) * 0.05399;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]) * 0.24197;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]) * 0.39894;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]) * 0.24197;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]) * 0.05399;","sum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]) * 0.00443;","\tgl_FragColor = sum;","}"]; this.vertex = ["uniform vec2 uRadius;","varying vec2 vBlurCoords[7];","void main(void)","{","vec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";","vBlurCoords[0] = " + openfl_display_Shader.aTexCoord + " - r * 1.2;","vBlurCoords[1] = " + openfl_display_Shader.aTexCoord + " - r * 0.8;","vBlurCoords[2] = " + openfl_display_Shader.aTexCoord + " - r * 0.4;","vBlurCoords[3] = " + openfl_display_Shader.aTexCoord + ";","vBlurCoords[4] = " + openfl_display_Shader.aTexCoord + " + r * 0.4;","vBlurCoords[5] = " + openfl_display_Shader.aTexCoord + " + r * 0.8;","vBlurCoords[6] = " + openfl_display_Shader.aTexCoord + " + r * 1.2;","" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";","" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";","gl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);","}"]; openfl_display_Shader.call(this); this.data.set("uRadius",this.__uRadius); this.__buildVertexCode("uniform vec2 uRadius;\nvarying vec2 vBlurCoords[7];\nvoid main(void)\n{\nvec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";\nvBlurCoords[0] = " + openfl_display_Shader.aTexCoord + " - r * 1.2;\nvBlurCoords[1] = " + openfl_display_Shader.aTexCoord + " - r * 0.8;\nvBlurCoords[2] = " + openfl_display_Shader.aTexCoord + " - r * 0.4;\nvBlurCoords[3] = " + openfl_display_Shader.aTexCoord + ";\nvBlurCoords[4] = " + openfl_display_Shader.aTexCoord + " + r * 0.4;\nvBlurCoords[5] = " + openfl_display_Shader.aTexCoord + " + r * 0.8;\nvBlurCoords[6] = " + openfl_display_Shader.aTexCoord + " + r * 1.2;\n" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";\n" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";\ngl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);\n}"); this.__buildFragmentCode("varying vec2 vBlurCoords[7];\nvoid main(void)\n{\nvec4 sum = vec4(0.0);\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]) * 0.00443;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]) * 0.05399;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]) * 0.24197;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]) * 0.39894;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]) * 0.24197;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]) * 0.05399;\nsum += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]) * 0.00443;\n\tgl_FragColor = sum;\n}"); }; $hxClasses["openfl.filters._BlurFilter.BlurShader"] = openfl_filters__$BlurFilter_BlurShader; openfl_filters__$BlurFilter_BlurShader.__name__ = ["openfl","filters","_BlurFilter","BlurShader"]; openfl_filters__$BlurFilter_BlurShader.__super__ = openfl_display_Shader; openfl_filters__$BlurFilter_BlurShader.prototype = $extend(openfl_display_Shader.prototype,{ vertex: null ,fragment: null ,__uRadius: null ,get_uRadius: function() { return this.__uRadius.value; } ,set_uRadius: function(v) { return this.__uRadius.set_value(v); } ,__class__: openfl_filters__$BlurFilter_BlurShader ,__properties__: {set_uRadius:"set_uRadius",get_uRadius:"get_uRadius"} }); var openfl_filters_DropShadowFilter = function(distance,angle,color,alpha,blurX,blurY,strength,quality,inner,knockout,hideObject) { if(hideObject == null) hideObject = false; if(knockout == null) knockout = false; if(inner == null) inner = false; if(quality == null) quality = 1; if(strength == null) strength = 1; if(blurY == null) blurY = 4; if(blurX == null) blurX = 4; if(alpha == null) alpha = 1; if(color == null) color = 0; if(angle == null) angle = 45; if(distance == null) distance = 4; openfl_filters_BitmapFilter.call(this); this.distance = distance; this.angle = angle; this.color = color; this.alpha = alpha; this.blurX = blurX; this.blurY = blurY; this.strength = strength; this.set_quality(quality); this.inner = inner; this.set_knockout(knockout); this.set_hideObject(hideObject); this.__dropShadowShader = new openfl_filters__$DropShadowFilter_DropShadowShader(); this.__dropShadowShader.smooth = true; }; $hxClasses["openfl.filters.DropShadowFilter"] = openfl_filters_DropShadowFilter; openfl_filters_DropShadowFilter.__name__ = ["openfl","filters","DropShadowFilter"]; openfl_filters_DropShadowFilter.__super__ = openfl_filters_BitmapFilter; openfl_filters_DropShadowFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{ alpha: null ,angle: null ,blurX: null ,blurY: null ,color: null ,distance: null ,hideObject: null ,inner: null ,knockout: null ,quality: null ,strength: null ,__dropShadowShader: null ,clone: function() { return new openfl_filters_DropShadowFilter(this.distance,this.angle,this.color,this.alpha,this.blurX,this.blurY,this.strength,this.quality,this.inner,this.knockout,this.hideObject); } ,__growBounds: function(rect) { var sX = this.distance * Math.cos(this.angle * Math.PI / 180); var sY = this.distance * Math.sin(this.angle * Math.PI / 180); rect.x += -(Math.abs(sX) + this.blurX * 0.5) * this.quality; rect.y += -(Math.abs(sY) + this.blurY * 0.5) * this.quality; rect.width += (sX + this.blurX * 0.5) * this.quality; rect.height += (sY + this.blurY * 0.5) * this.quality; } ,__preparePass: function(pass) { if(pass == this.__passes - 1) return null; else { var even = pass % 2 == 0; var scale = Math.pow(0.5,pass >> 1); if(even) this.__dropShadowShader.__uRadius.value[0] = scale * this.blurX; else this.__dropShadowShader.__uRadius.value[0] = 0; if(even) this.__dropShadowShader.__uRadius.value[1] = 0; else this.__dropShadowShader.__uRadius.value[1] = scale * this.blurY; if(pass == 0) this.__dropShadowShader.__uShift.value[0] = this.distance * Math.cos(this.angle * Math.PI / 180); else this.__dropShadowShader.__uShift.value[0] = 0; if(pass == 0) this.__dropShadowShader.__uShift.value[1] = this.distance * Math.sin(this.angle * Math.PI / 180); else this.__dropShadowShader.__uShift.value[1] = 0; this.__dropShadowShader.__uColor.value[0] = (this.color >> 16 & 255) / 255; this.__dropShadowShader.__uColor.value[1] = (this.color >> 8 & 255) / 255; this.__dropShadowShader.__uColor.value[2] = (this.color & 255) / 255; this.__dropShadowShader.__uColor.value[3] = this.alpha; return this.__dropShadowShader; } } ,__useLastFilter: function(pass) { return pass == this.__passes - 1; } ,set_knockout: function(value) { this.__saveLastFilter = !value; return this.knockout = value; } ,set_hideObject: function(value) { this.__saveLastFilter = !value; return this.hideObject = value; } ,set_quality: function(value) { this.__passes = value * 2 + 1; return this.quality = value; } ,__class__: openfl_filters_DropShadowFilter ,__properties__: {set_quality:"set_quality",set_knockout:"set_knockout",set_hideObject:"set_hideObject"} }); var openfl_filters__$DropShadowFilter_DropShadowShader = function() { this.__uColor = new openfl_display_GLShaderParameter("vec4",0); this.__uShift = new openfl_display_GLShaderParameter("vec2",0); this.__uRadius = new openfl_display_GLShaderParameter("vec2",0); this.fragment = ["uniform vec4 uColor;","varying vec2 vBlurCoords[7];","void main(void)","{","float a = 0.0;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]).a * 0.00443;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]).a * 0.05399;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]).a * 0.24197;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]).a * 0.39894;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]).a * 0.24197;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]).a * 0.05399;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]).a * 0.00443;","a *= uColor.a;","\tgl_FragColor = vec4(uColor.rgb * a, a);","}"]; this.vertex = ["uniform vec2 uRadius;","uniform vec2 uShift;","varying vec2 vBlurCoords[7];","void main(void)","{","vec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";","vec2 tc = " + openfl_display_Shader.aTexCoord + " - (uShift / " + openfl_display_Shader.uTextureSize + ");","vBlurCoords[0] = tc - r * 1.2;","vBlurCoords[1] = tc - r * 0.8;","vBlurCoords[2] = tc - r * 0.4;","vBlurCoords[3] = tc;","vBlurCoords[4] = tc + r * 0.4;","vBlurCoords[5] = tc + r * 0.8;","vBlurCoords[6] = tc + r * 1.2;","" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";","" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";","gl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);","}"]; openfl_display_Shader.call(this); this.data.set("uRadius",this.__uRadius); this.data.set("uShift",this.__uShift); this.data.set("uColor",this.__uColor); this.__buildVertexCode("uniform vec2 uRadius;\nuniform vec2 uShift;\nvarying vec2 vBlurCoords[7];\nvoid main(void)\n{\nvec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";\nvec2 tc = " + openfl_display_Shader.aTexCoord + " - (uShift / " + openfl_display_Shader.uTextureSize + ");\nvBlurCoords[0] = tc - r * 1.2;\nvBlurCoords[1] = tc - r * 0.8;\nvBlurCoords[2] = tc - r * 0.4;\nvBlurCoords[3] = tc;\nvBlurCoords[4] = tc + r * 0.4;\nvBlurCoords[5] = tc + r * 0.8;\nvBlurCoords[6] = tc + r * 1.2;\n" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";\n" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";\ngl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);\n}"); this.__buildFragmentCode("uniform vec4 uColor;\nvarying vec2 vBlurCoords[7];\nvoid main(void)\n{\nfloat a = 0.0;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]).a * 0.00443;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]).a * 0.05399;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]).a * 0.24197;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]).a * 0.39894;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]).a * 0.24197;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]).a * 0.05399;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]).a * 0.00443;\na *= uColor.a;\n\tgl_FragColor = vec4(uColor.rgb * a, a);\n}"); }; $hxClasses["openfl.filters._DropShadowFilter.DropShadowShader"] = openfl_filters__$DropShadowFilter_DropShadowShader; openfl_filters__$DropShadowFilter_DropShadowShader.__name__ = ["openfl","filters","_DropShadowFilter","DropShadowShader"]; openfl_filters__$DropShadowFilter_DropShadowShader.__super__ = openfl_display_Shader; openfl_filters__$DropShadowFilter_DropShadowShader.prototype = $extend(openfl_display_Shader.prototype,{ vertex: null ,fragment: null ,__uRadius: null ,get_uRadius: function() { return this.__uRadius.value; } ,set_uRadius: function(v) { return this.__uRadius.set_value(v); } ,__uShift: null ,get_uShift: function() { return this.__uShift.value; } ,set_uShift: function(v) { return this.__uShift.set_value(v); } ,__uColor: null ,get_uColor: function() { return this.__uColor.value; } ,set_uColor: function(v) { return this.__uColor.set_value(v); } ,__class__: openfl_filters__$DropShadowFilter_DropShadowShader ,__properties__: {set_uColor:"set_uColor",get_uColor:"get_uColor",set_uShift:"set_uShift",get_uShift:"get_uShift",set_uRadius:"set_uRadius",get_uRadius:"get_uRadius"} }); var openfl_filters_GlowFilter = function(color,alpha,blurX,blurY,strength,quality,inner,knockout) { if(knockout == null) knockout = false; if(inner == null) inner = false; if(quality == null) quality = 1; if(strength == null) strength = 2; if(blurY == null) blurY = 6; if(blurX == null) blurX = 6; if(alpha == null) alpha = 1; if(color == null) color = 16711680; openfl_filters_BitmapFilter.call(this); this.color = color; this.alpha = alpha; this.blurX = blurX; this.blurY = blurY; this.strength = strength; this.set_quality(quality); this.inner = inner; this.set_knockout(knockout); this.__glowShader = new openfl_filters__$GlowFilter_GlowShader(); this.__glowShader.smooth = true; }; $hxClasses["openfl.filters.GlowFilter"] = openfl_filters_GlowFilter; openfl_filters_GlowFilter.__name__ = ["openfl","filters","GlowFilter"]; openfl_filters_GlowFilter.__super__ = openfl_filters_BitmapFilter; openfl_filters_GlowFilter.prototype = $extend(openfl_filters_BitmapFilter.prototype,{ alpha: null ,blurX: null ,blurY: null ,color: null ,inner: null ,knockout: null ,quality: null ,strength: null ,__glowShader: null ,clone: function() { return new openfl_filters_GlowFilter(this.color,this.alpha,this.blurX,this.blurY,this.strength,this.quality,this.inner,this.knockout); } ,__growBounds: function(rect) { rect.x += -this.blurX * 0.5 * this.quality; rect.y += -this.blurY * 0.5 * this.quality; rect.width += this.blurX * 0.5 * this.quality; rect.height += this.blurY * 0.5 * this.quality; } ,__preparePass: function(pass) { if(pass == this.__passes - 1) return null; else { var even = pass % 2 == 0; var scale = Math.pow(0.5,pass >> 1); if(even) this.__glowShader.__uRadius.value[0] = scale * this.blurX; else this.__glowShader.__uRadius.value[0] = 0; if(even) this.__glowShader.__uRadius.value[1] = 0; else this.__glowShader.__uRadius.value[1] = scale * this.blurY; this.__glowShader.__uColor.value[0] = (this.color >> 16 & 255) / 255; this.__glowShader.__uColor.value[1] = (this.color >> 8 & 255) / 255; this.__glowShader.__uColor.value[2] = (this.color & 255) / 255; this.__glowShader.__uColor.value[3] = this.alpha; return this.__glowShader; } } ,__useLastFilter: function(pass) { return pass == this.__passes - 1; } ,set_knockout: function(value) { this.__saveLastFilter = !value; return this.knockout = value; } ,set_quality: function(value) { this.__passes = value * 2 + 1; return this.quality = value; } ,__class__: openfl_filters_GlowFilter ,__properties__: {set_quality:"set_quality",set_knockout:"set_knockout"} }); var openfl_filters__$GlowFilter_GlowShader = function() { this.__uColor = new openfl_display_GLShaderParameter("vec4",0); this.__uRadius = new openfl_display_GLShaderParameter("vec2",0); this.fragment = ["uniform vec4 uColor;","varying vec2 vBlurCoords[7];","void main(void)","{","float a = 0.0;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]).a * 0.00443;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]).a * 0.05399;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]).a * 0.24197;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]).a * 0.39894;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]).a * 0.24197;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]).a * 0.05399;","a += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]).a * 0.00443;","a *= uColor.a;","\tgl_FragColor = vec4(uColor.rgb * a, a);","}"]; this.vertex = ["uniform vec2 uRadius;","varying vec2 vBlurCoords[7];","void main(void)","{","vec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";","vBlurCoords[0] = " + openfl_display_Shader.aTexCoord + " - r * 1.2;","vBlurCoords[1] = " + openfl_display_Shader.aTexCoord + " - r * 0.8;","vBlurCoords[2] = " + openfl_display_Shader.aTexCoord + " - r * 0.4;","vBlurCoords[3] = " + openfl_display_Shader.aTexCoord + ";","vBlurCoords[4] = " + openfl_display_Shader.aTexCoord + " + r * 0.4;","vBlurCoords[5] = " + openfl_display_Shader.aTexCoord + " + r * 0.8;","vBlurCoords[6] = " + openfl_display_Shader.aTexCoord + " + r * 1.2;","" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";","" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";","gl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);","}"]; openfl_display_Shader.call(this); this.data.set("uRadius",this.__uRadius); this.data.set("uColor",this.__uColor); this.__buildVertexCode("uniform vec2 uRadius;\nvarying vec2 vBlurCoords[7];\nvoid main(void)\n{\nvec2 r = uRadius / " + openfl_display_Shader.uTextureSize + ";\nvBlurCoords[0] = " + openfl_display_Shader.aTexCoord + " - r * 1.2;\nvBlurCoords[1] = " + openfl_display_Shader.aTexCoord + " - r * 0.8;\nvBlurCoords[2] = " + openfl_display_Shader.aTexCoord + " - r * 0.4;\nvBlurCoords[3] = " + openfl_display_Shader.aTexCoord + ";\nvBlurCoords[4] = " + openfl_display_Shader.aTexCoord + " + r * 0.4;\nvBlurCoords[5] = " + openfl_display_Shader.aTexCoord + " + r * 0.8;\nvBlurCoords[6] = " + openfl_display_Shader.aTexCoord + " + r * 1.2;\n" + openfl_display_Shader.vTexCoord + " = " + openfl_display_Shader.aTexCoord + ";\n" + openfl_display_Shader.vColor + " = " + openfl_display_Shader.aColor + ";\ngl_Position = vec4((" + openfl_display_Shader.uProjectionMatrix + " * vec3(" + openfl_display_Shader.aPosition + ", 1.0)).xy, 0.0, 1.0);\n}"); this.__buildFragmentCode("uniform vec4 uColor;\nvarying vec2 vBlurCoords[7];\nvoid main(void)\n{\nfloat a = 0.0;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[0]).a * 0.00443;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[1]).a * 0.05399;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[2]).a * 0.24197;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[3]).a * 0.39894;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[4]).a * 0.24197;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[5]).a * 0.05399;\na += texture2D(" + openfl_display_Shader.uSampler + ", vBlurCoords[6]).a * 0.00443;\na *= uColor.a;\n\tgl_FragColor = vec4(uColor.rgb * a, a);\n}"); }; $hxClasses["openfl.filters._GlowFilter.GlowShader"] = openfl_filters__$GlowFilter_GlowShader; openfl_filters__$GlowFilter_GlowShader.__name__ = ["openfl","filters","_GlowFilter","GlowShader"]; openfl_filters__$GlowFilter_GlowShader.__super__ = openfl_display_Shader; openfl_filters__$GlowFilter_GlowShader.prototype = $extend(openfl_display_Shader.prototype,{ vertex: null ,fragment: null ,__uRadius: null ,get_uRadius: function() { return this.__uRadius.value; } ,set_uRadius: function(v) { return this.__uRadius.set_value(v); } ,__uColor: null ,get_uColor: function() { return this.__uColor.value; } ,set_uColor: function(v) { return this.__uColor.set_value(v); } ,__class__: openfl_filters__$GlowFilter_GlowShader ,__properties__: {set_uColor:"set_uColor",get_uColor:"get_uColor",set_uRadius:"set_uRadius",get_uRadius:"get_uRadius"} }); var openfl_geom_Matrix3D = function(v) { if(v != null && v.length == 16) this.rawData = v; else { var value = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; this.rawData = vectorData; } }; $hxClasses["openfl.geom.Matrix3D"] = openfl_geom_Matrix3D; openfl_geom_Matrix3D.__name__ = ["openfl","geom","Matrix3D"]; openfl_geom_Matrix3D.create2D = function(x,y,scale,rotation) { if(rotation == null) rotation = 0; if(scale == null) scale = 1; var theta = rotation * Math.PI / 180.0; var c = Math.cos(theta); var s = Math.sin(theta); return new openfl_geom_Matrix3D((function($this) { var $r; var value = [c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this))); }; openfl_geom_Matrix3D.createABCD = function(a,b,c,d,tx,ty) { return new openfl_geom_Matrix3D((function($this) { var $r; var value = [a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this))); }; openfl_geom_Matrix3D.createOrtho = function(x0,x1,y0,y1,zNear,zFar) { var sx = 1.0 / (x1 - x0); var sy = 1.0 / (y1 - y0); var sz = 1.0 / (zFar - zNear); return new openfl_geom_Matrix3D((function($this) { var $r; var value = [2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2. * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this))); }; openfl_geom_Matrix3D.interpolate = function(thisMat,toMat,percent) { var m = new openfl_geom_Matrix3D(); var _g = 0; while(_g < 16) { var i = _g++; var this1 = m.rawData; if(!this1.fixed) { if(i >= this1.length) this1.length = i + 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[i] = thisMat.rawData.data[i] + (toMat.rawData.data[i] - thisMat.rawData.data[i]) * percent; } return m; }; openfl_geom_Matrix3D.__getAxisRotation = function(x,y,z,degrees) { var m = new openfl_geom_Matrix3D(); var a1 = new openfl_geom_Vector3D(x,y,z); var rad = -degrees * (Math.PI / 180); var c = Math.cos(rad); var s = Math.sin(rad); var t = 1.0 - c; var this1 = m.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = c + a1.x * a1.x * t; var this3 = m.rawData; if(!this3.fixed) { if(5 >= this3.length) this3.length = 6; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[5] = c + a1.y * a1.y * t; var this5 = m.rawData; if(!this5.fixed) { if(10 >= this5.length) this5.length = 11; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[10] = c + a1.z * a1.z * t; var tmp1 = a1.x * a1.y * t; var tmp2 = a1.z * s; var this7 = m.rawData; if(!this7.fixed) { if(4 >= this7.length) this7.length = 5; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[4] = tmp1 + tmp2; var this9 = m.rawData; if(!this9.fixed) { if(1 >= this9.length) this9.length = 2; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[1] = tmp1 - tmp2; tmp1 = a1.x * a1.z * t; tmp2 = a1.y * s; var this11 = m.rawData; if(!this11.fixed) { if(8 >= this11.length) this11.length = 9; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[8] = tmp1 - tmp2; var this13 = m.rawData; if(!this13.fixed) { if(2 >= this13.length) this13.length = 3; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[2] = tmp1 + tmp2; tmp1 = a1.y * a1.z * t; tmp2 = a1.x * s; var this15 = m.rawData; if(!this15.fixed) { if(9 >= this15.length) this15.length = 10; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[9] = tmp1 + tmp2; var this17 = m.rawData; if(!this17.fixed) { if(6 >= this17.length) this17.length = 7; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[6] = tmp1 - tmp2; return m; }; openfl_geom_Matrix3D.prototype = { determinant: null ,rawData: null ,append: function(lhs) { var m111 = this.rawData.data[0]; var m121 = this.rawData.data[4]; var m131 = this.rawData.data[8]; var m141 = this.rawData.data[12]; var m112 = this.rawData.data[1]; var m122 = this.rawData.data[5]; var m132 = this.rawData.data[9]; var m142 = this.rawData.data[13]; var m113 = this.rawData.data[2]; var m123 = this.rawData.data[6]; var m133 = this.rawData.data[10]; var m143 = this.rawData.data[14]; var m114 = this.rawData.data[3]; var m124 = this.rawData.data[7]; var m134 = this.rawData.data[11]; var m144 = this.rawData.data[15]; var m211 = lhs.rawData.data[0]; var m221 = lhs.rawData.data[4]; var m231 = lhs.rawData.data[8]; var m241 = lhs.rawData.data[12]; var m212 = lhs.rawData.data[1]; var m222 = lhs.rawData.data[5]; var m232 = lhs.rawData.data[9]; var m242 = lhs.rawData.data[13]; var m213 = lhs.rawData.data[2]; var m223 = lhs.rawData.data[6]; var m233 = lhs.rawData.data[10]; var m243 = lhs.rawData.data[14]; var m214 = lhs.rawData.data[3]; var m224 = lhs.rawData.data[7]; var m234 = lhs.rawData.data[11]; var m244 = lhs.rawData.data[15]; var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241; var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242; var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243; var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244; var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242; var this13 = this.rawData; if(!this13.fixed) { if(6 >= this13.length) this13.length = 7; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243; var this15 = this.rawData; if(!this15.fixed) { if(7 >= this15.length) this15.length = 8; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244; var this17 = this.rawData; if(!this17.fixed) { if(8 >= this17.length) this17.length = 9; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241; var this19 = this.rawData; if(!this19.fixed) { if(9 >= this19.length) this19.length = 10; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243; var this23 = this.rawData; if(!this23.fixed) { if(11 >= this23.length) this23.length = 12; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244; var this25 = this.rawData; if(!this25.fixed) { if(12 >= this25.length) this25.length = 13; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241; var this27 = this.rawData; if(!this27.fixed) { if(13 >= this27.length) this27.length = 14; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242; var this29 = this.rawData; if(!this29.fixed) { if(14 >= this29.length) this29.length = 15; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244; } ,appendRotation: function(degrees,axis,pivotPoint) { var m = openfl_geom_Matrix3D.__getAxisRotation(axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; m.appendTranslation(p.x,p.y,p.z); } this.append(m); } ,appendScale: function(xScale,yScale,zScale) { this.append(new openfl_geom_Matrix3D((function($this) { var $r; var value = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this)))); } ,appendTranslation: function(x,y,z) { var this1 = this.rawData; if(!this1.fixed) { if(12 >= this1.length) this1.length = 13; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[12] = this.rawData.data[12] + x; var this3 = this.rawData; if(!this3.fixed) { if(13 >= this3.length) this3.length = 14; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[13] = this.rawData.data[13] + y; var this5 = this.rawData; if(!this5.fixed) { if(14 >= this5.length) this5.length = 15; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[14] = this.rawData.data[14] + z; } ,clone: function() { return new openfl_geom_Matrix3D((function($this) { var $r; var this1 = $this.rawData; var vectorData = new openfl_VectorData(); vectorData.length = this1.length; vectorData.fixed = this1.fixed; { var this2; this2 = new Array(this1.length); vectorData.data = this2; } haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); $r = vectorData; return $r; }(this))); } ,copyColumnFrom: function(column,vector3D) { switch(column) { case 0: var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = vector3D.x; var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[1] = vector3D.y; var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[2] = vector3D.z; var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[3] = vector3D.w; break; case 1: var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[4] = vector3D.x; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = vector3D.y; var this13 = this.rawData; if(!this13.fixed) { if(6 >= this13.length) this13.length = 7; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[6] = vector3D.z; var this15 = this.rawData; if(!this15.fixed) { if(7 >= this15.length) this15.length = 8; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[7] = vector3D.w; break; case 2: var this17 = this.rawData; if(!this17.fixed) { if(8 >= this17.length) this17.length = 9; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[8] = vector3D.x; var this19 = this.rawData; if(!this19.fixed) { if(9 >= this19.length) this19.length = 10; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[9] = vector3D.y; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = vector3D.z; var this23 = this.rawData; if(!this23.fixed) { if(11 >= this23.length) this23.length = 12; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[11] = vector3D.w; break; case 3: var this25 = this.rawData; if(!this25.fixed) { if(12 >= this25.length) this25.length = 13; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[12] = vector3D.x; var this27 = this.rawData; if(!this27.fixed) { if(13 >= this27.length) this27.length = 14; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[13] = vector3D.y; var this29 = this.rawData; if(!this29.fixed) { if(14 >= this29.length) this29.length = 15; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[14] = vector3D.z; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = vector3D.w; break; default: } } ,copyColumnTo: function(column,vector3D) { switch(column) { case 0: vector3D.x = this.rawData.data[0]; vector3D.y = this.rawData.data[1]; vector3D.z = this.rawData.data[2]; vector3D.w = this.rawData.data[3]; break; case 1: vector3D.x = this.rawData.data[4]; vector3D.y = this.rawData.data[5]; vector3D.z = this.rawData.data[6]; vector3D.w = this.rawData.data[7]; break; case 2: vector3D.x = this.rawData.data[8]; vector3D.y = this.rawData.data[9]; vector3D.z = this.rawData.data[10]; vector3D.w = this.rawData.data[11]; break; case 3: vector3D.x = this.rawData.data[12]; vector3D.y = this.rawData.data[13]; vector3D.z = this.rawData.data[14]; vector3D.w = this.rawData.data[15]; break; default: } } ,copyFrom: function(other) { var this1 = other.rawData; var vectorData = new openfl_VectorData(); vectorData.length = this1.length; vectorData.fixed = this1.fixed; var this2; this2 = new Array(this1.length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); this.rawData = vectorData; } ,copyRawDataFrom: function(vector,index,transpose) { if(transpose == null) transpose = false; if(index == null) index = 0; if(transpose) this.transpose(); var length = vector.length - index; var _g = 0; while(_g < length) { var i = _g++; var this1 = this.rawData; if(!this1.fixed) { if(i >= this1.length) this1.length = i + 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[i] = vector.data[i + index]; } if(transpose) this.transpose(); } ,copyRawDataTo: function(vector,index,transpose) { if(transpose == null) transpose = false; if(index == null) index = 0; if(transpose) this.transpose(); var _g1 = 0; var _g = this.rawData.length; while(_g1 < _g) { var i = _g1++; var key = i + index; if(!vector.fixed) { if(key >= vector.length) vector.length = key + 1; if(vector.data.length < vector.length) { var data; var this1; this1 = new Array(vector.data.length + 10); data = this1; haxe_ds__$Vector_Vector_$Impl_$.blit(vector.data,0,data,0,vector.data.length); vector.data = data; } } vector.data[key] = this.rawData.data[i]; } if(transpose) this.transpose(); } ,copyRowFrom: function(row,vector3D) { switch(row) { case 0: var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = vector3D.x; var this3 = this.rawData; if(!this3.fixed) { if(4 >= this3.length) this3.length = 5; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[4] = vector3D.y; var this5 = this.rawData; if(!this5.fixed) { if(8 >= this5.length) this5.length = 9; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[8] = vector3D.z; var this7 = this.rawData; if(!this7.fixed) { if(12 >= this7.length) this7.length = 13; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[12] = vector3D.w; break; case 1: var this9 = this.rawData; if(!this9.fixed) { if(1 >= this9.length) this9.length = 2; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[1] = vector3D.x; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = vector3D.y; var this13 = this.rawData; if(!this13.fixed) { if(9 >= this13.length) this13.length = 10; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[9] = vector3D.z; var this15 = this.rawData; if(!this15.fixed) { if(13 >= this15.length) this15.length = 14; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[13] = vector3D.w; break; case 2: var this17 = this.rawData; if(!this17.fixed) { if(2 >= this17.length) this17.length = 3; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[2] = vector3D.x; var this19 = this.rawData; if(!this19.fixed) { if(6 >= this19.length) this19.length = 7; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[6] = vector3D.y; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = vector3D.z; var this23 = this.rawData; if(!this23.fixed) { if(14 >= this23.length) this23.length = 15; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[14] = vector3D.w; break; case 3: var this25 = this.rawData; if(!this25.fixed) { if(3 >= this25.length) this25.length = 4; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[3] = vector3D.x; var this27 = this.rawData; if(!this27.fixed) { if(7 >= this27.length) this27.length = 8; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[7] = vector3D.y; var this29 = this.rawData; if(!this29.fixed) { if(11 >= this29.length) this29.length = 12; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[11] = vector3D.z; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = vector3D.w; break; default: } } ,copyRowTo: function(row,vector3D) { switch(row) { case 0: vector3D.x = this.rawData.data[0]; vector3D.y = this.rawData.data[4]; vector3D.z = this.rawData.data[8]; vector3D.w = this.rawData.data[12]; break; case 1: vector3D.x = this.rawData.data[1]; vector3D.y = this.rawData.data[5]; vector3D.z = this.rawData.data[9]; vector3D.w = this.rawData.data[13]; break; case 2: vector3D.x = this.rawData.data[2]; vector3D.y = this.rawData.data[6]; vector3D.z = this.rawData.data[10]; vector3D.w = this.rawData.data[14]; break; case 3: vector3D.x = this.rawData.data[3]; vector3D.y = this.rawData.data[7]; vector3D.z = this.rawData.data[11]; vector3D.w = this.rawData.data[15]; break; default: } } ,copyToMatrix3D: function(other) { var this1 = this.rawData; var vectorData = new openfl_VectorData(); vectorData.length = this1.length; vectorData.fixed = this1.fixed; var this2; this2 = new Array(this1.length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); other.rawData = vectorData; } ,decompose: function(orientationStyle) { if(orientationStyle == null) orientationStyle = 1; var vec; var this1; this1 = new openfl_VectorData(); var this2; this2 = new Array(0); this1.data = this2; this1.length = 0; this1.fixed = false; vec = this1; var m = this.clone(); var mr; var this3 = m.rawData; var vectorData = new openfl_VectorData(); vectorData.length = this3.length; vectorData.fixed = this3.fixed; var this4; this4 = new Array(this3.length); vectorData.data = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,vectorData.data,0,this3.length); mr = vectorData; var pos = new openfl_geom_Vector3D(mr.data[12],mr.data[13],mr.data[14]); { if(!mr.fixed) { if(12 >= mr.length) mr.length = 13; if(mr.data.length < mr.length) { var data; var this5; this5 = new Array(mr.data.length + 10); data = this5; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data,0,mr.data.length); mr.data = data; } } mr.data[12] = 0; } { if(!mr.fixed) { if(13 >= mr.length) mr.length = 14; if(mr.data.length < mr.length) { var data1; var this6; this6 = new Array(mr.data.length + 10); data1 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data1,0,mr.data.length); mr.data = data1; } } mr.data[13] = 0; } { if(!mr.fixed) { if(14 >= mr.length) mr.length = 15; if(mr.data.length < mr.length) { var data2; var this7; this7 = new Array(mr.data.length + 10); data2 = this7; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data2,0,mr.data.length); mr.data = data2; } } mr.data[14] = 0; } var scale = new openfl_geom_Vector3D(); scale.x = Math.sqrt(mr.data[0] * mr.data[0] + mr.data[1] * mr.data[1] + mr.data[2] * mr.data[2]); scale.y = Math.sqrt(mr.data[4] * mr.data[4] + mr.data[5] * mr.data[5] + mr.data[6] * mr.data[6]); scale.z = Math.sqrt(mr.data[8] * mr.data[8] + mr.data[9] * mr.data[9] + mr.data[10] * mr.data[10]); if(mr.data[0] * (mr.data[5] * mr.data[10] - mr.data[6] * mr.data[9]) - mr.data[1] * (mr.data[4] * mr.data[10] - mr.data[6] * mr.data[8]) + mr.data[2] * (mr.data[4] * mr.data[9] - mr.data[5] * mr.data[8]) < 0) scale.z = -scale.z; { if(!mr.fixed) { if(0 >= mr.length) mr.length = 1; if(mr.data.length < mr.length) { var data3; var this8; this8 = new Array(mr.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data3,0,mr.data.length); mr.data = data3; } } mr.data[0] = mr.data[0] / scale.x; } { if(!mr.fixed) { if(1 >= mr.length) mr.length = 2; if(mr.data.length < mr.length) { var data4; var this9; this9 = new Array(mr.data.length + 10); data4 = this9; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data4,0,mr.data.length); mr.data = data4; } } mr.data[1] = mr.data[1] / scale.x; } { if(!mr.fixed) { if(2 >= mr.length) mr.length = 3; if(mr.data.length < mr.length) { var data5; var this10; this10 = new Array(mr.data.length + 10); data5 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data5,0,mr.data.length); mr.data = data5; } } mr.data[2] = mr.data[2] / scale.x; } { if(!mr.fixed) { if(4 >= mr.length) mr.length = 5; if(mr.data.length < mr.length) { var data6; var this11; this11 = new Array(mr.data.length + 10); data6 = this11; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data6,0,mr.data.length); mr.data = data6; } } mr.data[4] = mr.data[4] / scale.y; } { if(!mr.fixed) { if(5 >= mr.length) mr.length = 6; if(mr.data.length < mr.length) { var data7; var this12; this12 = new Array(mr.data.length + 10); data7 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data7,0,mr.data.length); mr.data = data7; } } mr.data[5] = mr.data[5] / scale.y; } { if(!mr.fixed) { if(6 >= mr.length) mr.length = 7; if(mr.data.length < mr.length) { var data8; var this13; this13 = new Array(mr.data.length + 10); data8 = this13; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data8,0,mr.data.length); mr.data = data8; } } mr.data[6] = mr.data[6] / scale.y; } { if(!mr.fixed) { if(8 >= mr.length) mr.length = 9; if(mr.data.length < mr.length) { var data9; var this14; this14 = new Array(mr.data.length + 10); data9 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data9,0,mr.data.length); mr.data = data9; } } mr.data[8] = mr.data[8] / scale.z; } { if(!mr.fixed) { if(9 >= mr.length) mr.length = 10; if(mr.data.length < mr.length) { var data10; var this15; this15 = new Array(mr.data.length + 10); data10 = this15; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data10,0,mr.data.length); mr.data = data10; } } mr.data[9] = mr.data[9] / scale.z; } { if(!mr.fixed) { if(10 >= mr.length) mr.length = 11; if(mr.data.length < mr.length) { var data11; var this16; this16 = new Array(mr.data.length + 10); data11 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(mr.data,0,data11,0,mr.data.length); mr.data = data11; } } mr.data[10] = mr.data[10] / scale.z; } var rot = new openfl_geom_Vector3D(); if(orientationStyle != null) switch(orientationStyle) { case 0: rot.w = Math.acos((mr.data[0] + mr.data[5] + mr.data[10] - 1) / 2); var len = Math.sqrt((mr.data[6] - mr.data[9]) * (mr.data[6] - mr.data[9]) + (mr.data[8] - mr.data[2]) * (mr.data[8] - mr.data[2]) + (mr.data[1] - mr.data[4]) * (mr.data[1] - mr.data[4])); if(len != 0) { rot.x = (mr.data[6] - mr.data[9]) / len; rot.y = (mr.data[8] - mr.data[2]) / len; rot.z = (mr.data[1] - mr.data[4]) / len; } else rot.x = rot.y = rot.z = 0; break; case 2: var tr = mr.data[0] + mr.data[5] + mr.data[10]; if(tr > 0) { rot.w = Math.sqrt(1 + tr) / 2; rot.x = (mr.data[6] - mr.data[9]) / (4 * rot.w); rot.y = (mr.data[8] - mr.data[2]) / (4 * rot.w); rot.z = (mr.data[1] - mr.data[4]) / (4 * rot.w); } else if(mr.data[0] > mr.data[5] && mr.data[0] > mr.data[10]) { rot.x = Math.sqrt(1 + mr.data[0] - mr.data[5] - mr.data[10]) / 2; rot.w = (mr.data[6] - mr.data[9]) / (4 * rot.x); rot.y = (mr.data[1] + mr.data[4]) / (4 * rot.x); rot.z = (mr.data[8] + mr.data[2]) / (4 * rot.x); } else if(mr.data[5] > mr.data[10]) { rot.y = Math.sqrt(1 + mr.data[5] - mr.data[0] - mr.data[10]) / 2; rot.x = (mr.data[1] + mr.data[4]) / (4 * rot.y); rot.w = (mr.data[8] - mr.data[2]) / (4 * rot.y); rot.z = (mr.data[6] + mr.data[9]) / (4 * rot.y); } else { rot.z = Math.sqrt(1 + mr.data[10] - mr.data[0] - mr.data[5]) / 2; rot.x = (mr.data[8] + mr.data[2]) / (4 * rot.z); rot.y = (mr.data[6] + mr.data[9]) / (4 * rot.z); rot.w = (mr.data[1] - mr.data[4]) / (4 * rot.z); } break; case 1: rot.y = Math.asin(-mr.data[2]); if(mr.data[2] != 1 && mr.data[2] != -1) { rot.x = Math.atan2(mr.data[6],mr.data[10]); rot.z = Math.atan2(mr.data[1],mr.data[0]); } else { rot.z = 0; rot.x = Math.atan2(mr.data[4],mr.data[5]); } break; } if(!vec.fixed) { vec.length++; if(vec.data.length < vec.length) { var data12; var this17; this17 = new Array(vec.data.length + 10); data12 = this17; haxe_ds__$Vector_Vector_$Impl_$.blit(vec.data,0,data12,0,vec.data.length); vec.data = data12; } vec.data[vec.length - 1] = pos; } vec.length; if(!vec.fixed) { vec.length++; if(vec.data.length < vec.length) { var data13; var this18; this18 = new Array(vec.data.length + 10); data13 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(vec.data,0,data13,0,vec.data.length); vec.data = data13; } vec.data[vec.length - 1] = rot; } vec.length; if(!vec.fixed) { vec.length++; if(vec.data.length < vec.length) { var data14; var this19; this19 = new Array(vec.data.length + 10); data14 = this19; haxe_ds__$Vector_Vector_$Impl_$.blit(vec.data,0,data14,0,vec.data.length); vec.data = data14; } vec.data[vec.length - 1] = scale; } vec.length; return vec; } ,deltaTransformVector: function(v) { var x = v.x; var y = v.y; var z = v.z; return new openfl_geom_Vector3D(x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[3],x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[7],x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[11],0); } ,identity: function() { { var value = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; this.rawData = vectorData; } } ,interpolateTo: function(toMat,percent) { var _g = 0; while(_g < 16) { var i = _g++; var this1 = this.rawData; if(!this1.fixed) { if(i >= this1.length) this1.length = i + 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[i] = this.rawData.data[i] + (toMat.rawData.data[i] - this.rawData.data[i]) * percent; } } ,invert: function() { var d = this.get_determinant(); var invertable = Math.abs(d) > 0.00000000001; if(invertable) { d = 1 / d; var m11 = this.rawData.data[0]; var m21 = this.rawData.data[4]; var m31 = this.rawData.data[8]; var m41 = this.rawData.data[12]; var m12 = this.rawData.data[1]; var m22 = this.rawData.data[5]; var m32 = this.rawData.data[9]; var m42 = this.rawData.data[13]; var m13 = this.rawData.data[2]; var m23 = this.rawData.data[6]; var m33 = this.rawData.data[10]; var m43 = this.rawData.data[14]; var m14 = this.rawData.data[3]; var m24 = this.rawData.data[7]; var m34 = this.rawData.data[11]; var m44 = this.rawData.data[15]; var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24)); var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[1] = -d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14)); var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[2] = d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14)); var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[3] = -d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14)); var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[4] = -d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24)); var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14)); var this13 = this.rawData; if(!this13.fixed) { if(6 >= this13.length) this13.length = 7; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[6] = -d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14)); var this15 = this.rawData; if(!this15.fixed) { if(7 >= this15.length) this15.length = 8; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[7] = d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14)); var this17 = this.rawData; if(!this17.fixed) { if(8 >= this17.length) this17.length = 9; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[8] = d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24)); var this19 = this.rawData; if(!this19.fixed) { if(9 >= this19.length) this19.length = 10; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[9] = -d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14)); var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14)); var this23 = this.rawData; if(!this23.fixed) { if(11 >= this23.length) this23.length = 12; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[11] = -d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14)); var this25 = this.rawData; if(!this25.fixed) { if(12 >= this25.length) this25.length = 13; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[12] = -d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23)); var this27 = this.rawData; if(!this27.fixed) { if(13 >= this27.length) this27.length = 14; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[13] = d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13)); var this29 = this.rawData; if(!this29.fixed) { if(14 >= this29.length) this29.length = 15; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[14] = -d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13)); var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13)); } return invertable; } ,pointAt: function(pos,at,up) { if(at == null) at = new openfl_geom_Vector3D(0,0,-1); if(up == null) up = new openfl_geom_Vector3D(0,-1,0); var dir = at.subtract(pos); var vup = up.clone(); var right; dir.normalize(); vup.normalize(); var dir2 = dir.clone(); dir2.scaleBy(vup.dotProduct(dir)); vup = vup.subtract(dir2); if(vup.get_length() > 0) vup.normalize(); else if(dir.x != 0) vup = new openfl_geom_Vector3D(-dir.y,dir.x,0); else vup = new openfl_geom_Vector3D(1,0,0); right = vup.crossProduct(dir); right.normalize(); var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = right.x; var this3 = this.rawData; if(!this3.fixed) { if(4 >= this3.length) this3.length = 5; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[4] = right.y; var this5 = this.rawData; if(!this5.fixed) { if(8 >= this5.length) this5.length = 9; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[8] = right.z; var this7 = this.rawData; if(!this7.fixed) { if(12 >= this7.length) this7.length = 13; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[12] = 0.0; var this9 = this.rawData; if(!this9.fixed) { if(1 >= this9.length) this9.length = 2; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[1] = vup.x; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = vup.y; var this13 = this.rawData; if(!this13.fixed) { if(9 >= this13.length) this13.length = 10; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[9] = vup.z; var this15 = this.rawData; if(!this15.fixed) { if(13 >= this15.length) this15.length = 14; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[13] = 0.0; var this17 = this.rawData; if(!this17.fixed) { if(2 >= this17.length) this17.length = 3; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[2] = dir.x; var this19 = this.rawData; if(!this19.fixed) { if(6 >= this19.length) this19.length = 7; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[6] = dir.y; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = dir.z; var this23 = this.rawData; if(!this23.fixed) { if(14 >= this23.length) this23.length = 15; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[14] = 0.0; var this25 = this.rawData; if(!this25.fixed) { if(3 >= this25.length) this25.length = 4; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[3] = pos.x; var this27 = this.rawData; if(!this27.fixed) { if(7 >= this27.length) this27.length = 8; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[7] = pos.y; var this29 = this.rawData; if(!this29.fixed) { if(11 >= this29.length) this29.length = 12; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[11] = pos.z; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = 1.0; } ,prepend: function(rhs) { var m111 = rhs.rawData.data[0]; var m121 = rhs.rawData.data[4]; var m131 = rhs.rawData.data[8]; var m141 = rhs.rawData.data[12]; var m112 = rhs.rawData.data[1]; var m122 = rhs.rawData.data[5]; var m132 = rhs.rawData.data[9]; var m142 = rhs.rawData.data[13]; var m113 = rhs.rawData.data[2]; var m123 = rhs.rawData.data[6]; var m133 = rhs.rawData.data[10]; var m143 = rhs.rawData.data[14]; var m114 = rhs.rawData.data[3]; var m124 = rhs.rawData.data[7]; var m134 = rhs.rawData.data[11]; var m144 = rhs.rawData.data[15]; var m211 = this.rawData.data[0]; var m221 = this.rawData.data[4]; var m231 = this.rawData.data[8]; var m241 = this.rawData.data[12]; var m212 = this.rawData.data[1]; var m222 = this.rawData.data[5]; var m232 = this.rawData.data[9]; var m242 = this.rawData.data[13]; var m213 = this.rawData.data[2]; var m223 = this.rawData.data[6]; var m233 = this.rawData.data[10]; var m243 = this.rawData.data[14]; var m214 = this.rawData.data[3]; var m224 = this.rawData.data[7]; var m234 = this.rawData.data[11]; var m244 = this.rawData.data[15]; var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241; var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242; var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243; var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244; var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242; var this13 = this.rawData; if(!this13.fixed) { if(6 >= this13.length) this13.length = 7; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243; var this15 = this.rawData; if(!this15.fixed) { if(7 >= this15.length) this15.length = 8; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244; var this17 = this.rawData; if(!this17.fixed) { if(8 >= this17.length) this17.length = 9; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241; var this19 = this.rawData; if(!this19.fixed) { if(9 >= this19.length) this19.length = 10; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243; var this23 = this.rawData; if(!this23.fixed) { if(11 >= this23.length) this23.length = 12; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244; var this25 = this.rawData; if(!this25.fixed) { if(12 >= this25.length) this25.length = 13; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241; var this27 = this.rawData; if(!this27.fixed) { if(13 >= this27.length) this27.length = 14; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242; var this29 = this.rawData; if(!this29.fixed) { if(14 >= this29.length) this29.length = 15; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244; } ,prependRotation: function(degrees,axis,pivotPoint) { var m = openfl_geom_Matrix3D.__getAxisRotation(axis.x,axis.y,axis.z,degrees); if(pivotPoint != null) { var p = pivotPoint; m.appendTranslation(p.x,p.y,p.z); } this.prepend(m); } ,prependScale: function(xScale,yScale,zScale) { this.prepend(new openfl_geom_Matrix3D((function($this) { var $r; var value = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this)))); } ,prependTranslation: function(x,y,z) { var m = new openfl_geom_Matrix3D(); m.set_position(new openfl_geom_Vector3D(x,y,z)); this.prepend(m); } ,recompose: function(components,orientationStyle) { if(components.length < 3 || components.data[2].x == 0 || components.data[2].y == 0 || components.data[2].z == 0) return false; if(orientationStyle == null) orientationStyle = 1; this.identity(); var scale = []; scale[0] = scale[1] = scale[2] = components.data[2].x; scale[4] = scale[5] = scale[6] = components.data[2].y; scale[8] = scale[9] = scale[10] = components.data[2].z; if(orientationStyle != null) switch(orientationStyle) { case 1: var cx = Math.cos(components.data[1].x); var cy = Math.cos(components.data[1].y); var cz = Math.cos(components.data[1].z); var sx = Math.sin(components.data[1].x); var sy = Math.sin(components.data[1].y); var sz = Math.sin(components.data[1].z); var this1 = this.rawData; if(!this1.fixed) { if(0 >= this1.length) this1.length = 1; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[0] = cy * cz * scale[0]; var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[1] = cy * sz * scale[1]; var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[2] = -sy * scale[2]; var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data3; var this8; this8 = new Array(this7.data.length + 10); data3 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data3,0,this7.data.length); this7.data = data3; } } this7.data[3] = 0; var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data4; var this10; this10 = new Array(this9.data.length + 10); data4 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data4,0,this9.data.length); this9.data = data4; } } this9.data[4] = (sx * sy * cz - cx * sz) * scale[4]; var this11 = this.rawData; if(!this11.fixed) { if(5 >= this11.length) this11.length = 6; if(this11.data.length < this11.length) { var data5; var this12; this12 = new Array(this11.data.length + 10); data5 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data5,0,this11.data.length); this11.data = data5; } } this11.data[5] = (sx * sy * sz + cx * cz) * scale[5]; var this13 = this.rawData; if(!this13.fixed) { if(6 >= this13.length) this13.length = 7; if(this13.data.length < this13.length) { var data6; var this14; this14 = new Array(this13.data.length + 10); data6 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data6,0,this13.data.length); this13.data = data6; } } this13.data[6] = sx * cy * scale[6]; var this15 = this.rawData; if(!this15.fixed) { if(7 >= this15.length) this15.length = 8; if(this15.data.length < this15.length) { var data7; var this16; this16 = new Array(this15.data.length + 10); data7 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data7,0,this15.data.length); this15.data = data7; } } this15.data[7] = 0; var this17 = this.rawData; if(!this17.fixed) { if(8 >= this17.length) this17.length = 9; if(this17.data.length < this17.length) { var data8; var this18; this18 = new Array(this17.data.length + 10); data8 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data8,0,this17.data.length); this17.data = data8; } } this17.data[8] = (cx * sy * cz + sx * sz) * scale[8]; var this19 = this.rawData; if(!this19.fixed) { if(9 >= this19.length) this19.length = 10; if(this19.data.length < this19.length) { var data9; var this20; this20 = new Array(this19.data.length + 10); data9 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data9,0,this19.data.length); this19.data = data9; } } this19.data[9] = (cx * sy * sz - sx * cz) * scale[9]; var this21 = this.rawData; if(!this21.fixed) { if(10 >= this21.length) this21.length = 11; if(this21.data.length < this21.length) { var data10; var this22; this22 = new Array(this21.data.length + 10); data10 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data10,0,this21.data.length); this21.data = data10; } } this21.data[10] = cx * cy * scale[10]; var this23 = this.rawData; if(!this23.fixed) { if(11 >= this23.length) this23.length = 12; if(this23.data.length < this23.length) { var data11; var this24; this24 = new Array(this23.data.length + 10); data11 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data11,0,this23.data.length); this23.data = data11; } } this23.data[11] = 0; var this25 = this.rawData; if(!this25.fixed) { if(12 >= this25.length) this25.length = 13; if(this25.data.length < this25.length) { var data12; var this26; this26 = new Array(this25.data.length + 10); data12 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data12,0,this25.data.length); this25.data = data12; } } this25.data[12] = components.data[0].x; var this27 = this.rawData; if(!this27.fixed) { if(13 >= this27.length) this27.length = 14; if(this27.data.length < this27.length) { var data13; var this28; this28 = new Array(this27.data.length + 10); data13 = this28; haxe_ds__$Vector_Vector_$Impl_$.blit(this27.data,0,data13,0,this27.data.length); this27.data = data13; } } this27.data[13] = components.data[0].y; var this29 = this.rawData; if(!this29.fixed) { if(14 >= this29.length) this29.length = 15; if(this29.data.length < this29.length) { var data14; var this30; this30 = new Array(this29.data.length + 10); data14 = this30; haxe_ds__$Vector_Vector_$Impl_$.blit(this29.data,0,data14,0,this29.data.length); this29.data = data14; } } this29.data[14] = components.data[0].z; var this31 = this.rawData; if(!this31.fixed) { if(15 >= this31.length) this31.length = 16; if(this31.data.length < this31.length) { var data15; var this32; this32 = new Array(this31.data.length + 10); data15 = this32; haxe_ds__$Vector_Vector_$Impl_$.blit(this31.data,0,data15,0,this31.data.length); this31.data = data15; } } this31.data[15] = 1; break; default: var x = components.data[1].x; var y = components.data[1].y; var z = components.data[1].z; var w = components.data[1].w; if(Type.enumEq(orientationStyle,0)) { x *= Math.sin(w / 2); y *= Math.sin(w / 2); z *= Math.sin(w / 2); w = Math.cos(w / 2); } var this33 = this.rawData; if(!this33.fixed) { if(0 >= this33.length) this33.length = 1; if(this33.data.length < this33.length) { var data16; var this34; this34 = new Array(this33.data.length + 10); data16 = this34; haxe_ds__$Vector_Vector_$Impl_$.blit(this33.data,0,data16,0,this33.data.length); this33.data = data16; } } this33.data[0] = (1 - 2 * y * y - 2 * z * z) * scale[0]; var this35 = this.rawData; if(!this35.fixed) { if(1 >= this35.length) this35.length = 2; if(this35.data.length < this35.length) { var data17; var this36; this36 = new Array(this35.data.length + 10); data17 = this36; haxe_ds__$Vector_Vector_$Impl_$.blit(this35.data,0,data17,0,this35.data.length); this35.data = data17; } } this35.data[1] = (2 * x * y + 2 * w * z) * scale[1]; var this37 = this.rawData; if(!this37.fixed) { if(2 >= this37.length) this37.length = 3; if(this37.data.length < this37.length) { var data18; var this38; this38 = new Array(this37.data.length + 10); data18 = this38; haxe_ds__$Vector_Vector_$Impl_$.blit(this37.data,0,data18,0,this37.data.length); this37.data = data18; } } this37.data[2] = (2 * x * z - 2 * w * y) * scale[2]; var this39 = this.rawData; if(!this39.fixed) { if(3 >= this39.length) this39.length = 4; if(this39.data.length < this39.length) { var data19; var this40; this40 = new Array(this39.data.length + 10); data19 = this40; haxe_ds__$Vector_Vector_$Impl_$.blit(this39.data,0,data19,0,this39.data.length); this39.data = data19; } } this39.data[3] = 0; var this41 = this.rawData; if(!this41.fixed) { if(4 >= this41.length) this41.length = 5; if(this41.data.length < this41.length) { var data20; var this42; this42 = new Array(this41.data.length + 10); data20 = this42; haxe_ds__$Vector_Vector_$Impl_$.blit(this41.data,0,data20,0,this41.data.length); this41.data = data20; } } this41.data[4] = (2 * x * y - 2 * w * z) * scale[4]; var this43 = this.rawData; if(!this43.fixed) { if(5 >= this43.length) this43.length = 6; if(this43.data.length < this43.length) { var data21; var this44; this44 = new Array(this43.data.length + 10); data21 = this44; haxe_ds__$Vector_Vector_$Impl_$.blit(this43.data,0,data21,0,this43.data.length); this43.data = data21; } } this43.data[5] = (1 - 2 * x * x - 2 * z * z) * scale[5]; var this45 = this.rawData; if(!this45.fixed) { if(6 >= this45.length) this45.length = 7; if(this45.data.length < this45.length) { var data22; var this46; this46 = new Array(this45.data.length + 10); data22 = this46; haxe_ds__$Vector_Vector_$Impl_$.blit(this45.data,0,data22,0,this45.data.length); this45.data = data22; } } this45.data[6] = (2 * y * z + 2 * w * x) * scale[6]; var this47 = this.rawData; if(!this47.fixed) { if(7 >= this47.length) this47.length = 8; if(this47.data.length < this47.length) { var data23; var this48; this48 = new Array(this47.data.length + 10); data23 = this48; haxe_ds__$Vector_Vector_$Impl_$.blit(this47.data,0,data23,0,this47.data.length); this47.data = data23; } } this47.data[7] = 0; var this49 = this.rawData; if(!this49.fixed) { if(8 >= this49.length) this49.length = 9; if(this49.data.length < this49.length) { var data24; var this50; this50 = new Array(this49.data.length + 10); data24 = this50; haxe_ds__$Vector_Vector_$Impl_$.blit(this49.data,0,data24,0,this49.data.length); this49.data = data24; } } this49.data[8] = (2 * x * z + 2 * w * y) * scale[8]; var this51 = this.rawData; if(!this51.fixed) { if(9 >= this51.length) this51.length = 10; if(this51.data.length < this51.length) { var data25; var this52; this52 = new Array(this51.data.length + 10); data25 = this52; haxe_ds__$Vector_Vector_$Impl_$.blit(this51.data,0,data25,0,this51.data.length); this51.data = data25; } } this51.data[9] = (2 * y * z - 2 * w * x) * scale[9]; var this53 = this.rawData; if(!this53.fixed) { if(10 >= this53.length) this53.length = 11; if(this53.data.length < this53.length) { var data26; var this54; this54 = new Array(this53.data.length + 10); data26 = this54; haxe_ds__$Vector_Vector_$Impl_$.blit(this53.data,0,data26,0,this53.data.length); this53.data = data26; } } this53.data[10] = (1 - 2 * x * x - 2 * y * y) * scale[10]; var this55 = this.rawData; if(!this55.fixed) { if(11 >= this55.length) this55.length = 12; if(this55.data.length < this55.length) { var data27; var this56; this56 = new Array(this55.data.length + 10); data27 = this56; haxe_ds__$Vector_Vector_$Impl_$.blit(this55.data,0,data27,0,this55.data.length); this55.data = data27; } } this55.data[11] = 0; var this57 = this.rawData; if(!this57.fixed) { if(12 >= this57.length) this57.length = 13; if(this57.data.length < this57.length) { var data28; var this58; this58 = new Array(this57.data.length + 10); data28 = this58; haxe_ds__$Vector_Vector_$Impl_$.blit(this57.data,0,data28,0,this57.data.length); this57.data = data28; } } this57.data[12] = components.data[0].x; var this59 = this.rawData; if(!this59.fixed) { if(13 >= this59.length) this59.length = 14; if(this59.data.length < this59.length) { var data29; var this60; this60 = new Array(this59.data.length + 10); data29 = this60; haxe_ds__$Vector_Vector_$Impl_$.blit(this59.data,0,data29,0,this59.data.length); this59.data = data29; } } this59.data[13] = components.data[0].y; var this61 = this.rawData; if(!this61.fixed) { if(14 >= this61.length) this61.length = 15; if(this61.data.length < this61.length) { var data30; var this62; this62 = new Array(this61.data.length + 10); data30 = this62; haxe_ds__$Vector_Vector_$Impl_$.blit(this61.data,0,data30,0,this61.data.length); this61.data = data30; } } this61.data[14] = components.data[0].z; var this63 = this.rawData; if(!this63.fixed) { if(15 >= this63.length) this63.length = 16; if(this63.data.length < this63.length) { var data31; var this64; this64 = new Array(this63.data.length + 10); data31 = this64; haxe_ds__$Vector_Vector_$Impl_$.blit(this63.data,0,data31,0,this63.data.length); this63.data = data31; } } this63.data[15] = 1; } else { var x = components.data[1].x; var y = components.data[1].y; var z = components.data[1].z; var w = components.data[1].w; if(Type.enumEq(orientationStyle,0)) { x *= Math.sin(w / 2); y *= Math.sin(w / 2); z *= Math.sin(w / 2); w = Math.cos(w / 2); } var this33 = this.rawData; if(!this33.fixed) { if(0 >= this33.length) this33.length = 1; if(this33.data.length < this33.length) { var data16; var this34; this34 = new Array(this33.data.length + 10); data16 = this34; haxe_ds__$Vector_Vector_$Impl_$.blit(this33.data,0,data16,0,this33.data.length); this33.data = data16; } } this33.data[0] = (1 - 2 * y * y - 2 * z * z) * scale[0]; var this35 = this.rawData; if(!this35.fixed) { if(1 >= this35.length) this35.length = 2; if(this35.data.length < this35.length) { var data17; var this36; this36 = new Array(this35.data.length + 10); data17 = this36; haxe_ds__$Vector_Vector_$Impl_$.blit(this35.data,0,data17,0,this35.data.length); this35.data = data17; } } this35.data[1] = (2 * x * y + 2 * w * z) * scale[1]; var this37 = this.rawData; if(!this37.fixed) { if(2 >= this37.length) this37.length = 3; if(this37.data.length < this37.length) { var data18; var this38; this38 = new Array(this37.data.length + 10); data18 = this38; haxe_ds__$Vector_Vector_$Impl_$.blit(this37.data,0,data18,0,this37.data.length); this37.data = data18; } } this37.data[2] = (2 * x * z - 2 * w * y) * scale[2]; var this39 = this.rawData; if(!this39.fixed) { if(3 >= this39.length) this39.length = 4; if(this39.data.length < this39.length) { var data19; var this40; this40 = new Array(this39.data.length + 10); data19 = this40; haxe_ds__$Vector_Vector_$Impl_$.blit(this39.data,0,data19,0,this39.data.length); this39.data = data19; } } this39.data[3] = 0; var this41 = this.rawData; if(!this41.fixed) { if(4 >= this41.length) this41.length = 5; if(this41.data.length < this41.length) { var data20; var this42; this42 = new Array(this41.data.length + 10); data20 = this42; haxe_ds__$Vector_Vector_$Impl_$.blit(this41.data,0,data20,0,this41.data.length); this41.data = data20; } } this41.data[4] = (2 * x * y - 2 * w * z) * scale[4]; var this43 = this.rawData; if(!this43.fixed) { if(5 >= this43.length) this43.length = 6; if(this43.data.length < this43.length) { var data21; var this44; this44 = new Array(this43.data.length + 10); data21 = this44; haxe_ds__$Vector_Vector_$Impl_$.blit(this43.data,0,data21,0,this43.data.length); this43.data = data21; } } this43.data[5] = (1 - 2 * x * x - 2 * z * z) * scale[5]; var this45 = this.rawData; if(!this45.fixed) { if(6 >= this45.length) this45.length = 7; if(this45.data.length < this45.length) { var data22; var this46; this46 = new Array(this45.data.length + 10); data22 = this46; haxe_ds__$Vector_Vector_$Impl_$.blit(this45.data,0,data22,0,this45.data.length); this45.data = data22; } } this45.data[6] = (2 * y * z + 2 * w * x) * scale[6]; var this47 = this.rawData; if(!this47.fixed) { if(7 >= this47.length) this47.length = 8; if(this47.data.length < this47.length) { var data23; var this48; this48 = new Array(this47.data.length + 10); data23 = this48; haxe_ds__$Vector_Vector_$Impl_$.blit(this47.data,0,data23,0,this47.data.length); this47.data = data23; } } this47.data[7] = 0; var this49 = this.rawData; if(!this49.fixed) { if(8 >= this49.length) this49.length = 9; if(this49.data.length < this49.length) { var data24; var this50; this50 = new Array(this49.data.length + 10); data24 = this50; haxe_ds__$Vector_Vector_$Impl_$.blit(this49.data,0,data24,0,this49.data.length); this49.data = data24; } } this49.data[8] = (2 * x * z + 2 * w * y) * scale[8]; var this51 = this.rawData; if(!this51.fixed) { if(9 >= this51.length) this51.length = 10; if(this51.data.length < this51.length) { var data25; var this52; this52 = new Array(this51.data.length + 10); data25 = this52; haxe_ds__$Vector_Vector_$Impl_$.blit(this51.data,0,data25,0,this51.data.length); this51.data = data25; } } this51.data[9] = (2 * y * z - 2 * w * x) * scale[9]; var this53 = this.rawData; if(!this53.fixed) { if(10 >= this53.length) this53.length = 11; if(this53.data.length < this53.length) { var data26; var this54; this54 = new Array(this53.data.length + 10); data26 = this54; haxe_ds__$Vector_Vector_$Impl_$.blit(this53.data,0,data26,0,this53.data.length); this53.data = data26; } } this53.data[10] = (1 - 2 * x * x - 2 * y * y) * scale[10]; var this55 = this.rawData; if(!this55.fixed) { if(11 >= this55.length) this55.length = 12; if(this55.data.length < this55.length) { var data27; var this56; this56 = new Array(this55.data.length + 10); data27 = this56; haxe_ds__$Vector_Vector_$Impl_$.blit(this55.data,0,data27,0,this55.data.length); this55.data = data27; } } this55.data[11] = 0; var this57 = this.rawData; if(!this57.fixed) { if(12 >= this57.length) this57.length = 13; if(this57.data.length < this57.length) { var data28; var this58; this58 = new Array(this57.data.length + 10); data28 = this58; haxe_ds__$Vector_Vector_$Impl_$.blit(this57.data,0,data28,0,this57.data.length); this57.data = data28; } } this57.data[12] = components.data[0].x; var this59 = this.rawData; if(!this59.fixed) { if(13 >= this59.length) this59.length = 14; if(this59.data.length < this59.length) { var data29; var this60; this60 = new Array(this59.data.length + 10); data29 = this60; haxe_ds__$Vector_Vector_$Impl_$.blit(this59.data,0,data29,0,this59.data.length); this59.data = data29; } } this59.data[13] = components.data[0].y; var this61 = this.rawData; if(!this61.fixed) { if(14 >= this61.length) this61.length = 15; if(this61.data.length < this61.length) { var data30; var this62; this62 = new Array(this61.data.length + 10); data30 = this62; haxe_ds__$Vector_Vector_$Impl_$.blit(this61.data,0,data30,0,this61.data.length); this61.data = data30; } } this61.data[14] = components.data[0].z; var this63 = this.rawData; if(!this63.fixed) { if(15 >= this63.length) this63.length = 16; if(this63.data.length < this63.length) { var data31; var this64; this64 = new Array(this63.data.length + 10); data31 = this64; haxe_ds__$Vector_Vector_$Impl_$.blit(this63.data,0,data31,0,this63.data.length); this63.data = data31; } } this63.data[15] = 1; } if(components.data[2].x == 0) { var this65 = this.rawData; if(!this65.fixed) { if(0 >= this65.length) this65.length = 1; if(this65.data.length < this65.length) { var data32; var this66; this66 = new Array(this65.data.length + 10); data32 = this66; haxe_ds__$Vector_Vector_$Impl_$.blit(this65.data,0,data32,0,this65.data.length); this65.data = data32; } } this65.data[0] = 1e-15; } if(components.data[2].y == 0) { var this67 = this.rawData; if(!this67.fixed) { if(5 >= this67.length) this67.length = 6; if(this67.data.length < this67.length) { var data33; var this68; this68 = new Array(this67.data.length + 10); data33 = this68; haxe_ds__$Vector_Vector_$Impl_$.blit(this67.data,0,data33,0,this67.data.length); this67.data = data33; } } this67.data[5] = 1e-15; } if(components.data[2].z == 0) { var this69 = this.rawData; if(!this69.fixed) { if(10 >= this69.length) this69.length = 11; if(this69.data.length < this69.length) { var data34; var this70; this70 = new Array(this69.data.length + 10); data34 = this70; haxe_ds__$Vector_Vector_$Impl_$.blit(this69.data,0,data34,0,this69.data.length); this69.data = data34; } } this69.data[10] = 1e-15; } return !(components.data[2].x == 0 || components.data[2].y == 0 || components.data[2].y == 0); } ,transformVector: function(v) { var x = v.x; var y = v.y; var z = v.z; return new openfl_geom_Vector3D(x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[12],x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[13],x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[14],x * this.rawData.data[3] + y * this.rawData.data[7] + z * this.rawData.data[11] + this.rawData.data[15]); } ,transformVectors: function(vin,vout) { var i = 0; var x; var y; var z; while(i + 3 <= vin.length) { x = vin.data[i]; y = vin.data[i + 1]; z = vin.data[i + 2]; { if(!vout.fixed) { if(i >= vout.length) vout.length = i + 1; if(vout.data.length < vout.length) { var data; var this1; this1 = new Array(vout.data.length + 10); data = this1; haxe_ds__$Vector_Vector_$Impl_$.blit(vout.data,0,data,0,vout.data.length); vout.data = data; } } vout.data[i] = x * this.rawData.data[0] + y * this.rawData.data[4] + z * this.rawData.data[8] + this.rawData.data[12]; } var key = i + 1; if(!vout.fixed) { if(key >= vout.length) vout.length = key + 1; if(vout.data.length < vout.length) { var data1; var this2; this2 = new Array(vout.data.length + 10); data1 = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(vout.data,0,data1,0,vout.data.length); vout.data = data1; } } vout.data[key] = x * this.rawData.data[1] + y * this.rawData.data[5] + z * this.rawData.data[9] + this.rawData.data[13]; var key1 = i + 2; if(!vout.fixed) { if(key1 >= vout.length) vout.length = key1 + 1; if(vout.data.length < vout.length) { var data2; var this3; this3 = new Array(vout.data.length + 10); data2 = this3; haxe_ds__$Vector_Vector_$Impl_$.blit(vout.data,0,data2,0,vout.data.length); vout.data = data2; } } vout.data[key1] = x * this.rawData.data[2] + y * this.rawData.data[6] + z * this.rawData.data[10] + this.rawData.data[14]; i += 3; } } ,transpose: function() { var oRawData; var this1 = this.rawData; var vectorData = new openfl_VectorData(); vectorData.length = this1.length; vectorData.fixed = this1.fixed; var this2; this2 = new Array(this1.length); vectorData.data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,vectorData.data,0,this1.length); oRawData = vectorData; var this3 = this.rawData; if(!this3.fixed) { if(1 >= this3.length) this3.length = 2; if(this3.data.length < this3.length) { var data; var this4; this4 = new Array(this3.data.length + 10); data = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data,0,this3.data.length); this3.data = data; } } this3.data[1] = oRawData.data[4]; var this5 = this.rawData; if(!this5.fixed) { if(2 >= this5.length) this5.length = 3; if(this5.data.length < this5.length) { var data1; var this6; this6 = new Array(this5.data.length + 10); data1 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data1,0,this5.data.length); this5.data = data1; } } this5.data[2] = oRawData.data[8]; var this7 = this.rawData; if(!this7.fixed) { if(3 >= this7.length) this7.length = 4; if(this7.data.length < this7.length) { var data2; var this8; this8 = new Array(this7.data.length + 10); data2 = this8; haxe_ds__$Vector_Vector_$Impl_$.blit(this7.data,0,data2,0,this7.data.length); this7.data = data2; } } this7.data[3] = oRawData.data[12]; var this9 = this.rawData; if(!this9.fixed) { if(4 >= this9.length) this9.length = 5; if(this9.data.length < this9.length) { var data3; var this10; this10 = new Array(this9.data.length + 10); data3 = this10; haxe_ds__$Vector_Vector_$Impl_$.blit(this9.data,0,data3,0,this9.data.length); this9.data = data3; } } this9.data[4] = oRawData.data[1]; var this11 = this.rawData; if(!this11.fixed) { if(6 >= this11.length) this11.length = 7; if(this11.data.length < this11.length) { var data4; var this12; this12 = new Array(this11.data.length + 10); data4 = this12; haxe_ds__$Vector_Vector_$Impl_$.blit(this11.data,0,data4,0,this11.data.length); this11.data = data4; } } this11.data[6] = oRawData.data[9]; var this13 = this.rawData; if(!this13.fixed) { if(7 >= this13.length) this13.length = 8; if(this13.data.length < this13.length) { var data5; var this14; this14 = new Array(this13.data.length + 10); data5 = this14; haxe_ds__$Vector_Vector_$Impl_$.blit(this13.data,0,data5,0,this13.data.length); this13.data = data5; } } this13.data[7] = oRawData.data[13]; var this15 = this.rawData; if(!this15.fixed) { if(8 >= this15.length) this15.length = 9; if(this15.data.length < this15.length) { var data6; var this16; this16 = new Array(this15.data.length + 10); data6 = this16; haxe_ds__$Vector_Vector_$Impl_$.blit(this15.data,0,data6,0,this15.data.length); this15.data = data6; } } this15.data[8] = oRawData.data[2]; var this17 = this.rawData; if(!this17.fixed) { if(9 >= this17.length) this17.length = 10; if(this17.data.length < this17.length) { var data7; var this18; this18 = new Array(this17.data.length + 10); data7 = this18; haxe_ds__$Vector_Vector_$Impl_$.blit(this17.data,0,data7,0,this17.data.length); this17.data = data7; } } this17.data[9] = oRawData.data[6]; var this19 = this.rawData; if(!this19.fixed) { if(11 >= this19.length) this19.length = 12; if(this19.data.length < this19.length) { var data8; var this20; this20 = new Array(this19.data.length + 10); data8 = this20; haxe_ds__$Vector_Vector_$Impl_$.blit(this19.data,0,data8,0,this19.data.length); this19.data = data8; } } this19.data[11] = oRawData.data[14]; var this21 = this.rawData; if(!this21.fixed) { if(12 >= this21.length) this21.length = 13; if(this21.data.length < this21.length) { var data9; var this22; this22 = new Array(this21.data.length + 10); data9 = this22; haxe_ds__$Vector_Vector_$Impl_$.blit(this21.data,0,data9,0,this21.data.length); this21.data = data9; } } this21.data[12] = oRawData.data[3]; var this23 = this.rawData; if(!this23.fixed) { if(13 >= this23.length) this23.length = 14; if(this23.data.length < this23.length) { var data10; var this24; this24 = new Array(this23.data.length + 10); data10 = this24; haxe_ds__$Vector_Vector_$Impl_$.blit(this23.data,0,data10,0,this23.data.length); this23.data = data10; } } this23.data[13] = oRawData.data[7]; var this25 = this.rawData; if(!this25.fixed) { if(14 >= this25.length) this25.length = 15; if(this25.data.length < this25.length) { var data11; var this26; this26 = new Array(this25.data.length + 10); data11 = this26; haxe_ds__$Vector_Vector_$Impl_$.blit(this25.data,0,data11,0,this25.data.length); this25.data = data11; } } this25.data[14] = oRawData.data[11]; } ,get_determinant: function() { return (this.rawData.data[0] * this.rawData.data[5] - this.rawData.data[4] * this.rawData.data[1]) * (this.rawData.data[10] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[11]) - (this.rawData.data[0] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[7]) + (this.rawData.data[0] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[1]) * (this.rawData.data[6] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[7]) + (this.rawData.data[4] * this.rawData.data[9] - this.rawData.data[8] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[15] - this.rawData.data[14] * this.rawData.data[3]) - (this.rawData.data[4] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[5]) * (this.rawData.data[2] * this.rawData.data[11] - this.rawData.data[10] * this.rawData.data[3]) + (this.rawData.data[8] * this.rawData.data[13] - this.rawData.data[12] * this.rawData.data[9]) * (this.rawData.data[2] * this.rawData.data[7] - this.rawData.data[6] * this.rawData.data[3]); } ,get_position: function() { return new openfl_geom_Vector3D(this.rawData.data[12],this.rawData.data[13],this.rawData.data[14]); } ,set_position: function(val) { var this1 = this.rawData; if(!this1.fixed) { if(12 >= this1.length) this1.length = 13; if(this1.data.length < this1.length) { var data; var this2; this2 = new Array(this1.data.length + 10); data = this2; haxe_ds__$Vector_Vector_$Impl_$.blit(this1.data,0,data,0,this1.data.length); this1.data = data; } } this1.data[12] = val.x; var this3 = this.rawData; if(!this3.fixed) { if(13 >= this3.length) this3.length = 14; if(this3.data.length < this3.length) { var data1; var this4; this4 = new Array(this3.data.length + 10); data1 = this4; haxe_ds__$Vector_Vector_$Impl_$.blit(this3.data,0,data1,0,this3.data.length); this3.data = data1; } } this3.data[13] = val.y; var this5 = this.rawData; if(!this5.fixed) { if(14 >= this5.length) this5.length = 15; if(this5.data.length < this5.length) { var data2; var this6; this6 = new Array(this5.data.length + 10); data2 = this6; haxe_ds__$Vector_Vector_$Impl_$.blit(this5.data,0,data2,0,this5.data.length); this5.data = data2; } } this5.data[14] = val.z; return val; } ,__class__: openfl_geom_Matrix3D ,__properties__: {set_position:"set_position",get_position:"get_position",get_determinant:"get_determinant"} }; var openfl_geom__$Orientation3D_Orientation3D_$Impl_$ = {}; $hxClasses["openfl.geom._Orientation3D.Orientation3D_Impl_"] = openfl_geom__$Orientation3D_Orientation3D_$Impl_$; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.__name__ = ["openfl","geom","_Orientation3D","Orientation3D_Impl_"]; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.fromString = function(value) { switch(value) { case "axisAngle": return 0; case "eulerAngles": return 1; case "quaternion": return 2; default: return null; } }; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.toString = function(value) { switch(value) { case 0: return "axisAngle"; case 1: return "eulerAngles"; case 2: return "quaternion"; default: return null; } }; var openfl_geom_Transform = function(displayObject) { this.__colorTransform = new openfl_geom_ColorTransform(); this.concatenatedColorTransform = new openfl_geom_ColorTransform(); this.pixelBounds = new openfl_geom_Rectangle(); this.__displayObject = displayObject; this.__hasMatrix = true; }; $hxClasses["openfl.geom.Transform"] = openfl_geom_Transform; openfl_geom_Transform.__name__ = ["openfl","geom","Transform"]; openfl_geom_Transform.prototype = { concatenatedColorTransform: null ,pixelBounds: null ,__colorTransform: null ,__displayObject: null ,__hasMatrix: null ,__hasMatrix3D: null ,get_colorTransform: function() { return this.__colorTransform; } ,set_colorTransform: function(value) { if(!this.__colorTransform.__equals(value)) { this.__colorTransform = value; if(value != null) this.__displayObject.set_alpha(value.alphaMultiplier); this.__displayObject.__setRenderDirty(); } return this.__colorTransform; } ,get_matrix: function() { if(this.__hasMatrix) return this.__displayObject.__transform.clone(); return null; } ,get_concatenatedMatrix: function() { if(this.__hasMatrix) return this.__displayObject.__getWorldTransform().clone(); return null; } ,set_matrix: function(value) { if(value == null) { this.__hasMatrix = false; return null; } this.__hasMatrix = true; this.__hasMatrix3D = false; if(this.__displayObject != null) { var rotation = 180 / Math.PI * Math.atan2(value.d,value.c) - 90; if(rotation != this.__displayObject.__rotation) { this.__displayObject.__rotation = rotation; var radians = rotation * (Math.PI / 180); this.__displayObject.__rotationSine = Math.sin(radians); this.__displayObject.__rotationCosine = Math.cos(radians); } this.__displayObject.__transform.copyFrom(value); this.__displayObject.__setTransformDirty(); } return value; } ,get_matrix3D: function() { if(this.__hasMatrix3D) { var matrix = this.__displayObject.__transform; return new openfl_geom_Matrix3D((function($this) { var $r; var value = [matrix.a,matrix.b,0.0,0.0,matrix.c,matrix.d,0.0,0.0,0.0,0.0,1.0,0.0,matrix.tx,matrix.ty,0.0,1.0]; var vectorData = new openfl_VectorData(); vectorData.length = value.length; vectorData.fixed = true; { var vec; var this1; this1 = new Array(value.length); vec = this1; var _g1 = 0; var _g = value.length; while(_g1 < _g) { var i = _g1++; vec[i] = value[i]; } vectorData.data = vec; } $r = vectorData; return $r; }(this))); } return null; } ,set_matrix3D: function(value) { if(value == null) { this.__hasMatrix3D = false; return null; } this.__hasMatrix = false; this.__hasMatrix3D = true; if(this.__displayObject != null) { var rotation = 180 / Math.PI * Math.atan2(value.rawData.data[5],value.rawData.data[4]) - 90; if(rotation != this.__displayObject.__rotation) { this.__displayObject.__rotation = rotation; var radians = rotation * (Math.PI / 180); this.__displayObject.__rotationSine = Math.sin(radians); this.__displayObject.__rotationCosine = Math.cos(radians); } this.__displayObject.__transform.a = value.rawData.data[0]; this.__displayObject.__transform.b = value.rawData.data[1]; this.__displayObject.__transform.c = value.rawData.data[5]; this.__displayObject.__transform.d = value.rawData.data[6]; this.__displayObject.__transform.tx = value.rawData.data[12]; this.__displayObject.__transform.ty = value.rawData.data[13]; this.__displayObject.__setTransformDirty(); } return value; } ,__class__: openfl_geom_Transform ,__properties__: {set_matrix3D:"set_matrix3D",get_matrix3D:"get_matrix3D",set_matrix:"set_matrix",get_matrix:"get_matrix",get_concatenatedMatrix:"get_concatenatedMatrix",set_colorTransform:"set_colorTransform",get_colorTransform:"get_colorTransform"} }; var openfl_geom_Vector3D = function(x,y,z,w) { if(w == null) w = 0; if(z == null) z = 0; if(y == null) y = 0; if(x == null) x = 0; this.w = w; this.x = x; this.y = y; this.z = z; }; $hxClasses["openfl.geom.Vector3D"] = openfl_geom_Vector3D; openfl_geom_Vector3D.__name__ = ["openfl","geom","Vector3D"]; openfl_geom_Vector3D.__properties__ = {get_Z_AXIS:"get_Z_AXIS",get_Y_AXIS:"get_Y_AXIS",get_X_AXIS:"get_X_AXIS"} openfl_geom_Vector3D.X_AXIS = null; openfl_geom_Vector3D.Y_AXIS = null; openfl_geom_Vector3D.Z_AXIS = null; openfl_geom_Vector3D.angleBetween = function(a,b) { var la = a.get_length(); var lb = b.get_length(); var dot = a.dotProduct(b); if(la != 0) dot /= la; if(lb != 0) dot /= lb; return Math.acos(dot); }; openfl_geom_Vector3D.distance = function(pt1,pt2) { var x = pt2.x - pt1.x; var y = pt2.y - pt1.y; var z = pt2.z - pt1.z; return Math.sqrt(x * x + y * y + z * z); }; openfl_geom_Vector3D.get_X_AXIS = function() { return new openfl_geom_Vector3D(1,0,0); }; openfl_geom_Vector3D.get_Y_AXIS = function() { return new openfl_geom_Vector3D(0,1,0); }; openfl_geom_Vector3D.get_Z_AXIS = function() { return new openfl_geom_Vector3D(0,0,1); }; openfl_geom_Vector3D.prototype = { length: null ,lengthSquared: null ,w: null ,x: null ,y: null ,z: null ,add: function(a) { return new openfl_geom_Vector3D(this.x + a.x,this.y + a.y,this.z + a.z); } ,clone: function() { return new openfl_geom_Vector3D(this.x,this.y,this.z,this.w); } ,copyFrom: function(sourceVector3D) { this.x = sourceVector3D.x; this.y = sourceVector3D.y; this.z = sourceVector3D.z; } ,crossProduct: function(a) { return new openfl_geom_Vector3D(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1); } ,decrementBy: function(a) { this.x -= a.x; this.y -= a.y; this.z -= a.z; } ,dotProduct: function(a) { return this.x * a.x + this.y * a.y + this.z * a.z; } ,equals: function(toCompare,allFour) { if(allFour == null) allFour = false; return this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z && (!allFour || this.w == toCompare.w); } ,incrementBy: function(a) { this.x += a.x; this.y += a.y; this.z += a.z; } ,nearEquals: function(toCompare,tolerance,allFour) { if(allFour == null) allFour = false; return Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance && (!allFour || Math.abs(this.w - toCompare.w) < tolerance); } ,negate: function() { this.x *= -1; this.y *= -1; this.z *= -1; } ,normalize: function() { var l = this.get_length(); if(l != 0) { this.x /= l; this.y /= l; this.z /= l; } return l; } ,project: function() { this.x /= this.w; this.y /= this.w; this.z /= this.w; } ,scaleBy: function(s) { this.x *= s; this.y *= s; this.z *= s; } ,setTo: function(xa,ya,za) { this.x = xa; this.y = ya; this.z = za; } ,subtract: function(a) { return new openfl_geom_Vector3D(this.x - a.x,this.y - a.y,this.z - a.z); } ,toString: function() { return "Vector3D(" + this.x + ", " + this.y + ", " + this.z + ")"; } ,get_length: function() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); } ,get_lengthSquared: function() { return this.x * this.x + this.y * this.y + this.z * this.z; } ,__class__: openfl_geom_Vector3D ,__properties__: {get_lengthSquared:"get_lengthSquared",get_length:"get_length"} }; var openfl_media_ID3Info = function() { }; $hxClasses["openfl.media.ID3Info"] = openfl_media_ID3Info; openfl_media_ID3Info.__name__ = ["openfl","media","ID3Info"]; openfl_media_ID3Info.prototype = { album: null ,artist: null ,comment: null ,genre: null ,songName: null ,track: null ,year: null ,__class__: openfl_media_ID3Info }; var openfl_media_Sound = function(stream,context) { openfl_events_EventDispatcher.call(this,this); this.bytesLoaded = 0; this.bytesTotal = 0; this.id3 = null; this.isBuffering = false; this.url = null; if(stream != null) this.load(stream,context); }; $hxClasses["openfl.media.Sound"] = openfl_media_Sound; openfl_media_Sound.__name__ = ["openfl","media","Sound"]; openfl_media_Sound.fromAudioBuffer = function(buffer) { var sound = new openfl_media_Sound(); sound.__buffer = buffer; return sound; }; openfl_media_Sound.fromFile = function(path) { return openfl_media_Sound.fromAudioBuffer(lime_audio_AudioBuffer.fromFile(path)); }; openfl_media_Sound.__super__ = openfl_events_EventDispatcher; openfl_media_Sound.prototype = $extend(openfl_events_EventDispatcher.prototype,{ bytesLoaded: null ,bytesTotal: null ,id3: null ,isBuffering: null ,url: null ,__buffer: null ,__sound: null ,__soundID: null ,close: function() { if(openfl_media_Sound.__registeredSounds.exists(this.__soundID)) createjs.Sound.removeSound(this.__soundID); } ,load: function(stream,context) { this.url = stream.url; this.__soundID = haxe_io_Path.withoutExtension(stream.url); if(!openfl_media_Sound.__registeredSounds.exists(this.__soundID)) { openfl_media_Sound.__registeredSounds.set(this.__soundID,true); createjs.Sound.addEventListener("fileload",$bind(this,this.SoundJS_onFileLoad)); createjs.Sound.addEventListener("fileerror",$bind(this,this.SoundJS_onFileError)); createjs.Sound.registerSound(this.url,this.__soundID); } else this.dispatchEvent(new openfl_events_Event("complete")); } ,loadCompressedDataFromByteArray: function(bytes,bytesLength,forcePlayAsMusic) { if(forcePlayAsMusic == null) forcePlayAsMusic = false; openfl_Lib.notImplemented("Sound.loadCompressedDataFromByteArray"); } ,loadPCMFromByteArray: function(bytes,samples,format,stereo,sampleRate) { if(sampleRate == null) sampleRate = 44100; if(stereo == null) stereo = true; openfl_Lib.notImplemented("Sound.loadPCMFromByteArray"); } ,play: function(startTime,loops,sndTransform) { if(loops == null) loops = 0; if(startTime == null) startTime = 0.0; if(sndTransform == null) sndTransform = new openfl_media_SoundTransform(1,0); var pan = sndTransform.pan; if(pan == 0) pan = -0.0000001; var instance; if(loops > 1) instance = createjs.Sound.play(this.__soundID,"any",0,startTime | 0,loops - 1,sndTransform.volume,pan); else instance = createjs.Sound.play(this.__soundID,"any",0,startTime | 0,0,sndTransform.volume,pan); return new openfl_media_SoundChannel(instance); } ,get_id3: function() { return new openfl_media_ID3Info(); } ,get_length: function() { if(this.__buffer != null) { } return 0; } ,AudioBuffer_onURLLoad: function(buffer) { if(buffer == null) this.dispatchEvent(new openfl_events_IOErrorEvent("ioError")); else { this.__buffer = buffer; this.dispatchEvent(new openfl_events_Event("complete")); } } ,SoundJS_onFileLoad: function(event) { if(event.id == this.__soundID) { createjs.Sound.removeEventListener("fileload",$bind(this,this.SoundJS_onFileLoad)); createjs.Sound.removeEventListener("fileerror",$bind(this,this.SoundJS_onFileError)); this.dispatchEvent(new openfl_events_Event("complete")); } } ,SoundJS_onFileError: function(event) { if(event.id == this.__soundID) { createjs.Sound.removeEventListener("fileload",$bind(this,this.SoundJS_onFileLoad)); createjs.Sound.removeEventListener("fileerror",$bind(this,this.SoundJS_onFileError)); this.dispatchEvent(new openfl_events_IOErrorEvent("ioError")); } } ,__class__: openfl_media_Sound ,__properties__: {get_length:"get_length",get_id3:"get_id3"} }); var openfl_media_SoundChannel = function(soundInstance) { openfl_events_EventDispatcher.call(this,this); this.leftPeak = 1; this.rightPeak = 1; if(soundInstance != null) { this.__soundInstance = soundInstance; this.__soundInstance.addEventListener("complete",$bind(this,this.source_onComplete)); this.__isValid = true; } }; $hxClasses["openfl.media.SoundChannel"] = openfl_media_SoundChannel; openfl_media_SoundChannel.__name__ = ["openfl","media","SoundChannel"]; openfl_media_SoundChannel.__super__ = openfl_events_EventDispatcher; openfl_media_SoundChannel.prototype = $extend(openfl_events_EventDispatcher.prototype,{ leftPeak: null ,rightPeak: null ,__isValid: null ,__source: null ,__soundInstance: null ,stop: function() { if(!this.__isValid) return; this.__soundInstance.stop(); } ,__dispose: function() { if(!this.__isValid) return; this.__soundInstance.stop(); this.__soundInstance = null; this.__isValid = false; } ,get_position: function() { if(!this.__isValid) return 0; return this.__soundInstance.getPosition(); } ,set_position: function(value) { if(!this.__isValid) return 0; this.__soundInstance.setPosition(value | 0); return this.__soundInstance.getPosition(); } ,get_soundTransform: function() { if(!this.__isValid) return new openfl_media_SoundTransform(); return new openfl_media_SoundTransform(this.__soundInstance.getVolume(),this.__soundInstance.getPan()); } ,set_soundTransform: function(value) { if(!this.__isValid) return value; this.__soundInstance.setVolume(value.volume); this.__soundInstance.setPan(value.pan); return value; } ,soundInstance_onComplete: function(_) { this.dispatchEvent(new openfl_events_Event("soundComplete")); } ,source_onComplete: function() { this.__dispose(); this.dispatchEvent(new openfl_events_Event("soundComplete")); } ,__class__: openfl_media_SoundChannel ,__properties__: {set_soundTransform:"set_soundTransform",get_soundTransform:"get_soundTransform",set_position:"set_position",get_position:"get_position"} }); var openfl_media_SoundLoaderContext = function(bufferTime,checkPolicyFile) { if(checkPolicyFile == null) checkPolicyFile = false; if(bufferTime == null) bufferTime = 1000; this.bufferTime = bufferTime; this.checkPolicyFile = checkPolicyFile; }; $hxClasses["openfl.media.SoundLoaderContext"] = openfl_media_SoundLoaderContext; openfl_media_SoundLoaderContext.__name__ = ["openfl","media","SoundLoaderContext"]; openfl_media_SoundLoaderContext.prototype = { bufferTime: null ,checkPolicyFile: null ,__class__: openfl_media_SoundLoaderContext }; var openfl_media_SoundTransform = function(vol,panning) { if(panning == null) panning = 0; if(vol == null) vol = 1; this.volume = vol; this.pan = panning; this.leftToLeft = 0; this.leftToRight = 0; this.rightToLeft = 0; this.rightToRight = 0; }; $hxClasses["openfl.media.SoundTransform"] = openfl_media_SoundTransform; openfl_media_SoundTransform.__name__ = ["openfl","media","SoundTransform"]; openfl_media_SoundTransform.prototype = { leftToLeft: null ,leftToRight: null ,pan: null ,rightToLeft: null ,rightToRight: null ,volume: null ,clone: function() { return new openfl_media_SoundTransform(this.volume,this.pan); } ,__class__: openfl_media_SoundTransform }; var openfl_net_NetConnection = function() { openfl_events_EventDispatcher.call(this); }; $hxClasses["openfl.net.NetConnection"] = openfl_net_NetConnection; openfl_net_NetConnection.__name__ = ["openfl","net","NetConnection"]; openfl_net_NetConnection.__super__ = openfl_events_EventDispatcher; openfl_net_NetConnection.prototype = $extend(openfl_events_EventDispatcher.prototype,{ connect: function(command,_,_1,_2,_3,_4) { if(command != null) throw new js__$Boot_HaxeError("Error: Can only connect in \"HTTP streaming\" mode"); this.dispatchEvent(new openfl_events_NetStatusEvent("netStatus",false,true,{ code : "connectSuccess"})); } ,__class__: openfl_net_NetConnection }); var openfl_net_SharedObject = function() { openfl_events_EventDispatcher.call(this); this.client = this; this.objectEncoding = 3; }; $hxClasses["openfl.net.SharedObject"] = openfl_net_SharedObject; openfl_net_SharedObject.__name__ = ["openfl","net","SharedObject"]; openfl_net_SharedObject.__sharedObjects = null; openfl_net_SharedObject.getLocal = function(name,localPath,secure) { if(secure == null) secure = false; if(localPath == null) localPath = window.location.href; if(openfl_net_SharedObject.__sharedObjects == null) { openfl_net_SharedObject.__sharedObjects = new haxe_ds_StringMap(); openfl_Lib.application.onExit.add(openfl_net_SharedObject.application_onExit); } var id = localPath + "/" + name; if(!openfl_net_SharedObject.__sharedObjects.exists(id)) { var sharedObject = new openfl_net_SharedObject(); sharedObject.data = { }; sharedObject.__localPath = localPath; sharedObject.__name = name; var encodedData = null; try { var storage = js_Browser.getLocalStorage(); if(storage != null) encodedData = storage.getItem(name); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; } if(encodedData != null && encodedData != "") try { var unserializer = new haxe_Unserializer(encodedData); unserializer.setResolver({ resolveEnum : Type.resolveEnum, resolveClass : openfl_net_SharedObject.__resolveClass}); sharedObject.data = unserializer.unserialize(); } catch( e1 ) { haxe_CallStack.lastException = e1; if (e1 instanceof js__$Boot_HaxeError) e1 = e1.val; } openfl_net_SharedObject.__sharedObjects.set(id,sharedObject); } return openfl_net_SharedObject.__sharedObjects.get(id); }; openfl_net_SharedObject.getRemote = function(name,remotePath,persistence,secure) { if(secure == null) secure = false; if(persistence == null) persistence = false; openfl_Lib.notImplemented("SharedObject.getRemote"); return null; }; openfl_net_SharedObject.__mkdir = function(directory) { }; openfl_net_SharedObject.__resolveClass = function(name) { if(name != null) { if(StringTools.startsWith(name,"neash.")) name = StringTools.replace(name,"neash.","openfl."); if(StringTools.startsWith(name,"native.")) name = StringTools.replace(name,"native.","openfl."); if(StringTools.startsWith(name,"flash.")) name = StringTools.replace(name,"flash.","openfl."); if(StringTools.startsWith(name,"openfl._v2.")) name = StringTools.replace(name,"openfl._v2.","openfl."); if(StringTools.startsWith(name,"openfl._legacy.")) name = StringTools.replace(name,"openfl._legacy.","openfl."); return Type.resolveClass(name); } return null; }; openfl_net_SharedObject.application_onExit = function(_) { var $it0 = openfl_net_SharedObject.__sharedObjects.iterator(); while( $it0.hasNext() ) { var sharedObject = $it0.next(); sharedObject.flush(); } }; openfl_net_SharedObject.__super__ = openfl_events_EventDispatcher; openfl_net_SharedObject.prototype = $extend(openfl_events_EventDispatcher.prototype,{ client: null ,data: null ,fps: null ,objectEncoding: null ,__localPath: null ,__name: null ,clear: function() { this.data = { }; try { var storage = js_Browser.getLocalStorage(); if(storage != null) storage.removeItem(this.__name); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; } } ,close: function() { } ,connect: function(myConnection,params) { openfl_Lib.notImplemented("SharedObject.connect"); } ,flush: function(minDiskSpace) { if(minDiskSpace == null) minDiskSpace = 0; if(Reflect.fields(this.data).length == 0) return 0; var encodedData = haxe_Serializer.run(this.data); try { var storage = js_Browser.getLocalStorage(); if(storage != null) { storage.removeItem(this.__name); storage.setItem(this.__name,encodedData); } } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; return 1; } return 0; } ,send: function($arguments) { openfl_Lib.notImplemented("SharedObject.send"); } ,setDirty: function(propertyName) { } ,setProperty: function(propertyName,value) { if(this.data != null) this.data[propertyName] = value; } ,get_size: function() { try { var d = haxe_Serializer.run(this.data); return haxe_io_Bytes.ofString(d).length; } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; return 0; } } ,__class__: openfl_net_SharedObject ,__properties__: {get_size:"get_size"} }); var openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$ = {}; $hxClasses["openfl.net._SharedObjectFlushStatus.SharedObjectFlushStatus_Impl_"] = openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$; openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.__name__ = ["openfl","net","_SharedObjectFlushStatus","SharedObjectFlushStatus_Impl_"]; openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.fromString = function(value) { switch(value) { case "flushed": return 0; case "pending": return 1; default: return null; } }; openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.toString = function(value) { switch(value) { case 0: return "flushed"; case 1: return "pending"; default: return null; } }; var openfl_net_URLLoader = function(request) { openfl_events_EventDispatcher.call(this); this.bytesLoaded = 0; this.bytesTotal = 0; this.set_dataFormat(1); if(request != null) this.load(request); }; $hxClasses["openfl.net.URLLoader"] = openfl_net_URLLoader; openfl_net_URLLoader.__name__ = ["openfl","net","URLLoader"]; openfl_net_URLLoader.__super__ = openfl_events_EventDispatcher; openfl_net_URLLoader.prototype = $extend(openfl_events_EventDispatcher.prototype,{ bytesLoaded: null ,bytesTotal: null ,data: null ,dataFormat: null ,close: function() { } ,getData: function() { return null; } ,load: function(request) { this.requestUrl(request.url,request.method,request.data,request.formatRequestHeaders()); } ,registerEvents: function(subject) { var self = this; if(typeof XMLHttpRequestProgressEvent != "undefined") subject.addEventListener("progress",$bind(this,this.onProgress),false); subject.onreadystatechange = function() { if(subject.readyState != 4) return; var s; try { s = subject.status; } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; s = null; } if(s == undefined) s = null; if(s != null) self.onStatus(s); /* famobi: allow request status zero if file protocol is used (usecase iOS UIWebView) */ var protocolRegex = new RegExp('^file:', 'i'); var isFileProtocol = protocolRegex.test(subject.responseURL); if(s != null && ((s >= 200 && s < 400) || isFileProtocol && s === 0)) self.onData(subject.response); else if(s == null) self.onError("Failed to connect or resolve host"); else if(s == 12029) self.onError("Failed to connect to host"); else if(s == 12007) self.onError("Unknown host"); else if(s == 0) { self.onError("Unable to make request (may be blocked due to cross-domain permissions)"); self.onSecurityError("Unable to make request (may be blocked due to cross-domain permissions)"); } else self.onError("Http Error #" + subject.status); }; } ,requestUrl: function(url,method,data,requestHeaders) { var xmlHttpRequest = new XMLHttpRequest(); this.registerEvents(xmlHttpRequest); var uri = ""; if(js_Boot.__instanceof(data,openfl_utils_ByteArrayData)) { var data1 = data; var _g = this.dataFormat; switch(_g) { case 0: uri = js_Boot.__cast(data1 , ArrayBuffer); break; default: uri = data1.readUTFBytes(data1.length); } } else if(js_Boot.__instanceof(data,openfl_net_URLVariables)) { var data2 = data; var _g1 = 0; var _g11 = Reflect.fields(data2); while(_g1 < _g11.length) { var p = _g11[_g1]; ++_g1; if(uri.length != 0) uri += "&"; uri += encodeURIComponent(p) + "=" + StringTools.urlEncode(Reflect.field(data2,p)); } } else if(data != null) uri = data.toString(); try { if(method == "GET" && uri != null && uri != "") { var question = url.split("?").length <= 1; xmlHttpRequest.open(method,url + (question?"?":"&") + Std.string(uri),true); uri = ""; } else xmlHttpRequest.open(method,url,true); } catch( e ) { haxe_CallStack.lastException = e; if (e instanceof js__$Boot_HaxeError) e = e.val; this.onError(e.toString()); return; } var _g2 = this.dataFormat; switch(_g2) { case 0: xmlHttpRequest.responseType = "arraybuffer"; break; default: } var _g3 = 0; while(_g3 < requestHeaders.length) { var header = requestHeaders[_g3]; ++_g3; xmlHttpRequest.setRequestHeader(header.name,header.value); } xmlHttpRequest.send(uri); this.onOpen(); this.getData = function() { if(xmlHttpRequest.response != null) return xmlHttpRequest.response; else return xmlHttpRequest.responseText; }; } ,onData: function(_) { var content = this.getData(); var _g = this.dataFormat; switch(_g) { case 0: this.data = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromArrayBuffer(content); break; default: this.data = Std.string(content); } var evt = new openfl_events_Event("complete"); evt.currentTarget = this; this.dispatchEvent(evt); } ,onError: function(msg) { var evt = new openfl_events_IOErrorEvent("ioError"); evt.text = msg; evt.currentTarget = this; this.dispatchEvent(evt); } ,onOpen: function() { var evt = new openfl_events_Event("open"); evt.currentTarget = this; this.dispatchEvent(evt); } ,onProgress: function(event) { var evt = new openfl_events_ProgressEvent("progress"); evt.currentTarget = this; evt.bytesLoaded = event.loaded; evt.bytesTotal = event.total; this.dispatchEvent(evt); } ,onSecurityError: function(msg) { var evt = new openfl_events_SecurityErrorEvent("securityError"); evt.text = msg; evt.currentTarget = this; this.dispatchEvent(evt); } ,onStatus: function(status) { var evt = new openfl_events_HTTPStatusEvent("httpStatus",false,false,status); evt.currentTarget = this; this.dispatchEvent(evt); } ,set_dataFormat: function(inputVal) { if(inputVal == 0 && !Reflect.hasField(window,"ArrayBuffer")) this.dataFormat = 1; else this.dataFormat = inputVal; return this.dataFormat; } ,__class__: openfl_net_URLLoader ,__properties__: {set_dataFormat:"set_dataFormat"} }); var openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$ = {}; $hxClasses["openfl.net._URLLoaderDataFormat.URLLoaderDataFormat_Impl_"] = openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.__name__ = ["openfl","net","_URLLoaderDataFormat","URLLoaderDataFormat_Impl_"]; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.fromString = function(value) { switch(value) { case "binary": return 0; case "text": return 1; case "variables": return 2; default: return null; } }; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.toString = function(value) { switch(value) { case 0: return "binary"; case 1: return "text"; case 2: return "variables"; default: return null; } }; var openfl_net_URLRequest = function(inURL) { if(inURL != null) this.url = inURL; this.requestHeaders = []; this.method = openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.toString(1); this.contentType = null; }; $hxClasses["openfl.net.URLRequest"] = openfl_net_URLRequest; openfl_net_URLRequest.__name__ = ["openfl","net","URLRequest"]; openfl_net_URLRequest.prototype = { contentType: null ,data: null ,method: null ,requestHeaders: null ,url: null ,userAgent: null ,formatRequestHeaders: function() { var res = this.requestHeaders; if(res == null) res = []; if(openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.fromString(this.method) == 1 || this.data == null) return res; if(typeof(this.data) == "string" || js_Boot.__instanceof(this.data,openfl_utils_ByteArrayData)) { res = res.slice(); res.push(new openfl_net_URLRequestHeader("Content-Type",this.contentType != null?this.contentType:"application/x-www-form-urlencoded")); } return res; } ,__class__: openfl_net_URLRequest }; var openfl_net_URLRequestHeader = function(name,value) { if(value == null) value = ""; if(name == null) name = ""; this.name = name; this.value = value; }; $hxClasses["openfl.net.URLRequestHeader"] = openfl_net_URLRequestHeader; openfl_net_URLRequestHeader.__name__ = ["openfl","net","URLRequestHeader"]; openfl_net_URLRequestHeader.prototype = { name: null ,value: null ,__class__: openfl_net_URLRequestHeader }; var openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$ = {}; $hxClasses["openfl.net._URLRequestMethod.URLRequestMethod_Impl_"] = openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.__name__ = ["openfl","net","_URLRequestMethod","URLRequestMethod_Impl_"]; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.fromString = function(value) { switch(value) { case "DELETE": return 0; case "GET": return 1; case "HEAD": return 2; case "OPTIONS": return 3; case "POST": return 4; case "PUT": return 5; default: return null; } }; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.toString = function(value) { switch(value) { case 0: return "DELETE"; case 1: return "GET"; case 2: return "HEAD"; case 3: return "OPTIONS"; case 4: return "POST"; case 5: return "PUT"; default: return null; } }; var openfl_net_URLVariables = function(source) { if(source != null) this.decode(source); }; $hxClasses["openfl.net.URLVariables"] = openfl_net_URLVariables; openfl_net_URLVariables.__name__ = ["openfl","net","URLVariables"]; openfl_net_URLVariables.prototype = { decode: function(source) { var fields = Reflect.fields(this); var _g = 0; while(_g < fields.length) { var f = fields[_g]; ++_g; Reflect.deleteField(this,f); } var fields1 = source.split(";").join("&").split("&"); var _g1 = 0; while(_g1 < fields1.length) { var f1 = fields1[_g1]; ++_g1; var eq = f1.indexOf("="); if(eq > 0) Reflect.setField(this,StringTools.urlDecode(HxOverrides.substr(f1,0,eq)),StringTools.urlDecode(HxOverrides.substr(f1,eq + 1,null))); else if(eq != 0) Reflect.setField(this,decodeURIComponent(f1.split("+").join(" ")),""); } } ,toString: function() { var result = []; var fields = Reflect.fields(this); var _g = 0; while(_g < fields.length) { var f = fields[_g]; ++_g; result.push(encodeURIComponent(f) + "=" + StringTools.urlEncode(Reflect.field(this,f))); } return result.join("&"); } ,__class__: openfl_net_URLVariables }; var openfl_system_LoaderContext = function(checkPolicyFile,applicationDomain,securityDomain) { if(checkPolicyFile == null) checkPolicyFile = false; this.checkPolicyFile = checkPolicyFile; this.securityDomain = securityDomain; this.applicationDomain = applicationDomain; this.allowCodeImport = true; this.allowLoadBytesCodeExecution = true; }; $hxClasses["openfl.system.LoaderContext"] = openfl_system_LoaderContext; openfl_system_LoaderContext.__name__ = ["openfl","system","LoaderContext"]; openfl_system_LoaderContext.prototype = { allowCodeImport: null ,allowLoadBytesCodeExecution: null ,applicationDomain: null ,checkPolicyFile: null ,securityDomain: null ,__class__: openfl_system_LoaderContext }; var openfl_system_SecurityDomain = function() { }; $hxClasses["openfl.system.SecurityDomain"] = openfl_system_SecurityDomain; openfl_system_SecurityDomain.__name__ = ["openfl","system","SecurityDomain"]; openfl_system_SecurityDomain.prototype = { __class__: openfl_system_SecurityDomain }; var openfl_system_System = function() { }; $hxClasses["openfl.system.System"] = openfl_system_System; openfl_system_System.__name__ = ["openfl","system","System"]; openfl_system_System.__properties__ = {get_vmVersion:"get_vmVersion",get_totalMemory:"get_totalMemory"} openfl_system_System.totalMemory = null; openfl_system_System.vmVersion = null; openfl_system_System.exit = function(code) { lime_system_System.exit(code); }; openfl_system_System.gc = function() { }; openfl_system_System.pause = function() { openfl_Lib.notImplemented("System.pause"); }; openfl_system_System.resume = function() { openfl_Lib.notImplemented("System.resume"); }; openfl_system_System.setClipboard = function(string) { lime_system_Clipboard.set_text(string); }; openfl_system_System.get_totalMemory = function() { return (window.performance && window.performance.memory) ? window.performance.memory.usedJSHeapSize : 0; }; openfl_system_System.get_vmVersion = function() { return "1.0.0"; }; var openfl_text__$AntiAliasType_AntiAliasType_$Impl_$ = {}; $hxClasses["openfl.text._AntiAliasType.AntiAliasType_Impl_"] = openfl_text__$AntiAliasType_AntiAliasType_$Impl_$; openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.__name__ = ["openfl","text","_AntiAliasType","AntiAliasType_Impl_"]; openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.fromString = function(value) { switch(value) { case "advanced": return 0; case "normal": return 1; default: return null; } }; openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.toString = function(value) { switch(value) { case 0: return "advanced"; case 1: return "normal"; default: return null; } }; var openfl_text__$FontStyle_FontStyle_$Impl_$ = {}; $hxClasses["openfl.text._FontStyle.FontStyle_Impl_"] = openfl_text__$FontStyle_FontStyle_$Impl_$; openfl_text__$FontStyle_FontStyle_$Impl_$.__name__ = ["openfl","text","_FontStyle","FontStyle_Impl_"]; openfl_text__$FontStyle_FontStyle_$Impl_$.fromString = function(value) { switch(value) { case "bold": return 0; case "boldItalic": return 1; case "italic": return 2; case "regular": return 3; default: return null; } }; openfl_text__$FontStyle_FontStyle_$Impl_$.toString = function(value) { switch(value) { case 0: return "bold"; case 1: return "boldItalic"; case 2: return "italic"; case 3: return "regular"; default: return null; } }; var openfl_text__$FontType_FontType_$Impl_$ = {}; $hxClasses["openfl.text._FontType.FontType_Impl_"] = openfl_text__$FontType_FontType_$Impl_$; openfl_text__$FontType_FontType_$Impl_$.__name__ = ["openfl","text","_FontType","FontType_Impl_"]; openfl_text__$FontType_FontType_$Impl_$.fromString = function(value) { switch(value) { case "device": return 0; case "embedded": return 1; case "embeddedCFF": return 2; default: return null; } }; openfl_text__$FontType_FontType_$Impl_$.toString = function(value) { switch(value) { case 0: return "device"; case 1: return "embedded"; case 2: return "embeddedCFF"; default: return null; } }; var openfl_text__$GridFitType_GridFitType_$Impl_$ = {}; $hxClasses["openfl.text._GridFitType.GridFitType_Impl_"] = openfl_text__$GridFitType_GridFitType_$Impl_$; openfl_text__$GridFitType_GridFitType_$Impl_$.__name__ = ["openfl","text","_GridFitType","GridFitType_Impl_"]; openfl_text__$GridFitType_GridFitType_$Impl_$.fromString = function(value) { switch(value) { case "none": return 0; case "pixel": return 1; case "subpixel": return 2; default: return null; } }; openfl_text__$GridFitType_GridFitType_$Impl_$.toString = function(value) { switch(value) { case 0: return "none"; case 1: return "pixel"; case 2: return "subpixel"; default: return null; } }; var openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$ = {}; $hxClasses["openfl.text._TextFieldAutoSize.TextFieldAutoSize_Impl_"] = openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.__name__ = ["openfl","text","_TextFieldAutoSize","TextFieldAutoSize_Impl_"]; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.fromString = function(value) { switch(value) { case "center": return 0; case "left": return 1; case "none": return 2; case "right": return 3; default: return null; } }; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.toString = function(value) { switch(value) { case 0: return "center"; case 1: return "left"; case 2: return "none"; case 3: return "right"; default: return null; } }; var openfl_text__$TextFieldType_TextFieldType_$Impl_$ = {}; $hxClasses["openfl.text._TextFieldType.TextFieldType_Impl_"] = openfl_text__$TextFieldType_TextFieldType_$Impl_$; openfl_text__$TextFieldType_TextFieldType_$Impl_$.__name__ = ["openfl","text","_TextFieldType","TextFieldType_Impl_"]; openfl_text__$TextFieldType_TextFieldType_$Impl_$.fromString = function(value) { switch(value) { case "dynamic": return 0; case "input": return 1; default: return null; } }; openfl_text__$TextFieldType_TextFieldType_$Impl_$.toString = function(value) { switch(value) { case 0: return "dynamic"; case 1: return "input"; default: return null; } }; var openfl_text_TextFormat = function(font,size,color,bold,italic,underline,url,target,align,leftMargin,rightMargin,indent,leading) { this.font = font; this.size = size; this.color = color; this.bold = bold; this.italic = italic; this.underline = underline; this.url = url; this.target = target; this.align = align; this.leftMargin = leftMargin; this.rightMargin = rightMargin; this.indent = indent; this.leading = leading; }; $hxClasses["openfl.text.TextFormat"] = openfl_text_TextFormat; openfl_text_TextFormat.__name__ = ["openfl","text","TextFormat"]; openfl_text_TextFormat.prototype = { align: null ,blockIndent: null ,bold: null ,bullet: null ,color: null ,font: null ,indent: null ,italic: null ,kerning: null ,leading: null ,leftMargin: null ,letterSpacing: null ,rightMargin: null ,size: null ,tabStops: null ,target: null ,underline: null ,url: null ,clone: function() { var newFormat = new openfl_text_TextFormat(this.font,this.size,this.color,this.bold,this.italic,this.underline,this.url,this.target); newFormat.align = this.align; newFormat.leftMargin = this.leftMargin; newFormat.rightMargin = this.rightMargin; newFormat.indent = this.indent; newFormat.leading = this.leading; newFormat.blockIndent = this.blockIndent; newFormat.bullet = this.bullet; newFormat.kerning = this.kerning; newFormat.letterSpacing = this.letterSpacing; newFormat.tabStops = this.tabStops; return newFormat; } ,__merge: function(format) { if(format.font != null) this.font = format.font; if(format.size != null) this.size = format.size; if(format.color != null) this.color = format.color; if(format.bold != null) this.bold = format.bold; if(format.italic != null) this.italic = format.italic; if(format.underline != null) this.underline = format.underline; if(format.url != null) this.url = format.url; if(format.target != null) this.target = format.target; if(format.align != null) this.align = format.align; if(format.leftMargin != null) this.leftMargin = format.leftMargin; if(format.rightMargin != null) this.rightMargin = format.rightMargin; if(format.indent != null) this.indent = format.indent; if(format.leading != null) this.leading = format.leading; if(format.blockIndent != null) this.blockIndent = format.blockIndent; if(format.bullet != null) this.bullet = format.bullet; if(format.kerning != null) this.kerning = format.kerning; if(format.letterSpacing != null) this.letterSpacing = format.letterSpacing; if(format.tabStops != null) this.tabStops = format.tabStops; } ,__class__: openfl_text_TextFormat }; var openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$ = {}; $hxClasses["openfl.text._TextFormatAlign.TextFormatAlign_Impl_"] = openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.__name__ = ["openfl","text","_TextFormatAlign","TextFormatAlign_Impl_"]; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.fromString = function(value) { switch(value) { case "center": return 0; case "end": return 1; case "justify": return 2; case "left": return 3; case "right": return 4; case "start": return 5; default: return null; } }; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.toString = function(value) { switch(value) { case 0: return "center"; case 1: return "end"; case 2: return "justify"; case 3: return "left"; case 4: return "right"; case 5: return "start"; default: return null; } }; var openfl_text_TextLineMetrics = function(x,width,height,ascent,descent,leading) { this.x = x; this.width = width; this.height = height; this.ascent = ascent; this.descent = descent; this.leading = leading; }; $hxClasses["openfl.text.TextLineMetrics"] = openfl_text_TextLineMetrics; openfl_text_TextLineMetrics.__name__ = ["openfl","text","TextLineMetrics"]; openfl_text_TextLineMetrics.prototype = { ascent: null ,descent: null ,height: null ,leading: null ,width: null ,x: null ,__class__: openfl_text_TextLineMetrics }; var openfl_ui_GameInput = function() { openfl_events_EventDispatcher.call(this); openfl_ui_GameInput.__instances.push(this); }; $hxClasses["openfl.ui.GameInput"] = openfl_ui_GameInput; openfl_ui_GameInput.__name__ = ["openfl","ui","GameInput"]; openfl_ui_GameInput.getDeviceAt = function(index) { if(index >= 0 && index < openfl_ui_GameInput.__deviceList.length) return openfl_ui_GameInput.__deviceList[index]; return null; }; openfl_ui_GameInput.__getDevice = function(gamepad) { if(gamepad == null) return null; if(!(openfl_ui_GameInput.__devices.h.__keys__[gamepad.__id__] != null)) { var device = new openfl_ui_GameInputDevice(gamepad.get_guid(),gamepad.get_name()); openfl_ui_GameInput.__deviceList.push(device); openfl_ui_GameInput.__devices.set(gamepad,device); openfl_ui_GameInput.numDevices = openfl_ui_GameInput.__deviceList.length; } return openfl_ui_GameInput.__devices.h[gamepad.__id__]; }; openfl_ui_GameInput.__onGamepadAxisMove = function(gamepad,axis,value) { var device = openfl_ui_GameInput.__getDevice(gamepad); if(device == null) return; if(device.enabled) { if(!device.__axis.h.hasOwnProperty(axis)) { var control1 = new openfl_ui_GameInputControl(device,"AXIS_" + (function($this) { var $r; switch(axis) { case 0: $r = "LEFT_X"; break; case 1: $r = "LEFT_Y"; break; case 2: $r = "RIGHT_X"; break; case 3: $r = "RIGHT_Y"; break; case 4: $r = "TRIGGER_LEFT"; break; case 5: $r = "TRIGGER_RIGHT"; break; default: $r = "UNKNOWN (" + axis + ")"; } return $r; }(this)),-1,1); device.__axis.h[axis] = control1; device.__controls.push(control1); } var control = device.__axis.h[axis]; control.value = value; control.dispatchEvent(new openfl_events_Event("change")); } }; openfl_ui_GameInput.__onGamepadButtonDown = function(gamepad,button) { var device = openfl_ui_GameInput.__getDevice(gamepad); if(device == null) return; if(device.enabled) { if(!device.__button.h.hasOwnProperty(button)) { var control1 = new openfl_ui_GameInputControl(device,"BUTTON_" + (function($this) { var $r; switch(button) { case 0: $r = "A"; break; case 1: $r = "B"; break; case 2: $r = "X"; break; case 3: $r = "Y"; break; case 4: $r = "BACK"; break; case 5: $r = "GUIDE"; break; case 6: $r = "START"; break; case 7: $r = "LEFT_STICK"; break; case 8: $r = "RIGHT_STICK"; break; case 9: $r = "LEFT_SHOULDER"; break; case 10: $r = "RIGHT_SHOULDER"; break; case 11: $r = "DPAD_UP"; break; case 12: $r = "DPAD_DOWN"; break; case 13: $r = "DPAD_LEFT"; break; case 14: $r = "DPAD_RIGHT"; break; default: $r = "UNKNOWN (" + button + ")"; } return $r; }(this)),0,1); device.__button.h[button] = control1; device.__controls.push(control1); } var control = device.__button.h[button]; control.value = 1; control.dispatchEvent(new openfl_events_Event("change")); } }; openfl_ui_GameInput.__onGamepadButtonUp = function(gamepad,button) { var device = openfl_ui_GameInput.__getDevice(gamepad); if(device == null) return; if(device.enabled) { if(!device.__button.h.hasOwnProperty(button)) { var control1 = new openfl_ui_GameInputControl(device,"BUTTON_" + (function($this) { var $r; switch(button) { case 0: $r = "A"; break; case 1: $r = "B"; break; case 2: $r = "X"; break; case 3: $r = "Y"; break; case 4: $r = "BACK"; break; case 5: $r = "GUIDE"; break; case 6: $r = "START"; break; case 7: $r = "LEFT_STICK"; break; case 8: $r = "RIGHT_STICK"; break; case 9: $r = "LEFT_SHOULDER"; break; case 10: $r = "RIGHT_SHOULDER"; break; case 11: $r = "DPAD_UP"; break; case 12: $r = "DPAD_DOWN"; break; case 13: $r = "DPAD_LEFT"; break; case 14: $r = "DPAD_RIGHT"; break; default: $r = "UNKNOWN (" + button + ")"; } return $r; }(this)),0,1); device.__button.h[button] = control1; device.__controls.push(control1); } var control = device.__button.h[button]; control.value = 0; control.dispatchEvent(new openfl_events_Event("change")); } }; openfl_ui_GameInput.__onGamepadConnect = function(gamepad) { var device = openfl_ui_GameInput.__getDevice(gamepad); if(device == null) return; var _g = 0; var _g1 = openfl_ui_GameInput.__instances; while(_g < _g1.length) { var instance = _g1[_g]; ++_g; instance.dispatchEvent(new openfl_events_GameInputEvent("deviceAdded",null,null,device)); } }; openfl_ui_GameInput.__onGamepadDisconnect = function(gamepad) { var device = openfl_ui_GameInput.__devices.h[gamepad.__id__]; if(device != null) { if(openfl_ui_GameInput.__devices.h.__keys__[gamepad.__id__] != null) { var x = openfl_ui_GameInput.__devices.h[gamepad.__id__]; HxOverrides.remove(openfl_ui_GameInput.__deviceList,x); openfl_ui_GameInput.__devices.remove(gamepad); } openfl_ui_GameInput.numDevices = openfl_ui_GameInput.__deviceList.length; var _g = 0; var _g1 = openfl_ui_GameInput.__instances; while(_g < _g1.length) { var instance = _g1[_g]; ++_g; instance.dispatchEvent(new openfl_events_GameInputEvent("deviceRemoved",null,null,device)); } } }; openfl_ui_GameInput.__super__ = openfl_events_EventDispatcher; openfl_ui_GameInput.prototype = $extend(openfl_events_EventDispatcher.prototype,{ __class__: openfl_ui_GameInput }); var openfl_ui_GameInputControl = function(device,id,minValue,maxValue,value) { if(value == null) value = 0; openfl_events_EventDispatcher.call(this); this.device = device; this.id = id; this.minValue = minValue; this.maxValue = maxValue; this.value = value; }; $hxClasses["openfl.ui.GameInputControl"] = openfl_ui_GameInputControl; openfl_ui_GameInputControl.__name__ = ["openfl","ui","GameInputControl"]; openfl_ui_GameInputControl.__super__ = openfl_events_EventDispatcher; openfl_ui_GameInputControl.prototype = $extend(openfl_events_EventDispatcher.prototype,{ device: null ,id: null ,maxValue: null ,minValue: null ,value: null ,__class__: openfl_ui_GameInputControl }); var openfl_ui_GameInputDevice = function(id,name) { this.__controls = []; this.__button = new haxe_ds_IntMap(); this.__axis = new haxe_ds_IntMap(); this.id = id; this.name = name; var control; var _g = 0; while(_g < 6) { var i = _g++; control = new openfl_ui_GameInputControl(this,"AXIS_" + i,-1,1); this.__axis.h[i] = control; this.__controls.push(control); } var _g1 = 0; while(_g1 < 15) { var i1 = _g1++; control = new openfl_ui_GameInputControl(this,"BUTTON_" + i1,0,1); this.__button.h[i1] = control; this.__controls.push(control); } }; $hxClasses["openfl.ui.GameInputDevice"] = openfl_ui_GameInputDevice; openfl_ui_GameInputDevice.__name__ = ["openfl","ui","GameInputDevice"]; openfl_ui_GameInputDevice.prototype = { enabled: null ,id: null ,name: null ,sampleInterval: null ,__axis: null ,__button: null ,__controls: null ,__gamepad: null ,getCachedSamples: function(data,append) { if(append == null) append = false; return 0; } ,getControlAt: function(i) { if(i >= 0 && i < this.__controls.length) return this.__controls[i]; return null; } ,startCachingSamples: function(numSamples,controls) { } ,stopCachingSamples: function() { } ,get_numControls: function() { return this.__controls.length; } ,__class__: openfl_ui_GameInputDevice ,__properties__: {get_numControls:"get_numControls"} }; var openfl_ui_Keyboard = function() { }; $hxClasses["openfl.ui.Keyboard"] = openfl_ui_Keyboard; openfl_ui_Keyboard.__name__ = ["openfl","ui","Keyboard"]; openfl_ui_Keyboard.capsLock = null; openfl_ui_Keyboard.numLock = null; openfl_ui_Keyboard.isAccessible = function() { return false; }; openfl_ui_Keyboard.__convertKeyCode = function(key) { switch(key) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 33: return 49; case 34: return 222; case 35: return 51; case 36: return 52; case 37: return 53; case 38: return 55; case 39: return 222; case 40: return 57; case 41: return 48; case 42: return 56; case 44: return 188; case 45: return 189; case 46: return 190; case 47: return 191; case 48: return 48; case 49: return 49; case 50: return 50; case 51: return 51; case 52: return 52; case 53: return 53; case 54: return 54; case 55: return 55; case 56: return 56; case 57: return 57; case 58: return 186; case 59: return 186; case 60: return 60; case 61: return 187; case 62: return 190; case 63: return 191; case 64: return 50; case 91: return 219; case 92: return 220; case 93: return 221; case 94: return 54; case 95: return 189; case 96: return 192; case 97: return 65; case 98: return 66; case 99: return 67; case 100: return 68; case 101: return 69; case 102: return 70; case 103: return 71; case 104: return 72; case 105: return 73; case 106: return 74; case 107: return 75; case 108: return 76; case 109: return 77; case 110: return 78; case 111: return 79; case 112: return 80; case 113: return 81; case 114: return 82; case 115: return 83; case 116: return 84; case 117: return 85; case 118: return 86; case 119: return 87; case 120: return 88; case 121: return 89; case 122: return 90; case 127: return 46; case 1073741881: return 20; case 1073741882: return 112; case 1073741883: return 113; case 1073741884: return 114; case 1073741885: return 115; case 1073741886: return 116; case 1073741887: return 117; case 1073741888: return 118; case 1073741889: return 119; case 1073741890: return 120; case 1073741891: return 121; case 1073741892: return 122; case 1073741893: return 123; case 1073741894: return 301; case 1073741895: return 145; case 1073741896: return 19; case 1073741897: return 45; case 1073741898: return 36; case 1073741899: return 33; case 1073741901: return 35; case 1073741902: return 34; case 1073741903: return 39; case 1073741904: return 37; case 1073741905: return 40; case 1073741906: return 38; case 1073741907: return 144; case 1073741908: return 111; case 1073741909: return 106; case 1073741910: return 109; case 1073741911: return 107; case 1073741912: return 108; case 1073741913: return 97; case 1073741914: return 98; case 1073741915: return 99; case 1073741916: return 100; case 1073741917: return 101; case 1073741918: return 102; case 1073741919: return 103; case 1073741920: return 104; case 1073741921: return 105; case 1073741922: return 96; case 1073741923: return 110; case 1073741925: return 302; case 1073741928: return 124; case 1073741929: return 125; case 1073741930: return 126; case 1073741982: return 13; case 1073742044: return 110; case 1073742048: return 17; case 1073742049: return 16; case 1073742050: return 18; case 1073742051: return 15; case 1073742052: return 17; case 1073742053: return 16; case 1073742054: return 18; case 1073742055: return 15; default: return key; } }; openfl_ui_Keyboard.__getCharCode = function(key,shift) { if(shift == null) shift = false; if(!shift) { switch(key) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; } if(key >= 48 && key <= 57) return key - 48 + 48; if(key >= 65 && key <= 90) return key - 65 + 97; } else { switch(key) { case 48: return 41; case 49: return 33; case 50: return 64; case 51: return 35; case 52: return 36; case 53: return 37; case 54: return 94; case 55: return 38; case 56: return 42; case 57: return 40; case 186: return 58; case 187: return 43; case 188: return 60; case 189: return 95; case 190: return 62; case 191: return 63; case 192: return 126; case 219: return 123; case 220: return 124; case 221: return 125; case 222: return 34; } if(key >= 65 && key <= 90) return key - 65 + 65; } if(key >= 96 && key <= 105) return key - 96 + 48; switch(key) { case 106: return 42; case 107: return 43; case 108: return 44; case 110: return 45; case 111: return 46; case 46: return 127; case 13: return 13; case 8: return 8; } return 0; }; openfl_ui_Keyboard.__getKeyLocation = function(key) { switch(key) { case 1073742048:case 1073742049:case 1073742050:case 1073742051: return 1; case 1073742052:case 1073742053:case 1073742054:case 1073742055: return 2; case 1073741908:case 1073741909:case 1073741910:case 1073741911:case 1073741912:case 1073741913:case 1073741914:case 1073741915:case 1073741916:case 1073741917:case 1073741918:case 1073741919:case 1073741920:case 1073741921:case 1073741922:case 1073741923:case 1073742044: return 3; default: return 0; } }; var openfl_ui_Mouse = function() { }; $hxClasses["openfl.ui.Mouse"] = openfl_ui_Mouse; openfl_ui_Mouse.__name__ = ["openfl","ui","Mouse"]; openfl_ui_Mouse.hide = function() { lime_ui_Mouse.hide(); }; openfl_ui_Mouse.show = function() { lime_ui_Mouse.show(); }; var openfl_utils__$ByteArray_ByteArray_$Impl_$ = {}; $hxClasses["openfl.utils._ByteArray.ByteArray_Impl_"] = openfl_utils__$ByteArray_ByteArray_$Impl_$; openfl_utils__$ByteArray_ByteArray_$Impl_$.__name__ = ["openfl","utils","_ByteArray","ByteArray_Impl_"]; openfl_utils__$ByteArray_ByteArray_$Impl_$.__properties__ = {set_length:"set_length",get_length:"get_length"} openfl_utils__$ByteArray_ByteArray_$Impl_$.defaultObjectEncoding = null; openfl_utils__$ByteArray_ByteArray_$Impl_$._new = function(length) { if(length == null) length = 0; return new openfl_utils_ByteArrayData(length); }; openfl_utils__$ByteArray_ByteArray_$Impl_$.get = function(this1,index) { return this1.b[index]; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.set = function(this1,index,value) { this1.b[index] = value & 255; return value; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.fromArrayBuffer = function(buffer) { return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(buffer)); }; openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes = function(bytes) { if(js_Boot.__instanceof(bytes,openfl_utils_ByteArrayData)) return bytes; else return openfl_utils_ByteArrayData.fromBytes(bytes); }; openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytesData = function(bytesData) { return openfl_utils_ByteArrayData.fromBytes(haxe_io_Bytes.ofData(bytesData)); }; openfl_utils__$ByteArray_ByteArray_$Impl_$.toArrayBuffer = function(byteArray) { return byteArray.b.bufferValue; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes = function(byteArray) { return byteArray; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytesData = function(byteArray) { return byteArray.b.bufferValue; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.toLimeBytes = function(byteArray) { return new lime_utils_Bytes(openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length(byteArray),byteArray.b.bufferValue); }; openfl_utils__$ByteArray_ByteArray_$Impl_$.get_length = function(this1) { return this1.__length; }; openfl_utils__$ByteArray_ByteArray_$Impl_$.set_length = function(this1,value) { if(value > 0) this1.__resize(value); this1.__length = value; return value; }; var openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$ = {}; $hxClasses["openfl.utils._CompressionAlgorithm.CompressionAlgorithm_Impl_"] = openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.__name__ = ["openfl","utils","_CompressionAlgorithm","CompressionAlgorithm_Impl_"]; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.fromString = function(value) { switch(value) { case "deflate": return 0; case "lzma": return 1; case "zlib": return 2; default: return null; } }; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.toString = function(value) { switch(value) { case 0: return "deflate"; case 1: return "lzma"; case 2: return "zlib"; default: return null; } }; var openfl_utils__$Endian_Endian_$Impl_$ = {}; $hxClasses["openfl.utils._Endian.Endian_Impl_"] = openfl_utils__$Endian_Endian_$Impl_$; openfl_utils__$Endian_Endian_$Impl_$.__name__ = ["openfl","utils","_Endian","Endian_Impl_"]; openfl_utils__$Endian_Endian_$Impl_$.fromString = function(value) { switch(value) { case "bigEndian": return 0; case "littleEndian": return 1; default: return null; } }; openfl_utils__$Endian_Endian_$Impl_$.toString = function(value) { switch(value) { case 0: return "bigEndian"; case 1: return "littleEndian"; default: return null; } }; var openfl_utils__$Object_Object_$Impl_$ = {}; $hxClasses["openfl.utils._Object.Object_Impl_"] = openfl_utils__$Object_Object_$Impl_$; openfl_utils__$Object_Object_$Impl_$.__name__ = ["openfl","utils","_Object","Object_Impl_"]; openfl_utils__$Object_Object_$Impl_$._new = function() { return { }; }; openfl_utils__$Object_Object_$Impl_$.hasOwnProperty = function(this1,name) { return this1 != null && Object.prototype.hasOwnProperty.call(this1,name); }; openfl_utils__$Object_Object_$Impl_$.isPrototypeOf = function(this1,theClass) { var c; if(this1 == null) c = null; else c = js_Boot.getClass(this1); while(c != null) { if(c == theClass) return true; c = Type.getSuperClass(c); } return false; }; openfl_utils__$Object_Object_$Impl_$.iterator = function(this1) { var fields = Reflect.fields(this1); if(fields == null) fields = []; return HxOverrides.iter(fields); }; openfl_utils__$Object_Object_$Impl_$.propertyIsEnumerable = function(this1,name) { return this1 != null && Object.prototype.hasOwnProperty.call(this1,name) && Std["is"](Reflect.field(this1,name),haxe_lang_Iterable); }; openfl_utils__$Object_Object_$Impl_$.toLocaleString = function(this1) { return Std.string(this1); }; openfl_utils__$Object_Object_$Impl_$.toString = function(this1) { return Std.string(this1); }; openfl_utils__$Object_Object_$Impl_$.valueOf = function(this1) { return this1; }; openfl_utils__$Object_Object_$Impl_$.__get = function(this1,key) { return Reflect.field(this1,key); }; openfl_utils__$Object_Object_$Impl_$.__set = function(this1,key,value) { this1[key] = value; return value; }; var haxe_lang_Iterator = function() { }; $hxClasses["haxe.lang.Iterator"] = haxe_lang_Iterator; haxe_lang_Iterator.__name__ = ["haxe","lang","Iterator"]; haxe_lang_Iterator.prototype = { hasNext: null ,next: null ,__class__: haxe_lang_Iterator }; var haxe_lang_Iterable = function() { }; $hxClasses["haxe.lang.Iterable"] = haxe_lang_Iterable; haxe_lang_Iterable.__name__ = ["haxe","lang","Iterable"]; haxe_lang_Iterable.prototype = { iterator: null ,__class__: haxe_lang_Iterable }; var $_, $fid = 0; function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; } if(Array.prototype.indexOf) HxOverrides.indexOf = function(a,o,i) { return Array.prototype.indexOf.call(a,o,i); }; $hxClasses.Math = Math; String.prototype.__class__ = $hxClasses.String = String; String.__name__ = ["String"]; $hxClasses.Array = Array; Array.__name__ = ["Array"]; Date.prototype.__class__ = $hxClasses.Date = Date; Date.__name__ = ["Date"]; var Int = $hxClasses.Int = { __name__ : ["Int"]}; var Dynamic = $hxClasses.Dynamic = { __name__ : ["Dynamic"]}; var Float = $hxClasses.Float = Number; Float.__name__ = ["Float"]; var Bool = $hxClasses.Bool = Boolean; Bool.__ename__ = ["Bool"]; var Class = $hxClasses.Class = { __name__ : ["Class"]}; var Enum = { }; haxe_Resource.content = [{ name : "__ASSET__:file_SpriteJson", data : "ewogICJzdHJlYW0iOiJzbmQvc3ByaXRlIiwKICAic3ByaXRlIjogewogICAgInNpbGVuY2UiOiBbCiAgICAgIDAsCiAgICAgIDEwMCwKICAgICAgdHJ1ZQogICAgXSwKICAgICJidG5DbGljayI6IFsKICAgICAgMjAwLAogICAgICA1OTcuOTM2NTA3OTM2NTA4CiAgICBdLAogICAgIm1vdmUiOiBbCiAgICAgIDEyOTkuOTk5OTk5OTk5OTk5OCwKICAgICAgODQuMzUzNzQxNDk2NTk4NjkKICAgIF0KICB9Cn0"},{ name : "__ASSET__:bitmap_GameLogo", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVhNQUFBQmpDQVlBQUFCcEcrQzlBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQk9XbERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFyWkd4U3NOUUZJYS9HMFhGb1ZZSTR1QndKMUZRYk5YQmpFbGJpaUJZcTBPU3JVbERsZElrM055cWZRaEh0dzR1N2o2Qms2UGdvUGdFdm9IaTFNRWhTSEFTd1cvNnpzL2hjT0FIbzJMWG5ZWlJoa0dzVmJ2cFNOZno1ZXdUTTB3QlFDZk1VcnZWT2dDSWt6amlKd0krWHhFQXo1dDIzV253TitiRFZHbGdBbXgzb3l3RVVRSDZGenJWSU1hQUdmUlREZUlPTU5WSnV3YmlBU2oxY244QlNrSHViMEJKdVo0UDRnTXdlNjduZ3pFSG1FSHVLNENwbzBzTlVFdlNrVHJybldwWnRTeEwydDBraU9UeEtOUFJJSlA3Y1ppb05GRWRIWFdCL0Q4QUZ2UEZkdE9SYTFYTDJsdm5uM0U5WCtiMmZvUUF4Tkpqa1JXRVEzWCszWVd4OC90YzNCZ3Z3K0V0VEUrS2JQY0tialpnNGJySVZxdFEzb0w3OFJmQ3MwLytIQW16SndBQVF3RnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0NqeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNRFkzSURjNUxqRTFOemMwTnl3Z01qQXhOUzh3TXk4ek1DMHlNem8wTURvME1pQWdJQ0FnSUNBZ0lqNEtJQ0FnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQWdJQ0FnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZlRzF3VFUwOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXRiUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25OMFJYWjBQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2YzFSNWNHVXZVbVZ6YjNWeVkyVkZkbVZ1ZENNaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uTjBVbVZtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmMxUjVjR1V2VW1WemIzVnlZMlZTWldZaklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB3TkMweU9WUXhPRG8xT1Rvd01Tc3dNem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGpJd01UWXRNRFV0TVRCVU1UYzZOREU2TURZck1ETTZNREE4TDNodGNEcE5aWFJoWkdGMFlVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxUQTFMVEV3VkRFM09qUXhPakEyS3pBek9qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGtGa2IySmxJRkpIUWlBb01UazVPQ2s4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21abU1ESXlOakptTFRnd05EUXRZV1EwTXkwNE1EVm1MVFV4TnprMFpqVTNPRFF4Wmp3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPbVpqWkdGa1lqWXlMVEUyWVdRdE1URmxOaTFpWkRRM0xXWTJZV1ZrTTJZMVptTTJORHd2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPalZrWVdFeFpHVXhMVGhsWWpndE1tWTBZaTA0WlRkakxUQTBOMkV4TlRCalpqVmtaand2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzFaR0ZoTVdSbE1TMDRaV0k0TFRKbU5HSXRPR1UzWXkwd05EZGhNVFV3WTJZMVpHWThMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRFF0TWpsVU1UZzZOVGs2TURFck1ETTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUlDaFhhVzVrYjNkektUd3ZjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbk5oZG1Wa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBwYm5OMFlXNWpaVWxFUG5odGNDNXBhV1E2TWprME1EY3dPVEZFUWpFeFJUWXhNVUl4UkVFNVJFRkdRemd6TVVKR05qYzhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRFV0TURSVU1URTZOVEE2TXpjck1ESTZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRVelV1TVNCWGFXNWtiM2R6UEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNlkyaGhibWRsWkQ0dlBDOXpkRVYyZERwamFHRnVaMlZrUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrYzJGMlpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwallXWXhZakkzTlMxallXRmtMV0prTkRVdE9UQmhaQzB5TmpWaE16a3hNV0kwWmpZOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1EVXRNVEJVTVRVNk5USTZNRGdyTURNNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxSUNoWGFXNWtiM2R6S1R3dmMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tTm9ZVzVuWldRK0x6d3ZjM1JGZG5RNlkyaGhibWRsWkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OdmJuWmxjblJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZjR0Z5WVcxbGRHVnljejVtY205dElHRndjR3hwWTJGMGFXOXVMM1p1WkM1aFpHOWlaUzV3YUc5MGIzTm9iM0FnZEc4Z2FXMWhaMlV2Y0c1blBDOXpkRVYyZERwd1lYSmhiV1YwWlhKelBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1pHVnlhWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZjR0Z5WVcxbGRHVnljejVqYjI1MlpYSjBaV1FnWm5KdmJTQmhjSEJzYVdOaGRHbHZiaTkyYm1RdVlXUnZZbVV1Y0dodmRHOXphRzl3SUhSdklHbHRZV2RsTDNCdVp6d3ZjM1JGZG5RNmNHRnlZVzFsZEdWeWN6NEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBuTmhkbVZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHBibk4wWVc1alpVbEVQbmh0Y0M1cGFXUTZZVFJtWTJVM01qRXRPR0U0Tnkwd1pUUmlMVGxtTUdVdE5EWTFPV0prWXpnM1pETTBQQzl6ZEVWMmREcHBibk4wWVc1alpVbEVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZkMmhsYmo0eU1ERTJMVEExTFRFd1ZERTFPalV5T2pBNEt6QXpPakF3UEM5emRFVjJkRHAzYUdWdVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmMyOW1kSGRoY21WQloyVnVkRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbVptTURJeU5qSm1MVGd3TkRRdFlXUTBNeTA0TURWbUxUVXhOemswWmpVM09EUXhaand2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3TlMweE1GUXhOem8wTVRvd05pc3dNem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WTJoaGJtZGxaRDR2UEM5emRFVjJkRHBqYUdGdVoyVmtQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEM5eVpHWTZVMlZ4UGdvZ0lDQWdJQ0FnSUNBOEwzaHRjRTFOT2tocGMzUnZjbmsrQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lEeHpkRkpsWmpwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNlkyRm1NV0l5TnpVdFkyRmhaQzFpWkRRMUxUa3dZV1F0TWpZMVlUTTVNVEZpTkdZMlBDOXpkRkpsWmpwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4YzNSU1pXWTZaRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPalZrWVdFeFpHVXhMVGhsWWpndE1tWTBZaTA0WlRkakxUQTBOMkV4TlRCalpqVmtaand2YzNSU1pXWTZaRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ1BITjBVbVZtT205eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT2pWa1lXRXhaR1V4TFRobFlqZ3RNbVkwWWkwNFpUZGpMVEEwTjJFeE5UQmpaalZrWmp3dmMzUlNaV1k2YjNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOEwzaHRjRTFOT2tSbGNtbDJaV1JHY205dFBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwUGNtbGxiblJoZEdsdmJqNHhQQzkwYVdabU9rOXlhV1Z1ZEdGMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V0ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xsU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTXpjeFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqazVQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejdwdDNYWUFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURvQUFCU0NBQUJGVmdBQURxWEFBQVhiOWRhSDVBQUFPVGVTVVJCVkhqYTdQMW5uR1hIZGQ0TC82dDJQckhqNU1FZ1o0S0lSR1NVS0lxa0tKRVVKVXFpY3JRczJRb09zcStUbks5a09VblhRWDRseTdaeVRxUkpnaVFDQ1FKRWpvT01DWmpjK2VTZHF1cjlVTFYzbjU0RVVMNzI3MzdRQVljVHV2dUV2YXRXcmZXczUzbVd3RDMyN1ZtSVgzbmszendjTk1McjhsRzJ5bDgrL3ZMeGw0Ky9mUHpsNC8rVGo3QVp6UmZqL0puTDN2YlR0eDQrdXBJQytOVVhsZGF6U3FrZGdSQUE4Mi9tQ1lVQVkvN3l3djdsNHk4ZmYvbjR5OGYvMFljUUtLVjJLSzFuZ1JOVk1CZEFrT2ZsSldsV0JMR1VHS1h4a2hCL1lkYjk1TmtpdGdHdFFVcjNGT2Q2R05ES1JuNGgzWFBKTi9GdURSanRmdVpzejYvZHY0di8wMWNSakxMdlQzai9CMTVQdTkvbDFuL1RHcVJ3L3k2MlhyZnA5L29YZXBpei9QeWJ1ZDdtTC9pNjUzdHVEVXJacC9hcU5WUmRDM1dXei8vLzFzT2NaNjJhTjdtTzNmVXc3aDRLK2IvNGZzNTNiYzNVMTh5WmE4S1lzN3krbVBvczRoenI1czNlMCtsMWF2NFgxOTlaNG9BeDUxanZaL3ZzNTN2dHM2MDFjOW9mOVRuMnRqbDdQUGcvOWpDVUt6M1VKQWNwU2JNaXlQUHlFbUFWS0twZ3ZpMHYxSFZwVmlaSVNkU0lXRm5wOCtUOSs1RlNJTVdaRjY4c0ZFb2JramhFbnkwOU40WlNLWHpmbzl0dVVoUWxXVjdZTGFpMERlN25lc3ZHWUl5aG1VUVVwYUlvRmNKOXY5RjIwVVJSaURHR3ZDanJyLzBmdVp6R0VJY0JBSk1zUjByNXYrdUZNTVlRQmo1Q0NvcEMyVzJuTmRLVHRCb3hlYTRveXhKdFRMM01wQkJVZi91TFZrMmVGUFk1emVZbUNYMlBRaW0wTnVlODN0SlZhc2FZODk3ZjA2OW40SHNZWTZiV2hVRnJ1MzR3MEcwMTZMUWJqTk9NOFNTalZCb3BCR0hnVTVRbDZqenY2Uzk2ajMwcDhUeEpYcXF6dmw4Qlc5ZmxPYmEyd1pCRUlaT3NJRTF6V3MxNDg3NklxUkRrL2szS3pUOEw5LzhHKy9tRXdGNy82dC9Zdk5kQ0NMVFdDQ0dRVXFLVVFpbk5lSklpRVJSRlFYOHdCc0QzUFRDZ3RFWktTUndGQ0NueEF3K0pJSXBEaEZ2WDB0MFBjM3E4UjlTZi9kalJrMFJCd080OTJ4bW5HWjRVZUo1SFdTcjNNMy94ZStOSlFSeUZlSjRrelFyR2t3d2h3UE84czRaVEtRVmFtN091UVFING5rUnBqWjY2eHB2ZkpzanlnaUR3OER4SnFjelc1NTY2RmxJS2xOWlQ1NGo0M3g1M1BDRjR5OVY3bVp0cnVXQmVKbm1ocmdNT0FjZDlkOVMxdGRiYmxkSUJBcGp2OHNLREwvQjFIL3NYN3F5VlUrZWFmZEpPc3dIQWNEeWgxQm94OVdHME82V2JVY3kyK1M2K0p6bTVza0dXbDdRYUVmM2hCR1hNZWM1T3pWeTdSYnZWNE9qSlZaUlI5Y1dPZkovUTl6QkFsaGNVV24yMWViVjdyMyt4aTYvUnRKT0ViWE5kRHA5WXB0UWFlWmJQYnEvYjJWL0h1UC8rb28rRzUxRnFRMjcwLzlJQ2thZGxsdFB2L2N6djNjemgvamZVT29pcDNBNGc4Z05tV2sxYXpaakE5NWhrT1lQQmhPRmtRdTd1ZWVJSGFHUElWUG4vNllvNERud3drSmJsV1Q2N0lQVDlxY0FpYkRKVEJROTNRRGJpQ0tVMVJWRWdoYlQzUWJnMUppQU03SE1ZcFJtbkdhbTdKcEVmY05uRmU3am80dDBFU1l6V21qekxBVk1mZ3NMQTB0SXFhMnNEVmxjMzZJOUdXOTVmSUQxS285RkdUMlh6bTQrNzdyeUJSaHp6OEVOUG83VmhrdVVFZ1c5ZnF5eTN4SWF2TGc4MVNBU3ozUmJ6TTIwQzMyTjFZOGpTV3ErT0NSS0pGUFlWbE5ING5vY1FncUlzMGFlOVR5RWdsajZaVW1kK3pYMnFKQWhwSmpIcnc2RTk3TndlTVJoODZSSDRIbGxSNEhzZVVnanlVcUdNT3VkZWY2UFBWeC9HN3IvenhSMkFCejc1ajdqemc3ZkFKRU1wSFdpdHR3TnRRUHBUZTlXdjM0MVdSR0hJNGt3SFR3cWlLS2dYbVJDQ1RxdUJNWWIrY0V5N0ZTSEY1Z2RXV2hPSEFWMjNFZnVqQ2F2ckF4Wm1XMmhqNkxRYWJDOFZvMGw2UmpZbGhEM3RRdDluNTdaWmx0ZjZiSi92NEFjZW9lOWp0Q2JQQy9xOUliMjhRQUtKRUVoUDR2a2VjM1BkZWhGVkQ5LzM2RzBNNmZkSENLQlVpZ3lEajZFVmh5U05CRC93OER6UFphSnZYT3hxcGRteE9FTzdGYk8wMW5PWm1xaGZONG9EbERKb3BkMVYyZHdZYVpwejhTVzd1UExLZlV3bU9VcHJqSUd5TE1tem5DQU0yTHR2RjJFUW9FcEZtaGMyNDNJcFd5dUphTGNhclBhR2VGSlFGQ1dsMHZYOThUeEo0SHRJeitQNDBWUDBld09pS0NSd0diNFVnbVlqNXRqeFpaNTU1aldYRmR1VC84YWJybUIydGsyYTVrZ3B5UE9TSWkvSjhweGR1N2V4YS9kMlZsWjduQy94OWoySjF1YU1hczBZUTV4RUZIbkI2d2VQQVlZd0N2QThEeWtGU1JTU2w0b1hYemlFcDJGdXRzMXduTklmamhrTXgyejBoMXgrNlY1dXZ2bEtldjBSZVZFU2h3Rys1N0c4MmdNQkYxeTRteWdLR1k4enBCUmY5WkZpaktZc1NnTGZjNWxnamhEU1p1cUJqKzk3YUszeFBJL0FseFNseGc5OHU0MmxRRmFCSk1zcGlnS2w3SDdvdGhvSUFiM0JHQ21seTZvaFRtSmVQM1NjaDc3OEZJSHYxeGUxdXJiVmZmRjlTUlFHcEdtT05zbVdheStGd0JnWTlJZE1SaE8yYlp2anBsdXU0dWEzWGNNNzNua1RWMTU5TVJKRGxtYVVlVUZlNUdScERpNjcxTVpXMldXcHlJdVNOQzlZV2U3eCt1c25lZjY1VjNueTBlZFpPcmxLMG16UWJEWHM1NVVTZ2VIRThXVzI3WmpqU3cvOE1ZY09IdUNXdDM0RGk5dG1DY09BU1phRGdMSlE1SVU2NDM2SXVqTFpMRS9FV1pJRm0yVnJTbFV5MDBuWXVXMFBrMndiL2VHWS9tQkNvVW84S1RIYWtHVTV3OEdZWEdrQ3dCTUNQQnNrb3loaysvWTU0aWhrTk1sUVNrMWw4NUxleG9EeGFFSzNIWk5uQlNHUUFRR2Faak1oaWtKODN5TkpJa3BscjFjWStMWUNLUlNsU3pDbXE2WHpyelpCbmhkRXNhMDZWS2tzbWlUTy9yTlpWbEFxVGVCN203Q2RLellxdks4SzVrYllYOVVWSkFnOGRpN000SG1TTVBMcjBxV1p4SUJobkdiRVVSZFAycHl0VUJxQnpTRGFyUVFwQkJ2OUVXRFlOdDhoaVVPeXZNRDM3ZWsyR29kNDBxdnZZQlhJczZKZzk3WjVsTklrY1VBU2VxU2psTWxvVE5LTTJiWjdrWXZlY1NONzlteGozOFc3MmJWN0czTnpYZHJ0SnJQelhZSWdtQXJtQnQvMzZQZUdySy8xNlE5R0xKOWE0OURCWTV3NHZzVEIxNDV4OVBXVGJLejNtWXdtdE50TjJwMEdZUlNlTndVdFNrVVUrU3pNTHVEN3NvYWhsazZ0OFEvLytZL3hmVC8wUFh6K3M1L2xiLzMxbjBkSVFSZ0U5Yy8yZWlPdXZuSWY3LzI2dDVHbUJWRVlJS1NnMVVxWW1XbGpqR2JubnQxY2ZQa3Q3bDU1WjFuaWFncXZQUjNyTElHQTlaVlhlR24vVTREUGNEQ20xeHRTbG00UlJqN1BQZnNheHc2ZkpJNURqQUd0TlhmY2ZnMzdMdHlKS2pUU3N4dWcyMjNSYk1Sb0ZOZTg5V1k2TXhlNTE1L09wZDhNdG02QWtsZGUrQXJMSjVZeHdNYkdnTUZnWWcra1V0RnROM2hpeHdJdjdEL0F4bmpDSk0wSWZNbkNYSmNrQ3JqNHdoMjgvZTF2cFN3VVlXaXo4bFl6WVhhdWd4Q3dzSDJXSzY2NUhVak8zK3M1YXdZa1VPVUd6ei85RmRLMHdQUDhxYUJxOEh3UHovTnJDTkFlbkRib2U3NUgwb2hwTmhPNk0yMjhZQWJvQXBHN0g4VnBmUS9ocnVFOGp6M3laM3ozdC80NFNkSWtDUDB6M3JJMmhzakJlbG1XMS9BSGdPY0orcjBScDA2dWN1VlZGL0xSYi8wNlB2aE43K0tLSzY4RzlnSkxISHpsVVY1NzdUaEZYcUMxSWM4TGxOSUlLV29vM1E4OGtqZ2tERVBhc3kwdXVYQUg3M3puRFRSYURZYkRsTWNmZTU1N1Avc2d6ejcxRWt1bjFzamRjL2xHOHcvKzBZOEQreGlQSG1QSFFwZFd1MEdyMlNCeW55VXZTaVpaVnNOelNpbTBPNlMwZHBtcE1UWHNJWVZBU0pCQzF0QlNCYzFxQjkxV21YcS9QK1RFaVJWNi9SR2RtVFlYN3QzTzNndDNzV1BYQWhmczI4WGV2VHZvZER1ME9rMWE3UVp6ODEwSFlaa3QxOW56UEhxOUFSdHJmU2JqQ1d2clBWWlByWEg0MERGT25WcmwwTUZqbkRxNXl2cHFqMUdXMCtrMmFiY2JSSEdJbE5KV1ZzYVFGa1VOd1p3dmZrZ3BPSHpvT04vNS9kL0VQLzI1bjhDVGtuL3hzNy9Nci95bjMyZkhyc1d6cnM0OEwxRmFFd1ErS0QxZDBkWUZzMzh1dkZaS1Fhc1o0Zm0ybk5EYUVFY2hVa0plRkxTYkNWSks4cnlnMUpyWlJrSWMyVXlwVklwSm11RjVndGxPRTJNZzhEMmkwS2NvRmUxR2dpYzlqTkd1bExUWnhXaVNzbk5oRnM4WURyMStuRER3MmJOdkoxZGNmVEhYWEhjNTExMS9CWmRmZFNHZHpqWmdGZ2ltQW9vR2N2ZTcyYko1ZCs0S2dmQzBqVHlpTEpjNGR1UWtMNzk0aUdlZmVvbm5ubm1GbDU0L3dQTFNHcDduTVRQYnB0Rk16bUR0R0dPYk1sRVVzRzIreTJpU2txYzVPN1ozZWM5NzN3bGN5dTQ5TDVGRUVpRUQ0amlzZnk2SkEvWS8reHBQUHY0aXZ1L2hlejRJNkhhYjdOeTV5SlZYWDhobGwvZVkzN0dOYnNlRDRjcFVBYlcxSmpSYUl6elhFRElHZEFtdExqREQvcWVmNFluSFgrRDUvUWM1Y3VRVWcvNjR4cVh6UE1mM2ZlWm0yL1ZCcEkzbUQzL3ZDeWl0aWNLQXdQZVJ2a2VqRVhQWjVSZHc5ZFg3OEx5RXQ5MFZRMzRDY2cwT0hyQ1pnckhwZ08rREtqZHZnUUdFZ3NZRkxKOWE1c2xIbitQRmwxN25oZjBIT0g1OGhUUXRtT2swNlRSaWUxZlNqUDV3akJDQ21ZN05hSTJHWmhLd2ZHcU4vL0lmL3BCUm1oRUdQZ1pvTmhMMjdGbmtvb3QzYyttbHUybTBadG03YndlTWpvSHdwNjZYUTVtbHRNM2pxYldPRkpEc1paSU9lUG1sMThteTNHYksweGk2djdWNk04WWdwTUJ6MTE5V3ZYRnNodDd1dE5tMVo0WUw5blFJR2dua09SU3VKMkFVaEEwSXJxUXN4b1JCU0RNSkNjTGdqSzFvazVvUXBUU0JYd1U0V3dVZVBYeUNoVzF6L0kxLysxTjh4L2QrQzFGMENiQUNwQng0OVc2ZWVldzVNTERSRzNINDlaTWNQYnBFTnNsWTN4aVNGeVcrNzJHMElXbEVkTm9ORmhabTJMTjNHd3NMTTdSYkNXRVlzR2ZmVGo3eXplL2xXNy85NDJ4c0hPSExYM3ljVjE4NnpHaVVjdjFOMS9DQkQzMGpjSUl3a2dSUkNOcGdqS0lzSVlraldvMEliWnIwUjJOdzE5RVlkOTNkNTlER0J0ZFNhYlRXR0ZmWlZkV2RFQkNGTnFGY1hkM2d4TkdUZERzdExyN3NBdDcvd1hkdzhSVVhjdkVWRjNISjVYdnB0QllkNnVDNVdGREZnOExsMnB3Rk1EVHMyTEVQaUYxSTlOenZCdWhUcUZWZVAzaU1sNTUvalJlZWU1V1hubitORjE4NHlLa1R5d0IwdW0xbVp6dTBtakY1VVZDVTJxMkxzei9LVXRGcFIzemttejlFR0x3Vk1Nd3ZMQktGZ21ZU25yWC9FL2dlU21zOGVXNEtvWC9PMDBNSVBPbWhTbzBNUEpwSjVCYVhMUy9LVWpPZVpBUyt4Mnk3U2VCN0ZHWEpPQzNyRjZzMmhLbWJEN1lrRVFLaXdHZVNaWGkranhTQy9tak1zRGNrMG9aNGNaWnYrNjRQOG83MzNNTDFOMS9Gek13K1lNNEY2eDR3QnYwS09zOUFhRXlSSXZNQ0VRaUlRd2hDK3g1SzBNb1Z0YjRQSWtZSWlaUWUwTVQzZDdEdm9vdllkOUU3ZU8vN00yQ1pvNjhmNU5HdjdPZVJCNS9tOFVmMzgvcUJZM2kreC96Q0RIRVMxWEJHcVJSRlVkSnV4T1JseWV1dkhlVjlIM29YK3k2OEdEaE9rZmVacElwR0VyZ3N3OTdFekRXQ2kwS1JaZ1ZDZ3UvNTlBY2o5ajkva005ODlpSHV1UE02M3ZhTzIraDJtbVFyaDBHRVU4MHltOTJVMmw1UHo1Y1k0OWd0cGlCcVhRUEFmZmMreG4vOTFUOGpTM09hcmNTV3g4SldRRklJYks5UjJKUGUyQU02SzBxVU1relN2UDYreVNUajhTZGVvdHR0OGhNLzlRbmVkdGZ0a0EzSjF0ZVJVWUlwY2xBbGhUYmdCZmllc095VHFnbGJsbmpObUtCeENTdkxhL3pHYjN5R3J6eTBueUQwNlhhYnpNOTA4QkNjV3UweEdFOVFTdE51SmtTQjc2bytVR2lLVXBNVkNxMDBrMG5HYUp3Q3NMclc1K2pSSlQ3L2hVZTU2cXFMdVByNnQ3QjMzMjd5dGVOb1paRFN3ajZGRm5pQmh5OE1ScXY2VURkRmlkOUs4Sk5MNlcwYzQ3Lyt5cC9SSDQ1SWtuaExNQS9EZ0NDb01uTWNOZ3RDU3BMRVZqRHRkcE9GaFJtMmJac2h6M0xXVjFiWS8yVEozcDFOcnIxeWtVQVlzbUdPTVNYaHpEeHk3Z3FVc3V1ZzFUUTJLNjJoRmtGWktuelB3NWV5L3JPVWtzbDR3dkdqUzN6d28rL2lIL3l6bjJKKzRTYmdDSHJ3T1dTcndhRkRFNTU5N0VXV1YzcmNmLytUUFBYVXk2eXU5a2l6bkdZakpnb0NocE8wZmoxakRHV3BrRkl5TzlOaWNYR0dpeS9lelhYWFhjWjRuUExxaTRkWTNEbkxyWGZleVFlLzhRZUIxRjIvQXN4aEVITWtqUWJTOXhpTkp4YUtNSXJlWUVUZys3U2JDZTFHekZwdnlDUXJpQU1mejdNb3M0MHpFaWtGOFhUdnlSaGJZUXRCbmhVc25WcWxMRW91dWVKQ2JydnJlcjdtZlhkeXc5dXVKZlMzdXlEY0I5WXRTNjk4MVNZVVJjNXdPR0pqWlVCL1VqSWU1MlJwUWFuUGt2c2FqZThMa3BrV2pVWkMwL2VaWFd6VG1wOG44THBjY3VsMVhITHBYWHpnR3pXd3hva1RCM255a2YwODh0RFRQUG5ZOHh4ODlRaGxVVEkzMXlWTUlndGplV2ZpNEo0bmVmWGxRN3o3Njk3T2JYZmVEcndDekdCTVJsSFliZU41WjFhMm5ueGpWTjQvWC9jMHowdjhRTkpzUkdodFVLVkNHOE5rWEdDQVRxdEJ3OEVuYTcyaFhYaSs3UlpYaTZUT01Jd2hrRDVTQ2lacFlYK3U4TWl5bkpQSGw5SEc4SFh2dTUwUGZ2amQzUEd1bStqT1hBWTBYUEJlaGZJUXBzZ3dSWXBSQlNwTE1lbUVJUEx3MmsySUk4YkRuTlhqUFFhajNQNGFUQ2hMZzZoWlpEYWxsWjRnU1ZxMDJnMDZNeDBXdDgzUTdzd0JYZlpjY0F0N0xyaU5qM3pyaUkzMUE5ejNoVWU1NzNOZjRhbkhudWZ3d1dQNHZrK24yeVJPWWdhakNZdXpYWmFQTGRPYWFmR1RQL09Ecmxxd0RKUHhKTVB6UFdJVElveUZaeWFUbkVtV3UxTlc0Z2xKbWhjVXBTSk1Jc3B4eXAvOStRUDgrSXVIMkxuamZjamtWWFJSSUtTSDBScGxCQVFoZ1JCNG5yRFpPUWFEeG9zYndIYUd3eDUvL0NmM3NiemFZOWZ1QlV6RkRKbktTNlJRS0sxSmJNMXIyUlpGWVROTzl6Mis1K0VIQWUydXgydUhUL0tuZjNvZlAvb1RQd1R0N2NoUkN0cG16VXJHaURqR1I0SEtFSDY0V1QwSWdkZGNBQlo0OG9uOWZQSnpqN0p2MXdLejNUYUI1ekVjcDV4YTNTQXZOVWtVSUtVZ3pYSjhUOVk0YTZrVWFaWlR1UFdYRldXOXFMVXhCSUZQdTl2aTdpODl4VGZjL3lodnZmRTllTzE1VEgrZFV2aUkwQ2Z5Qk5Kb1Y4MEVEbUp3Q3lOc0FDRlpsdlBNYzYreDBSdlFhalhPZ3QxdVp1VlJFRkFxVFpibCtMNTBQUTFJa3BENWhSa3V1R0FIYjduMkVxNjY2bUplWDRLbC9ncTMzcnlIbWZtRWRMVUhucTNXbE5hTUpobnRvaVNLZ2kzc3FGS3BtaTFtakQyWUJnNHEvTnMvK3dQODBGLzlHYUJBcC9kU3JCd25TaEpnSDhjT1A4MVhIbm1PMy8zZEwzQnFhWTFPcDBYU2lFbWFDVnByNGpnaWlFTEdhWWJ2bURuVlBjK0trc092bitLRkYxL25jNTkvakxlODVSTGU4NTZiUU1Dbi92Z3pYSG50SHE2NGVpZU1SK1M5QVRJUytIT0xLR1ZJMHdLampHUGZTRHgzSUszM2gzU2FDWXV6SGRiN1k4YVRGTitUbTFuNlZKWXNoQTJBbm1kLzl0U0pWVHhmOHZaMzM4eEhQLzQrM3Y2ZU93bUNQUzZ4T3c3RmM1VDlQdVFUL01oVythc3JJNDZjR0xDOE5pRXJCRnA0Q09HNXBOSkhLWFZhcFkxOXY1NkVqVEdZQVZBaXBjR1hoblk3WUhHeHc0NXRzM1IyTElDM3dNNmRsN0x6bTI3a0E5LzA3VXl5SXp6NTZMTThlUC9qUFBISWN4eDkvUVRycXoyVU5rUnhTQlFGZ0VCcnhZbmpLOHd0ZHZuYi8rQ3Z1UmMvQldLZVZydEptdHMxTGozYmt6aVQ0WGQrQXNJNWczbVdsNFNoYjhza2JTaUtzdDVNVVJqUWFzUUlDYjNCaUhHYWs4UmgzZnc2VzVsZ08vUUczN01VTjZVVXF5ZFhVUmcrK0pGMzgrM2Y5UUZ1dnUwdVlNR2Rzc2N3a3pYVVpJRE9KcWdpd3lnd1F1SVpRN3c0QXp0MlVZNHlYai9SNS9XanAraHRqRUVaTUFxdE5Vb3BpcUpBNnpvUEEydzJPdXBuckMydjFjczRhU1pzMzduQXZrdDIwKzNPQXdFenN4Znk0WSs5bFE5LzdOdFlYbnFSTDkzN0JGOTU0Q2xlMlA4cUo0NHRrYWM1K1NUbDluZGN6NC84MUE5d3hWVzNPdjcrSE1ZRm5iZ29NZHFXNUJYbXA3VkJDb25TaHJ6STY4YXkxaENFUGhudytwR1RRSXdRSHNKa2FDMHhTTnZzbFpiamIxVFZMWE9sbC9TQkJrZVB2TWlwVSt0MHVrMktRcDJkS2k4TVNua29iUmQycVMyVmJmb0F0dS9UOWpMYXpaaFRwOVlZak5ab04yTjdxT0pEMU1EemZTaHlWSjZoTkJnVTBtV3RBa0VRV3V6NHlKR1R0RUtmZHJOQm5oZHNaQ09YRVZwczFEYUQ3U2JXMm16SjBwUXl0Z3l2S0l4VGp6UXJMSDJ0dm00Z1JJZzJBaEZZZUUxbE9hV29jR0lOMGlNSUE2UWZJRHdmVUFncGlKT0labG5TYU1UblpPeFhlTGt4Z3FRUklhVndBVUdnbE9iNDhSVmVmZTBvOTl6ekdCZGNzSVAzdnZkdDNIN3JkWHpsc1NWdXZlTkNabWR5VkZtNHBpc1VoWExyd2xJVGhiRHdpaEFDMzVPdWdTaEowNHlWNVRWKzl1ZC9ndS80N3I4SnZFSzU5aXlxUDBMNFBzeGZDblM0NXd0ZjV0Lyt1OStsMlVyWXVXdkJOZUpkYndyQkpNdEo0c2hWMHdyZms1dE5laUVJd3BDRlJrSmVGano4OEg0ZWUrd0Zici85TFh6b1EzY2hoR0RjSDNIRFcrYVIrUkR0TlFGRnM1blFhTWFzTDY5dkNaVDIyaGg2Z3pHTlJzUk1wMEVjK3ZTR1k3S2lJUFQ5K3ZwVnIyK0FvMGRPb2JUbXZSKzRpKy83S3gvbCtodmVDVFNCdzVqSlE2aGhINTJuNkt3Z2FrU0lkb3ZqSjRhOGZHaU4vcUJFNEZFV0lSdnJmVlpXMWxuZjZEUG8yOTdSZUpMYSsybW9hYjJCN3hFRVBwMU9pNW1aRmpPekhlYm11blM3YlhJVHN0b2I4K0xMR3pTaTE5aTlzOFcrUGZNMHRzMUIwQ2FKNXJqanJ2ZHp4MTNmaERHbmVQbmxsM2pobVZkNGNmOXJ2TEQvTlFhdWR5aWw1TjFmZHhzLytHUGZ4MldYdncwOXZBK0VSRFlETklhOHNIRVI0OWZYNGF0NW5CTXpEM3lmUmh5UkY2WGxGeHRERklZa2tXdkc1QVhqMUhKK20wbGtPN0pLdndGYndHSm1SNDZlQW0zNDBJZmZ6ZmYrbFE5ejFiWHZjRGZxT0tobktFZnJtUEVBZElFeEVvTUhNc0tvbkNqMjhMZHRJNTM0dlBENENVNGVYMFVYSmFyTTZmV0duRHkxeHJIanl5d3ZiN0M4dk01NGxHNHVFc2ZDQ0tPQWhZVXVDd3V6N05nMnk2N2RpOHdwVFRwS09mREtFV2JtV2x4MXpSNjI3OW9GbkFSOEZyZGR3MGMvL2pZKyt2RWVnOEZoWG43K0lPdnJmZVlYdWx4M3d5MTQzaUtZVjIzcEtiWloxb3MybTh3T1kwdWxaaExqZVFWWlhtQzBwVkxWS0o3V2FCYzJSb09obzQ5cFNtWHdBbmRhYTBXaHFCdGh4Z1VBQ3gzWm54ME94MHpTakZhcjRlQVNXVGVTWER6RGs1SWc4UEE5bTdFRXlyZU5LZTFJV3k0TGtOSXVLcy96eUxLQzBTQ2wzWnhGaEQ3Q2I5bm5WUVZJZy9FOGhHczZpeTM4QlBlWmhobXFWSXhUeXlid1BFa2NCdTY3akt2c3ZMcnNub2I4ZkYrQzhGM2pURy9xY1FEdGtvTlFDRWNSYzltaEZIaENvMG9GRmR4U0dvVG5FUVFCd3Zjd2FXcEw4b3F3S2dURzJGL1RlWkNaQ3VrR1VXZVUyb0IwMUFIYi9KSTBtd210VmdPdERjZVByL0Nydi9KblBQblV5M3p6Ujk1TmQ2Yk5iYmZzd2l1SFUvMmVLdXZhcEttVnFyUVFtR05KU1NrNWNXeUpILzNKVC9BZDMvMDNnT2ZKanorTjBiYXlrSkVIZENpS0FaLzg1SU1ZWTVpWmFXRzBYZlJpaXJsaGpGMVhqU1JtTUJyWDY2SDZUQWFEVW9yQTkxbFluQ0hQUys2Ny93bWVlZlpWdnZNVFg0ODIxeEYxWnJuNmtsMm9qVFZBRVNjUlNSS3pQQVd4VFdmYm5pY1lqek5VcVdrMkloWm0yZ3pHS2FOeFNoQllVb1NVSHNQaGlPTkhsN2psOXV2NFczLy9CN2o1MXZjREVsMjhRTForREZGTUVGcmJtS0FGOGVJc21RbDU0b2tUTEMyTkVNWnc0c1FTTDd4d2lOY1BuK1RZOFdWZVAzcUtMQ3NJM0JyV2JxMEpseWhVK0haWktEeGY0dnMrZnVBeFA5ZGhjV0dXQ3k3WXpvVVg3bUx2QlR1WW41dmwxV09HVjQ4Y1k3NXprc3N1N0xLNHN3dnlWWkFKSXBubmlpdmV5aFZYM0FuZm9qQm1uZkdraDFLR09FNElnOTFBaGs0ZnBGdzloVCs3eStsbUxFc21LMHFDSUxEcjNaSDdiYy9PdkNIYjd1ekJYQWpDMEdNd25tQ01vZFdNN1FlVWdxSzBXVVR1S0hHdFJvd1UxR3lXYzVML1BjbWdQMlp0WloxcmI3aUNuLzY3MzhQdGQ3MGZhQUZITVBsK2RIOE5uWTB0UlNlSVVVaDh6eUNSK0ZMaDdia0FyU09lZi80NEIxNDVnUzR5QnNNUkw3MzBPczg5OXhxdkhUak9xYVUxeHFNSlV0cG1rZlRrR2U5TEtWMEhnVEFNV0ppZjRZSUx0blAxMVJkeDdiVVhJNFhrb1MrK3pNejhNYTYvWVM4ekN5MllITWVJQmlLZW85M2V3MDIzWGpuRjZGakZGTStnTmw3SDYrNUFoUDRXWHI1eDVWWWpsb3dtYVExRGlhbE1UMmx0NldGbFNlZ2dEbERJSU1LM1VjSUpSc0FYcHM0d054a1gybFZFbGo0bmhjQVRnc2hSNnFUY1pOMElZZGtDZmlCcmpyTVVnc0QzNm9QSEhrYTZMdmVyN05rNHJyRU1FM1JSb0lzY3JUV2xzbGNpQ0h5SCtSbU0wbFA0dEU5VzVJeGR0aDhuVVUxTHJPaGNucFRFVWVnYThITEwyckZDTGZzZVBGbGxrazVjVkNvSzl4Nmx0NmxBbEVZaGpFWUtLSlZCSXdqajBPTDZXbUh5RXFNS2pBbTNjRitrRlBYN09wZjJyN3FXVW9wTllmUDA5eHFERURBN2EvblJUejd4TXE4ZlBzbFAvWVJtejU1dDdMMXdqMk82bktXM2JTd0hQSEZrQWlFRVN5ZFh1ZjZXcS9qSnYvTVR3R0dLazgrQ2tnZy93QlNaZzRvU2xwYU9zNzR4WUhhbWhkYkdDbmlFZEovSmNiSkZKWDd6aVlJMmc5RmtTbXlrYTFqSEdIdFBmTjlqKzQ1NSt2MGh2L2hMdjhlM0w2OERodG1aNjlpNWF3SEliZi9kNkpvaGM2NFlVSlFsZzVIR2t4N3Raa0lTaFd3TVJwUktzM3hzR1QvdytRZi80cS95ZlQvOGc1YmtvUGVqTjQ2UWo4WVVoVjIzQ2cvUEtGcTc1dW1OQXg1NStBRGp3WVJEaDQ1dzMvMVA4dlRUcjdDODBpUDBQV1ptbXN6UGR1b0t0WEJjZnlFMkQydGJKZXZUQkxPRzFkVWV4NCt0OE5qakx4S0dQb3VMczF4NDRVNXV1UDV5cnI3NllvVFg1YUhuQnN3ZUhuSGx2ZzZMaXdrTWxzblZ5M2hKQXk5c0lKSXV6VWJEM2RrSlRCNm5ISzZqeGtPWGdkc29NVHZYdFgwWjN5Y0tmWGVRVjdpS1RjaXFhdTFjS2J0L3RrQ08wZ3dHRTN6UFVwYWl5Q2ZQUzhhNVZWdm1SZWt3OHdSanpCWWwzSmxQWnpQeTQwZFBFVVloZitkbmY0anYrZUh2Qm5ZRFJ6SDVpNVQ5SmZSa0RNWkRlQjU0amdNclBNYjlQa25USTloeEtVdkxLVTgrOGd6NWFFaC9NT1Nocit6bmdRZWU1dUNoNDJodGFMY2J4Rkc0VldWM3ZsckJsY1dENFloSEhuMmVMei80TE50M3pISGpEWmZ6OXJ2ZWlwUzcrT0o5cjNMaHhUdTQ3cnBGeEhpSmZPVXdzakdMakdJSWZVaHpkRDVHVDRZWVhlTE5odldLMEViamU1SkdFdUY3SG5saFdSN05KSEtVTEdxQmlGYWFOQytJVEVncmlSaFBKb0RHandPS3lSRGhXUnc2VHdzRW1qRGN4RmVOQ3h3V1V2QVlEc2MyVXcwREdrbEU2THVHazJCTGcwMEtVV2ZBbnBSRWdabFNqenBHZ2JiM040bENzcXhnUEJvQ095blRsR0tTNC9tK3JTWThhUnRiMG16aXkxVXBKT3loMSs4TjhZQWtEb2hEeTl1dGdrdjF2cEk0ckZrTmRSQVFrakR3TGYvYkhVekc2THI2S1V2bDZHK2FvVk01Q3NmQXl0SVNnOEFQQTZMQUI2TW9NbnNOL1lvSlZKK0lEbWJ3UEpJb1FHeVJ2NXROSmFUYkoxSksvTHlreUhPVVVrUnhWR2ZTMHdFUklkaTFjNTREQjQvelAzNzkwMXgyeFlYczJmYzFDQkdmZVV3SUtFdkxXdkNrSU11Vmc1SW1mT3piUDRwZ0VkVzdHNTBWaUNCeHBWbkYzSml3dUcyT1JpUG0rTkVsT3QwMlV1RFlTUkpQdXNQVDdVa3BKWjFXUWlNTzZROG5Gc1BHT05qSHdwUlNXdTFBcVJRejNSWlJHUERydi9FWmpOWXNMTTZ4c0hBbFFTaHBOUlBhclFhRml3M240bzFYOTZVb2MwWnB4a3lueWVKc2g2ZWVlWm5Mcjc2SVgvemxmOFFsbDcwTE9JUWVQazIrc1k3UUV1bEgxczFCQ1B4aVFyeGpudlcwd1NNUHZzVGE4akwvOHpNUDhkbTdIMlk0bURBLzEySFhqdms2UVNxS2ttWWpCZ1A5a2FZb0xUZGR1UFZ2SVQyeEJVc1RVaEI1RVZFVTFmZC9NQmp4NElQUDhLVUhubUxmQlR1NDVlYXJ1UDMyNnhDN3R2UFEvaDQ3NWxPdXZYeUJSa05ROUh1VTlCSCswcFRFMXlZNENCOFJOakJsVnRldHdqWFZmVS9pU2JGWjJRcTI5R3JPeWF3OUg4emllUjVKRktLVVlqaTJLaTRockpCRWVwSkdIRkdXWloxbG5pdFlGa1hCOFNPbnVPbldhL21udi9EVFhITFpPNEVCNkNkUjZ5Y29SMzBFSGpLSWF5V0JFR0RLQXQ4b2tqMkxrR3pudVdlUGN1REZBeFI1eXBlKy9BeDMzLzBJaHcrZm9OR0ltWi92MXJpYkZBSTEvYUhQWWFkUWxWaFNDdUk0SWtraWpJSEpKT1BUbjM2SUwzM3BhZTY0OHkxODhQMjNJNHhpZFhYTUxYZGRUbXRIbi96MW81UmU2TEpBNFlUVnZyTnoyUFM2Q0lPQU1BaHFTd0tFaFNET3lQWU1sSjRpU1NJRThNb3JCV2xhMk51ak5VYVZpRklpakczZUNoa2lYSk9rc2pkQWVzNTdRem00UUJJR0hvM1lCazFQeUZwSUlNNmFOUWtxaFhTOUdZMUIxYUlWbjFJYjI0REY4bXI5ME9MTnZwUjQwa0kwUldHeFg4KzMrTDdRbTVXUlFPSmpnMHNTQjY3NkVQWDlxREpCS1NScG5tKzVYMUlLcTFFSWZJcWd4Qmh2MDFyQ0tZSUJDNmxVZGhLbFFrWXhRUlRZditjRmFJM3ZDYVQwdDlnVlZQZE5Pb1pQSTQ3Y3ZUcTNOVUxnZTR6VG5ETHc3R2V0bVU2YTBzbnBTL2QrRExCdCt4elA3ai9JNy83T3A3bjl6cHZvemwrRmxNSFdJSUx0VWZpZXE1SUVEQWRqZGwrd2g3dmVmUnR3QkRVYUlvTUVxc05JR2t4UlFIbUtNTGlPSC90cjM4WVAvK2kvUkpVbEhSZUFLejJFbUlMY3FnTnpjYTZMRUlLc0tJaUNBQlZxY2hjRUxhWU9vclNIVEJ5SHpNOTMrUDAvdW85dDIyYTQ1Tko5N055N0Z4Z1NSYUdOQjI5Q05oUDRIcjRSbkZ4YVoyMXBsVy81OXZmeWozN3VaNG1pWFpqOElmTGxvOVlpeFkvQXQwSXJENE11UytLNURybTNuZWVlZklGWFgzcVZYLzIxVC9IODh3ZVpYK2l5YS9lQ095eEtmTThqREgyeW9rU1BKalNUbUZZalJtbkx4S3ZZUEVKczl2bU11K2FiR3MxcWNRcWlNS1N4UGFZc0ZVdEw2L3plNzMrQisrNTduRnR2dTVaM3YvdG1QSFp5NzhNbnVPcVNMaGRmdG9BWlplU2pGT0Y1bHRjdkpIZ0dZZHkrTldCS1M2ZHV0aHFVV3BObXVST3RiYVZZNTNtNXljdC8wekNMNVYyUkpMYmJiWXk5Z1FZc0JCRDZSR0ZBWHBTMUY4UzVBdmw0TkdGdFpZTWYrdkdQOFRmLy9rOEQyNEdENk9IcmxMMDEyeGowWTh1MktFcVhZVW9iSEZWT1k5Y09pSGJ6eENQUGNlTDFZeHcrZEp6ZitiMHY4TVFUTDlKcU5kbTVjNkhPbHV5Nk5KWTk0VEkzZ1RnamdHMUJRYzIwT01QK25pUVJqVVpNbGhmYy9kbUhlZUx4bC9qSVI5N0pPKzU4SzErOGU4ek5kMTNIdG91dklEOXlDQ09zNEVkVUFWV2NXWWFubVcwT1J3NG1PRjNDYm9UZFZJMDRvdDFJT0xHOFRxNzBadFBLL1VpdWJNWWJoaDYrQkYwV0ZBYU1EQWlUQktHTExSR25LcXVEd0RhWXhOVGhKdDVBbHIrSnJ3czhBMXBMRzF6UWpsRnRrSjVuZzRrMURDR2RsR1NGUWdwSkdIbzFER1JVV1ROa0xMeGo4WGViSmNwYUlldVFJNVJ5a213MkZjZlRvVTVXTENsUlhXT0o1MHA0SWFEVWJoTklRZGhJOEVMTDBWYWxzZ2RXUlMrMDZSZkMyN3FHcTZaakZQcE9sYmtGT3ptTm5pN3doZURuLytQZjVaWmJydUVIdnVQdjhlS0xCMmgzbWpZakxCVlpYaUNFdE5pc2xMUmJDZmZmL3pTUFBQd2s3LzNBcFV3bXcxcklYU1VZWUE4dTVSVEUvZDZBeTYrK21GMDdkNEE2Yk5lNkp4SHU2OEpWS0twL0NtL3VCRC8wVi80YW8vR0VmL2tQL3pOU2FmWmNzTDFXVUJ1eDZmamlTWThzdDgzakhRdXpIRHUxYWhrNWNVaWdGR1hna3hjRnBiWTl0RW1Xa3hjbFNSSXpIbWY4L2gvY3k1MXZ2NUVQN3IwR1dMUkNMcVczZU0rY2E2RnBXMWF4dnJ6R0ozN2dRL3pzdi9oNW9FRDE3NmJzOVZES1F3dUJLQXE3U1Z3RkdYZ0tPaGR6NHVBcWozM2xjWDdwUC93UnAwNnRzV2ZQTnR0M2NGQWtyZ0lJZkk5bUV1TjdYZzBoZGRzTnVxMEdlVkV5R2svUVV6MGFpeFNadXJLeVdidXJubzFCS010Q2E3VWJkRHBOOHJ6Z3ovLzhBUjc0OGpOOC9mdHU1VDN2Zmh2N3RlRGtTc3JOYjkxT05KT1FEMHQ3M2JXbGY5WFlkeFhVTVhoZXNLV1NGYWNKajZZRlZGODFtOFUyWFN3R1cyRzZTUmppK2RJMjc4eVpySlZxTWZxK3ovcGFqM1NTOFU5KzRhL3pzVy8vRWRzWVZFOVRyaDJsSEkyUWZnU2VoekxHQ3BxRWgvQmNFNmFZME5peEF4TmR3RU5mZkl5bFk4ZjU0Z1BQOEp1LzlWbkdrNVJkdXhiUG9EN2E4bEVpQlRVT1BOM2NxUDNoekNiV1d1SENha3FKVmttbzR5aGs5KzV0OVB0RGZ2bVgvNFRubnovRUo3Nzl2VHp4d0ZOY2YrZU43Tmg3TWZtUlZ6RW1zc0lkcy9WS2FHT3pBME4wVmpNdU00WGZoNEhQWEtmRnhtREVPTXZ3eFdhREV5RXgwa2RLRDE5cWhGWmtTcUJGZ0ovRStCTFFKU3FkNFB1VjRJR3BiRmhzbmx2bTNMcklzNzA1TTRVZjFndXNFbUpZeWdWR1NKUXlGTnJpNVpGcjFPcE5lc0paY2VIcHhsL05NeExPNEF0VEM3V21FQkQzL1JXRUl6QVNtMVhWaDZOMDNIUmRid3BkbG1pbGtjNjBhZlBuVGUxbFltclBrZXA5MkVBdHZVMG5uOU9kcGpTR2ZKS3pzTmpsanJ2ZVFSVHRJWXdpcExCc3I5RDNyV0xQOVNHS1VqR1dnazZueWFsVGEzenVzdzl6NFFVN2VQN3Bsd2dqSnhSeExCYmJCQmJrRHVmVkNBYWppZDFEMm1VdUh1Q0hOdHNUOW5NVTR3bjRMK0oxcnVNbmYvb2ZjZHV0MS9Gei8rU1hlZnlSNTFoY25HVitZYWF1Z0thTjJRYkRNUXV6SGVabVdpeXY5UW5kUWVaSisxNXM0bWFiaHNNMEpjc0s1dVk2SERtNnpKLyt5ZjNjZnVmMXhNM0dwdTNFbXpTU2UrM1YxL25lSC9rdy8vQ2YvenRnQmJYeEtHbzRSZ1lKd2pjb2h4Y2JwV3p5b0FyQzJXMUFoeGVlL1JMLytiLzhDYWVXVnRtMWEzRVRsbk85SXMremE4SDNiSVhZYVNZRXZrOS9PQ2JOY2pxdEJ0dm11dVJGd2ZwZ1JPWk04NFRidXpid2EzdElLbzB5MnJHOVhJS05vRlFXN3R5OWU1SEJZTXh2L3ViZFBQendmajcrcmUvbHVyZGV3ZjFmT2NFdE4rOWlaaVlpWHgxQ0VDSXFBYURMSG9YbnVXQnVFeEtqRFg5Umw3eno4c3lGYytEVHhwREVGZ0xJc21LTFk5cDBvRlRhRUlZK1M2ZFdFVkx3SC83YnozTFhPejhPbk1Ka3IxR3VuY1Fva0xGbFFRalhmTEJxZHhkTWl3bkJqbTJRWE1wakR6M0MwWU9IK1lNL3ZwOC8vL01IbUpscHNXUDdYTTBRRVM2SWU4N2h6dmNrbmhOWlJHRlFaMm1ibmZyTkFGTGRLSzBNcGJZWWJWYVVkY09wY24xc3RobzBHakVQUFBBMGh3K2Y0RWQvNUNQMjRMampScmJ2dllUODhLc1kyYkJNRTNPbS80STRUL2hVem10aGZxYkRhSkl5R0kzeHBUZmw1T2JNaElSQkNJV1JIdmdKbnZUeE1YaW1SR2U1ellaVWNkWU5ZN0ROcG1tcTMxZG5XU0xxQXk2SkF1c040WnJIdWpSMWd6Y083RDNRV3RmOWdOTVg1V2JUOS95T21WVXp6a0lVWjJ0Q2lyTStoWlNDSkFrQnV5bE1XU0lEdis2TmxGbnBLZ05SczV2TzJvRGNrb2liY3lCMWdsT25Wcm5odHV1SW9obmdkYklpb3l4MXpaUDJQSW1RQXFNaERHd0pYWlpXa3YzNEV5L3ludGR1b3RjZjFvWmExVXY2RHNldERqZUVZUG5VQ3F0cmE4elBKUWhUSUVXRVZpVksyYVJMK2o0aWJxSkhFOUJQNFhYM2NkdWRIK1lQUDMwYnYvUHJ2OFB2L2VabmVHbi9BUURtRjJaSUduRzloN1hXYlBSSExNeDJHRTh5eG1sbXFjZENXRWhLQkJSS09UZEJRYzlZTmx1ekdmUEVVeS96NEJjZlozYTJ6V2c0SWdpRFRZWG5PZTZ6NTBrT3ZIcUU5My9UWGZ6RGYvNHZnRlgwNmxjb2h4TktFVUplT2hkSGUrOHNodWRLeW9aVmZ2L3BuOTdIcTRkT2N0SGU3VTVjWkhzcmdiTUxDWHpIakhKQnZaRkVyc0hlSmMwdG0ydzRIdE5wTmJtdzNTVE5jdFo3UTRxeXJKTXZyVzJNS0xXdUliUGFPZFNybkhsdFBHazJFNXJObU9QSFYvajVmL1ViZk9BRHQvT1JENytiaHgrQjY2L2Z3ZmJaQmtVL1EwUkpqWjg3R2hxUTA1MXAwKzYwS0lyeUwyeG41NS92aTBwWmo1WkdiTEd3dENpMzJPRUtoM0dYam9RZmhnRW5UNnpnKzVKZi9aMWY0THJyMzI5NW9hUFhLRGRXTVRKRWhGN2xJT1EydlcxUUNTSFFlVWJZYmtOeUpmdWZlWllETDcvS2Yvc2ZuK0dlZXg1ajU4NTVmTit2ZzVMbmduZ1ErSVMrYnhzOG5xeXBmbEZvVFhBcWxTcW5WY3ZHWlhsVlEzYzR0a0tHd1BkcSsxWEo1cWJhdlh1UkV5ZFcrWVYvODl2ODFFOThLMEVZMEhqN2JiUjNYMGgyL0RER2kwK2o0NzJCKzZLcmZPWm0ycVJaVG04d3NsNDFxQzNNRTR5MmhYU1FJSVBRSGhxcW9NeHpKbG5oYU9ZQ29TRVVwMEVsWXJxUG9QK0NOckcyU2FTVW9rd3RIZ3dDNGZrV3d6Y0diUlNGTW1nQlJnc3FEMDFqREpRR1gyczgxMVN5MmIwNVp6eXZTbHRQU2tyVUdTWER1VnhmcWtyTktrTnRmd0dsME5KdVR1bExsSFlOVTJVUXdwekYydm1yY00vVW11Rmt3cTEzM09Sb3RVdE0wcHcwS3l4dTdHQWYzN092TGFWZ05BbVptSnk1MlRhdnZYYU1uL2s3LzlIYUo4UmhiUlVRT25Wa1dTcWtzSHNMSWVqMWhqenp4TE84KzJ0dnc0OFRSeU5WbUZLaGhQMXpWWjJxNFFTVHZvVFhYVVltbC9BZDMvTTMrUGgzZlF2M2YvNCtQdjNuWCtMUmg1N2gwSUZqUkhIQS9Qd01VUnlSbHlXalNjcmNUSWNqSjFZb0NsVlhGVklLUXVGVEttVlpSUzFZNzJ0YXJRWW5UcXp3K1M4OHh1V1hYOEJ3T0tsOVpNN25TN0s4dE1hRmwremluLzNDUDdieFkvMWgwbzBSK0RFSWllZlV2MFlyTUJwaERMb29rTEVQZE1tTE5aNTg2bVVhb1YvdjRjQ1hoRUZBRk5wNDRQdHlrOUVtckkzdUpNMG9TOFg4VEp0eG10RWJURmp2RDRuRGdMbHVpMVpqbm8zQnhOcEpZQWo4b0laWGpOYTJBbldNczRwbVBjbnlUYWRMQTNOekhiS3M0RS8rNUlzY1BIaWNIL3FCRDRPRzYyL1p4L1paajN4cEhaZTlZb29DNFZtbWk2Z29vLzhMVHFqbnpjeWxGTllYUW12eXFVQmVCWEdsTkVvclBNLzZyaXlkc21xdFgvbnRLcEMvaHVxOVRObnZJL3pFNFVCMXdid2xjOU5saVJkNWlKbHJPSDc4T0s4OC96eS84WnVmNDU1N0htUFhya1ZiZ2pqV2h1OTVOWVVuREt5L1NhMFlkTm1mMW9Zb3NEZlVzakdDemV4VWdoQzJ2Sm1rQlhsUjBuQWlDcTJ0MkNmUGkwMk92YmJjNXUzYjUxaFoyZURmL3VMdjhSTS8vakhhN1RZMzNYRXowZXlBYkcwREF1OU5Cbks3QUJmblppaktrdlhlMFBMMG5iaklyeWlDZ1BCOFpKellRRnlrS0dXYmVBSkJHUHFiVnBwbDFZaGxpcGxCL1ptLzJrQnVuUUJ0VUJsTlVyU0JPQTVyaG9jd0drOVk3QloveW9UYk5hS1Z3VzNNMkpiSXZQbjNZWXdyMThWcDBJeXhCOFY1R3ZxYmlzSUtvSitDNHp3SnZpZFF1c0xkcFZzdlgrVzFrWkpUSjFhNDZKSUwrWVlQZjQxVEtRdHIxZUI2U1ZUZUhPN054bUZJRW9XVXBVWmowSG5KaVJNcitJRnZQV2pjdXZBY1pHZHRidTNoR1VZQks2czk3di9DZzl4MDZ6VjBGbmVpanIyTzlHTzhXRzdxR2JSQnVNRUtwbFNvNVZQSWVBTy9ld2d2MnNON3Z1NDdlTS9YZlpTbDVSZTQ1ek1QOGFWN0grR3B4MS9neElGalJGRkFQbE93WjljQ0M3TnRWamNHbHVzOGxSeFVvc0JLTktpTlFSYUMzL2pOejZDTllhYmJvdHRwYkdIbG43NGJTcVVZREliODQ1Ly9HV1pucjZUc2ZaWjhZNFFYTjUzN3FZOVd5allHcTFoUk4xeDhJR1RRWDJjOHpvakNzRzVZeDFIZ0trZDdHRzRlMUthdXRDc2R3V2ljWVRDMWw4bzR6WmhrT1oxbWc1bDJrMllTc2RFZk1jbHlQQ2tJcE1SSVM1TU9BbzlJK1RXRHovY2thVjZpaFlWVmJWOHJZTStlYlR6NzNBRis3bC85T2ovMlY3OFpQd3lJYjd1STdyd21XeDhqZk0rSzZxUUhGSVNCMVNjVWFXYm5RSGplLzB2QjNDMm13TGNHODFWZ3FSZ2pGbWUyMmJqdlczdmExZFVOOGp6ai8vZWIvNXEzM3ZBQjRCWDB4b3VvL2dBdmJOUURpWXdSYUNmM3RmOGdNVW9oS1BDM1hVV2FhMTU1N2xuKzhJL3U1L1AzUE1xdVhRdDFJSytFTGxIZ0U0ZWhFNzFVelF0eEJqeFFsSW93Q09pUHhyWVJXSEdEcTJ6Y0dkMTNtZzJDd0RaSWJBTk9FdnBlN2FPU08vaEZhODM4ZkplVmxYVis5ZGMrUmF1Vk1MZHRrWXN2dlJ4djhCaktpVS9PRldvczY5Tm1wUXV6WGJUV3JQY0dtNXptcVVFTk5VVlFhMHllMVEwVU00VWZVM05wcGoxcEhmZGNic0lqbXpSTTlhYUdhVlNaeG5nOFFRT3puVGFCOUJqblJlMXByWld5RWJ2eUtIR1VQS1dNNjl3N01ZM1piTXdheHpHdnMvYXpYU2NoTEZ6bmJUWTd0eHdBYndwTGRQQ004T3JaaGxYbWhNUGpoYU5MbXMwVzRwczZpS1d6SFQ1NWNwbS85UTkrakU3bkVxZjZ0WmJIMHp6dFRZYUVoUmFpd0NjTExIZGNTVW1ybGRTOFlXUEFjMklyNVNBRnJiUmpsa2ttYWM1WHZ2SWNqMzc1U1c2NjlUSm1GbWRKVC9YUTB0dGlLYXMzMlFDQVR6bk9VWk9qZU9FeVh2SUtzajNIdHNXOWZOdDMzY0MzZmRkM2MrTEVDM3p4QzQvdzVmc2Y1L0ZIOXZQVTA2K3dZOXNjYUVPYWwxdVNJQ2xzbndKbGUwcEZhZmRFdTkyb203WkdtM1BlSWlFRUo0OHRjK2U3YnVVYlB2eFI0Rm5LWVE4L2FTRjlEMVVXcUR4SFZQcUphYVZiZlgrc2ZVUGdFcWN3OEVuaTBEWnRuZUJzK2hTcCtpNlZvTkgzWFZOWEtlSW9wQkZIcEZsQlVaYjBoaVBHYVVhMzFXQmh0c1BFVmN5NXMwVVdVdUFaQit1NnJEK09BZ2JEMVBxMk8vK2xLbDd1M3JYSTh2STYvK3BmL3lZLzlkYy9UcU1SYy9PdEZ4QWxHWGxtRUhGaUtjZU1hYlZqV3EwbXc2SWs4RzBWNUhuZVY1Vm0rT2ZiMEZsUjRpa2JRQzNkU3JzQTZlUDdmajE1WXpnYXM3Nit3Yy85NHQvanRqdS9DWGlOWXZVRm02MzZNV3FVb3B4c3U3b1JOWlVMaVNsemdwazVZQmNuRGozRHB6NzFBSC8reVM4elA5ZXBKNG9Fdmtmb2duZ1UrWnMzN2p5WlplbTQxbEVZTWhxbmROc05qRGIwUnhQS1VoSEg5bWFDcVNsa2xnV3lhVzNxZXg2ZWw3c2JibWwvTzNjdWN1ellFci8rRzU5bDkrNXRiTisxaSthT2kxRkhubnZEak53WXc4SnNCekNzYlBSckdFTnJnK2RMVk9Fb2RjSXVYRjBVcE9NSjBnOXFLdVEwQjd2aXhKcFM0NVVsRW8wUUJzOHBXU3ByNFlvbGRENFVxT3FZcDNsQm1wVjBXZ2tMTTIzeW91VEVxVlhHV1k3UkpXQnBkN28waUZybGFxMFdwR09xZUxqQXBnMCtDb0dxRDRMcWNLN1VpV2MwMGQzbms5THltejB4UlVrUzVnMXdkM3ZkbENySTh3SlBXSi93aXVWZ25EK0xkTHA1VlpTRVJZR1A5YzAyNThGNksvT3JGNTgveUhmL3dJZjVuaC80SHVCbEYyamFtd0hvdEtld2JCNzd1VVBmSi9kS2lsSnM4WHczR0FKbnBGVTZCdENtOTRKMTFYemtzUmU0NzU2dkVBUWVWMTY1alcxelRjWnJROHN4cWwvM3RIdnNlWlJhVW1ZS3hpdUk5UlZrZUppZzJjYnZ6TEZ6NTBWOC9EdHY1T1BmT2VENDhSZTQ5KzVIZVBxeDUzbm1pWmQ1N3ZtRHpIU2JiTnMyaSs5WVFGSUlqQkNPdng3YTVxZ3A3TDEwcjMrdUkxRXJqZGFLYi9tT2p3QXg1ZG9ocExGd2xDNEtHOFFCSTZjK3kzUlh1aXlCQVozT0lvdUxjN3k0L3dCSlpBTjVPSldzbmRHN2NzeVdLcEhKM2YxUHM0SlFHeHB4U0Y3WUE3TlVpcFdOUGtrY010ZHRzM1BiTEwzQm1GNS81SlNzc3NiOWpmTUY2cllUeG1tT0p5MDVwQ2pMdWcrM3VEakw4dkk2LyttWC81Z29pcGlaNzNMVlZkdVFwNDViekYxbHppbzVvQ2dLQ3FWSVlzdHRuNlJaRFJQOXhZTzVjQTFDUjhNSmZKOUptdHZoRXMzRUNtREtvdDUwUnc2ZjRDZCs1dnY1eUxmOGdCVUNqUStURFNlb3NHV0hJaGhETVNuSVM4V2tVSGllYTZZSWtCaWlSQ0k2RjVIblBiNzhwVWY0b3ovK0l0S1RKSEZVeTd6anlKYXBVZWpWMDBUZVRJWlpGQ1dkWnNRQXczcC83QnFpSGpPZEZyNXZZWVN6eVdTRlUwUlc0ZzBwQklYU2RvaEVVYkt3TU1NVFQ3N003L3p1NTdqMGlrdTUrcTNYRWJTUFlNb2NjVHFqalNsTXJXdHRaMWMyQnBzREFyU3BlZFRqU1k3V1ZVQ3paWnZHTVVZbUdVSVlKeGlxUnJ2WlJGUVhKVUdwOEZINHZuQW05bUxLUzhUQlQrNmVuazNSV0NyRkpDc0lRNSs5TzZ5Ui8yQ1VzcmJSSjhzTHdpZ2tqR3haV0JRS1k2UTdMQ3BqTGdsR1VXWWxwY3ZFdFNwSTlLWVZhVFdxVEFweC9zbWZ4dFJpRmJZd2M4UTBVKzBjN1V1blVzNUtQSk1qdkUzOFZDa0xYZVdsd2poTEFTdmRMeERTVmhWR21TM1ZsRTEyRGFzckc2d3NyL0ZkUC9nQmZ1N2YvVXRnd1BqWXN6UjJYMTVuK1p3Vno3ZUlqblNqMlVJVjJLbEJaV1ZWVURYdC9OcC9wcUxYMVZXTzV4R0ZBYi8xVzU5bmNhRkxYbHpPM3AxTkx0L2RKRThMeG1saDJUdHVUWWhOOHI0TlptQVZod2JFcUdDd2NRcnYxQkpoNHpCUnMwWFluV1hYcm92NHhQZmV4Q2UrZDhqSzhpdDg0ZTVIdVB0L1BzaXpUN3pNMm1xZjJiazJNN050bTFRNHZuN2dXM3Fqa0ZYU3dEbVRyUFdOUGhkZWVqSHYvSnJiZ0FQb1BBY3ZzTENLM2pvc2dpMFZuSVcyVEpGaDBsVkVmQVVmL3VoNytmdzlqeElFTnNuenpuT0lWRUZYQ0RzWmJVdVZWZHFHbysvN3hISElKTTJSUXBKbEJjZVgxbWcxRXVabjJyU2JDY3RyUGRLc3dIZUpxQnVxVEJ5R3RRV0Y3MGxySU9qTTg2cUFmdUxFQ3IvMjN6L0p3c0lNaTl2ZnhjTHNBdG5Ka3dpWkFDV05aa0xTaUZoZFhpUExjcnJ0Qm9Idk1SaE4zc0FtNWMxazVpNWp6SEk3ZFdaeHJsTzd2RTNTM0daY3ZzZUJWMS9udlIrOGs1LzgyejhGOUREajF5aDY2MFROZHMzZGxKNUhzOTEwNmpabHAyb1lnelpXVnUxMzJ0WWc2dUIrL3VEMzcrWDQ4UlYyN1Zxb25mdmlLS0RoU3FscVROYWI3RE1paENETmlub2FVaU9PNnRtaWVWNmNoeWUvK1JKeEZCQ0ZBZU0wcHo5U1RzUWltWnZyY085OVQzTExMZmR4NFdXWDBKaTdHRlAwNjR4NGN3Q0F6VjVudS9ad1cxbnIxZGxoVlZaSHZtWGZsS3FpaE5xZ3BQS1NMQ3NKb2dqaGVlUlpTWnJhb0Y3QlRBWlF1WjNKQ29haUxEaXlzc0ZvbURMb05ZaUNvRFk0eTR1U09QQnJsa1NsUk0rTEVpUHN2TTJrMCtMRTBWWFcrZ05uY0tVNHRyeEdIRWRXYklqMU9ERmFJWlNqaFdMSXg1T2FKVklGTWFNclNYOUpUYlUxQnMrenBhUTRCMzFSTzRyZU5MSXlEVCtkbjFkcDExaXBES2JVRk9QTUJqbnAwMmcxaUpNRW5SWW9rNU9uR2I1ZkFJb3dzdGUzdno2d05GeFBrazR5MGtsT0ZJZGNlZldGL0pOLzlTTjg0MGUvRGNqb0hYNlFkSkRTMk8wNWFiNDUrL0ZTNGRtdTM1T0VnYlVZY0xpcjUwbkMwSXFINm12aWpENHJDdzNmODFpYzczTGsyREwvL3BmK2tKLzZpVzlHbFJleXROTGpzajBkWmhvaDQzRkJYbXBuY3JhWnBVb0hSV3FxcVVJYVB3Z1J2a2MyTHNpR3k0aWxaYnp3SUZHelNUSS94OExpSGo3K2liZnk4VTk4QzYrKzhqU2YvZVJEZlA3VEQ3UC9tUU5FVWNEY1FoZlBKVnhGcVd1MXMzRVdydFBtV2RWZDZmY0dmTjAzZkEzTnhnNllQQTdLSUFLNW1kR2Jpb3B0MTFabDFrWmxRU0I4OUdRREx6N0pYL214NytYem4vNGlYNzcvTWE2OTlsTE9HRHB3Mmw2T3dvQ2hzMWoySFBhL21iVmJQWWp0QlNTTUo2bExKandHSSt0enRERFhZZGYyZWZxREVXc2JRd3hPMktVTnBWWkVrZDIvVXVCOFpnVEN3VGRWdisyRkZ3N3hXNy85YVM2Ky9HSVc3cmlDc0xtR3dnTnltZzNyYlpQbmRxTFFhSkxSU21MbU9pMzZvd2w1bnI3aFZMcnpzbGtxRjY5dTI2ZlZTRmpyRGF4eXlnMXNYVmxlWTNISExQL3duLzhNME1RVVQxR3NuYlJpbWpLM3VaZ0JkWnBORVVpOElDSjBtMVUwZGdDYXV6L3paUjU1N0FYbTU3djE0RnlMYTRYRVVlQW9ocWEyajMwRFJoMUMyTEpuTUVxWmFUZTQ1SUx0cks3M0dVM1M4MmIzRmNhbXpTWXJwblJtL2trVVdvcG1icDMxVHB4YzVZLy81SXU4OTMxdjU5b2Jia0FFdnMzeW5DeThHcVUzMTJtVHhCRkxxeHYxZ3FySzlxcGhVeFRsWmx3VEdsQVVlY0ZrN0NodnppZWpkTUUzeXd1a3NKaXFLUlZobXRKZ2czMzd0dkdQL3Y1M094c0JXMWxWVlhoWnFqb3pyL3dweXRLV2hOMU9rMVlTMDNjTFdFclBYUXRGYnpDeHpiclpCckJPTmtuUjJwYkkwdlBxWm1sbE5vVWIzbUJLaFM3TExjR3VZcXVZS2M5cWNick5ndGI0ZVBYM1RkYzU1eTQ3UlkyWkYzbEJ2NThTdG4yTTl2QWR2SmVtT2FQK3lMSWRQRUhtYkdBaEp3Z0ZGMTI2QzVXWGJGK1lZWGEyelo1OTI5aTVhNTVyYjdpWUcyNitFVi91d3BTdnNYYndKVWE5aktoUlRSTTYveXphNmoxN1VpQkQyNlJURld4aERGSGdPOGU4elk4aFhQL0FOazhGZzlHWXVia082eHNEL3UrZi94Mis3L3ZleHgxM1hNT1RMNlhNdHdQMkxMUnNrMVZwOHJ4MDl3QlVhbXFadmVjSER0dlc1Smx5MEllRnhJcjFDWUlOdk1QSENaTlhhYzEzYVcvZndhV1gzY0NsUDNVblAvelhEblBQM1YvbWozNzdQaDY0L3hteU5HZmJ6bGwyTEhSWjZ3MUpvb0F3OE1rS2kvZFdmSWNxd3g2T005N3kxa3NCU1RudU8ybDdBZEp5d1JFQ3FhditSblhmWFVQQldOS0NHZzZRMFl1SXhtMzh5cS8vRzM3dzIvOGFUejN4SWhkY3ROdWF4cDB4cnREQ1FkWEFIRkY3eGs5Vlh4S0VGb3pUakNpd3pkMHNMK3dzVTlmRE9ybTBUck1Sc3pEYm9abkVyS3ozR1UweVBDa3BDcnVuS3NXOGxJS21ZOXROVW1zcmJJeGhjWEdHTDM3cGFmN3NqejdMRmRkZXlzenNUc3lwSTY1cTlXcElUV3ROV1dvRzR3bEpIREhYdFlacFEyY2ErT2FEdWZ1Y2FWWVErTDZ6dWhWc0RFYWJCbEd1dkZoZjcvRnovL2dmc0dmdlRXRDJVNjRlQlh4cktXcjBwdUdRYzJJcmxVQkxIK2w1U0tNcEJnT0NkZ2VZWitua3EvelpuMytSWG0vSUJYdTNvNVdkZU5PSVErSXcyQks4bGRyazhwNlZLK3cyem5BMFFSdll2bUNIU21kWmdlLzVETWNaZ2UrZmNlT3J4bDhsMW9oQ08xZ2l6NjEvZXhSNENCSFZNRUJlS09ibnV6enp6R3Y4K1ovZXc3VTNYQVBNQU5vSktPek5hVGNTR28ySWxmV2VhMnpJT2tnYUxEc2dMOVdVT3JOcStPUVVoYkpER1lRRVNzekVZbjlWczZ4VWhpSzMvdDc5NVI2enUwNndhODhNMy9XZDc4SVBmSkNTSXJQVmxSLzRXOFozcVZJUnhTRys3NU9sdWEyYXRLTkdTbmxHbFNLbFI2Y0pHNjhmWVRRc0NPTEFPanA2ZGtabVVXclhQTGRDSEswTnVpalJSV0VGTCtnNlVOdG1sRWVXYVhBc250TTM0YVlGYkZsYmdzcXBTVHRuUDR3MWtJRW44U0xMcEpHK0ZSZmxhVXBST0t2ZjFNRk5Xck8rM21ldVBFRzNHL0kzZnZxamhLRlBveEhSYkRmWWM4RWlzM1Bic2FQbzF0azRmQThySjFadFFoSUdqSWNUTUxrZElISVduczNtb2JtNVZxV1VoSzVwYjlkQlpRMWRibEhmbGs3UXRtMis2K2FnMnVzMlA5ZWgzeC96aTcvNHh6ejMzQUUrOUtIYmtIc1dXTzB0MFFvbGk5Mm0yN2VTUEZka3VhWC9WdmZhR01WNG5OV1Z0bDBMR3MvemllSUlMN1F3MVBMUlZmb3JmY0xHWVpydG1PYjJQYnp2QTkvSyt6N3dmcDUrNmtIKzYzLzhOSi81NU1Na2NjVDJuVFAwaHhOYWpjUUd3alIzL3ZRMktCZEZpZWQ1ekMzTUFRVW1MMnEyVWQxWGNOV0xrRk5pcmVycldydHFQaUpkV3lZT25tUm05a2IreHgvK012L2s3LzVUL3VUMzdtVm12a3VuMjlyaVplTDdOc2lPTTF1ZGVhNS9Zb2VXYURZdGhLeTJJUzlLNXlnWjRmdStwUXg3MWh0b05FbVpaRG56TTIyMno4OHlHRTlZN3cydDIyRXVhRFVpUEdtSDlNUmhzR1Y5WmtWSjZQN3RrNTk2Z0svOStuZnk3dmZlZ3U4ZnNRWmM3S0RSaUJ5c3VDa2dHd3h0ZjYvVGF0UTQvVmNoNTdjN0tZbENPcTJFL21pTTB0WWtQd29DaXNKNnN4eDg5UWp2L2NBNytOaTNmUnR3SExWeHhKbi94S0N0RGFaMFFxY1NpWlkrQkJKZkdLUXBNVm1KRUFyWldRUWtEMzNwTVo1NjZoWGE3WWJGRmgzbk93NkR1dWxRTldDRXczYzk2WitWYlZDV3VwNFFQdE5xSW9SaE9FN1JPbVcyMjZSUlJGYkc3T1pJVXZkWEZLWFcxbW5RODlCR2t4ZkZwdGpGNGVoSkhMcW1YNFlRUG1XcCtPeG52OEludnVlYnVPQ2lxNXdDVk50aHZvN3F0TjRia09XbE0zZXErUG1hSkFwZGhxcW00b0QxaXdDYmZXZFppZGFpbnNnT0NwbFg3bS9TV1pZYVpPaEI2REZjN2ZIRW84L2FiTlQzWGVZcHJKZU9neStFc05ZRmVWN1dHRzFaMnNORmxmb001RU1wTzd4NHg1NFpPMFREQ0V4aE40TXE3ZUJucmFadzR3cHVLVFJHS1JmTU40T2QwcXEyR3FpTmprNWJpRXByUzJzc1ZJMERuMTloS0N4cnlqVm8wMGxHWGhRMWs2Ymk5Z3M1amZVTGRLWXhXWUdJREkzWVVPUVRSb01KL1kxMWpodzRUS2tObm9DbUo5ZysyeVZxTk8yZzdXRks0TGt4Y0tJNFo2MVEyUStjYmsyd2VWREorajF1Q1FCWlFjc1pZYTMzaHBZKzZHWkJ0dHNONGpqa3MzYy93ZE5QSGVUcjMzOGpkOTU1RlhKYmh3UEw2L2dhT28yWVZoelJhQ1lFa2MxT2g2TXhSbHZ2cGNwYU4yazI4UU1mTHdnWWJBd1lyUS94ZllubkNRYURsR0tsajFHS0tEbk83TGFYV0x4b04yKzkvbDM4Ky85eUI0OC9kaC8vK3AvOUFjOC9mWmhXTjJhVXBzeTBta2dwR0djWlNSQWlwS0JRQ3VGSm9pU29GYnJXSjhiRFlBOTBZdzNHTjYySTBadnFjRDhBS2V4Z2tVSlNMaC9Ebnk5b05HL2kvLzdGZjh2TnQvMGF2L1R6djhHaEE4Zll0V2NiWVJTZ1MxTmJNcFNGbWhxUmFJTzZUZDUwYlRwV0RlYldXak1jVDJqRU1YUGRGcjNSMkhyQWh5SGFhSlpXZXd5akNkMXVpeDJMcy9RR0l3YkRNV2xtTGE3WCswTU1oakR3c09NcWJSek1DNnVjZmZYQUNmN2tEei9MTzk5ekszSitGK2pjdXFKT3NjK20yWVBqU2NaNGtsdjZ0T2QvbFdQanhDWVAzUEpkN1h5K01JQXdDTmpvRFdpMEUzN2liLzJ3aFZmUy9aU0RkVVRnSm9jN2liNFdIbHA2Vm4yc0ZhRXNFVlBVTnEvWkJMa042UEdaVHovSXhzYVFuVHNYOEtTZ0VVZTJtWExhTEwzS1NENTEySkx2eXFBcTJLYVpwUjExMncyYVNjUTR6VWl6d2xLSkpCYUxha1NzOW9xYXoybUhSRmh4U1RPMm8rRzJXbVZ1TFpkRDMwTkh0b2sxMFRrenMyMmVmLzRROTkvN0NOOTEwWldBVmNGNVVsak82bURrZWd5eWR1YkxpN0syRjAyejZzQXdwMldZQlVWZU1obm5sSkdwZzU2UWRoeGVwVEkweHBCT2NwcTc3TFNrMXcrL3hILzl0WHVabTIzWnFmSFZJbFlhNDRaQU5GM21NWjVrenJkRTFsbVVNZWEwczkwd0htY0VnY2ZOZDEzTHpoMDc0Y1ZqRFBwajF4dVFSRkhvUE5XcFM4VThMMUJwUVZHVUpHeU9FeFMxK2xVUStENXBicHZycDhNbmxXaE5UalhYeEJ1dzQ2MDB2MkRVSDdLeE5xVFpTV3BiWHlsRlBYVkpsZHB0WEppZmJ5T2FYYkwrS24vMHh3OXo4dmdxYzNOdFd1MllkanRoZHFiSndrSWJNZFBnOE5vR2V6eEo2QVgwSndyalNTZ0tpTXF6Wk9aVlRVcHRJVHk5anJTYmV4bkh2bXQ0YnpwYUZxVk5tcnF0SnVQeEJOOFRqbmxsSVQ2dDdkcmZ2V3VlNFREbHYvLzNlN2ozM21lNTg4NHJ1ZVhtUzloN3dRSzlQR1d0UDhBWEhzMG9KSWtpYXdFY2hmVTgxRkliMG8yUm01WWtVSVVpeXpXalVVR1c1WVNCSkVrQ1pCZ3hUa3Y2cjV6aStNRmxGblljWk5mbGU3anA1cS9odC83a1J2N2JMLzh1Ly9uZmY0YitZRUlZK0RTU0NBUk90T2U3WWRMV1liSmkyVlFLNVNvOWxpN3VsTXBaZkRqNFJRcUIwQTQyTW5ZTjYxS1FuenBPTUpzaDIxZnlzZS80Q2Q3eG5qdjRwWC8xYS96SkgzeUJzbFRzMkxWZ1lVbVhwSnplWUJkVFkvT21uZm5xeW40OElZbEN0czEyNlk4bWpDY3BZZUFUdXZneldWNmoyMjR5MTIwUlJ3RWIvUkcrbTNXY0Y5YnpKdlNCS0hCVmdGMTdnZTl4ejcyUDhOTHpCN25xTFZjQUk2QkpFc2R1bm9DcFo5Wld6SmswSzlqb0Y0NjJldmFHb1grdVRWRnhycE00WUpKWnorcEswbnZzNkVsKzhNZStrNnV1ZVFmd0NtWHZGTlVBMVZJSk5CN0c4L0VETzY0clN6UEd3NXlCc2h1eW1ZU0V2a0FtTGFERnF5OCt5a01QUFdQTFFCZFVraVJ5cGoxbVN6T2wrbnZvK3hSSzRSbkhqRENHaVJ2VHRqRGJ0WE5GaDVNdCtMcDBybzlSRU5CdE5lZ1ByVEYvVVNxYWNVd1FXQjhLVlpiblpjdFVCbGFSYzhkTDRvalZsUTN1K2Z4WCtLN3YvMVpnTDc1dnU5RVQxMWlwMlJoTy9xNk5wVVJWbE1ndHQwY0lLQlZnWnhabXVhTFFtNTFBNWRndjFSZ0dUMHFLcktESWJYYTRjbnlOVDkvekZMTkpnekN5MVZRRjNGUldxTGIwSzg3SUJzL1ZVaHlNSmlSUndMOVlIOENPQlViRENTTHc4ZHpvcjZLMCtHdFJLUEtzc1BSSTM4NThMYklDeUcxM1MyeDJUcFIyY3kxcjh5eHhHcDFNSS9HMytHeWZONkE3anhMSU1ZVWlWd292TFZES3ZpZHJyT1c1ck5QU1k3VzJ6b0FnNkMzMytKM2ZmWUJUYXozbW0wMzgwR0wyUWVpemZiSEREZGRmeUR2dXVoSnBESmZ1MjBWSEpCdzdzZ3laQytiR25BUEZON1huUnNVNXQ0MTVDMzhGbm1PRWlNMDFuaGVLdVc0YnBSVGpMQ2NLL1hwcVR6WDFYamxlZjdNWjBXekdySzhQK2UzZmZvQzc3MzZLRzk1NklUZmRjREZYWEw2VHVka20vY21ZMVkwKzdWYVRacXVCNzlsN3A1V2hMRXVHZVlIdmU4U05tS1JwSFVUTGRjTTR6Y2xLNCt4bjdmdExKeVZyTDU3aTJPdHJYSERSY1haZGZSbmYreU0veUZ1dTJzZVAvZWd2Yy96RUdoZnNYcUFSUlFqc1Bpd0toVGFLMWFXZWhkdU1RU3ZscGxGWjlseFdnQllDencvd2ZPRjZjNERTdHU4aWNFWmhib0tVQ1NnMk52RHlwL0ZubHRtMjQycis2Yi8rTjN6c0UzZnpYLy9qSC9MUWw1NWtiWG1EM2J1M25RSGoyZXljZXBLVzgyWmoydlhDazlLT2VGU2FWaVBCOHlURDhRUmZ5anFKN1BWSGpDY1ozWGFEYmZOZE1sY3gyNWhwOTJuVisxUGFvRk5OdDl2aTZORVZQbi8zRjVtYkQ5blkyS0RaV0NJSWhKM2FkUmFmTWltdEc2dzVqMEwwbkptNWtKRGxPYzFtZ2l3S1cwNHJ4WEF3WnVmdWJYelBEMzR6TUVFUFRxRFRGSUlHSlFJakxRYzFrQnBVaGk0aGtJSnVKNlpVMWFBRGlRaEFKbDFBOHNqRFQzUDQ4RWs2M2JaVGQwb2kzOE80TWxSS2Y4dEpWR1c1dGpReTFxNnpMR2trRWExR2JOM1FzdnlzelRMUHN3TWkyczU0cDlTS21YYlRacmRaZmxZRHNiTmVPQ2NDS1V0TEowdVNtR2VmUGNpRDl6L0lsVmVmNU9Bckw1T1htbkdhTWR0cE1jNnlPdU5OODhJR2VDRW9WSGxtUTA4SVJHa3p6Q3d0bUtRRjFsYloxQ1plU2hrcU5wZVF0dUdWcHlXUUVndkpiTE5Cc3hVN1NHalR5UzRNQXBTMk9HclVDTjZjK2xGQUZBZkVrWTlYS0ZBS1pRUTZWMlJwU1pFWGxLWGVZaVBnK3hKZGFyS3NvRXhMWnhLMUdjd3J2eFJibmZqa3VaMVd0TVdMeFhtcWUxSlNWTUpPemhQTnBhUExVSkFPTTliWHgyU3BJb2dDb3RoNjd3dHBHVHhhYlRhWDNkR0dHazFvSmlFNzVtZG9KR0d0QzlERzhPcUJVeno5M0JFZWVQQWx2dk5iYnFmaFN5NjVhQzlCR0REdVRXZzBvcTNPWUZ2c3dVVHR2UzQ5VVRmWWxYUExORk1pbzRwOVZXVzMvZUhJWnFTZUpQQUZqZGdHT1prS3NyeHdvL2JzcXpTYk1hMVdUSm9XM0hQLzgzenhnUmU1YU44aTExMnpsN2RjczRlTDl5MGlLRmxmV21FNHlwSFNvOWxxa0RUdFJDcGw3SHhlUFV5dElDYjBTT0lHU2syWjFna0xCOFV0MjZ0NTl0bGpIRG13d3ZXM1hjNU43M2czLytFL3dBLys4UC9EeWVVZU83Zk5rTVJXWERST004YVRncGRmUG1DcGdHR0F5dXhnNkVLQnhrTUdrdENUU0F4R2xlaENVeFFPanBIZUZvWk9SUTBraUZHVEhKMitodDlhUm5ZdjRLMDNmb0IvL3l2djVwbW43dU1QZnV0dUhuM2dLVjU3K1FoSkkyWnVvVXNRQkxXcG5oUml1dVBza3B1dEFiMG9GUnVESWMwa1pyYlRZakNhMU9QMmZOOURhYzNLZXA5V0k2R1JSQ3pNdGxGSzB4dU1hRGJzRUpZd2NQZmNXWi9rdWVLeFI1L2pwaHN1WTJOalNKSXNrYWJwbG1CK2VrYjFSbnYxdktLaG9sUVlvd2w4MzZxZzhEaDI3Q1EvOU9QZnlRWDdiZ0plUVExWHJZMnQ1eU4xaWVmS0psMjZzbkhLdXRFWEVBWUNyVXFyenBNZFlNU0REenhEbHBYRXpzZ3BESHdNMXV1bDhrRTRtMnpibDVKSm5tT0EyVTdMK1V0bnRmV0FPSWRqWDY0MGc5R0ViZk16cEhuQmFEeXBwNU8vV2RsN3hVTVBnb0NnVUhUYURVNmNYT1h4Ui9mVENEMldUaXpiWUYyVWJsSk9TSnBsRk1vYUxZV2hSMUVVWjJkbVdDL1hPak9mcElVZFplYitxMmlXbHBsaW1VV1R0R1NTdWtaalh0YUNKOS96MEZKYTFvSXg1RzVvcy93cVplemFWVGlCRVRBcDZQWEhGSVgxWUFlUURvZkgwVER6M09MemFWcVFUektibVN0ekJrRzhjaFlzaXJLZWdYbTYwS3FDMm15bUpzOWJRVWlOemN5RkpHNGx4SEdJNTl2c1Bzc3lpcnkwWmtabVV4Z1hSM2FTdThqS0thaUptbDdxQWJNelRXWm5XeHc1dnM0di9JZlBNdXFOK2M2UHRiam9nZ1ZVWHNJNFArdmdnTnFGMGFrR2xUTnZVbHJaK2FpK1gwTjZOYlp2RExQTmhNa2tyZUcvNnYzNnZrY2lOcWZhWnc1dVZKVTYyRUFVQld6ZlpnK2pZeWZXZWZuQVNUNzloV2U1YU84ODExMjFoMnN2MzhYZTNYTzBJMGt4R2JHODNnUFB0MHlYSUxBRFFOd1VLRC9ZTkt3cWl0STFJcWtGVjhiQTBWTTlOdTUrbWp2dnlyanBYWGZ4RC8vT0tmN20vL1hyZERzTll0ZC9pNk1BNlhuc2YrWUY4bUtOc0xzSWd4NUdSRWpmVWpCUkpTckxyQ08vbERaR2FHcVh5MHBnTk0wL1IyRG5uMnFQb3RkSGpKL0hieDlEdG5aeTNmVmZ4M1hYdjQrbHBhZTUrNU5mNHQ2N0grTHBKMStrdHpHZ005T20yMjFidHBvVXpxbno3RGF6VlVVMEhFK0k0NUJPTTJHUzVyVXBsM1hZOUJpNU1YanpNMjIyemM5WWVESzFqSmZBODlDaFQ2RjhDcVhwZEpvOCs5d0JQdm1wTDljelpaZE9iVmk3Y2ZPL3dXakxXbmRhVmttZUY0eEdFMmJuWi9qb3h6OW9CUzNESlhTZUkwTHJweTByVXlqbktXSU4yTzFBQXdPYkUyTEtITDgxQjNRWTlJL3o3TE92V0NHTVorRUxpN0hwbXBkcm0zYVNUZDk0WVJ1VGJxWm1SVFVhakNaMUppZW1XQTlWZk5UYVp2RnhaSnU1WmFucW9iWmZyZW1TY0FNVFF0K2pDT3pRaEVtYWMvOTlUN0N5MHVQUTRST3UwV2pmYXhTR0RNY1RCSUlrQ3B3NTJka1hqeEJ1eUlLMmdYdzgyUXdVbFdkejVlZHRQU3hMc3F4Z01za2h0d0dyS3VXbnNkaTZ3Ky80c2VZOGhsZlRlb05LZE9FSFBubGF3R0JDT2lrUW5yUXNITDNwL1Z3NTJPRU9uelFybWFTV21xaVZPWHRqMVRuY0ZVVzVpYnZYd1Y3VnZOMU5RNjF6Q0VOOGp5aHlBNXhkOXFQTGxESXYwVVpiK3BzUlc2VDlHcEIrQUlVQkx5Q01mTXpnelBlcHNjTTZ0aTIwV2RzWThhdS85eUR6TXkyKzl4UHZvVDNmUmZYSHRYZlExbXhxcS8xQzFYUlVTaE9HM3BiaHpkV0FDTXNDRVF4R3FRM2FEak05Y2RMUzR4Ym4yL1p3Y0NTQjFBbFVTcWU0eFRtZENnR3RsczNXUzZWNTVkQVN6NzEwbkpsT3d0NWRjMXgxeVE2dXVuUW5GKzZacDUwSXN0dzZkd3JmSjR3alBDOXdFSVNwTFJHcTU2K2E3M1pVbjhmUytvZ3YzTE9mYjN4L3lFZSsrOTE4N3Q1bitQeTl6M0xoM2dWS1kyMDFPdTBHeno5L2lNY2ZmcHJiNzdvZUw2aEdIQnBNYVRGaXp6Vk1xNWN4Y2pONXFUeWhqTkZzR1ZSYjJUVDRJVVlwaXRWVlpIOEQyVGlLMTE1ZzI3YUwrTTd2djVudi9QN3ZZdjl6VC9ENVR6L0lBL2MreWd2N1g2UElDK2JuWjJpMm0yN2M0Zm5VMGNLcVJIMWxYUmh6QzZOV2tHZlZ2MXJaNkZNb3hmeHNtM2dTMGh1TW1HUzJkeEFIQVhtdTZIUWFMQzJ0ODUvKzh4L1hqZGh1dDhWc3R3VnZ3Zy8rdk1HOGFuUk4zemlMTVJjMGtoQS84RGw4K0RqZitMSDNjOW5sTndCSFVNTjFoQXpzNUl5YVVqZWxld3dpMjN4UWxocWxTa1BnU2FUdkljTW0wT0xGL2EveHlpdXYwKzQwblB2aEpyZFlLMHZiRzR3bmVHWXpPR1VPMzJzM0VwSTRaRzFqUUpvVkpIRTQ1ZU05eFNKd25IbmhSREZWQnQ4YmpsaWM3VERiYVRtenF6Y2YwS3ZNTGZDOW1pTzdmWEdHaHg5NW5rOTkraUdhelpoZE8rWUpBNTlKVnRDSWsvcXpWVmpudWM0UEtTM1RoVW5CeFAyaUhwNGt0dnBXdUhzMVNYUDdmWmtkRWxHVmkzYVJDWVFmNERsV2dYUTBQd3R6dkRGZVhwazRsV1hKYUpqYUFKMlZLR2R2WUxib2ZyWWVVSlBVVFUxS2M4dE9PYzExVTJ2TG5xbXk4Mm1rb3BKaDYyb21hTjN0UDN1bEZnYVc3Y0Zvd3FuanF4dzV0RVNyRmRjbHVSVFdtME80akRQd1BZcThaRFRPSU0wWkRTZFdyT1FPWjhIVzhYbFZNSnViYVhKaXFjZi8rS09IdVBYbXk3bDl4d0tUU2JHcHZLd0N1U05hVjRJaDdmRE82cm1pSUhSVU5PdFZsRHZtVXFmVklIVVZwd0NHdzVRZDIyZjQ0ZS81V3A3ZGY1ajd2dnc4cldac0p3aTVJZGg1b2NnTEc5U1Z0dXdvTStWRTdIdVNtVTZqcnVoZU9iVEUvbGRPRUVmUHNYZm5ETmRkdVpkckx0dkpCYnRtaWFSbTNPOWpaRURVYUtBTjlxQjF2WTNhc0U2WWVwMkZZY0JxYjhLRGo3ekduUis4a1cvOXh0dTQ5MHY3R2FjNVlXZ0ZZck16TFphV2U5ejlQKy9qcGx1dklaemZRWGI4Q0FTeGJYYXl1YWJsdFBPbnZXaWN4V1Y2YTVCM0FrWGNJQTdWNzFNT05wRGhVZnhXQjlIY3pqWFgzc2sxMTM0dGYvMXZudUN4Ung3akM1OStrRWNmZW9ZRHJ4NGh5M0phN1FhdFRyTVdRSjFoMytzTzR1RW90UlZIR05qNURtS1ROdXRKeVhoaXh4aUdnYzk4dDgwa0xlaVB4eWhqV1M2bEt1MDR2NkRTZ0JoODZXME9wVGxyODhXY0VhUE51VEp6cFN1N08rUGdUVkY3K2xaeTcvZDk4QjFBakpxc29zc0N2TERtVkUvNWxGbnpMR09RWGtBcFFrU1pFZnIyeE5WU0lPSW1JSGo1NWNOczlJYnMyYjJ0OWlTWDdpWVdTaEZIUVMwR1VFcWgzUXpOT0Fxc0VWYmZCbmFkNW5YV1UyMUE0VEN3ckZCT1JXcnh5ZDV3akRHV0ZkTWJqcG50dG9tamtEVFAzMUNNZERZK3V3Qm1PMDJ5dkNBSWZYYnVuTitVcFB1K0c2OVgwbTQxR0UreVd2bDNYak9uVXNNNEowMUw4bHdoa002Z0RJVFp2TkpWNWwyVW1xSTBNQ25zOXd0QncwMDRDbnhyT0JVSDF1MnRjRUc4ckRQQ043Q3RVcnFHSnZKQ01ScGxEUHFUT2x1dW1DSm5DN0JwNWc2alViNDVrUFowdnhPbENHWGdHbks2VnJWdVd1THFlbDdqTkY5N3MxbXZMQnREMkxGLzVKcTQyV0IrK3h4eDZObVpsb1Z5MXJRZXh0aEdiVG9wR0kxU1ZGNlM5eWFNaGxiNUY0Y0J6VGkwWEdUSGx5OUwyK3d1Uyt1aXVURFg0cFZEeTN6NkM4OXcrNjNYMklyaU5NR1BoYlVzdjlyYTd0ckJHY3F4cUh4Zk1rbHRrRlJLaytZbHN6TXRwQlRrazAxZjdlRTRaWDZ1elhmOCtJYzQvc1NyUFBqSVM1YkhuVVExM0JJRWlxand5Y3V5SGxPb2xLcGhuV2tscmU5N2ROdlc1RXNyemNFanE3eDA0QlNmNnpTNGVPOENiN2xpTjlkZXNadkZXVWsyNkJFa1RhSXdZakJLaVNLZktMWStLTkxCVU5VQUI5OVRIRHE2eHBVdm5lQ3lTM1p3NlVYYk9YNXlvelppazFKU0ZpVVBmdmtaSG52b0dXNjc2d3FpZHBOMG1DUGMvTkV0M2lyVE4xcWMzWStubXRZbHBpQ3E2dnUwdEx4dW5TbFV2b0kzV0lmZ0VINmpoVWgyY3N1dFg4OHR0MzREUlhtWXh4NStpaS9mK3hnUFBmQWtMNzF3a0R3cm1KM3IwT28wVHhPdVRSblJwZGE1c2VGWWM1VkpYK1hVV1phYXNzeFJXdEZ0TlluamdJM0JpTFhlMEEyNWNCUEF6Tmttb1owOW9sdVhEeHVuMVdrekN2elQ4VXRjbVR3OXVhTXNTNGI5RVpkZGNTbnZmUGZOd0NuVWNCMVZHcXVWRUk2QXI2MVJqblNubWlsTFpGbmkrU0VaUG5tYUUza2FHWGhPWkZIdzRnc0hLSlhsZy9wVEhobzJjMVFZYmYySkIrTUpZUkRRY0NWb21oVTE1U3NLQXVLd1pEVEo2RFNUelZGcmhjVWlXNDJZS1BSSnM0S3NjRFJGc1Jtb3h1T1VKQTYzenAxOGMvazVXVmt5MTIxVEZJcmVZT1M0NFBZbWJRN210VGFaczUwbXc5SGtQQ3BCYW1aSWxwZG94MlJKczdLZWdGSlZMTlVRalNnTzhEMUJXUnJHNDV4OGxMbU91bkVMTGNTWDB2TG5vNUJHUXpBZVovVllzcW9wZUw1SFphNVdLazJhbHFScFllbGp1U0lNZmZLc3NKQlY0RTI1dm9wYUxKRm1CV1pTMUJhL1o0Tkl0SU5KSnFVNlkwRlhyQUJ4R3BWbE90dU53cEJTdTBIRXc1U045UkhycXdOYXJkZ2VqcG0xTmRiR1N0cXJBeUl2RktIdk04bEtzdHhlNXlDd1dnS3I0TVVOQnJhYWd6UzN2alRWR24zNHlkYzRkR2dKR2ZnT01oQ1ZrSThpdDNNb2F3NXp0ZWFNb2VIMEJWVzFzcm8rNENkLzVJUGNkZXZsL096UC9SNm5sbnUwVzNFdGFobU5NMDQ5ZFpDRnVRNDNYWDhKLy9OelQ3SnZiNFIyQjJrb2ZXdlJxcXdyWTFFcU43cE9VN29oRnRORHBvMkRtenhmTXR0dE9DZFVlTzdsNHp6OTRsRjJiNS9oNXJmczQ1YTNYTWhjUnhNa0phRWZzTDQrWW42K0E0RmtPRXdaOXNmT2V0ZG0vQWc0ZVdxRFhUdG02TFFUanAxWWQveHBlNzA3M1JaUFAvc3FuLy9zbDVoZjdITEZGWXZJOFJIclV5UFBvK3cxcDRjNnMrbmc2cHc2cFdmOWlEeFAxZ2VERUdBOGF6SlhGaHFURFNrR2ZZUi9DaTk2bWFBOVF4QnY1L1k3MzgvdGQzNkl2RGpDNHc4L3dmMmZmNFJISG5xR1YxNDZUSmJtZExvdHVqT2JGaVZWVXBMbEJZSHZXZmRGNTdCYXpVK3dSbjgrQ0krbDlSN05KR0syMDhUM1BFNnViTkFiam10dXU0VmNCVnNNWU0zWmUxZk92S2tXMzUwOW1KZmFOdDdxMHRCbWJYbFJzcmJhNHpzKy9HNmF6YjJnWHFFWUQ5REd6dWdUMHF1blpoUmxpY3B5ZkRkdlVSbUR5VkxDSUdDRVJ6cEltVjFzQXpFdzR1Q0JvMGh3ZkdLNU9lSEluWVJaWVRkWUhJYkVjVkFEeDlYQVc2V3QzM1lqc1FiN2FWRVFlTGJzVEp4NlZHbHREZWRkRm5NNnUyV2NaVVNSVHpPT0dJeFRHNVRNRzJQbWs3U2cwMHhveEJISGx0YXMwMkl0VHRrOE1NSXdvSFFlRGRiakpkdDBBcHlpNGFXWlhReFJHQ0FSak1ZNTQxSEtZREN4b29mS0sxeHBra1pFRkFlVWhXS1U1Z3lIS1oxV1pJT1M0NjFMQVlHejBmU2Q0cTNaU05ES0JwSEtEZE03bDYyQnc0cTEySVJIc3F3Z0s3UlZGcVk1ZnVBeE05OW1ORXpwYll6Y05mWHFwbEdXbCtTWllqeXhtZm5aZWhPVklqVU1iRE5LYSszd3h5blRMV2RrVkRYZ3FwcW9MQlhOSkNMTlMwcDNPSTNIT2IyTkVhZE9iakJzUnZhK1ZNL25tcEdtd3VhRlZWbE8zTUZwaFVrdTIzVVZqZEVHN1dzM2FGY3lGamxaWHRCdXhSdzl0Y0duN242VVJoS1NwamxSRkZoWXowR0JnZE14ZVBYMEdqYzAydmZxdzM1cHVjL2xsKzdrV3o5eUI0Y1BuMlI1ZGJBNTdjWm9zcUp3azZoUzRpamthOTk1SForLy8xbkhjdkxydFNxRlFMckdkeGk0NlRqS1RxT3ZacElxcHlxdEt1NXF2MmxqYWF0ek13Mk1nYlhlbUQrKyt5a2VlZm9RWDNQSGxWeC8xVjR1dm5RdlNTUGgySWsxd3RCREtVdWhMRXNMNjFXSzcwbGFNaHlsOUFZMjBDZHhTRzlnOTE4Y2gvVDdJejc1cVM5ejZhVjdDSUxydWZqQzdaVEhUbEtXb2xiTFRodGxhdTBPb2pwSkVPNGd0K1BMQlZhT0w2UXpqSE1HVjVzdzVPWlFGSU5FQ2c5UkdzcDhTTmJmUVBwSDhhSUdRYWREMk5qQjdYZTluOXZ2K2tiSzhuVWVlK1Fwdm5UdjR6ejIwSE84OU1KQnh1TUozVTZMVHJlRkYzamdOQ3JhR0pweFJDWWw0elN6ckx6QU1tRUN6eU1PQXNhVGpDd3JDSU9BYlhOZHdzQm5vejlDRzAwVSt2VUFhazk2WjdoUDFrWVZ5bGphc3JMdzVEbUR1VllhVTJxRXNhT3VQQ25SenNwVUFiZmNkaDNnVVk1N0ZGbUJEQ0tNQmxSWkcycjV2by93UElxc0pCMWFhTVVQQThxc0lKYVMxQS9RZmdTRWFMM08wdElhalVacy9kTzl6Y3l1eWlMUW1ybHV5elk5cTh6S1pSN1RwWS9XbWs2ellVMzFHeDZ6M1pZTHVCbUY4eU01WDVOdk9MWjB4VFFyME1xY0owdHc1bDE1VGh3RnRKc0pHLzFSTFhTU29xaGhweWdNTUE0MzA5cVdaWTA0WXBKdVZnQ2xVcldwVDd2WnBOMDBiTGhzWnpqS0xHVGl6SWF5ekRZMk96Tk5XMzczSjB3bW1hVTZGU1Zacm14Mm5pdm5ZbWVaSUVyWjVwOXlIaHhoNkR1ZkNqdnowSndITDY5L3J6TVJ4WGlVTVJ5bEdBTWI2eU1NZ2xhbmlVRXlIazBZanpLYkVCaERscFdNUmhscFdweTFBVHA5LzdReEJFRkFsdVgxYklmcW9ET2U1Y2RYS2pucFdlRlY2RXpFSnVrSTM3UHVrcE9KN1I5TTBrb3NKbHh6M1hOR1h5WGRib04ydDhGZ21EcEl6M3JmQktGUDRiakN4aUd4ZHM2RnRQTk5wNXJRY2Fqb2oxSU9IRjVtOS9hWk9nRXFTZ3ZyaFlGVkJ3c3BVVnJWMThUM0xiYytVN1lDeThxU2ozendOcVNSZlBuaGx6bSt0RTZuMVVRNStNTEs0d3ZTdE9UVVVvOGJycjJJdTI2N2tzL2Q5elFYNzl0UlZ5ZlRpWVluM0F4TTMxaVJtOU9KVkRiV1ZhQlhUajZ1cGE0cklJQldFdEpNUWxZM2h2elduejNNc1ZNYmZFaDZYSG5WUlJ3L0FXdHJJMnQ4SnlYTlprQVkyY05zZlcyQU1YRHk1RHByRzBPeW9pRDByZWQ0M2g4aGhXQnVyc1ArL1lmNHd6KzZsKzVNbTdMY3crVjc1eG12ckZNb3BxeUluZGVtM29RZnBSdkZaeW1td2syd29wN1BXYnJEdmhJNzF0aitsbnJSMFJvOUNWaS85bkk0SmhzTWtNRXAvT1FWb2s0WFA5bkdiWGU4ajl2dStDREduT0RKeDUvbXZzODl5b05mZW9xWG5qOUVsdWJNTDNScHRSc290WmxVVnZUbnNyUVUzU3BSVVU0NE5IWWVNZDFXZzNZalpqVEpuQjdGSjRsQ2ZPOGNQTE1LTVNrMVJwa3o4SFYvR3Qrc1RuR3BSZTBoWXBRZHhUVXozK1hLcXk4RSttVERBV1doOGNSV2M2RktBT01IQVZFalFldVl5WEJNMnA4UU9BR0dqM0tpRmNuNjJnWW5UcXhhTno1bkgxazE1c0xBdHhtcVV6Q09KaGxqTjB6Q0dEYkw3aXBMem5LU0tHTGJmS2NPQU9OSlptY0R2Z0VPTHAwelhWRllqL1BCYU9MR2VKMzkrN1BjZXJ4MDIwMEdvMGs5VHFzYTZGRnQ2azFHaVRYUlQ5MTc5SDFKbWhjRW5rOGpqb2dqYTZ4ZktzMTZiOGhnT0dhUzV1UlpTVjVZSDQwaUswaVNpTGdSMVZtd0twV2R6dUxlYTVHWHBCVm1EbWl0YWhWdHRaRHl2S1NSaE9UU2MzYTBvbTdRdlpsSG5oZWtrNXpKT0s5cGhjUGhDdEpibzltTWFUUWk0Z1FtWTN2dHF5bFZrMGx4SGorVnl0N0FaakVWM2l5bTVOY1ZMbDd0MEFydmJ6VWlodU5KbldGV2RFamhTYUk0SkU0aWxMYjN0c2hMbXEyWU9JN0k4cExCa1JYVzEwZk1kQktHdlRIallZcFdXNjBNdHNDMnpoRXZEb01hajZZbytiTjduaUwwS3pxdGJiQUdMb0J1Mmd0dndoelZKQ210TlNkT3J2TU43N3VaMjI2OGpLUEhWbmo1d0FsV040YkVjV2k1K3M0WHUzUmVPZ2VPcjdON3h3eWYrT2piZVdiL1lWYlhCOHpQdHMvd3VKOVdta3Jmd3hqTDU5ZG1NMk92a3FMS0FUWExpM29vZThXQjZyYnRGUHZQZi9rRlZLSDRlMWRmeUxWWDdlV0paMThuQ0QzeXZHUXl5Um4wSnd4SEdZRW5DVHpKSTA4ZFpIMWppQkQyZWR1TmhQRWtveWd6UEUreXNORGxNNTk5aFBtNUR0L3N2WWRSdjhQMWw4L2hEY2NNeHVXVU41REJEN3lhVFNJOXNlbUY3L3lmakxKTUk2VnRrRFBDSGdLVjE3K2NUdk1yOTAyOVNXMjBOaFFDS1FQS3dwQ25mU1pyRzhqZ0tIN1NJTzUyOEZzTDNIanp1N254NXEvbkovL09NUjU5NkFrKzkrbXY4T0FYbitMQUswZndwR1J1d1JvRU5wS0lUcXZKWURpbUxHM3ozcSs4aUJ3c28xeXNEUU9mN1F0ZDhrSXhTWFBMMUtuc2Y4OWltcVdVUmswZHh0UHIwNS9PdzZvQkZOSllPWEVWQ0RZMmhseDd3K1ZjZFBFdVlOVnlRWVZYRHpTdHZFaHdqbm41T0VOTWN1SldRcVBUSU05Q3lqeW55QXFFeW1raGdaQzExWFVHZlRzRnFCS1BoSTczR1FXV3ZqY2NwelVESkM5S2tyUHdNQXVsa2E3MFNxS0l0ZDZBb3JRVE85N3N3NVAyTkcwMUU2TFFyMjFIdHpRK3NOUXhLUVd6N1daZE5sWGM1eWdVQk1hcm1TNDJBRm5qbmFyemJDZVpORW1jQzZNVU5qQnQ5RWRNOHR6ZFVPTU12a3I2L1FualVjN09uYk1JSVRoMVlzTUtYWHliUlJxc2dtMDh6aGxQY3RMcTU5MW9KMk1zdmJPeUR5aWNhQ0VJUEhSVzRSVWEzZ1RuM000Q05Zd25PYU5SVmdmbnlpWmdNRWlKbzRBNENXazZ2SGM4S2RCR2tEa1k1SHhPbFZwcDhDekxKQzhWZ1MrbVhQZmNOQ09qblJlTjliMnA0SU5wV0V0allZUEpKRWNWaW9seitteDNHcFNsWm5tcHoyQXdkallCdHFtYnBwYmFlYjREeDB6cEM4TEFhaStVa3BZK2FuTGF6ZGhPb1JGbk1pRUM1NDhqaFNCeTNQSVRTK3ZjOEphTCtNNXZmZ2VENFlUeE9PUGc2MHMxWkZUNVdCc0g5V0RnMVlOTHZIYndGTi93M3V2NW5vKy9tMS82MVU4eG5xUTA0bWpMc0l1elUrdEE0dUY1SG9FMkxyQ2Jlb2J2MkpOMXhWczZOMFhqMkJlZFZzd2p6eDdpbFFPbnVQTHlmV1JwVHA3WkFGWGtpbjV2ekVadnhCMXZ1NXpleG9BSEgzdUp3VGhqcnRzaUt3b2FTVVMzMDdSemE1VzFqSjJkYWZHN3YzOGZjUnp3OWUrL25kRWs1YTJYenRGcEJQVEhHZElUZHNpS3NTUFpTc2QyOGp3NzQ3V3FLb1N3OTd5Mjd2WkVUZDJsdExOcFQrL01hek0xYXMvQmFxYXF4cVdId1NaWCtjYUE4Zm9Hbm4rTUlIbVpaRzZHb0wyZFcrOTRIN2ZlOFFIR2s5ZTQvL09QOExsUGY0V3ZmT2xwRGgwNFRydlRaT2ZPZVdZNkxZYmppU01QR0pJNG9xem1oMWFKcTlhTXhpbk5KS1k1MXliTFNzWnBhdEVFTjhWck9wemJRNkE2NExkT3gvSzNaRWFGcHNnMTBqWFVsTlo0bmtlYVpWeDh5UjZnQStvSWs3RlZiaGs5WmF4a2pEUE9FVFZlT3U0UDhYeGJnbmxKaEFvamREWjJaa21HMFhoTXFSU2Raa0tyRVJHRmZzMzdIb3hUeXlWM1BPY3c4Q25jOVBkcVlTcGxuSSt5Yjc5ZWxJeVkxQnZ0cTMwWVl6SGhKSXBJc3hIU1ljVlZmN3h3TXYvWlRvdThMQ3o3WlVyRUlwM3pXajM2Qyt1Ym5KVWw3WWJIL0l6bEJ6ZVNpT1cxSHFQeGhMeFF0VVdCWDQyamNoREpKQzN3QW85R0s2SFhHek1ZVEN6MzNzMFBWTXFRTzQ3eFpKSXpOOXNrelpVTG1wc2VIMVlZNFNBQ2JUZEc2UHNveDlDb1hldmVSSHB1Y1gxRjByUnVtbFd2STBsQy9NQnoxVUZlKzVJVXBTTExyQ2U3TWJ4QkJXQ3pjeit3VmcxNnFzdGY4NXVkSVZyYnVjajFoeU4zY0trNk0rLzN4NXc2c2M3U1VvOU91OEhjZkp0bU04SUFvNkVWNGtTeC9YczV5ZWdQVXRiN3RzRWVSWUdsVXI3Qm9XYUZOQjVDS01MUTJ4eXRKa1VOZTB4enpDdXVkQmphSWNGSGpxOXc1YVY3K01rZi9oQ0RVVVovTU1FVGhzUEhsb2xDbjJua1JEaWpwcUswTEp5bjloL2g0Z3UzOHpWdmZ3dkxxejErKzQrK2hCQ0NKQXJQRzlDbm44L0NGQjZlZEdwcUlRaDl5VGd0TU5nNXVHV3AzTGhFUXhRRnJHOE1PWHg4amV1dXVSZ0JyRytNblprVXJQZkc3TncyU3pQMmVPU0psM25wNEVubnpXOFB0cXdvYU1ZUjdVYk14bUFFQ0pJa3hoakRyLzIzenpJWVR2aklSOTdPdzZPVWkvZTAyVFhYWkR6S1NWVytPVURFbWNvVmhYSTZDUndrSVJ5YnpwR2pYZGRZbVUwN0JlMEdqSmhxU0R2WW9TVlU0d2sxbFhicjlBUU80Wk9Ya0swUEdhejE4WU5qeEoyWGFjN1AwR2p1NXYwZitqYmUvNkVQYyt6WXMzem16eDdpczU5OGtLZWZmSVV3OExsdzN3N2l5SExOZzhDcnA1NUoxeVMxOGNVd25FendNbzltRWpIVGJwRzV4SzdTeld5aUgzWU5hR1VvaTYxSjJHbVp1VzFtQ0cyenJVb1ZtV2VLQ3kvZURvU29iRUtabHhpeDlkU29lSkNDY21wS2lLQXNGSGsyQkl3ZHNDQ2tHNEJUTXBta0NBTnhGRHBYc1JMbHB0MUl1ZG1zckFRUVFXQXpHcy96blByUkl3cENOOVBUbHZFYVE3dlJjUFNzOHFzYWpDcWxxTHZSU1J3d21tUzFmM25oT3ZWem5SWkZvZW94VWFmVEZFdGxQVXFRdG1rYlZyTURYWE5ZNnlyTHNHVlZFUGcxbGxkT0xhSXc5QmxQQ2xiWFJpd3Y5eTFmM0pjMFd6RmhHTmhHWkpiWFBGK3REZjMraE1Fd3haT2VDM0NiMllmbEloZk9vbFBWRTh5VjBVaGpmeGR2b0FDTndwQWtpdWtQTE03Y2FpZG9wMmkxOHdvRjQzRk92emRtZlgyRVVzcGg1cGFiSGxiK0l1ZHBLbHNETHF3eXNpamRVT0ZOMjl5eTNKemR1TkVmYmxHeFNpa3NuRFVwaUpLSStma08yM2ZNRUNjUnc4R0V3bVc4WldrSEh4c0R3dk1Rbm1RNHlwd3Jwcy9ZWk9jTmhJak5CbW5tU2VjS1NTMVdPMnM4ZFRCdGxoYjAraVBlZHVQbGZQKzNmUTJqVWM3bnZyU2ZPMjYrakZNcmE2eXNEeXgvM0plMU1WaEZDQmlOTWxxdGhNNU1peTgrOGlvQ3dUZDg3UzBZQTMvNjZZZko4dEtPUnZ3cUZJUkNpTG9CbmlReFlJVjlsdjNsQnB1WG16MHFyUTFwV3RwS2NKd3hLQlQ5UWNxZVhYUHMyelBEb1lQSGVPeVpneHc4dWtMTFdSeFljYWZHaElhWlRvTkpaaHZJR2tnYU1WSktmdi8zNzJkbHBjZTNmL3U3MFJoV2V4a1g3V2pURENORzR4d2pyRXBTSXREU1dvVFV0cmhLWVp3dHRzWGJxMWtWQnFWd0xDb25PaFRHZXNwTG0yNW9BN3JRVy9leG1JTFlwcStsOUFDUG9qU2tTejE2UytzRThUR1NUb3YyOWdWMjc3Nk1IL2pSVy9qK0gvMFlYLzdpVi9qOTM3eUhMOS8zTkVJWjVoYTZUZ3NUMmNUVG1kdFJhMGNzTk53ZldxU2lHY2ZFY2NoNGtwR21lWjBnS09kL1ZCbkduVFV6TjQ1S1Y1VGFsWitXK2xPWjJpOXVtd0VrNC82SWRKSVR4Rkh0M3JYNWVVOGJMZUlHUkZRRTkzdzRSbXJON001dGdDVFBNaWFUdlBaV3NlWFRwcE5aL2JzN2tlSXdjTEp2VFJpR2VOSkNHWG1wYXo5aXJheGt2UkdIOUlibG04NDRwd05LbXVVMGt0aENBNlZ5MUNIRFRLZEpxUlRqTkswcGxJSk5YTGhTU2laSlJCUUVkUkFzaXBKUlVhS1VJWWx0MDdUUmlCaW42Vm5lbjZpRkFVVmVzclk2SUUwTFd1M1lUak5SaGtsdmJBZjkraDU0Rml2UDBvTGh5RnBsaXFsR3oyYUF0RkJMTmQ2clVQWlE5TFVoMStWWjUzR2VyZ2IyZllublMzcnJFdzYrZHRKVlNKWkw3L21TVHFkQm5JUTFSdThKSHpVdTdNR1Q1dldNeXpkNmxCVVYwdUc1MWRCanBld2FDQUtmMFRpMUF5dzhhZm0yN2pwR1VZQkJrR1VGMHJmODd1UEhWbEdsZGdwVFVWTUx3ZllRcEJCTUpqbUJMMnJQZnQ2Z0tldzVzelV2eS9HRXdITk1sMHF0dW5VM0NMSXNaMzFqeU1KOGw2OTk1MXQ1ejUxdllaUVdmUEtlWndsQ2ovblpGbzg4OFFMRFVjcHN0MTE3eXF0YWFHVEw2cVFWMDB4Q1hudjFCT3NyZmI3MkhWZno5ZSs2a1U2cndaOTk5aEZXVm52TWRGdTFFZFNicjBwdFVoQkZ0cXExVkVlUHpQZnc4cHoreW9qRitRNVhYYktIZzRlWE9iWGNzMFNBU2NHMitRN2I1bU9PSFQzQndTTXJQTGIva0IySDUyMWkzVUxZcXJmeU4xblo2RnZxc2JKWi8rSmlsM3Z2ZllyangxYjV0bTkvRjlkY2V5SHJ2U0hidWpFNzU5cDRDTWFqU1MxbVJGclBsb29HblJjYWpKdE9KS1ExNEs2cWFqY2NYSWpOMlFwS3UwSGZXOERwS1ZXU3JETDJ6WWFzMFZzYktBYVB5VGhuMkY5bTdkZ3ljZXNRbmNVWld0dDNjOWM3dm9HNzN2RmVYbm41TVg3L04rL2hTNTkvaXBXanE4ek9kK2pPdENoSDR6UDJmbld0aXJKa296OGtTU0k3WVMwSzZRK3RhNk5TeHYyeUU2UE9nWmxiejkvQ3pmT3JPS1BqTkNkcFJDd3V0b0dVb3N6dDhBWmZiZEtJSE9uSC9zOU5CWkcybzZ5TWNnWkRIamlGa3gwanBoRnlNOXZ4cE1YQmNDNkFGc2ZiSE8xVUJhSjJzMkZ4VTJQSW5Fdmc5QVdwT09pdFprd1NoZGIrMWhOZlZhWmlMWEVMT3MyWTlmNElvUVhkZGhPanJSV3M1OWdsZFNVajdEU2ZNUFRyNGIxNVViZ0F2NmxrOHp3TERSWEt1alRHVWNqRUJZUE5zdHpVL3VOWlhoTEhJUm83Q050bTQ5WTNYTGhsV2ZtVmVPNW5pdHllMmxXVHpXYTFpbEQ0ZFhOV2VwS2kxUGlSWDlzbFZMUytjMlBhRnNMSTBzTENQVkt5dUsxajRRWTMyN0lvVkUyWEtrdHQxWldqbE1uRUduRkpUNTV6NXVmcElpTFBLUnVMc3NTM1NpbEtwVm1ZNjNKcVpaM3hKS3ZIeWszSkFQR2tSNVlXckswTU9MYlVvN2R1aHd0NGxSMkFGTFc3bzgxdWJBWGFINlJXL1JnR3JLejIzakFCcUo0ekRnUGlNRVJwbTgyR1FWQzdKT1pseVNTMU1NSGNUSXYzM1BWV2Juekx4U3pPZFhqdHlBb1BQM0dBalg3S05aZnZwTWdMRGgxZHB0U21uajByaFVCVmJvWEd3Z09IRDV6aTBNRWw5dTVkWkpJVmZPblJBMndNTW02KzdqSjJicHZqYzE5OGl1ZGVQTXhnTktiVlNQQjkvMDFwd3VzZWorZWh0SU9FWE1VMVRqTzBObnpiTjc2RDNUdm11UGNyTDRQMGtRSVc1a0xhaVdCamRaMWpTMzIrK1BoTERFY3A3VlpTRHhlcC9lT1ZUWG82cllRc3p4bU9VekJPbFN3bDIzZk1jdmoxVS96Q3ovOCs3L3Y2RzNuL0IyN0JBQ3NiSXhZN0RlYTcxaWM5S3hRNlZ4aFQxcVp6bnUvamg0Rk5WaHlXckFzRlpqTTVyWVZIdFhMU1RORmNtUXJzb3ZhZnJ3NVZ6L2ZCbzg3OEt4cTE5QVA4MkIxV2VjbnlrVlUyVG0zUTZCNWtkdGMyTHJ2OFJ2NnZmM3c3SzMvOU9mNzR0Ky9sejM3L0FZNGNPa1d6a3hCRVByNDhjK0NFRkJJOG5IMTNUak9KNlRTdGdudzRTaG1NSmtRT0pqMG5OYkVvTlhtaDZ3RVBOVjgyOE9sMkV5QkRsNldkTHFNcVdiV3BTOHZLbUtpNm9GbFpZSVFOUk1aWWtZa3VDaGZNRFZtYVVwWnFjMU82VE54empTbmpjUGl5dEJtVlpZSjRyS3ozM09RYmVjNHNJOHRMa2lqY0dsQy9TcmlsR2hQbmV6WmdEVVlUY01ySlNuMFYrTDVUcVZxOGNaU21KR0ZZczIyMkp0M1dKVEhQUGRwTlFUT0p0OUFVY1JhOXZ1K3pjM0dPdGQ2WVNXWkZOK054Vm4vbWlwcG5oU3ZDNGU2MmtUY1lwc3pOZGtpU2lPRm93bHkzNlpoS2lzQ1RUTXFjSVBBY2RxNnNKYTRuRWNWWmZhTHFqVDRjVGRnMjM2WFZiSUEzWm41YjE4SXNXak1aWjZ5dGo1aU1iVk4wbXRvNW51U3NiWXdwQ3Mxc3UyWHZ4NXRvdDFhK3ozWWFrK1gwYjV1em1vSGVZTHlsVitFUVBvcWl0TU1FK2hOR3FXWC9STEd0a0t4SkZIVzJMNFhBOHlXNlVFelNndVhWQVpkZnRJTTdicjZLMy9uVCsxbFo2elBiYmRsRDRDd0sxOUpsUnJFYkZVWmhNRnFUWmJudFdUU2cwMHE0N0tMZFhIekJkcTY0ZERjem5TWkhqNjl4ZFBrNHg1YzIyT2lOR1k4eWpEWU1oaE9PblZ5MWRoZFN1S0hHbTNIWVlIc29Ra3FTWm94R0VvVUIvZjZJZXg1NG5vT0hUM0g5TmZ2NDFnKzluUnZmY2ltUFB2MEtyeDQ4emtadlFCU0ZSRkZRZjVaelEya0c0OW1HZWFXTDJPaVBpY09BSC9uRTEvTTFkMTdIZzQ4ZjRKVUR5M1RiSVZGZ0NHVEJhRlJ5NE9nS2p6MTMwQTdPYUNWMWs4OXpCMU9kYU9VNW5XYkMzRXdicFMzekNBRjVhUlhHM1prV1pWSHlKMy82Rlo1ODhnQWYrc1pidVBYV0s5Rnl6TW0xUHJPdGhQbE9rekR3R1djbHc1RnQrRGNiRmo4dlNsTlhUdEwzbUl5TFRWWlpOZGF3T21DY29aZVVBdUdtZjFWK005WFFGK01hcEpWaVV3cC95aFJOdTZIbGJtQzViV2lSNWlXOXc4c3NIMTJsMFRuRXd0NEZGdVl2NFlkKy9NZjUrUGQ4TGIvM1B6N1BILzNXRjNudHRlTnMzelZIb3htZEVaaXJ6MkE5cDhhMnh4Q0ZDQ01ZOUNkTVBKODBMYlo0VzV5Wm1ic1N0Q3d0bGFxaWhka3NXbU1LYldtSnZ0cXFWQkpXTEdLVUpzOUtqTXZXZkFtcUtNa3JJci96dlFiYk9QSURyeTZScC8yZU45M2tyRDlMSTRuSWk1eFNiUW81enVWRFkwdnBnaWl3bVZLYTViVlIxMWNEdDB6U25HWWp0cG5iY09SOFFteHdpd0tMT1J1M3NkTXNaNXptTkpMSUNVWE9UUlZMTTl2Y2FEY1Qrc094Yzhhei96NFlUWGozN1cvaGhtc3Y1b0ZIWHVYbzhYVmFqY2hpZkE1RzBsWTVoTkZ1NnJnN2ZEWjZZdzY4dnNKZHQxekcxNy9yUnY3ODdrY1lqbE5halppeXJJeWRKRVpqbTl5cUpQQXNMYktvbUF5ZXFDOXFCZEgwaHhObU9pMis2WDIzVVpTR1ovY2ZZV09Rc3I0NmRJcEhVZHZzS28xalJFbmlPQ0Ewc0xJK1ltbHR3TzAzWGNIenJ4N2g5YU5MK0ZMYVJoOWJhV09pcm81c05SR0ZBYXU5SWFIdjAyazFXT3NONm9teUZhWlpGSXJWalQ1dnUvNXkzblBYZFJ3LzJhYzN6UENrb05lemdxdHEwSVhTQnFPczh0RmtWbmlobE9icC9VZVpuMjN4ZGUrNG5zVzVMdnRmUHN6SWxmV1ZLbmY2OU5nQ0l3QnhITkpxSmJTU21HWXpabTZtemNKc2gwNm5RVkVvRGg5ZDVmNEhYMkdVRlhpQmoxRWFwU0JPWXZidFdXQjFmY0RLK3NEMUgyUTlGL2JNN05sMlE3UFJBSzBLV3BGSHc1Y2NQWHFTOWZWMXRpOTAyYjV0bG5mZGRpMXZ1ZkpDWGorMnpKSGp5Nnl0RHhoTnN0cDk4V3pQcjQydUI3bmtSVUc3MWVDMm02N2tsdXN2WisvT2VaNTQ1aUJQUFh1UTBBZmZHSVFTckd4TWVPSGdDVjQrZEFJcEJhMUc0dWl1RnRvTEhLZCtlcSttZVVFcmllbTJta2d4Sml1VVMyU0tHajdjdVdPTzVlVWV2L1JMbitLQkIxN2dmZSs3Z2JkY3Q0K05QR2YxNklobUdERGJiakRUaWhCU2toVWw0M0ZhZXhjWklFb1M0a1pDbnFhMmVnNmpUWjY2MlBTR3Q3aTdZdzVwQmNLQTN0cDBWNld5eG9Gc0twRXJMM1liMEZVOXNhdWFvbFFvdzhxcEhxc25OMmpQbkdEbnhkdm9MRnpDRC83WWovS3g3M2duLzg4di9CSC8vVmMvUnhRRjdObTdVSXU0VG0rMmVKNzFMZW9QeHlBRlVSUXltZVFNeDVtVVFnVFY3dkduczltOFZPUzVBdWtXcjltY0xLNk5IVnByU3lXRkROUVp0S2ZSTUtQVWhsYW5TYU1SVXFRWmVXYjVzVGladi9RRFIrRFA4UU54Vmo1M2RWRUVnbFlqZHFid2x0M1NiVFdKdzREaEtMVVovWGtpZEpibmR1WWhmSldCWEtCSzIweXRXQ3laazY0SGpwcFdYYS9LbHlSenlzM0FkNE41ejVuMTI0MnkxaHZTYmpSb0pESGp0RWNvclhmTWRWZGN3QlVYYmVmaHgxL2c0T3VuNkxRRWdlK2V6Nmk2ZzE5RGZLWkVHR2w5cmhFY2V2MFlXcVVzZHB2Y2VkUGxIRG0rYWoxQ3loTFBaZUZXdkdUSFdaVmFPN1dhYjV0U1J0Zk1DMXladkRqYjRwSjlPMENWM1AvbHAxbGZYM2QwTUt2NkZTNjRTUTg4YVFnOVk5a2xSaE1Ia0tVanZ2TFlDK3paTWN2YjNuSUppZTh4U2pPblN0WmJHQVNlVnpYK2NLTUJKYUh2Y2NHdUJZYmpsTkU0Y3hSSlZaZkJZZVJ6NmI0ZDNIak5SYnoweWhGZWV1MEVaVFlDUi8rU1F1QUZ3aVlRdmtDR2x2MGlwWUJRa01RZW8vR0VoeDkva1pPbmxtazFZcTY1ZEEvOXdiaW1rbVdPSFZYUlBxdUJJMkNzY01rNVB3YStwZGFtNHdrSEIwT0dvNVMxOVJHcjYwUExlNDhDMXBmV0NVTGJQNGdDbjBPSGo3RzBzc0U0elltajBHYVZaNVNTTnNHYWFVZk1OQVdCWnlpVXgyaGlNL3RHNHVNSnc4cktCaXNyRzBqZlk2YmJZdGRpbDIzemJRYWpsRjUveEhDVU1rbHpzcUtvZFNHbnUwNTIydzFtMmswV0Zyck16N1RwOVFlODlQSmhOamFHYkorekRieTEzb2pESjFaNTlmVlQ5SWNUbWtuay9INFVqU0FraU94ZUNKeHpxSmxLWmpMbjE5NXV4azd0VytBNW41S2lMRkhHY3JBNzNTYnRUb05ubmpuSXM4OGU1cnJyOXZHT2Qxek5EVGRjaEo5NEhGM2J3RE9DVHB6UWJFUUVnWTl5RlNjYThueEkwa3hReXBDT0ovaE9YV2txVHlPemFTVkJuWHhOSHp2aUxPUCtObkYxSWEzUVRBcUI4SDJFMHRiZ1RGZTJnd0xmOWM3VzE4YXNMYjlHWitZRWU2L1l5Y3pDWmZ6OWYvNHp2UC9ETi9OM2YvcS84Y0wrSTF4eXlRNkNNRGlyWm1CNlJtbFJhR2QvNGhsdHAxV1lzMlRtdWg2ZVd4YTZkcGNzbFVZWE5rdldya25xVDVVRlZyMG5RZnEwMmhHQkw2MVZxcEdPOHluclFGYTZwaUpvNUZUNVdsbktXZytNbkc2clFiTnBoOE9PaHhPTXM4UE44c0l0ZUhGZVRyQVF3bktWQTU4dzhPd0NDb1B6Tm9XcXBsaFJsSlRhVGhjWlRUS2kwRWZGOWlaNm5xZ3BpaFhGeS9xbnUrbmNXcC9mNThSQkFRdXpiY0xBSTQ0NnpNODBuT2V6elVUWFZudGtlY2xjTzJMN1hPUE16M25Xa1prR0ladmtSY25TMGlxZTlOZysxMkZ4dHMxNGt0V3pKcFhSYUtYSjhwTGp5eHZJYW55ZDU3RnYxd0pSRkxnMUxQQWNPNlNSV0ZiQ3djTW5rRUp3OGQ2WldyeTExVFBqM0lNajByVGcwT3NuaUlLQWF5N2JRNWFYVExMY2pmVGF0UFU5dWRKak1KclVwYjZSSGhmdTJVNVpLb2FqQ2Z0MnpkZjBPK244dmVNb3NFTjdSMk5XVnRacFJBR3orK2JPZWE5UE4wMnEzbkpXbEt5c3JMUHE3cXMzNVc4Zm51YWpYazc1K09TTzIyOERBMVArb1RiN2E4YVM3dDdaR2lMYk5odlg1a29hUTc4MzRNVFNPa1doYURYOHpkZDFyeDM0Vm5EMjFET3ZJcVZCQ3MyQm82c2NPcjVDMzNuOWVFTFFTQ0ptdXkxbU8wMW1XakdxS0ZsYjY3bHJGRExiVHBocEo5WjRUS21heDE1VnhKWTZaMTlmU3NuYXlqcEhYaitCcVJFRXlhblZQc2VXMWpsMmFwMk53WmdvOE9rNFdNVlF6V2kyNnNZcW9KMWVRa3NwM0hTZXBoM3FJVGFuTDQxVE40dFhhY3JTUXAzYnRzMHlubVE4K2VRQm5ubm1NSmRkdHBQYmJyMk1HMis2aUYwN1orbmxZMWI3ZlNMZmtndml5R2JyUmlsR2d6RkJGR0tFSUIzbm05RG5PWEZYYzhhZmpkRTFtYURLNXF2UE5EM2ZWVGpWcVNjM1I5RnBSeVFKd2dCRXdQcEd5dHFYWDJGeHh4SVhYck9QbTI1NUw1KzY1eHIrNmQvL0wveVBYN21YM2J2bmFYZVNMZmRtcXpXMjNic1lnMUxhR0dQVU9URHpzZzVVMDdRWHJUUmxialB6MGhuNGxJV3lkQmtoa2RJampFTWJ4Q2Nwd3pSM0g4cGlabktLWWxpa09VVm1SNkxOdEJPYXpkaStjZWV3SjRXb0d6ZWpjVm9ycHNTVTZWT1NDTUlnc0ZKaGg4ZWZpMGFXNTlZZ0tIT0RjT1dVYXJSbW9UcktsVElXVXd0OWozYmNzQmhvcnZDVUpQUjlodU1Ka2RnNmRidmlyTVp1SnVnYk1naUVaVk1NeDFZWXNERFRJY3RMMW5wRG0wSGtSVTFobkc2MmJUckN2VW5jMzhFQVlXZ1BpQXEzckFiY3BtbStPY1RhMDNpK3BGQ2FmRGpaNGxoWXVzQ2ZGMFhkSkgwalZvVG4vR0JLdlVsM05LNHBYczFZbFE1bWtWUE4zNnJ4WG5YMWgrT014ZGtPclNUbXhRTkhhVFZqSy9CeEUzWXFhbGxSS0xMY051YjF0UGJocTNoVXJCamplTDEybU1SVVNjM21JS0ZLb2JxWnFHMlc2OVhYMUhUbWg3SHNKbU96eHRQdlkrQjdyUGFHempYVXM3TmRwdzRaMjdSVkRBWVdZbnJpK2NPOGNPQzR0WXh3RnFwYVEyK1VjblJwbmNDVHRCb3hNNTBtTSswR0hUY1VPbklRVHVCNWRRVTB2VmxVVVRKd21MOTI1bUpwWGpBWVRWanJqMWpyamRqb2p5aEtSUlFHdEp2eGxrcTZxalJDM3lNS0E2TFF0OFp5eGpzcnlTRE5jMExmd1VvdXc2MUd0ZVZGNlE0Y1N6Qm9OcUwvUDN2dkhXYlpWWjc1L25ZT0oxYU9uWE51UlNRaGlTd0VNaGlEQVJNOUJxY1o1M0hnWXQ5cmU3REhhUXlPTTdiQk5oamJCQU0yTnBpTUpDdWdMSFZXNTl5VnEwNmRmSGErZjZ5MWQxVjFWN2RhV0RDK2Qzby9qeDZKN3FMT09mdXMvYTF2dmQ4YmNCMlJXblR5NUNRSEQ1M2pTMS91NG9icjFuRFREV3RadjI0UXk0QzVlbzFvTHNHeExGemJSamMwd2lCRTF3MmlVRFNyS2RTMGVKMHZwQXdwUzNzUytmMG02Y2FVcE45L0xFa05tdlF6RjJ0YU4zUjBYZUFLY1JSbWhJUlV6NkViR3BHcWNQNUNoYW54S3VzMlRqS3dkU3NmK04xZlp2ZXV0YnovbC80V1B3anA3U2xJVWREU3JTV0lJZ0laVXU0SDRSSSt3UkpxWWhCRWVKNlFnSWRCbFAyVUgwYUNEa2Nzb3NEOEVNUFVRZFhRRFIyVkJLL1ZvaG5HU3hnb2NYeXBoNHJuQmZpdER1QlJjQzFjMThidkNDNXJ6ckZ3YklzNGpxV2dKc3dHcXd1L1EzVE9oaUdNNGE4MHFWZWtqVzdhbWJRNkhyWWhPczlJSG9teVk1VDBjOUEwUmZoSmV6NmVIMlo0bGVDSEdsS0NhMlJDSHhHSUhHZVpxVmYyQlJjL016MWJwZU9KZ3JSaXNBOUlPSFYrVWl4d2FiYVZ4b0dsL1Bvb2lxN29nYjVjTVRjTU1aeE5IMklnRTVZa1NVeTVrQmZpcmJhUExxR3NhcjIxdEpoTEI4ZDBrM211L1NRdDVtbnkvSkllUjlJN0RWMG5qRUpzdzhnWUx1bHB3TFpGbDUzYTVlWWNtN01YcHFoVUcvaEJ4SVhKQ3EyV2w0bFo0dFRPMWhlT2hsZjZEcTcwbmkzTHlDaUVhYmkxbm9XY0xCeS9VN096ekVzNkRibFlGSEdYSkdLZ3A2UmlKd1hLVXEzYWFIVXVPVmdKdXdlTlFzNmhwZm9DaTVlc2lwWW5xSjJ0bHNmRFR4K2ozdXB3Wm13VzJ4UXptMDduVXFmUFRoRFJiSGxjbUtxZ0pJS1ZZbGxHUm5OTEZheWFwbDVpTXl2dVpTam5RQUhWZW91T0gyUUIwcWFFa2RvZG4vYWlHWWV1aWE0KzBjVjdyOVZibEFxdThDUnF0NWUxMVBBa3JCUkoyMkZMQnRSb3FvSm5hT0wwMXZFeWE0OTZzMDBTSjVSS0x1V3lTN1BwOGNVdlA4TjlEeHhpNC9wQmJ0aTltaDFiVnpBNjNFVkN3T3g4aXlRV2pWOHVueU5YY0VYUWZDTFdUWklHcEtmYUFFV1JJSUt5TU1kVEpXeXVpQTNKdEF4czIweDNkUks1RHBHenhkRDM4VHJ4RXJwakhNZUNaNy9vZXpjTUhTOEllZnFwMHd5Zm4yUFhIVHQ1NDl2ZlFkNTErS21mK3JDZ2d5OHU2S2tUYXlBYVRHUzl2aXcxTVFoaU9RQVZIWERiRHdqakNFUFhtWnFveUVPaFNCOVNaVUhyTk50U0VndEp0SWorczBnaUxrejZ4VkhhRDJKYTlRN2dVM0p0REVPbDFZekl1emF1TGFoNnZyUU9OYVNmeWNYSFlqOFFlWitwNjUrdXFsY1Fvb2lmdHd6UkJUYmFIU2xJRWdzNlpZV29DWFNDTUl2SUUxN0ZBdS95STdHQjJKWkJ2UmxLVjBUUllYZVY4eFR6anZBZmZ3NjczRENNaEFkN0lFeW5RamtrNmk0Vk1CMWgwYnZnQnlJekNtV1hGbjRiUlNxVGNDc1NnMVVTSVNqU2hQbVBhNHRoYmRvcEZvb3UzZDBGWWE4clZZZUpYUGh4a2p5djFCTk4wekk1K09LaXFlc2FWcXJRVFQyeHM2R1I2SkFOWFhTYm93TzlZaDRSK3F4YTBTOG1MUkxyWFFpTUlQTWMvM2JqdHRJTnlOQTBFWEo5a1ZOZFdyTlZSYmtFcHJsWVFTeE9IVktvd2dJaks1K3pDUUpCVmJ5Y2ladW1DYWd1NTFqU2lrS3dzdnE4QXMyMm9QTFpyc251YmF1dTBxQjU2WCtrbGh1cGNWcTBYTktVcm1KcEJoWUdwVktPZ2Y3U2tzKytIT01pcGFaYWhvRnBhRktvbDJESzhJeG1xNU9kdGk3WlJFMGR6dytabmF1TG1SUWFxbTFoUmpwUjFNS3hMZktPVGJYUkVodWxKbTJEVlpXY2E1SnpUWUlvNXREaEMremRmNGJlbmdKYk40MXczWTZWYk5rd1RIOXZIcEtJMmVrWjV1ZE5jamxYSkJySk5TWnN0dU1sdy9jTXlWVEZ6Mm1ham02a0xxM0NsVE9XcDRiVUp5VUxUVW1RQXFVRlJiQ2lxbG5Ua25xckNLMk1RYm0zeEV6ZDQvRjc5M0RkclczdWVzUHIrZE1ZZnZKblBveWhhNVNLcmp5RlNzZzdqQWo4S0t2WGw2RW1paU5nNEV0K2VjdkROazI2U2dWYXpURk9IQjhIQW13WlJOeXN0NldSazBxV2dIR1JHbzlGM1BOMC9RZEJSTDNlQWQ4amI1a1VDeTd0aHVndTZxMk94S1hWTEhrajVhZW1Jb2lVRHh2SElsdXcwV3lUTExQclora2pjWUlmQ3Q1ZHpyVXhmQ0Z2VjFSVnBKSElxSzIyVkg3cW1rYmJFMXp5ekFZNE5ZRXlSSWZmN29oNzAyeDF1UDIyTGR4eDJ6YXExZWEzVlVnV0gxR3pvOXdMZUNVWHhiTmNybEJ4QmJxZ29pZ3Y2UHRKT2ZLWDJ4eVN6QnBoUWVDaktGZDRud292K0gzNzMzOGxpeWkxeWd1NUdxNjhLU3NYMzJQbGlqK3JMUFBsSll2WGRxWUdYLzVGODNtSFE4K2U1UisvOEdoMkNsV2xTaGxncUsrTTc0Y1o5OTZRWmxWK0dJRXNrTHFtMGxYT0NSRlR4K2VoUjQveThPUEhHUmtzczMzVE1OczNqN0poVFQrOXRrN1lidEJxQllRSjJLNkxtM05RSmRTVCtxT3JxZ2dPVVdTK3JvQ2NRaUpwMXViN0lnczF4ZDdqaThSRUpHRVczQ0VvaDRua3Fnc2t3M1pzTE51VW52ZkNLdm5DVkkzbU4vWnh4OHRqWHZYR2UvakFYSTMvNjFmK0R0TVVwK3RJM3U4d0ZPSHRDb3E4UjhzcFFHV2g5YVEzcjZicDlIVVg2ZmdCdFdhTE0yZW53SzlTek5za1VVeEhtaGNKaG9VbzVJdTUxVkZLN2Jub21RMURJV09uNWFHNEZtdFg5WFBzK0lRNFRwa0dzb25QRkdtcGRIK3hRQ1ROMWJRdFV5ckFGcWlOcWRkQm1vbW9xU3EyYVltd0FlbFRIc1V4VVNBTSt4Y2svRHA1eDZiVjhaWmduN3FxWk02Q25oOUtpbVJJRUlVeTVpa2g4S01zbmY2NWZURXVmUUpTQjcxTEJ6RGY0WEtSSk10SzFhODhGSHBoaXNwenZhOW9pVjlNY2hVYlMvTC9seHBPY29sZm5zTC92cjBxK2JiZjk5VmNndkFnN0NYaVJVcmVacnREZDZsQXpyYndmWkViNElkaFp1SGNhSFV5ZStHTVlraUNhZXIwOXhWSmtvUkt0Y1dYN2p2QU54NThscEhCTHJadEhHYlgxaEhXcnVpbHEraWdFdENhOXdpaUJNMjBVRFVkeTdiUWRZVzI1NGtPV3JwZHBxZE5zZUZvYUxxWnpmcFFGdVp1eWFJVG9tQXlTanhkeGhXR2twUVJoaEh0Vm9mQUM0aWpHTmN5bUpsdjhzQTM5dk95VnlxODlZZGZ6NUZENS9uNHB4OWsxV2h2SnJZTHdoaFBRdUJCRUYwbU5rNWlNSUVYRVV0SUlFa1NxclVXaHFseit1d01yYk96NVBJT21qVFdWMUd6UWk3aXV4S1NKTXF3SEUxVmhLb3F6YU5VUk94Um8rRVIxRm9ZSy9ybzdjclRhSFpRRlhVcEtVZ09TWVJxTWJvRWFnbkRDRXd3SlN5UzJvVjJ3bENLVmxRc3c1RFd1OEtYSkJ1c2hJSkdxR2xxTnZETnVUWXR6OHN5TWhmd0Rta1RFRWNTRnhlUVVLM1JFb1pFMHErNzFSSndVTG1Vd3pMMXBidjF0ZXZhZGUxYTBJQ0VFWlZxa3lRV0JtVHR0Zy9TUU02WEJJdEN6cUc3bUdPKzNwUVJlK0x2VTJXNFplalVtbTBoYmt4bllNbmllRHlGbkN1U3RxSW9abXEyeHFsN1ovam13ODh5TkZCbXcrbyt0bThjWnQzS1BucTdjaEMwYWRaRDZvbUNwaHZvaG9sbTZNS3BNNE1MaFNlOWJ1Z1lwazRjSlV1VHVoUUZSYzZaaEIyeWdlVllXSmF3SWVsSVVWMjkzaWFSR1FOeThvOENGQW81Wm1vZEhudjBPTGU4T3NmUC85enIyYmYvTE9mRzU3QXNUU2pxSTFHajAyTE9aVEZ6NlpFU3hzTEVLcDA0dTdiSjhkT1Q3RHQ0bWx0ZWNUMm1vVEUvMzhSMXJDeklkQ0VGSjBFM0RYUkRoS29HUVNqd29uUjY3b2MwT3dHVmFwditsU3JEUTkyZ0pOSkladW5VTzAyYzBWUnRXYWw1SUtsTDZjQkdRSDRhbXFGS0xyZzRDZmhwZUlZS3RxblRYc1F0aldQaDJSeEZrZlR1V0dxZWxTUXhtcW9SS3BIMFZmZnBLcm9VOHk0VDB4WGlPQllkUXl6Z2dBY2VQY2pjZkFQVDBKL1hJbit1MHE5Y3F3UGY5WjVUK1Qva1BYdzMzMmNZaW1UN25WdFhZeGdhdmxTYUJ0TGVPdWlJVTNKdlY1RmFveVU4ZnVRenFXdEM3QlJIRWFvcDhtM242NjJNRnBxNlBKSVJKc1R6cTZvS09kY2k3MXBFY2NMMGJKMVRaMmU0OTF0SEdCNG9zMlhkSUZzM0RMRnVaUys5WFRuaU9LTFpxaE1sQ3BwaGlzS3VxWUk0RUNlRUhaOTIyNzlFM1IwR3NnYkpRVzdpQnpJOFJxWUN5ZmxWS3VOUUYySHI2YjkxVGVINDZTbDZIanZLaHR0MzhQclgzOGdmL2VtWDZlMHVVSzAzOGYyUUlJb3lXK0JsTWZNa0VRd1d3YVFRdmlmTmxnanR6VGttRXpNMUhudjZCTGU4OG5yeXJzVXB5ZGxjZkRTT2t3VFROSVVpcStOSnNaQ0NXekFGMXVTRm92c1BRdXFORHYyK3o3cFYvUlJ5WW9Cb21na3FTeWxEQ29KTEhNb09lb0VaSXI2OG5HdmpPa2tXU1pZNkNLYkdWd3RCd1BMNEhpZllsbkJFVkJTRlFzNG1pV002bnIrc1BVQWNKeGk2SXBKTHBMT2dINHBJT2wxVlJhQ0hMMDREbXFieTVYdWY0ZGpwY2ZUbk1KU0t2azBLWFRaNFdtYWd0T1QzSjVjZkNDNTJ5dnR1WDZrOThOVmF0VDZmZ08zbmhHNlNmOTlwU1pYMzdkdjlMZi9lNy94cTdrZnFrWDJsb2ZoemZmY3Z4TDI2M1BvTTQ1aStyZ0tiMW84SXNvRXZET2pFY0Z1d3huS09MYnlOd3VDU1oxS1JjRWNDNGhuVVZXcTF0cERjVytKM3BLWmtTWklRU09aV3dvSTNqK01ZNUYxVEZQYTVPbWN1ekhMdkk0Y1o2aSt6WVUwLzJ6Y09zM0YxUCtXaVF4QUtuUXVxZ0ZZMFhSaTV4VkYwRVZ3cFVwQXMwOEN3ZE1KQXhEZEdZWVRsV09STERvRU1kZ245S0RNTTFEUk4vcE01OStMN0FRZVBqck5oL1RDdnUrdDZQdm1aaDJtM2ZicUtlWm90ajBhampXMlpRZ3QwdWM0OFZZREdDQ2w3RkNjWU1nb3VpbU9lMkhPQ1lMcks4R0FYQnc1ZldBaTJUV0lVVlVOVk5NSWd3dXQ0SXJOUzB6QU1EVyttbXNVNktWSUJOalBiWUYzRFkyU29oMUxSa1FidVZrWUZXbnlqTkZVaFRJODdpTjNObE43bm1wVFVCbUVvbFl2Sm9nU2lTK1hRSW5SWHk5ejNBRWx4VkM0N29FUU9XVHhmNEYyZGpxQ1A1Vnc3aTJ2citDR2FHalBVMzBXejJTRXZPYmdYdjM2cjdWR3R0bkFkaTFVcmVoa2U3R0o0cUp1aC9oS3VJN3huRmtNMHFxTFE5Z0ptSzNVdWpNMHhQVnZqMU5rcEpxZXFtSVpPZDNmK0l1cW1PSElPOUpYb0t1ZXlJMTk2R2JwR3RkNW1ZcUlpam5uZjVTdmRkTmVzNnN2OFIrS1VCU1VkNmtnZ2x4ZFprNU9UOHppdTlXMHhWZEtVcDJxdFNhY1RVQzduV0RYYVMzOXZrWkhoSHZxNmkrUmNTekFWSkZzb3hlamJiWi9aK1FZVGsxV201Mm9jUHpuT3hPUThqbTNTMVhYcFBiL1NlK2gwQWlyekRReERZM2l3aTVVanZmVDJGQmdkN2hFYzhKeUFMb09PbCtremhIeTd6ZmhraGNtcEt1Zkg1emh6ZmdiUEMranV5bVBieGlWUW5tZzh4R2szalNsYldnUlZwcVpyVk9ZYjBwaHQ2ZHdPRkdyMU5vMW1oM0xKWmMyS1B2cDdTd3dObGhuc0s1UEwyUmlHTHA0SkJWUlZJNGxqR3MwMkU1UHpqRTlXbUpxcGN2TE1GSE56RFhLdVRhbmtzdGhadGQzeDZlc3BFWVRDT2tDWENWdUtJZ3p5ZXJ2RW5HNXV2azdPRlF5Z3kyMXNZUmdKZW10SjBHcDFUYzB5ZjlPaW50SlZJK21qSWdScUVKS2dhUXFsdk1oU2lLS1kyZmtHWng2YTVjSEhqakU2VkdiTCttRzJieHhtN1lvZVhGT2gyV25UYXJmUkpiNmUrcU9uWGpxYUpxaWl0V29EUlJVSllDalFhZnZFa1dCeUdhWkJET1FkVVI5OHo4OXNWRkxuVWsxVm1aaXFzV2YvR1hhL2REdTMzYnlSdi96YmU5bTlaVFdXYWRMcUJDTExJSXlXbEsxbEZLQ3h6TmxNZlg4RmZjdzJEZlkvZTQ1bjlwMWt4L1oxdUk3RmZIVWhCekNKRTZJNGtFd1QwS1ZuaU9jRjJVMFVxanBoRERVNzE2QTExMkIwcUp1Vm83MGNQekZKcWVoeWNUWDNKYS9ia2pKWHdaZVc5cVZCdU1SbldkY1h0SGRYdXZ3d3hMVXRBY0dFNFdWcFYxa25HY1VMbHJjeWg2L2orWlFLT1hSTitENEhRVXlvSkJSZGg0SHVBbzV0TGNVSmc0aXBtUm9yQjd1NTQ0MHZadGUyMWF4ZTJVOGhid3RITmhTQ0lNeXNEMUpSUXdwaGFicWFHWjlOVHMxejlNUTQzM3I4Q0k4K2VVd1dtRUlXMGx1dHRmajUvM3dQTDdsdEd5ZFBUMlVua3poTzJMQnVrS2YzbnVTbjN2ZFJpZ1huaWxtbkwzaFhyaWhjR0ovanJXKzZqWi83aWRjeE1kT1FBNkNGZ0F4TjE3QmNtNkgrTW52M0h1ZG4zdjh4VEZOLzNyQ1ZxaXBVNXB2NFVjd2ROMjNpcHV2WHMzbkRDSDA5QmZvSGU3QWNJVmJ6Mmo3dFJqTXpVa3JmcHlwVmlacW1Fc1lKTTNOMTloODh6ZjBQSGVUcFBTY3BGbk1VOHZibDQ5cFVSVkx1R2d6M2xYamphMjlpMTdiVnJCanBvYmVuZ0dFWUdTZGVOMDJpTUNLUXFsSkZValpWVGNHMkJPdGh2dGJrMU9rSkhudnlLUGM5ZUpCcXZjMWdmM2xKb2F3M09xd1k2ZUgzZitOZEdMcE9aYjRwd3pMRUtXMzc1aEUrOHZGdjhzY2YvaW85M2ZrTUpoQjZDWjlLcGNIT1RhUGNmc3RtdG0xZXdhcVYvWlJLK1V6WkdFdTJSeXpWbzhvQ1FDM3RaWVZ6NFBoa2hZT0h6M0gvUXdmWmYvQXMzZDE1Q25taGF2U2NnSExCRlh4cEpTSk9sQ3pudEsrN1JNSUM1aHo0WVRiWFd1N1VuQUJlS1BRS2lXM1I5Z01jR2FpZHdxeTZKbkQyMUIwemtxbjJxYysvcGluU0tWS2MySE9PS094alUxVk9ucDNoL2tjUHMzcTBsMTFiUnRtK2NaakJuaUpCMUNHS05keENFVDlNWkxFT0ZpbEZGWWhsMExWa0pEWHJiVG9kSDAzVEtmY1V5T1Vkd2tDa0o1bTJTRjVMNG9Rb0RBbERZZVIzK3V3TXUrZWIzTGhyTFIvLzlJUE0xZXBpZ0txSm1XVVl4SmZEekpOTTNSbkxJRmxGSnBtcm1rSStaek0rVStmK2h3OXgzWTcxREE5ME1UWlJ4ZFJOSW1YQitsUU1NblNTU0FoZ1VraEVVVlYwWFNHU0E4cXAyUVpUTTNWV2pmU3dZZTBRZXcrZXpYelAwNDVDVTFVYzA4Q3hMWmxZNHd0NEpRb1g4VGhWYWNNYWN5Vkw3cFFVSWVMSUJPYzhWZXFwVndpd1NOV3dwbnl3UmVpdFNzY1Q0UlNPWllyamxPdzRMVk1uN3pwU2hDSWVsRVpUeE11OS9jMTM4SDMzM0V4ZmI0bTVhcFBadVFZejFYbGFzcXNvbFhJNHBpN2M1bVF4YURRN3pOZGFlSDVJb2VEaTJDYmxVb0Uzdm5FOTk3ejZCcDU0NmpnZisrVDluRDAveS9CZ21TaEtwQTk3ek1SMGpRc1Q4NWxnS0F3anlxV2NURWszY0IzenF2ekZYNmpMODBOR0JydTQrMVUzTUZQMUdKdVlsNFZja1VJd0hUZnZNamszeTluVGsxeS9jeFd2dUhNN1g3dHZQOTJsL05WQk0vTDBOVGxkWmYyYVFkNzZmYmV4YThkcVZGVmxkcTVCTzB3NGVucUtvQlBndWhhRnZJMWxDUCtlZHJ0RHh3dG90SHo4TU01c2FBMU5aWGlraHpkOTN4Mjg0WFczY3UvOWUvbUxqMzZOVHNlbnA2dHdDYXlocVNxVmFwTW9qSG5YbSsvZ2xTL2J5ZEJRTjM0UXk0MTRBdCtQc0d5RHJxNjhVRTFxYW5ZaWJuZDhFYmVISWxXaEl1dDA4OFlWM0hielp0NzB1bHY0eTcrOWw4ZWZPczVBZjJuSnZNcTBkRm90bjBhcndleHNUVDUzR3JwbEVDUWFsaTBTdlhLdWxiM1h1VW9EUTlmNHlSKzltMWU5ZEJlbFVwNlpTb1A1V3BzTFUrUGk5NW9hcm1XZ3FRak5ocXJRNnZqVTYyMXFqUTZhcm1NN0pxYW1VaXprZU5QcmIrVU45OXpNUTQ4ZDRhLy85bDRhalE3OWZVV01qcUQzaG1HTUt1ZFE3WTR2RktXdXpkeDhIVjNYS2JqQ2hLNlFjNFRCWE9wamZsR2psY1RDTjBmNDJBdEdpNmFwV0tvdTlCWFM5aU9LWkNoTVd0aWw2MlVzVC82MmFkRHhoVitRcWdyNHRaaDNpTUtJSXljbk9YUnNuTDZlUE5zMkRIUEQ5bFZzWE4xUDJLelRhZ2VvdWswY0svaCt2T0NidEtnaGE3VThORjJqcTZlTTR3akIwY1NGV1ZyTmp2ZzVWWVNORzZtVmdxNVJLdWZ4WTVpZXFMRnl0SmUrbmp5dGRpQUNRd0p4MzhMd0N1RVVhU3hWRk1lWnJEcE4vREZOSFg4KzVLSEhqL0ttZXlaWnZhS1h2UWZPMG1wM2x1UXZwaDdVNmFhUS9obEpqTmNPczVldVZsdk16alZZdmFxUExSdEdzZ0dzcGlMYzlxVHNQSTRUUEMrZzJmRXk0YzVpQ0NXbFA2cWFJdFBmbGVVTE9RcHRQMERYVkFHWkJJSG85bVZTaWFaZDNzdy9sZXhybW9ybkI1bmNPdzFlanFXb0tPMWdGSFZCOXQyV3Vaei81YjEzOFpxN2J1RE0rVGtlZStZa1VSamg1QnhNUTJQcitpSDZld3RNejlWb3REeGE3UTdOWnB1Y2E5SGJrMlBMeG1GbUswM09YS2pROWtPQ1NwT3pZNGN3TlpXYnJsL1B6bTByK0crLzkxa09IYjdBNEVCWlpLYzJPelNid3BoS1UxVTVZRmJ3d29oNnM1T3hlRlQxK1ptUS9YdTY4a3FsenV0ZWN5TnIxNC95OUo1VE1uNHdJUW9qOGdXWE1FNllISjhScWtZRkt0VTJMNzFqRzkvOHR3TloydFJ6dnc1TXo5UjV5VzFiK00vdmZUV0txbkxrNkJqdElLU3J0NHlpcUhUbGJOWnRXMEc5M21KNnBrcXQweVpNSU9jNmxCMlQ5V3NIc1cyTG82Y21tWnR2NGtjUnA4NU1jZnJjRExhdThOcFhYY2ZJY0JlLzlsdi9RTFBWd1hYTjdCNnFxa0sxMXNLMkRYN3lSMTdIVGRldDUrellISTgvZFlJNFNiQnNDOU8yMkxGMWdLNlN5L2hraFhxanpXeWpJell6MTJaZ29FeHZkNUdwbVNyUEhyMUFzeDNTYm5sTVRndG9iZHVXVVQ3MDJ6L0VyLzNXcDdqM2dRTU1ENVl6S3Evbmg5VHFMZHBlQkxxQmFadjRma0FTeE5RYkFrSko3NldtcXN6Tk43QXNuVi82bWRlemU5YzZqaHlmNFBDSktUUmR3L2NEYkVOais1WVZGRnlUOGVsNVdtMlBlZGtoNXZNT3ExYjFNZERmellYeENpZE9UZURGTVowZ1lxN2hVU280dk80MU43Rng3U0MvL2p1ZllYYXVRYkZnb1VqcU1ETENUVk0xZXNzRjZxMjJQR2xEM2hXUWpnaHFONFNnVGxNdXUzbW5GZ05STE9aK3BxNkxSazlUUVZPSjlVVGsza1l4b2NUVXc1VHdJY05iTkUyaDJmRXpHa1lzVDRwZEpWZEFSTzJBK3g0OXdoUDd6ckIxd3hBdnZuNDlHMWYxRWNjZEZNMUVzUTNxOVRhNkptQ1hRTktmaTEwRlNxVWNKREZ6c3pXYTlYYkczbEVVaFNRVWlVNUpRekJqZEZuN1RFT2oybWpSVlM3UTAxM2cySWtKZ1NiNEVacXFFRHhYT0lYdmgzSzRHR2UwdkxSVGRHeVR3eWZIdWYvaGczenY5OXpLNEVDSm95Y21LZVFYSUlYVTF5SHJ4dVV4S1l1L2tqdEhzK1V6T1Z1bjFmVFl0SDZZb2Y0eVNTTE1nblJOaEZNRWNoaXJMdXNpdDNDaUVMaTZSaHdGbDhHK2hiMnNyZ2wvY2wrK0gwUFhjQzJUZXF1ZGNjNHZWeURpUlZQMUZNdU80NWhXeDhzMlFVV0pzK0RkMUVPOFZtL3pZKzk1RlhmZmRTTlA3VDFGcmRaQ1ZjQzBMU3hkWWRlbVlVNmNtZUIvL3ZXWGVYcmZTV3FOTnA0WExneURYSXZyZDY3bW5kOS9CenUzREhQZ3lCajFxb2poaTFXTlI1OCt5WFU3Vi9IcjczOExQL08rajFLcE5MTjhSRFV6YkJMT2ZrbTJBUXJQOFhRVC8yNFVjOThQeWVWc1huYm5Ec2JHWnFqTjEwbHY5K0NRTUJjNmYzWVMzL054SEdHVWRPcmNMTmZ0V3NjTjE2M2o2YjBuNlpmcDUxY2FVRTVPVmJuaHVqWDh3azk5TCtmRzVqaDlicHBpcVVCZlZ3blA4OWl3cWc5RGhZOTgvT3Y4MjZQUGNuNXNUb1FUeTJHNnBxdXNIT25ocGJkdTVmV3Z2aEUxQ2psemZoYkQwTEVjaTA0UWMvL0RoM25sUzdieHJyZmN3Wjk4NUNzaVpGeStoMDVIZEgrLzlKKy9seHV2MjhCVGUwK0o0Ym9tdk5QenRzNkxidHpBdzQ4L3kyYysveTBPSEQ1UHN5MFNvZ3hkdzdZTkNubUhuVnRXOE1aN1hzU3VyU3Q0OXRnNGtWU1NBaHc0ZklFb2hwLzZzZGR5N01RNGM1VUdoYnlUbmFnTnkwU3pWTUphaXpBSThGb2RZYTdXYkF1clZpbGpGdzZVS3UvLytUZXlZZjB3RHo1OEdFVlRzQ3lMT0lybzY4bXplOHNLSG43OE1QL3dMNDl3OE1oNVlTM1E5b2ppQk1jMjZlNHU4T0tiTi9HMk45eks3aDJyT0hweUV0OFA2YlRhek05Vk9YZG1ncGU4ZUF2di83azM4UDRQZkFMUEM3RnRVV3RFZXBUd1BRcWlpRmJIUTVlS1pDOEl5YmtXbFdvanM1dU9vamdUOXl4WDBQMDR4blVzTkUxUWtWWFVET2JRSkd5RnBtS2tYa3h4VEJnWkdRc216UzVvZFlSVmNKdzV5WW41aUcwYk9JNUJFRVE4c2U4MEI0K05jY1AyMWR4NTAzcUcrb3JZaG9WYWRKaWFyVU9TQ0FmSzdoeTJiVEl6VmFIUjZBaGJjRVBMM0dmak9KR2U3eXFhdm1EbTVYc2h6VWFiYXJXRlkrb1pleS93aFhBcFV0V01QWk9kQ0NWSTNhTnIybzdydHEyN3d6Wk5KWXdTV3UwT003TVZtWWhPeHIrZXJiWXdOWTNkVzFmUjAxUGkrT25wQllhSjlBNklZOUJOa1dJVFNNdEdvVndTUWFSeG5ORHhoRnRmYjNlZTN1NFNldytlNXN5NWFWelhrcEx0ZUNGaFczYkZvVFRLV2x4MDB3MGloVUNXcEZuTDdyamppYWw0enJFekNpT2tuc3NDci9hRFlNa0pZN2xCbXFIclVoU3c0UFZkTGhZcDVITVpQalk5VTZIdGVjSUNZYWJHSzErNmczZSs5YVhzT1hpV1R0dkhzazNjbkl0aDZseTNiU1VQUHZZc2IvOHZmOEpEVHg2aDNmYXpUVlRUeE00K1gyM3k4Rk5IK2Z5L1BzNjJUU05jdDMwTnMvTk5iTWZHZGl4c3gyWnFwczZtOWNQWWxzNjlEeDVBVVJSdXUybGpCdWZrQ3E1WTRCMmZucTQ4MVZxVGV4ODRRRDVudjZEcXppc1YyYW1aS2krL2N3ZXZmTmt1amh3YmswcGZqZjZCTXNXaXk1ZS85Z1NiMW8yZ20yWkdMUXVpbUpXanZjUmh4UDBQSGFSWWNKNFR4ckZ0ZzUvOUw5OURFTVFjT3pWSjMwQTN0bXN4UDF0bHFEZVBrc1M4NTJmL25JLy80NE5NVEZRWDREcTVUcHBOanlQSHh2aktBM3M1YzI2YTE3N3lPdUlFYXJVMlh0c1RaSUFFMm0yZlRldUhlR2J2S2FyMXRoQ2tBYk56ZGI3bjdodDQ3U3V2NS9HblQwamxzS0NxT1k3SjdoMnIrSnRQM2NkNy8rdWZzL2ZaczRReWdGdlRSTEZxdFQybXBxdmlPLy9pWSt6Y3Rvb2JkcTFqY3JvdUtXNFJ2aDh3UGpiTCtqVjlSR0hNbzA4Y0k1KzM4VHlSQ3ZhUzI3ZmhkMExtS3pYeHdNdXZlSFNvaTJlUG5lZVpmYWNwRjNOTXo5UjQxMXZ2NEtWMzd1U1ovV2V4WFl1ODlKQnhMWU1YM2JpQnYvekVOL25Sbi84TDloNCtLNlAzWXBtK0krWmhFNU1WN252a0lQYzlkSWc3YnRsTVgxZWVzZkZaNmRWaVlaZzY0MU5WYnR5OWhscXR4YU5QSHFPbnEwQlBkem5UcDFUckRjWW1acGJFekVWUmhHMmFXYUtZYlpxWlplK3lwMjlFT0VzYUtCUEpyblc1elQ5REhDUjBhdWdxdWlhU2t3bzVSMndvc2VDQnB3SHRjYkxnWENxc0JFUURlL1RVSkFlUFhzQzJUSHBMRHE2dGs4L25hWFZDSE1lazAvYVptcXpnKzZHRUU4WDdNaXhUS0VKMURjZTFDRU5SRTlNVXJDQ01JVkZZdmFJUFRWWDRwNjg4UVdXK3ljclJmbHpYaGtTaDJlNGtUeDg0L2xBVXhmdUIyU1dBYVNSQjlUVDlPblVRMDlUVWFVM3NJSHVlUGNzRGp4eWtrRE5ZTmRwRHBkcktuQlNUSkVFelJHSDEvUUJGVVlSd1IrWkhKdkw0WXVnYVU5TTFabWJyZEpWY3Rtd2FaYjdXRkh6dE5QM2pJbEZ4YW50N2NmY3R2SWtUdVdzbmkzaXZhU0VYSGY5aXJEMmxNRVp4akdNWkltL3hDcGE2cWZlSDRKc3VtTi9Fc1VqSlRnY1NZdEF2OE81aXdlYWVWOS9BYktVcE9oTEhJbGZJb1dnSzYxYjFjZXJzSkQvMml4OGhpV0RYeHBXc0dlMW5kTENiNGY0dWhuckxEUGQzc1hLNGwxMmJWZ0lLdi9xNy84RFV6RHo5UFVWeHIwbUlvcEIyczgzaEkrZlp2bVVGSzBkN1pRQ3NFRGNVU25tQjhiYzdTeGJrZC9NS3dnakhObmpwaTdjeVgyMFJSVEdXYmFIcE9pdUh1NW1jbU9HRC8rc0xlRUZBWDA4aHkzb00vSUNEQjg5eTQrNjFiTm93VEszZXZ1THJWR3N0cnQrNWhxSCtNbWZIWnVrYjdDRkpFcWJIWmxCSVdEbmF5eDk4K0VzOHV1YzQyOWFQc21uZDBNTDk3dXRpZEtDYkZVTTliRmsvd3VZMVEzenhtOC93bVg5K2hIVnJCakZNWFhaVUlnR3BVbTNTM1ZWZ3hVZ1BEWWw5UmxGTUxtZHh5MDBibVpxdDQvbUJjTjVzZDJnMzJxeGROY0RCbytmNXRkLzdEQVBkSlhadlhzWEtrVjVHQjdybDkxMW1kS0NIMWFQOTdOcTBFa1ZSK2IwLytXZGg2MnRxaEw0dzc3SXNBOU8yOE1PRVZTdjdMbm9ja3N5OUw5M3dIZGNtVjNDeEhGdEFnUW5VNm0zV3J4M2dKYmR2Wi8rQk0xSldya3ZvQzY3ZnZZWi8vZG9UL05Kdi9CMER2V1YyYjFyRnl1RmVSZ2U3R2Vvck05UmJabVNnbTdVcis5bXhjUVVuemt6dzY3LzdhZHljUlhkM1VYcUdDd1ZsdSswek05Zmc1aHZYNDdxbW5NM0YyWFBqKzlGQ1hOdmk0YWJ2NDlpV0RHYU9KS3R1ZVlxRFVLM0w0T3RXaDV4ckN5Zk02TXBCNVpvcThsdE5VOFErcW9wQ2J6bFBUN2xJM3Jad3BiMnlDQ05YcFJYRmd2LzdRRytSVmp2ZzcvNzVNYjU0M3dFbXArYm9MdW9NOWhVNGUyNWFuTVExVlJBenBIcFVrVUhkaWF3M2dwNHBMQUw4TU1YelE0SWdJRWxFWTkxcUNYak1EMEo4WDl5M3k4YkdDUk1YZ1QyRkVzOHlkQTB2Q0pkWWN4YnpObU5UVmY3dDBXZlpzbkVGbTljUGN2VDRPTTJHaDJtS1lOK2dHUktGY1pib2tTNndsQXFYRnRRZ1RwaWNxYk5pdU0xMTI5ZlEyMU9rM1E3STU3UkwrTGdpNzFLVHdRK1hwbkdJd2FSQ0tMSTFCQ1ZJY3NkemppV2kzcFp4SFJRdWlMbzAwZW9JZnJpeVBOUVN5b3hFSlZDV3dDOUJHQzZpYVlyWG1LKzJ1T08yelF6Mmx6bHcrRHh4QXFwbWlvY2xqaG5zTGZMN2YvcDVhdlUyTisxY0oxendaR2V5bFBNclhuZnpPb01EaDgveGxYdWY0VzNmZHdkalUxV2lsaWVtMzVJcHMzdjdTa1pIUkNLTVlScTRoUnpCdVZtOGR1ZC9tOWhFVVJSbVp1dmMrZUxOckY4M3hNRm5MNkRydXFDWnhqRjlQUVgrNWxQSHFEYmJQUHI0WVg3d0IxN0dLVU1YVnNTbVFiWFJZWE5oaUplK2VDdC8vdEZ2VUM2NWwxWFhSbkZNYjA4QlJkV3djeTZoN3d0OFVsWEo1eDNtNWhzY1B6WEJpdjRldW90NVlhMnNLcGY0MU1SeFFpNjBLSXpQYy9yc0ZHczNER0xwUXVHTUpBVzRqa24zU0RjK1pCb0lQd2dwbDNJVUNpNk5sbzlwQ3R0YjB6YlJkWVBldmhKZitlWlRrTURhbFFPWi9hdXlqTDFERk1Wc1hEdk0yUXN6UkZIRTNYZnQ1dlNwU1hsU0ZVZi9sYnZXY1ByOE5DM3BuSmgra3NBUENJSllHbElwSkFGWlZ5K291OUJzZGJqMXBwdEUwRXZiSjFkd3FNM1hDTU9JZ2Y0eXZ1Zno0WTkvblZMT1lkVklyL0E1MTlSTFBIQVNhZXU3YzlNcURqeDdqb2NlT2NTT3JXdVlyZFJGL3Fmc3RDZG42Z3oyZDlIZks2aUg2VWxXYVBjVzJ6WXMySElFb1NqZ2ptVko4YUpGS0lrTFM0S1FwWFlodGRCdGVSM3MyTVRRaE1lTHFpNklHaS9sMUMvbDhLZm1iY0xkVXhxdnhRbW1yK09Ib2JRSmlSYVN0YUtZVXNIQk1EVHVmZlJaNnMwV3IwOFN0bTVaUzIyNGw2blpHcWFtWlNlRk1JcUkvWmhHdloxNStLZVp5V21tc21tYk9JNkJvb0RybUp3NU8wNnQzcUtZZDhUY3l3dFFFRkQ0WmVUOFNUWVlDT1J3UUVTM1JTU0s0RWlLZ2k2T012c09YK0RCUnc3eFBYZmZ6UFl0SzNqb3NhTjBsM09FWGlBSGhnckV5WUpmUStxaExubkZPVGtwUG41eWt0R0JNcHZXRHJOcisycSs5ZGpoWlRuYXFUMkFGRDlkVW1pak9NWlFGd0pTUFY4TUpQT3VJMHh5b21oWjNua1V4WGhCZ0d0YnREdkM1blc1RUl2MFo5TUhNSFV5aXhOeFUxT3U3SUtoV01DMkxTdFJOUjFWRXdFUFlSalNhWFVZSGVybXhPbHhIbnZxR0J0WEQ1RjNySXV3d0FWTEtVVUJTeFBXQTdacE1GZHBzSFhIYWlFT2tWTG1CTWpaQm12WER4R3JLcUVVVEFXZWo2SXE1QW81NGpqRzYvaGtnUDUzcVVFUHd3amRVSG5GUzNiUWFnVkVTWUltMVhwclZ2VXhQakhIVisvZFM4NjBlT0RSdzd6MVRYZlFWY3JSa0ptbmdSOXc5c0lzdDcxb00vLzg1U2N6NXNOeW0yMlNKQmltRUhYVTVtcVFDTXZTTlBUWE5BMzZ1b3VNajgyVGM4d3N4M1hobml0eTBLMWdhQ1liVmc5dzRzd1U3L3VWajhudU1NN1dvbTZJT0xUanh5NVFLdVlXS0t5YU1IRHJ0RVdCelJWY05GM0g5d09xMVFibGdrdXA0T0pZeGtWRDk0WHZYSk1KVDZycTBOOWI1TTgrOW5XK2V0OWVtaTF2eVdmT3VSWW56MHhUekRzczl1T0tvNGdvRU81OGl1UTZrM2JLRWkvT3VSYnIxdzFSYTNwb2l6cHlUZGNaN2kveDFKN2pQSHZrQXB2V0RKTnpySXVLNGVMMXFXQmJBcTQ0ZG5LY1JxUE56YmR2Slo5Yk5FY0xRNFo2U3lpMlRoQ0xnSnNvVGhCTzc2bklhWGtxbWkrWktyNWtvbWd5WDNoSlNMdWlTT1c1aHFxSVoxTGtJT2lTMmhoZE5iVTE5V3BTVmNqbkxLeEFKSERwdW9ZWmlpaExQeENNa2xEYWV3Z0xaWjF1TGNkVEI4NmlLU29qdy8xc1hqL0FoWWtLOWFCOXFSWkVNbXhVYVM1bUdVWVdFS0txS3ZWNm0yTEJ4dEExanAyY0lBZ1QzSUt3QlJDTUhBRTdMeTZHU3o1aEhDMjRDSW9Jc1FUVEVCYVZxUWV5SDRZVWNqYmpNMVVlZXZJb28wTTliTisranRORDNad2ZteVdmczY0NFVCTkhiQk5JYURYYTFLcE56bzlYNk8wcGNzZk5XM244cVdOaUdtMHNqWk5MQTJJdmRsRmNxc0lTVnFaTmFYTmJjQmRTVmE2VVNPUjVBcE1yNWgxbTUrc1lWMkMxUkhHUzRadnBpU0NVOTAyUkpsOWhHQXY3MEw0U3RXWUhKK2NRUnlJZHhMUU1ob2Q3ZU9iQUNhclZGbXRHKzhWd2JGbUwyU3hESEUxVEdlZ3JNelplNFJ0ZmY1SmF2YjNFaThJME5FNmNtV0I2c29MdFdNUmhoTmZxNEhkOElZNVNGRlJkMEo0VVZmMnUrRklwaXNKc3BjSE4xNjlsNDlwaG5qMCtJYjJkeFFPd2FxU2JUMzMrWVk0ZUgyUEg1aFVjUGpiR00vdE9jdDMydFR5MTk1Und5VE1OSm1mcTNITERPdTY0ZFRPZitmeWpyQnpwWFlhbXFHUk1Ec3NRNjBRM2hkWkJpYURSYk5OdStiemorMi9uK0luUE1qNDVUMjlQWWRraWxjaUh1cWNyejdueE9UNzA1LythdWVBdFBDdWlUZG00ZHBEUi9tNFJzYWRyVk9ZYm9sc3I1b2dValRpSnFjL09FNFlSSjA4azNITGpSdTU1NVc3dWUrQVF3OFBkWW5pYUpNc0s1dzFkbzZ1VTQ4dmYzTXQ4dllteFdPaVRnQmVGOUpVTGJGMC9zcVFRcGtLKzBBK0oxUVdKdVc0YUtOSUxaV0JUbWI2ZUlwVktnM2F6bFlsZVNCSzZ1a3VjZW5BL3hGREkyU0ljWTluVDBFSlIxM1dOd2I0eXp4Njd3RVAzUHNYRTVIejJkd2tKNHhPelZHc3RXcTBPdG1sbElzSzA3aVRKUXFTY0lpbStNVWpkaWhENWRUeC9nWUcyREZWUjE3UXNIMWFRTUlSMVFLTXBnbUJNWGI5cU16RFBGeUpFd1hMUmFMVTlWRVVSd1J1NmpxY0xqWXJ2QndTUlNFM1RWSVZTd2VHcFEyZjQyci90NDhmZS9XcEdCcm80Y21JYzF6WUVOSkxtSzdnV2VjbnNVVVU4RTRFZjBtNzcrRjdBZkszRjJwVjl0RnNkOWgwOFF4QkV0Tm9kUEVsUWlhSTRFN290Vzh5alNHSXhjWlRKNVUxREoxQWpvamdOUGhVM011ZmFIRGs5eGVON2psTXN1dHl3Y3hXVFUxVWFUUi9iV2o2ZUxVNUVBTEZoNkZUblc1azM4TEdUVXd6MWw3aCsreHAyYmx2Ti9rTm5HQjFhR3Z1VnpwVTFWU1dLb3l1b05RV2tVM0J0a2NvUmhjK0pFeWRBcSsyUnp6bVl1aGphTHQrZFF4eUxvMStnaEJsMU12VTBUa011Z2pDaVhITHA2UzVRcTdhWW01NURBVXpMUk5VMEhFdm45R2t4OWJjc1krSERQWWN4eHZCQUY0ZVBqZkhtSC81RFFXdTZhS09KazRUUmdlN01EbFJzTEtFVUhlbm91bzVwbVFLeit5NTA1YW52K3l0ZXVndFBIdnQxWGFpRXU3cnlKTUEzSGpoQXFlQ1NkNFdJNTVzUDdPZTJtemJoeXBPYjdWam9wbzZmcUx6eVpidjUxNjgralI5R2duSjIwV1ZiQnMvc093VUs5UGFXbUppWUE4U3BVdFUwVHAyYllkZjJOZnpXLy9NMi91N1REM0Q0NkFXaU9LRlFjTEF0b1FoT0ZtMlFjUXpsb3N1V0RhTmkzbkRSU1ZGVkZDRXlpUlBCdnpaMWpwd1k0OXpZREhlLzhrYStmdDgraUdOaHpHUW96TTAzeU9jc2Z2WS92NDRWSTMzYzk5QkJ6by9ONHRnbU9kZktjTmswUkpwRXJQZlZvNzM0UWZtUzAxU1NDTTUzR3FhUXJTTkZiSUpPM2hGTlQ1eGtSVTZSOEdOWE9VZSs0REJYNjFBcUY4WHBWakl3Q2wwRlRweWNFR0hNcXZLY0czOXF1N0Z5cEpldjM3ZWZUMzMrVzVkMHdxbUQ2WXFoYnJxTGhheVlaNTVMa2plOVpsVS9GOGJuUk9HV2dpay9DTEZOZ3lCVXM5K3ptTnN2Z2tJa3BDUzFLc0lpVnZxeU9KWndXVlRGdXJtS01MQ01VWk9leEUxVHp4aHhtaWE0KzBZb3JISTdYcEJCSG9aMFNYeDg3MGwrb05aa3VML0kva1Buc0UyZGZOSEJ0c1VwM1BlRndOSnJpL3lHUUFieDZMcEtuRURPc1ZneDNNM1I0eGM0Y1BTY3RFb3hza0llaHBlRzRTd3Q1akk2TFpLRnZObjJSR2NqZCtaVWplYjVJcTV0dnRiaTBiMm42QzdsZWRHTkJyZmV0SjV2L050QmNkeTlxTE5HdW91cHF1QnFKNGdqUmFIZ01EbmJZSEt1d1lhVi9ienF6cDBjUEh5V2ppZDQ0SXNIbW5HY3lDL2owdmd5d2V1TVVGV1ZVc0VsQ0lUdjhOVW9IRlZGd1FzQ25Nak1zRlhqTWxQd0tJN1JVOXFmUEdLRlVsV1dNbXQ4UDZDN3U0Q2JzNmsxYXBTN1M5aXVUZUNIQko1UEdJVlU1cHRZcGlIRlRGZGJXc1h4dUx1Y1g0aTRXclNnVlUxME5LMldqTzNUZFJ6WHdiQUVDOGRyKzNodGp6aUt2dU1vaTZJb3pNN1YyYkYxQlRmZHRKbno0L09ZcG9Fdm9aOU42NFo0YXQ5Sm5uem1KR3RHKzFCVmhlSCtMaDU3NmpoamsvT3NXdG5QOUp3UXMvaCt3T0hENTlpNVpaaGJidHJJQXc4L3k5QmcxeVZyb0tlN3dPUFBIT2NMWDNtYzk3N3pMdTU5NkJCQktNTlcvSUJHbzgwemUwK3pkY3NvLy8zWDM4VXorMCt4Wjg4SmpoMGY1OEw0SEROemRSRzBvR3U0amhoNk9iWXAxdjF5NnlHamZ5NkVHVmlXd1VjL2NUK3Z1SDBiRzFiM2NmajRPRW9VWXhnYWptc3lWV21oNmpyLzZaMnY0TTdidHZEVW5oTWNPVGJHMmZNelRNL1dDVUl4WUxWTUllclNOWTFpM3Iwc0pWTW9SZFVsL1lDWVR5MUFIR0VnQnBGK3g1TVJaakU5M1FWUldLUjloTzhGZ3QrZGM1aVpuR0YrdmlIeU9WR3Uya3BCQWZKNU8zTlNYZHhEQ2RMRGdnRmU2bE1USitMM3F3ck16VGY0M3J0djR2cWQ2L2lydi84RzNXVmhCNUtxTm0zTHBOSHVZS3BMNHdaaldid0Z3MHhHdktuQ3dkRHpBeEdaWnhsNGZpQ01ycTVpOGF0U0xLaHBpa3g5V2doY1VWVUZYZEV5MnJhdXFuVDhBTThYRzAvT3RSaWZxWEhpN0RTYjE2MWdZTENMWXNrVkcwSW5vTlhzMEpLbkJVMVZoZTJKb3FEcktwWmxVbXUwMmJodUNLS1FCeDQ5eE5oMGxieHJZMXRtMW5SSFdud1JUTGdNekpKRWdnUHFlUUdHVEEzSk96YUc1c21qak5oQlBTL0V0UTNPamMveDJMNVRPTGJKenUxcnVXSG5haDU2L0JpdVkwZ29aQUdMVWhKb05OcFpRTEdpQ0psNnF4MXc4UEFZcFp6RmRkdlc4cEpidDNIdlEvc1lIZXE5dEFPUUc4SmlGOFVVZXVuNEFYMWRSUlM0ckhIV2xZcFB1K05SeUxsUytCUXRteThhUlF1c0Z0OFhMbXB4bEVqZWRwSWQwUXA1bTJJeFI3MHQ3cVhYNnRCc0NJNTVFZ3RobGltN3FxczUrcVdmTisvYUlwNHJXZjR6NkxwR3ErMmprS0JMQmhGeElvN2NpUmc0ZkRmOHNkUEIyQ3RmdW9OT3M4WDhmQjNidFRCTWd5Z0lLQmN0dm5iZkhqcWRBTmN4VVZEbzdzcno5UDZUUFBqSVFYN2tQZmN3VjJ2VHFEVWtLMG9sVEJSZTlmSmRQUER3b1V0b3FDa3MwZE5WNE5kLzc3UDA5NVo0Nnh0djU1bjlaemw3WVE2M2tLZmNLOUxaejAzV3NDeWQ3VnRYY2QyMlZjelAxNW1ZbW1kc29zS0ZzVG5PajgweE5qN0g3RndqWTBNVjhnNldiY2hZdU9TU3o1cCtQeU9EM1R5NTV3US8vU3NmNHlNZitqRkdSM3ZaYytBc3JVNGdRbHJpbUxQbnA3a3dOc3ZvU0E5dmZNTnRlRjVBdGQ3bTdObHB6cDJiNXV5RmFjYkdLNHhQek5Oc2VablRvSnV6bGtJdFN5REdoVFdna0JCNEFaMVdXeVpNeVdkTk9wZUdrVGc1Sm5GTXM5WVVSMzlEeDgzbkNEeVBUcnRESWlIVzUvTjlxNnBDdWVDU2M2eGxUNWVwTFlVUWlpV2dpaUNJbER6Z0JTRlRzelhlOHdPdjROejVHYjUwNzFQMDk1WXdkQkd4NXRwaWM3c1laazBaYnVMdlJCQk50ajZTQk44UGNVeFRhRmZDTUJNa1hrMUI5LzBRM2Riazc0eUZsRDVhRUZTYWlpNXpIRlJoeGtjYVNSbFRxYlp3SEJQWE5abXZOaUVTVEQ4U3NCMFRlOUZjU2RNTndpQm1mS0pDcWVneTNGL2c0TE9uMmZ2c1dkcWRRSWlvWlBwYUZLVTE1d3FkK2VLRjRUb1d2bThSeVBUMklJb0ovSUFrRmcrTnJxc2tZVUloWjdQdjZIbktCUmRGVWRpNGNTVTM3bDdMMC90TzQ2UmlIeGs0bS9xU2k1ZVFGRU5mRkpoRGg4Zm9LYnJzMnI2UzE3N2lSbzZjR0dPMlVxTzN1N2dFcjR2bG9vaWlCWXBoUWtMSDg4azVRalhXYkhXSUUwR2l2OXFlVjVXTEtaY2tGRnliMldwajJRY25vMEV0RTFXbkxQcDdSZVlETnFvMTJpMVBXdmtLR1gyeHV5UzhhN2drdVB3NUwwUFhNUFhMMncvRVdSZWhDbTlsMzhjd0RVeEpEM1drc2RSM1VpZ2tHQ3cxdG0wWjVaYWJObkgyL0J4aHh5UDJmVXpIWXV2V1ZjelYyOXovOExPc0dPcktBa1VVQllwNWgzOTcrQkJ2L3Q3YlNQd09taWFZS0w0ZmNPellCVzdZdVpyZE8xZHo2UEFGZXJvTEM0Vk1EblVIKzhyVUdoMSs5T2Mvd3BGakYzanZ1MS9GcnAyckdadVk1K3o1R1dxMUZsRVkwZkI5anRYYm9ndTNEVVpHK3RtNFlWU3dCSUtRMlVxRG1ka2E1eTdNY3ZMMEpDZE9UM0wyM0F4QkdOUGJVOFMybHZlczEzV05qV3VIK1pldlBFV2wrZ2Y4Mmk5K1B5KzdiUlB6dFJiSFRrNHlYMnRqR0RxS29qQTlKemFSZk02aFZNNnhmWXQ0ZGhJU0dvME9FMU1WSmlmbk9YVm1paE9uSnpsNWFwS0p5WGtLZVp0UzBiMk0yVmVDYm1pNE9aVkNLQWV6c2NCWHhYQk55VmhkaHE1aVdEb0dPbzVqMDI1MXNISVdoV0p1UVhEMlBMOTMwOUFsOU1ObEdVZkpvb0d6ekVqT2NnYnFqUTd6MVJadmVPMHR4TUEzSHRoRHVaakRsSUVPbHFIVGJIZlEwVEptVHlLWmJPbkplYm5UZEJoSDVHd0J0MFNaeDlQVlhSMC9JT2ZhZEh5ZklCTGVLTm5yS0FLcmQyeEZCdXVJelVNNHVLcDRYc2o0aFRrcTFSYUZuSTFwR1RKNUxWbGtnYUpnR2hydFRrQVVKbXhaUDhUa3hEU1A3ejNCeWZNend0bFZtdENaMnVXcm1uNjVMeVZKb04zeE1vYzBYVlB4cFFUVk1vM010RWJUVkN4RDQvSDlKM0Z0Z3lSTzJMaHhKYnUycmVTcHZhZUVOTi9RZ1ZoSTdtTUZkWkVRSnlGQlJVVlRJL1ljT2tkM2Q0NFZ3NzI4NVhVdjVpTi8velVhMG9Fd2ZYRFNEbUJ4bEZpejVja01VWXRhbzRWdEdmaUJRc3p6YTBBVm9OWHVVTXk3MUp0dDJaMHZMWHhDTE9ITHhIdDFPZDhBMGEwbkNib0dscVZMTEQxQjFUVUdobnF4WFplNXVVWm01Zm50VmN6TDQrdnBWTnh4eFBFeUhiSll0a21obEJjK0Z0L0I4SXdrRVFLSWUrNjZIc2MyYVhzZWhaSXI3a3NjczJaVkR4Lzk1TDJjUGpQTkRUdldaSHo5dExOOWV0OHBEaHc2emM1dHF6bHdaSXdrRmpZUHJYYUhZdEhsN2xmczVyRW5UOURiWFNCWndrVVI2M1QxYUI4WEptYjV0UTk5am4vNjhsTzgvVTIzOGRMYnRyQmx6U0NXUFV5OTBXWnlza3FsMXBMSkxRRVRNMTVHdXpOMGxVTGVadk9tVVc2NGJoMnFBcFZxazFObnB2aldZMGQ1NE9Gbk9TdmRRMFVveXNMYTFGU0ZmTTVpMjhZVlBQTGtVYjduN2IvRG0rNjVtVGU5L2hadXZINDlmVDFGT2gyZnFha3E0eE1WMmw1SW9pcE1Uc3d4TG9VcXBxRlJ5RHVNanZheWVkTUtYaTFUN2ljbjU5bDM4QXozUDNpSXZRZlBVc3c3ZEpWeldXRkpUd2VHTGhnMW1pWk9hcExxUXk0dkZLN3B6MXVtam0zcTJEa2JUZE54WEp2ZW5nSkJHREZmYldhdW9pL1kra3lXL3pGRkVjVzg0NGRaSUU2Y0pMejE5Uy9HTVEyK2ZOL1QwazlHNUFRYmhpRVRlelFVQk1ac3lPS2NyaU5WUVFUanlGb1RCQ0tReHJVdDZ1ME8xa1hpd3l0dFVHbHVaODZ4cVZRYmFJNXdSSXdXMmVCcXFvcGg2RGhBeHd0b3QxVktCWWY1YXBOR1U2U3lOVnNlaldaSGlwVzA3RVNuS2dxMW1zRE1iOXE5R3EvZDRPanhDeng5Nkd4Mkt0TjF3VjZKazJTSkQvcHpGdk9VUVpGNkg0ZGhoR1ZxSWlZdGpqRU5qZEF5Q0tNSUwwNndUT0dkOE5EVHh5Vk5LR2JGaWtHdTI3NlNwL2Vmb2RYeXNXMGppNFJhN0VDb1NHS0Y0d3FzNk9sOVozRXNrMjJiVnZDbWUyN2pVNTkvUUloK2JHdUp2RGJ0U2pxK2lJL0x1VGJOVmtmUXcyeGhKU3VDb2RXcjc4NVZNY3pJdVRIRnZNdDhyVWx5VVZ4ZHN5V1pNamtIUHdpV2hValNEY2QxTFJ4YlJPRlp0a1d1WE1TMkRKVElKNTgzcjhvNDZyTHowT1JLejQ4NElqdU9rQitibG9BM3dqREVVSlBNRE9nNzBaMm5ESll0bTRaNTZlMWJtSm1yVXk3bE05eTZ1MXlnNDN0ODdwOGZwVlJ3MFBXbEc2SnRtM2lkZ0FjZU84emRyN3lPVStlbTVUQlFDTHpHcCtaNStVdTI4NG5QUHN6c2JKMWkwV0Z4YzY2cUtvNmxNenpRUmJIb2N2YmNOTC8wbTU5Z2RLQ2JGOTJ3bmhmZnRKSGRPMWV6ZHZVQTY5Y05aRmF5bFVxVCtVYUhXcjFEeHc4SkVvWHBhcHRLVTh5SDhqbUhsN3hrRjYrKzZ3Wk9ucHpnWTM5L0gvLzh4U2ZvN1NuaXV1YWlnaTdTcjRwNW02MGJScWxVbS96ZFB6N01wLzdsVVhadlhjbHROMi9rUlRjSUI4Y3RXMFlvbHdxb3FuRFZtNW10VTZrMm1hKzFwYTlPSnpPU3k3a21nMFBkN055eG1qZTkva1U4OEsxRC9NbUh2OGFGOFRsR2hydVhuQkljMjBEVFlsb2RUZHBPSktpNmltTWJRbmhEakc1bzVJc3UvY045eEZFazZLeEE2SFZ3eTBYeU9YdEpzWG9oMXVmbE4zOUo4WlVha2lSSmVQU3A0NnhiMWM4YlhuTXozZVU4WC9qNkU4eFdhdWg5WGRpV1FhUFJ5V0RYRlBaTU85NzBPVkNTcGV2U0R3SWN5OEkyZEZFM1RQT3EvWDVhbmsvZXNYRnNrMWJISSs4NllwNlRCWk1qNTNraW8zVHRxZ0hXcnhya3hKa1pkTk9nNkJneXFVeWNrdUlvSmxFVWtrU2hKVzBWZG00ZElRazduSjZZNWRGOUo1bWNyVkxNTzhMc1RkZlFGSFhKNTd2cVluN3A4VjNnVko0WENadFMwOGlzR3YwZ3hMRU12Q0RrZ1NlT0NpWk1IRE00Mk1PTHJsL0xNd2ZQVTZ1M2NSMUR3Z3BSTmlCSnNTZFZIdEZPbkozQmNTMWVkTjFxYnJ0cE03NGY4TTlmZlp3NFRzaTdkbFlBaFV6Zng5QjF5Z1dYWnR2TCtLcFJIS05yR3AzRVg5Z3Rycm9ZUWJQdFVjeUozNWxDS21FWVVhazFXVFhTeXkwM2JtYlAvbE9pMkNmTFV4Z05VeWVmdDdCdFF4VHlVcDRvakdoWHE5aXJ5eFNLN2lXWTF3dlVGNHRPeGRUSXVSYkZZZzdkRU9yQktBNnhEQVhkRXJTdjc5UlZyN2Q0d3owM01qemN3NFdwT29ZaFRpdTZiYkJ6OXhxKy90QUJIbnZzR0p2V0RTMmhxS1VacEFPOVpiNzhqVDM4OUkrOWxuVnJCcmd3UGljVFpoS3ExU2FiZDZ6azdydXY0NC8rK0Y4cEZ0MGxsU045c0hPdTRPamFwc0ZReDZmV2FQUEZyejdONTc3ME9LV2N5K3BWZmF4ZDFjK1dqU05zM1R6S2xpMHJXVEhjeTRidEs4R3hpT2NhbkRvMVJhWFdKQTU5cWxXZitYa0J2YTFkMWN2dmZQQTlyTjh3eElmKzZBdm9XZ25EMUpjTTYyM0pJemQxaldMZW9kWDJPSHBpZ3NmM25rVC9LNVhob1M3eHdLOGRaT3VtRWJadFdjSHFsWDFzM0RTTTI1VURQK0xDNlNuT2pzMWxYT3lwMlRyVGN3MzZlb3E4NlIwdjU3YmJ0L0xqUC9WaFRwMmNaR1NrUjZZY0tsaTJnVzRrdER0bTVsdWlLR0JhT29xdUVDTW9zcVdTaTNwdWhqRHdST3BXR0tQbjhwUzdDN2dGKzZwemJWL0FwVXNjQzRqdy9QZzhCNCtPYzlkTHRuTEhyZHNZR09qaUMxOTduTVBIejlQZlU4WXlkV211cFVySVNGdGt0YUZraXU2TE40MjArUXNqSWZaTEhUT2ZhN05KNG5qQlZpQ0thWGM4WE1mRzBBMjh3TTlVNnlrTDhLNDdkMk5aSnM4ZUc1ZlFudURxcTVxY1lXakNLYkhqaFpTN0M2d2NLaEdIYmM1UFZubnE0RmxPWFpnUmxnRUthTHFLcVdzWk5adC9UekZQTXpkTnc4am9QNmF1RVZtRzlBWVdFbFRiTXVsNFBnODhkVlNJY1RvaHZiMGxydDg2d3VuekZXbFlwR0lhZW1ZR2xTUUxnMFBoSUJienpONHoySWJHenEwcnVPM0dMVGkyeGI5ODdUSG1xZzFLQlZjT0lrVlFSTG1RbzlVV1F5SlZVdTdDVENRZ2ZHV2VEOVNpcWlxZTV4TTVJbWFxMW1obGN1MmJkMi9nN3BmZGdFTENnNDhjbE5Oa1pWbjh2Uk9FR0paT1YxZWVDSlVrQ2dtOERwYWxRZDVHczR6bm5ST2Fua1l1bkp2QkM2S2x1RjhDWVJEUTNWTVFuZyttVHI1Z1lab3FDakc2cldOYUdybWlpMjRiMzFiWXc5Vzh2L2xLZzQwYmgzbk45OXpFeEdRRjIxUXhUSk1rVVRBTkZVV0R2L3JycnpQZkZoQkhyZDZSYkRwbDRWUmg2ZXc3ZHBaUC85UEQvTUpQZkErVmFrTmlrR0lkTnVlYnZPYjFOL1BKVHo5RXUrVmhPK1lsRDUrcWdHMlo0dWhybWVSZGk5NnVQSDRZMGZFQ3hzY3FIRDgremo5OStRa1VGSHE3Q2d3TmRyRjUwd2k3ZDY3bXJwZnQ0b1k3dHhOVW1ody9kSTVFVTZYd0p1SDB1Umw2bTIxKytPZmVTaXVNK0Y5LzlFVldydXk3QkUwd2RBMWRFeXlFbkdOUktqajRmb2dmUmpSYUhrL3ZPY2xEanh3bVNNUVJ2cSs3eU5xMUEyemZ0b0lYMzd5SnUrNjZubHV2WDhmWS90Tk16OVhScFVLeFZtK3c5NUZuMlhYTEJ2N3NMMytTZC8zQUI2bFZtMktVcm9EbEdLaFJRanRuU1pnRllkSlZ6cUZJNk1TUFlqUkRSZGNTZEZmY1AwWFRLT1Jkekp5Rm9ta2t6N1BaMERRVnIrTno0ZndzeWNWSlEwbENGSVQwRDVicDdYTXVDODJrSm4rMlpYQityTUxYN2p2RTJIaVZXMjVZeTQrOC9TN3VmV2cvVCs4L1FhM1JBc0NVODRlRlp5RVZIeW5MQy8ra01ETHYydFJiYmNJNGZtNjZvckwwOU9EWUp2Vm1HOC96c1MxVDJHRDdRaXc1TlZ2bGpwdTM4ckpiZDNEZ3lBV21aK3ZZTW9zaGlnQi9RVG51MTJLS0JaZWgzaHloMTJTdTB1Q3gvU2M1ZkdxTWNqNlhpUk5OVFpPMVY5aXhKcys3bUNlTDhlbFVNQ000MW40Z0ZGR1dvVXR5Zmt6aWl5bXU2MWkwV2g0UFAzT2NIUnRIMlJDR2xQSXRodnBMRlBMRG5Ed3pTNzNSeGpZTk1kbFdGdTVXa2dqT2J4akhQTG4zREkyR3g2NXRLOWk5YlEzRmZJNnZQL2dNSjg2TTQ5b1doYnlEYTF0MFpFanpBdjZsRUlUQ0t0ZlFkVEdwZng1UVM5cWVOMXNkRklRWCthclJQbTY5WVF0Yk5veWlLU29UMHhYYUhSL1A5NWM5cHRtV3p0bXhPVHBKVEc5WG5ucVFFQWNCS3NJb0REZEhkMDlSMFBTVXE0Yzdva2dZbGIzNVhTK2pyeWVQMy9hV3ZHYzduMlBmTXlmNHdoY2VRN04xZE5mRXRvVGpuS0xwd2xNbWI0R2hmOGN3ODdsS2d4LzVpZGZRdTdLWEUwK2ZwRkIwczhWcjZCcGo1Nlo1N3p0ZXdvKy85NVU0cmlQbmxrazIvMGdMZTJXdVRzNDBtWnB0VUpTbm1DU0ppUk9OeW15ZDlkZHQ0S1d2dnA3UGZ2eGUxcXdkektUVmpYcFQ0cWJxNGpHR2lCak0yWlFNSGMvejZTcm1CRjlYNWsrMjJ6NFRZM004ZS9nYy8vRDViL0didi90Wlh2ZmFtL2o5RC8wd1cxNjBucE43VHBHb21qek9LM2hCVER3M3g3dmZjdzlmK2RMVHpNL1VLQlJkV3MwMjdiWW5tVlFMOUx6VXVLbTdYQ0FNUWtvNWg2Q25TQ1Q5dFR1ZGdJN244K1FUeDdqM3dmMzg4WjkvaVUzclIvbS8zLzltM3ZtZXU3Q09uV2V1MGtTVDFxNEpjT0hrRkNNN2R2T1dkNzJTUC95dFQ1QXZ1Q1FvbUk2Rm8ybDBwRGQzSE1jb0FsZ20wWVJ4MUpueE9iQTFTbmtMUHdiREVJTTVOUWxSU2c3RmNnNnZFenl2Nzc3ZDlzam5YWDdrcDE2SHFTVkVpMTM5VkJYRHRubmtnZjJjUHp0RGQ3bjdzdk9XbEIxbVd3YStIL0wwL3JNMDJqN2JOdzd4bXBkZHorWU5venkxN3dSUDd6L094SFNGUXQ1QlFiQjBGdHFyWk5rVHViQUpDRkVWZzd6ajBHeDNpSlhraWgydnNtZ2VFVVl4aHFMaU9oYnRqbzhmQ0taSkdNVk1Uczl6L2ZaMXZQUDdYc0pjdGNtVGU4OFFCbEUyV3hPZkxTYVUwUFJnZjVHOG85S3VpL25ORXdkUGMvTGNGSVdjbldreUNqa0hYVlhSTkVYNlZTWFB2elBYTkVHMThmd1F3eEFHVzBKR3E0bU9WenE5V1ZJdW5VZzZZQnpIT0xhZ0FlMDlmSmFwdVJyWGJWNUoyd3NvRkZ3MnJPNW1wdEpoZkhLZWVyT0RhUWk2amE0TDc1WW9qZ245Q044TGVXTFBhZXJORGpkZHQ0WU5hd2ZwS2QvQmsvdVBzL2ZRS1FJL1pONFh4bHpDK1hDeHNFY29OVTFEb3htR1YwMFpTYVNSVGJ2all4Z2FHMWFQY011Tm05bThmaFRiTktuVjJ6aTJ5V3lsem55OUtURSs1WkxlM0xRTXBxZHFORG9oSTJXYjFuUVR0K2hpbVJwUlIzVDVRNk1EMkxhNUlEYTZtb2VsNVZIdUx2TXp2L0NEZFBma2dPb2lQb3dDYk9FZlAvMUovdnJqWDBYUmRjalpGUEkycWk2cFZXRUVsb0dpNmQ4UnZMdzYzMkROdWlIZStKYmJDZWNhMkxiazBRdld1N0Q3VEJKZStjcnJVUE0yTEg3WUJVbDRZWFBYVlRxekRlWm1hcGlHaG1KcTJkQ2NNQVJDM3ZqOWQvQ3ZuLzJXZEFZVVBOM1Y2MGJsNTAyV0RCSTBSV1YrcmtxN0pmRE9XR29Wb2xTRVVSQkZkU1RxSmdoam1xME9uLzZuaDNuNDhTTTgvRysveDlwdEt4ay9OU2s0M1VsQ0ZDblVaMllvYjl6TURiZHM1M04vOTFVY3g2U250MHl1bUZ0SUlFclRmQlFWditOUm1hdGgyQloyeW1pUXJ4L2xwY0ZTYjVSQkFHUG5aM2pYZS8rQU0rTVZmdVZYM28xeDZoeGVMQVptVVJBUWVoMElwN24xMXExOHRMdElwOVVoQm5UYkpLZXIxT3JpNFkvbFVCZE1ZalJNWUh5OEFpVDA5aFNwZFFMVVJMQjRkRVVCSEVaV0RDMEZuYThHWHFzMjJMeDFBNy80S3o4T3pJczJORnVmR3JDQlZ2TjNlZWJKZjJiTjZwWExpM1hpMUZaRTBKLzcrb3JvdXNxUjQrT2NQalBONWcxRDdOZ3l5dmZlZFROYjFvL3l5Rk9IT1hWdWtucWpsZFVoWFZNV01YMlV5K3BLWE51U05oNmVPTUU4UjIxSXc2SDlJTUsyVFRBVDJwN1AyR1NGbnE0aWQ3LzBlbDV5NnpZYVRaOXZQdndzalVZSHc5UmxvcEhvcW5WTng5RVZDcTZHcVFWMDJoRmpVL004c2Y4a3M5VUdoWnk5NE5RWUoxaUdRVEZ2WjRscVYvcEc5Q3VwOTlJald0c0wwSFhoTzV3a29zTkt3eXQwVmNVeHpRVnVzY3pzVTFTVmZNN20vUGdjODlVV096ZXRZSFNnak90WWxBbzJoWHd2MVhyQWJFVndlUk1sUVluaXpMTFRzb1JMM2RGVFU4eFZXK3phT3NycUZiMjg3TFlkYkZvM3lvblRFeHcrZm83eHFWbGFMZUdEYkJoQ2VxdW9ZdGlSR2xkZHJuQ2wyWUJoS0F6dGRVMmpWSFRadUc2VTlhc0dXYjFpZ0p4clU2dTNtSytKWTFXbE1zLzR4Q3hSRkV1RC9VVTRqbndoMnpZNGRYYVdmWWVuR2JubmVxenBHbW9jaUN4TFU0UEVZOHZXRlpUS2hVeHRlalhrQUs4VGtPdDJLUmcxb3ZOanpOWEVnQ3lPRTJ4ZG9iQ3h4SHlqUmdpZzZhQWJPSTRJMkU2aWtFU1ZEN1NxditEVFQxVlZtSm11OGZZZmVUVTkvVU5Vang3RmNRekJ2VlZBaXhQeVBYblU3dklDNVViWElHTUV4UkF0VGNxd2g0b005K2RvalZYb2RBSVVOWFdjMHduSFo3bnhwaDNjY3VjdUh2cm1FeFFLTHF2WGp2S1huM2dmK2J5Q1gydG1MQTQwQlRPL2x0LzViMy9HUi8vOG4xaTFaa2pteFlLbUFjWUNWencxdWNxN0ZsMmxIRTgvZTVyZi91QS84V2YvNitjb09MUDRVWXlpcU1TYUlvZTNCdm1DamVjRlRFNVcrUEdmZXpOdmZ0dmRCTFh6aTVGOHpHSS9SNTQ5eHcrLzdUZlJkR0VpcGlncXFrcEdnVTNaWFhFc25xTzhhM05oYkpiLzhidWY0MjF2dVoyMUs3cVpQVDJGcWdtYXFhazVvQ29VeXc2YXJvc1pUS0tnNkJxcXBXRGJlbVllWmFnQUpna2FSY2ZoNVBGSmpwNnVzM0ZURDk2SlNRa0xwUXd0bmEzYlZncmJoK2NCc1hVNkVjVStHNWltZVh5TWpxd1JVWnhRY0RUczFYa3E5ZVlDckxhTXFWd2FpaHduWU5rbXFxWlNyM2V3TFJNL2lIaDh6MmxPbkpsbXk0WUJ0bTBjNVIxdmZDa256MDV5NHRRNFIwNmVaMnh5VGpCTGRERVh1bXp5bU13NGNCMkxPQkdlSjVmVHBhUTFKQlV0UmdnblEwMVIwVldORmNObDdyaGxHOWZ0V01QSk05UGMvNjNETkZzKzVaSXJpcmdxeFZKeGpHVW9tRnFFU2t5OTRYUDA5QVFIajU4bmloT0srWFNZTC9JSEJGUXNabmFXcTlOc2VWZUVSL1VyOFpYOUlKUnVhY0tib0JNSDJLYVJCWmpHY1N5VE1UUWNURWlnS2NWSFVTd0NTa3RGbDFiYjQ3RjlKempYVjJiejJtSDZ1dlBZbGtsMzBhU1VMMU50aE14V21qUmw4b3d3cUJjR05LcXFNRFZkNDc2SGo3QjIxUndiMXZRek1saG04T2JOYk4wNHlybnhXY1ltWnBtY25xZGFhOURxK0hSYUhlcHhRdDUxOER5ZlJyZ1Vha25WazdadFlsc0dwZDR5ZlQwbEJ2cTdHTzd2cHJlbkNCSmltWnF0VTY4M21aMnIwbWcwVVpLRVNyMU5Pd2pSRk9senZIQ3dremllUWJ2UjVJa25UL0thZTE1T3ZtRGdSNkNxTVpnYU5GcHMzTHlHdFJ0VzhlemVRNHlNOWo4bmZxNm9LdFZxazc3ZUVrYXhqN0FkNEJibFpoWEZ1RTRDV0J6YVB5N2VpNm9CR3BZaHVieTZqcElrZ0U2QzlvSjdzelRxTFVaV0RmS1d0NzRNNGpxR3BXTnFndGFwSlRGV1g1bU9hakYrWWdha0NpOTlTSklrWGdTSktFc2FDazFYV05IWGpWV3IwZ2tTVXNGc0ZJWG9tTHp1alhmeXpTODlnbU1MVTZsY3dRWWFtRkVvZ1BNa0FWVjBodDE5dmNLYzZESjRxcUlJMnF6dzR0WUp3cGdWdlYwY1BuQU9nZ2I1N2h6TmVrZTg3empCdHNUbUdBUUNnZ3pEQ01lMUFRMGpEZ1EzVG1TYkFXMTZCN3F4Y3k3MStYa013MWh5WEZUa2hnZ0ttaW82YVRzMjBGZjBzMmYvYVo1NitpUnJONnpEZGlxWlZZT0tBcXBCckVoRHZCUmEwSFd3TmNHY2tuYXJZcjh3QUFVM1p6TnhmcEpuOXA5bjQ5YjFPT1lrc1dhZ2Fycms4OVc1N3ZyTkRBejJVYTgzS1JSeXp6bGpVVldGV3IzRjBIQTNrRU0xQkdWWlVTQ0pZdXorSEFDSEQxM0FzbzFsNTFpYXB0RnFkVGg2L0R3cUFlV0NocHI0MkthZzllWnlCbFpibzFwcjg2MG5UbkhpOUJ4clYvYXdmazAvcjdoekY3dDNyT0g0cVhIT25KdGlicjdCNUV4RkdyMEp6Rm5YMUVYRWk1UkNHMkJiaG1DWUpKZUhXMVJwOEJVRUVjMTJCOGMyV2IxNmdNM3JSOW00ZGhoTjAvaldFOGM1ZUhTY0tJNFpIQ3FqNjBibWNHanFNV29Tb3BJUUJnbm5KeXNjT0g2ZXlka2FqbVZnV3dzRGRFM1ZzQ3lEbkJSSmVYNkFnb0Z0bWN2Z0FGZFJ6T1VNQWM4WHBsZUZuRTJ6N2RIeFJHaHFtZ2FVemh1eWdpNUo5aWdLZmhoaUlIWmFSVlU0UHpuSCtNdzhhMWYwczNha2ozTFJGY1UwWjFMS0YybDdlWnJ0a0ZqS2ZRUFpwUmVMSWtYbHhKbHB6bzlYR0IwcXMyS29pNkdCTWp1M3JHTFgxdFhVRzIxcTlSYVZXcE42bzBXcjVjbGhoOGduVFFlM3FxcGlXd2EyeE4xTGVaZGl3U1VudlVGYWJaKzVTcE5XMjZmUmJGS3JOV2kzTzVBa3REbytKODVQY2V6MGhJQ1luR1ZNeGVRZjlQZVZ1ZjhiVC9HKzkvOEExbUEzeWtTVlJGTUFsYmdkb0JZS3ZPSE5MK2VSKzU5Z2NDaStyRVZuTnJnSnhlRHNydGZjTEI2V2ZCa25qb21qQU1Ycm9QUVZxVFZiUFBiSVhuSnFtamxpaUs1UEdtc3BTU3kvY3UwRjdzcFZKaWNyL05CUGZEOUR3NnRJcG8raFc2YllQT0lZd3pYQVdjLzcvK3YvNEEvLzRHOVpNZGlmWmJJbVZ6aUsrRExWNW90ZiszM3V2SDA3MXRncFlua0VGWWtwRTl6enVsdjU2UFZiT2JEbklLZFBUM0w2OUJ4clZ1ZndHaDVJLzN3dGpqRUtzK3k4WVJVZ0xBWE1peVQ2eXhWM3h6WUoyajVEUXoxZzVNVW1KYU8raUdPMHZBbm9YRGczTDR0L3dNRm54L2llNzQySld4MzhXTW44ZWl5MVNrLzNLbGF2RytYclh6eEJWM2N4QzF0WW9QTXRMZTY2cnFQaFU4alpqSzdvQXdJaEdGTlZlZUNJZ0NKbnoxNmdWcTFqR3dJQ1RSUU5EQzJ6K0UzaUJFMEgwRWhpUWFNek5JV3ZmdmxKM3ZyV3UzSEtMa0ZIYnZwUkJITlZCb2MyOGNyWHZwaS8rcE5Qc0gzbnVreWtkN24xV2FzMktYVVh1ZnMxdHdBZGRFTkhsNXUxcGtmZ2pyRHZ3QVQ3OXh4aXVMLzdzb0s0eW55ZDAyZkd5TmtxQlVlVEJWWW5pU0dJWWt4TkplL1l0TDJJdWZrYWs5UHpIRDR4d2NoZ0Y2dFc5SEREenZYY3VHc0RNM05WemwyWTRmekVMRE96VmFyMUpzMldZS2RGWVpUWklBQjRudWlDL1NBZ2xsbStjUWFCUmRKZ1RjRzFUZnA2U216clc4bkd0Y09zWGpHQXJtcWNPamZOZ1NOampFOVZjUjJiUXNFUithTkVLRkVIVFluUll4RWFQVjVwY1BUMEJHZkhaMUNBb25TSVRhU2V4OURFSnV4WXBuQUhsWnRMUzRvaVUvTEljbyt3L3B5OGZ3WHBDU3lvZ1czUHArVUp2NE9zTzVlY2NWM1hjQlJUeXNvamt2WUNWWWhFSENQYVhzQ1JVK09jSFo5anBMK0wxU005OUhibGNTd1RRMVhwS21ob3VrR2lxTFE3RVIwdnBOMEphSGQ4YkZNWTlodzlPY1daQ3hXNnl5N2xna3RmVDU3dWNvNTgzbWFncjV4SmZZTXdGTWRPaVovRmtxT1pGczRnakdoM1FwcXRnSm01SnA0ZjBQRThtazNoN2tZU1F4TFQ4VVBPVDFZNGNucWNTcTBwM3FzOEFsMU9GOUUvME1XVGorN2gwNS82RnU5KzkrdlF6WDFFeUZ6VE1FTDF6dktPZDcyS2J6MndoOC85M2IreWNjdEtiR25FZjhueHRlMXg5UEI1dnY4SFg4MGIzbmdIMUU4VHR5SVNGUWdqZENNRTF2UFBuL3NYRHV3NVNFOVArUXBEQWdYZjk1bWNySkN6RFduby8vd0xlQnlKUU9KU2Q1RldxMDF2Znc4LzhJNlhBeFZDTDBUUmRSSkZSVk5pNkJyaDFKblRmUEpqWDZCZzZNU2huNmtBTDlkcEpJQ2hRYjNkNG04LzlrM3V2UDFGNkphQzc4WFpBby9ucXFnRHEzbnQ5NzJVWjU3Y3o2bVRaM2pnZ1NPc1dmMDlHTVlrb1RURFFsV2hPc1V0TDlyRjI5L3pXdjc4ZzU5ay9jWVJDZ1YzMmJza05zK0kweWZHNkJ2czRYMi84bFlnRUo5TEZtZE5TU0EvekpuejB6enkwQk9VdTRyVWFrM3UvOFlUL01MNzNvcldVMEtmYlpGSXFDL3lZelFDZnZwOWIrYVJCNS9oNVBFTGpLN291N3h3VElINVNvM1RweWI1a1ovOWZtNjliUmRVeGpNMmd4b25hQVVkNk9lYlgvMWJxdlB6RkVjR013aUJSVllYaTcyeTB6OGJIdW5qeS85eUg0OC84ZjNjZk5NRzFMRm5pVkZSVkkyd0hhSXp6Uy84MzIvamlXL3Q0Y0RUaDFtL2FYU0pQY2ZpZTFXdk5qbDVZb0wvNjdmZXc5WnRHMkg2bEdTenFLaEpnbGF3Z1JWODVoT2ZaSHB5aHZXcmgxa096ZFkwb2ZNNE16N0xUS1VtN0pLbGM2RnRHWlFMTG5uWG91UWFkQlVNL0pKSnN4VlFhN1o0OW1pREU2Y242T2t1TU5CZllxaS96TFpOYTdodXh6cGFiWjlxcmNIY3ZPRHhWMnROV20wUFB3aWtTVllrczRYemVINUlRb0twNnppMmdXa2E1UE1PUGVVQ2ZUMGwrcnFMT0k1RnZkSGh5UEZKVHB5WlpueFNKRmFWeXc0NTEwUlhJMkxmQjAyaFlLdDRRY3paaVRsT1haaGhiS3FDSDBhNHRva202MUFpY1h4RDEzQXNBOGMyQlNLU0JsbXJDcHFxRXdTQkRKYzMvbjNVeElYNEp0R1ZDOE1aZGNsWGtoWjBHekJqSVIxdXQvMHNDQm41aGsxRERNTk9uSnZrOUlWcCtudUtqUFIzMGQ5ZHBKQ3pNWFJWR05Bb0txNmhZR29xSmRmQkQyTU0weVNPb2RQeGFYVUNUbGFtT1hsMkJ0UFVLYmdXaFlMWXZYS09LUWR3WXFOUlZTWExGd3lDaURnUnFpN1BGNEhMbnVlSnp5UTVGWEVVVTJ0Mk9EYzV4OFJNbFdxOVRaekVGSFBPc3AzY3haZHA2SFNWQy96K2IzMkUxN3p1ZHZyNjE2S09IeVdNVlZBVm9wa2EyckRESC96RlR6TThXdVlmUDNFdlUrUHpvTEpBdzR0amlCUHl4VHcvL2Y2MzhndS8vQU1RTmdqbUc4U3FnaG9uNkdZTXZkdVlxMWI0ME8vOW1lQ1Y2OXBTb3dBNUNFb1VGV2hUTG1uYy90SmREQTEyY3hXbWVNc3ZIRTJuV1c4eE1UN04rUGtaM3ZwRHIyUGR1dFV3YzR4RUU1Q09raVJvdGdZTThiY2YvVlBtS3ZOY3QyUGRWVE40RklRWHpkZS85RERIamg5bncvb0JsQXV5b0NrUWg2QnlnZGU5OFZiKy9xLy9oUVA3RHZNM0gvNHNiMy9YcXpDR1J0RE9ueWRTaFAxdjFQRFEzR2wrNDdmZnc4aEltVS85elRjNGYyNVc2aEtpckFFUUFlRUtsbTN4NGxmY3dDLzkranZZc25FVjhmaHBva1NZTitsSmhOcGRBTmJ6VjMvMjN6aDU0aHczMzdRRng3RjQ1S0duK2VUZjM4ODczL2xtTk9zeG9rNUlMRTJmdE9uVDdOaTJsazkrNGJmNC9kLzRHL1k4ZVF6ZjgrVFhJN0JSRWVvaU9zYUJvVjcrK3gvK09PLzkwZStGMWh4Qkt5UkpDNlNWUUdrSEowOGQ0MU4vOXprR0J2dVdPektSS01LWTd1Sk5zMVRNY2VMVU9MLzVhMy9PdjN6cHo5Q0dCK0RDbFBEbjFuVGl5V2tLQTZOODlETy96bi8vbFk5dzMxZWZKUEQ5Yk1DWUlHMkFFK2diN09iMy91d24rY0VmZWkwMEpnaUNXT2c3b2hqTlZhQ3dteWVmZklLLyt2RGZzMnJsNEFMejdLSkZZSmtHSjg5UGNlRFl1UXhYVjZRTFlSaUZPSmFKNjFwMEZWeDZ5bmw2eXdWS0JZZHkwU2FPUmROVnJkYzRYSm5uNkxGekZJc3VwV0tlY3NtbGxIY1o2TzFoM2VvUitWM0htWWduNWFPbjVsMngxQ29ZdW9hcWFDUUlkOWRxdmNXaFl4UE16TldZbnEzVGJIYlFkWVZTd2NBeE5UUXR3ZEZEb2RhTVlMN2VZbUtteW9YSkNqT1ZPbUVVNDlwRzVxMlUwcVoxVmMwQ2NoekxsSUVsQ3FaaGdJSlUyMGN5WC9ueXdlYlBTVTI4R0VOSzJTM3B4RGlXWGd0cW1yS0R0SEdNRllxNmpwSW9VcGtWeXpRZ0ljRFJOWlZDVGdnVEptZXFqRTFWS0xnMlBWMEYrcnVMZEpkeTVCMEwwOVF3ZFIxRlV6RjFVRlVSOG16bUZMcExMdUFTaGpFZFQ2U0ExR29OQUNxYW9QTWs4bWJwOG45SGtSaDJDdHB3Z3FvS0gySWtiYWpXOHBtck5aaVlubWR5cmthejVXR2JCcVdDZytjTFkzaFZVYkovTHRkWEtvckNxbFdEUFBuVUVkN3o5dmZ6aFMvL0NlclFSb3laWTBRZWdudCtZUUt6cjVkZitiVWY1cTF2dTUzSEh6dkdxWlBqek0vVlNSSW9sbHhXclJuZzl0dTNzRzdqQm1qUEVrelBrYWdxZWlJN3MvSjJFZ3grOEFkK2xDT0hUblBqZFJzWkg1OWZGQXFTZ0tySlhFMkl4aWZZdGFHZkwzM3pBencvOTVxTCsrWVZITmgza1AvMDVsOGdYOHJ6dG5lL0FxZ1RlSEVHQTZoSkROMkR6TmNuK01kLytDcXJoM3NwNXR3TXI3eWFKc0oxVEI1NzRoQ2YvY3lEdlAvOS93bE5IU09RcDhFb0FYMTZsdjYrbmJ6cW5qczRmdlFFanoxeWdQL3l3Lytkai96Vi8wQWIxVkVtenhBSEtoRUt5Y1FzZW5mSWovL2tXM25MMis3Z3NVZVBjdnpvQldhbTUybTN2T3llcjF3OXdPN2RLOWwxL1ZZZ0pCbzdSUlNCcG9LbXh5aTkvYUR0NXBPZi9EZ2YvTjIvWnNQYVlWUVVUTk9ndDd2QSszN3VnMnpmc1piZHUyNUFyKzBocW5yRXFrN2dnejU5aWgzYlYvSTNuLzVWOXU1NWx2MTd6M0QyekNUMWFwTWdFS2VkL29FdU5tNGE1a1czYktTN2Q0aWtOazR3MzBEUk5EUWl0SUlCaGQxNGZzZ1AvK0Q3bVptcXNITDNKaHJWaHV6MFlvZ0ZPeWhKNG9WRUd4YVNiVlJGWWRPbUZYenB5dy96Qy8vMXQvajlEMzBBYmNSQW1icEFGRVNFY1lRMmRwcUJ3UkgrK0M5K25qMVA3ZU9wcDA1eC91d1VqYnJnZUhkMUY5bXdlWVE3N3R6SzROQUtxSTBUVkp1Z0t1SjlsazNJWGMvNCtIbCs2SjIvaU5mMjZWa3pjc1YxbFNRaUtEcXRPK0tFcGhMSHdteXIzbWd6VjJsdzR0d1VqaVV5Q1BxNkNuU1ZjdVJkbTU2U1NQMFJPY01CTTFQVFZPY05hZTBoNW1TYXpQQzBUQ01MVTQ0WENiNFVtWExrKzJGbWROYnhmS3ExbHNnbXRYVHl0a1p2S1NmZnE5Z0EyaDJmNlVxRG1ma0cwM00xNXFwTlBFOElpbXpMeUpxWXpIeFFNckJzUStEaG1xcGs2dTMwNUI5RlNjWmtTV004bng5bUxtWFJ1cTVMWEh5eFF5RUVnVWo4Y0NWbVhHKzFNUTE5VVVHWDhsWmRJNSt6WlVLSVNyUGRRWk81bXdrSlNpTHNkUjFiWU8xQkdIRm1iSWF6WXpQWXRra3haOU5US3BEUDJlUmRDOWV4TUhXQkJScTZTaGdMTnowRnlObEtoZ1duRStITS9ENkpVSktJSkFJbFNiQjA4VnBCS0p3V0c2ME9WWW0zVjJwTm1YS2ppRzQvWjBzS21SaU1DWWN6VmZxeWE1bnQ3VEt3T2FhdXNXM2Jhcjc0bFVkNHhVdCtqRTkrN2dQMDk5NkN6aG1vVGhFM0U2TEpHVFMzd3ZxTkE2emZ1RVl1cDJnUm5VdUJwRWt5ZFpLNEU2R1pLbXJSQkhjWVdNR1pjd2Q0MTF0L2xRY2YyY3ROMjlaa3pJaFVqSlh5cllraklTcEpJSzYxVUQzLzJ5dmtDYURFME8yU3FENW56ODd3anZlK2h1M2JOOEQwY1ZBU1ZHUW1xNWtBbzN6eTd6N040V2VQYzh1Tlc3S1R3TlhRTVJVcGtSNGM2T2FmUG5NZlAvT3pyOGZ0TGFCTjFtVE9Ga1JlaE1Zc2Izano3WHoyNy8rVllybkRYLzcxRndqRGlJOTg5SmZSQjE2RW1weUcrVG5pZGtJNFcwV3IxZWp1NitJMTk5d0M5eURuQzJGNjJKY2Ywb1A1Y2VLYWgyS29tQ1VkaWozQUtzRG5qLy9vZy96aXovNGgvYjFGdXJzSzJZTTZPdExQM3YwbnVQdmxQOEUvZlA0M3VmT09sNk1WNTlEYTUwbXFiU0pmUmIxd0ZyVm9zV3YzV25idDNyem94a1pBS29BS0laZ25HVHRPSElQcDZsREtnVEVNOUhMOHhGN2U4WlpmNWNtbkQzSHp6dlZvRnd1ZEZXRXJpNnFCcXFEcVlsNlR6aWtVUlNGblcyeGFPOHdILytCVHpGY2IvTVZmdmgrdC8wYlUrQlRNVjRqYU1kSDU4MmhGaTkwM2JHVDNEVHZrTHcrVzNxdXdSakoyVEtiOXFDZ2xHK3lWUUIrUFBuWS9iLy8rLzRmeDgrTmN2M3VETEZncFJydzArazFzTXVwRkZEeGgyYXRyR29iT0VqZkhLSTZabXF0UnFUV0ZFVmNVa1hjc2Vyb0tGSE1PQlZmVURWMEZ4ekdsZ2owZzhIem0ycExLdU1UQUtTRmVRUEVXZ3A5VkZkZFVLUTRXeERjVFJTSXN3Z3VZbXF0VGE3U1pyN2RvdERyVW14MWFIZUhGWWhxQ1RTYmNGSk1zUjFoUkJRdlFNblJNNmZFa0NCbVdnSzhWQmM4UDhLSUlUZE15WmVsem5wWXY1OHNpanRKcUZxSWNTSnBSQ2x1RWNVeXo3WkYzYkNMYnBOSHlCR2RjK2lPbmpBSEhOdkI5UmZvZ2lNNDRrVGNFUUpHV3NtbFNTOHIzOUlLQVNxMUZwZGFTeVVNNnRtbVFjeXdzeThBMkRYbGtNZEExRFZWVGw3VW5GZmhoSWwzWmhDUzM3Zm0wUFlIRE45c2VuaDhRaExGSXRqSDBaUzA4d3pBZ1oxc29pb211cVRpMmVSR2ZkUmwvRmtVbDU5aGN0M2sxRHp6d0ZOczJ2SVAzL2ZLN2VPK1Aza1ZYYVN0cVNRZnFnaThlZWVBM3hObEwyb1FTSmFEcVlHb28vZjFvbElFOEVESTJjWWEvK290UDhjSGYvMXVhalNiWGJWNUZ6clVsUkJQaVdIM0FadlFSRTVaRktQODlkSllZV0VPclBzbm82aTUrNHFkL0VsZ1BmUVlHaTZpR2RCRW5DZi93OS85Q1gzZEIwTFBncXRXbjZieGxlTGlQcC9jYzVQT2ZlNGEzdi9QSDBFZVBML284Z3FHelpmTWR2TzNkai9QaFAvMXJkcXdmNVdNZi94S1BQSHlRWC83VmQvT21OOTlPcm1zN2FoZW9OSUFhUkQ2MHB0TVhBVjN1TW1MWEJzT0FjaTlxdVFqa2dJaDZhNG92Zi9Iei9QRUhQODNEais5bDlWQVBvME45Y3QzSkIwcFYyYnBsTlVkT25PZmxkLzRrNy8zaDcrT24vK3NiMkxabEk0cmpvaE1BYzVDMHdLc0tycjBxY1gwVkNHUEJselJOTUJ5VTRXNDBpdkpSYmJMLzBIRSs5cEgveVovL3ozOGdEZ091MzdZV1I3SWNvaWpDTWhRc2V3UG9KZlNSeFRxRVJLd0h0UVQ0MldtNnA2dkkxalh3VjMvOVJSNSs0QUMvL0t2djVpMC9jQWRXOXc3WkdsV0JKa1FOOENyU3hVMVNTTU5FSEZjc0EyVjRHSjB1d0FYYVBIdmtHSC95b1EveTRROS9EdGZXMmJsakhaWmhaQUtjUzJkekV1ZFhrbXkxcG83bGFkZXNhYXFrUG9zYXBLa3FybTFteFQxT0VxYm02c3hXbTFsNGlXVWE1RjBMUTllRldaY2pPbkxEMERBMURkMVFNOXFocXFvWW1rb2thYXBSbElZcngvaCtLRHpMZ3hEUEQybTJPN1M5UU9RbVNOR2lyZ3ZIeUlMclpEVTBqaE1TUmVoemhOd2prYzZuQWhOWFZWVTBybmtIeXhDZTY4MjJsNTN1NGVvVjdQcmxIaUpWVldRNGhNem9Vd0tpTU03aW1sUlptTnVlQ0ZvRmhYcXpUUlFKRS9ra2ptVm1wc2l2TkF3ZFZYSG9TUFZvbzlYSnBQZEJHQzdSZVBoaGhLWnFRbndVTHFTRGVFRkFzK05KUHc5eDh6WHBpWkFzM2xJdktxcVdKY1E1dmg4QUNsRXNvQkpOcG9hWWhvNWxLc3Mzb1NoQ2ZhV0lrMGhPVllsQ2dkOGx6NUdsbWNnalV5SHZzSFByR3M2TlRmT0x2L1FuL01tSFBzMnI3cjZGVzIvZnpyWWRxMWk3WnBCUzBjVnlITmtseG9zNm54alBiekZiYVhQbTFINzI3ajNKUS9mdjVkNnZQOGI0N0J4RFBVWFdyMXhEemhFTFZnU0RHT3pkYzRqaEZXVm1abWErSTByUDd1NHBubmpzY1hyNyt6bDJkQzk3OXoxQ0dBVkxPdTZ1cmpMZmV1Z2dodytkWk4ycXdjdHVmTTkxV2FaQmQ3bklSei95R2JwNmJKcXRldVpya3dCeG1EQTArQ2dKSHNWaUVkZDF1Rzd6YWs2ZUdlY0hmL0EzK08wUHJPTGxyN3FKbTIvWnd0YnRxMWkxcWsvY2IvZmkreTNaUm5HSFJ0TmpmcjdPcVZNbk9IVHdORTgvY1pRSDczK2FJeWZQNGhnYTI5YU5VTXJuc0hSdENXeWthZ3Eyb2JOaHpRaFRNeFUrL0pmL3lDZi8vaXZjY2VkMTNQbXkzZXphdlpZTkcwZm82eXVRZHd1b2xpVmZQejNPYVVCQXgrdFFxL3RNVGMxdzVQQjU5dTA1d2JjZTNNZmpqKzZuMW1rejJsZG1jS0NibkdWbHRGdmJ0bWcwMm56bVUvOUlkMStlVHJzRGkwYk41ZEpESE5pM2gxeStrSDFjeTlEcDdpcXd5MWpKeVhOanZQdmRIK0IzUHJDYXUxNTdLemZkc3BsdDIxY3hPdEpEc1pqRGNCMTVqK1Q5c2pRZ3BOVnVNejFiNThUeFl6enoxREVldVBjWjdyL3ZTV3J0RnF1SGV1anZLUXN2Y2wyN3hMd3JrZTlEVTRYL1NKTG9vanRXUVpWNng4V1VQZEo2Sko4dlZaWjlQeEJNbjN6T0lvbkJOZzI4UUJUYjJYa0J3VWF4Q0dSWHM2WlVrVjVHQ1lhbVpma0Z2clFHU2RXYWFRQ0dDSEVXMU9tVW5xM0xPTTNGN1pHaUNvK1p4WlJYVGRiVHRGN3Btb3BwR0xpT2hXMEtXNVJxdlhuSkxESkprcXNXRlNxeW9HODBEZjN0My9lcTI5OWZLdVJVWVNUVFpuNStIbE9teGdQNFFZRG5oekt1S01sNHdxYWhaN21ZdFdhTEpJR2NiY3BoaWVpYTR6akcxRFU2UVlpQ1FxM1JrbnpoaUZiSEYxSjF3UGRDb2lUR2RXd1p4Qnhma3FDK2xNNGxKY3VMd2FpTGlybGg2R2lLU0FONXJ0K1ZNbmdXSDdGRU1LeENLWitqWE14UmJ6U2xHQ0tpcDl4TnVWek9GdW5VekRUdGRsc3FaUmUyMVRBUW43UFY4WmlkcXpFOUo4UTl4WnpMWUY4UHRtTXlNTlJMUHU5a2xEVmQxMmcxTzR5UHo5QnF0Sm1ZbXFYUjZXQUEvYjBsdXJxS3VMWkp6akxSRFMzN1NqdGV3S2x6RTh6WDJ0bDM5MEpmVVJSUktqcVVDemxPbkJtbmZSa2ZEMU5UMmI1aEJkM2x3cmRkekJWRklZZ2lqcDY0d05oczliSS90N3EvaTQwYlZrQ2MwUEZEV2gyUFp0dGpacWJDYksxRkRKUnpPZnI3ZTNCY2s4R2hYaHhud1IxUWtUT1F5Y2s1cXRVR25aYkgxTXdjVGM5REI3cUxPYnA3U3JpT2lXdGJXSVloV0ovSnBROVZGQXQxWUtzam1CU1RVeFhhVVl5aHFnejI5WklyT1BUMGx1anY2ODVPcWVsM1hxKzFtSnljeGV2NDFPYnJURmFxSkNUa0RJMyt2aTd5ZVJmWEZwNGdhUWVhRm8yWnVScjdqcHdodk14OUh1MHRzMm45YUFhSnBvMjdIeXpjcitucGVXYnJMUktncjF5aXU3dEVMbWN6T055TGFScFpYSm11YTFUbkcweE96TkZxdEJpYm1zVUxBeHhWWmFDL2kySXBqMnVadUxhUkJaYkhjWXhoR0F6MDlXY3BPL1ZHbmZISkthbDhYZlJkTEpxVFJsSnhIc2N4clk2L0VMQXRUYlk2TWp0VTE5UXNWbEFVMzRVMUZDK0tsQlBzTm9HeHBFWFdEME9pVU5DaFZVV1ZOUzFhT09NclN3a2hsNXh4WlJFUllzV0ZtRXNoYUZTeFRmR2RoVkVzN0lkbFEraDVQcUZVOWk1WHQ5T1l2Q1JKNk8vcnc3RWRkRTJsV20vRy8vVDFoMzdiRDhKUEFFZXZPQUJ0ZHp3OFgzaDNtNllBNlMzVHlEd0pVZ3hJVEliRndhSzdsS2ZXYU5Ob2V6aVdRYXlRZWZFcWlvRWhxVmc1eDVMRFJETkw5dWw0QVhFY1UzSkY3RnNvUDBoQ3NzUnpJVWt1SFFTb2x6V2dFWGlUYmlpWkVWZks2UlUzWE1tT2RHa0VtS2FLcmwyWCtMeXBhM0xDREk1bGtDUU85VWI3NnBBS2VZbzNESjJDcG1LWk9xNWwwdGRiSm93aTJtMlBhbldldWRtSVV5Zk9ac3JhZENQU2RCVmJGdXYrbmdLcjdGNFJMMlVZbWYrTUtnZTR5YUxUYWpIdm9ra3Y2KzlFcUZDU0pNSmZ4OUJZczJyb0VvZTZqRHRzNkRpMjllK0dkbFJnZUtDYllrbEk1WmY3VkxabDRua0JsaW1PMUxxbVlwdUMyVFFrZzcxYnJRN1ZTb1haNlpBVFIwK0x1TCtMZnBkbDZkSmlRbU93cjVRTnpVeER1SVZhaHBFTjE1ZXJtWW1FQkhLT0pheUlMWU91VWw1NHAvcytyVmFIdWVrbTR4Zkc4ZjF3eWVzbmljZ3N0U3poWFdTYUpwdldERW5UTGsxK05pUGp1eThPNTRpVEJNc3kyTFJ1aENDODZQZktsWjV6UkppeW1zclg1ZnBNNFVyYk5NalpGc09CeU05dHRqck16ODB4TXhWeDVQQko0a1gyRTJrOHBDWFg1NHFoYm14TEpJelpwb1JBZFcxaDQ3Z2NEQ0R2bDNCajFWbUEwNVZGV0xhb0FFSUFwQXZZTklvejhWa2trUUJOMWJCTVZUWkVTalpVVFJZMWZXbWVxNjdwVXNXYjRFbW1UbXJZbFlyWk5KbHN0UFR0TG9uWHlJYW1paXBtaGVscFg1V01QRU9lM2t6VHdMSU1MTkltVmlnNlZjaG1DWmNiVTEwTmcwNi9VcytlZmpEUEZ6alJBbFp0WVZzbTdZNVBJTVVzYVJKSUhNZVVjZzZkVUhpY2hGR01wdW1vaXRqbDBnN2VOZzJhblJqVDFORjBsVTVIRE9TNlN6bmlKS0hlYUtOWkFyK0tKUk1tU1VTcVNLS3doR2lmUW03TFI2bXhDSFBUWk1DeEtxTzBaQWN1TFRNMWlidnJtdGhOZFYzOFc1TkhxakNLNlhqQzA2SFJiQy9MdVkxa2lQVEZMZ3JwZzZYcktwb3FlS1JoRkpHelRjSmlUZzVqa3VXVmlhcndGdEdrRGFZdzN0SGtjUzRpamhmbUhJcGNjY1dDSXl3MHY0T1hPR29xSktheGZKbE9rQUVKU3VaVi9lKzVSS0c0bk1PZFRIOUtZdndnV0JRMElUWmkyeFQ0cHl2OWNOS0graEl2NEVWclFzdldoTnpjVlJWRkUyNG5ZY2dWNC83UzExY1ZjQ3hkWkFCRUVXRm9VTWc1d3FCT2Rvb1gveHBGaHE4c3ZBZEZya094UGxISlprOUxWYVFLaHFaUVhHUVZmU21sVk55ajRDSjcyMHZ1VnhnUlJrS0ZHTVZKMXVWZXNqN1ZoZWRIUERkcUZucU1JdlFJMGFMM0djWFJBb3lnTEtVMVh4cjJzbmgzbEY0bHVvYVJkMm0zTzBTeDJQalNlNVUyUW9haFNUdzdJclhFRmtOVkFjMnFraGlncVVMNG1HbGxMcWtib01ubUx0V29wTjlOdXRlb21ZVzNYQ3R5dlFpTTNzajhZVFJOUlZlRmZrRnNjQ3BSRW1WMHlPY2FIcW1LUW5SRmxkM2xrb2JrTVNTTXdpVmZkTE1WMG15MWNTd1R4N2F3TFExRFYyaExtRVRUVk5vZEQ5OFBzRzFoKzlsc3RXbTIydVJjUy9EVUxTUDdXZkhnaFlLQklVVkZocTdSYUxSeFpXaEFHTWRaSW5WYTFHUFpoU1J4aWlraDB6Zmk1WVU4c1VpQXNReURSaXRDMVVUb2hwSXRRaVhEMzlPQ3JzcklPMFVSdTNvb3c1c3J0VG9EUFdWc3k2QlNxeTlKYlUrU2hFSXVqMlBabDhlNWxLVVBUenE1VDcxQkxnY3paR0VlQytlVEt6ZTd5aUpBOGp0MUtRbndYSjEvOHJ6RENxN212bDFwY0wva3RSUXU2VkRUb3BSYzVvMmxEK3Zpak5rbHI1RTgzL2V0TEtsTHFVUG9aWWZCaTE1ZnVlZ3pYTlgzZm9XN2REWC8vNHRQQ2xkYW4rbTlXWUFJcnZ3KzAxbFgyakVqU1F0aEdKSm95VVhXR01uU1p3WG8rTUoyMWpSMWVRclRVRkR3RE1Gd0U0bEFGbzVsVXFrMXhHQjRVZUM2cWV2RWllakVnekRJNE5UTEw2bzQwNmVrMExLbXFoS3VGVmg0dXNtcWkrcUlycWxZWmdwUGg1REVCS0hZRklOSXhaRHhiK0ZWQm9BWW1vWWhzZnJMZlhmTEZ2TTRFY2VWdkp2bjRwUnRzZE1saERFNHVpSDl5ZTBzMjg4MGhLZ0hSWmpGNUJ4SHVoRHFtRVlpdWtzOTdaVE56TjlGMDRUdnRCK0VsTXRtdHFGazVrZXlxS2NkamVqVTQ4d1hYVlVrUnNibGNYTkQxOG01cnJ6aEM0bEhtcWFneVVEV3RETmJuSG04R0JNVHI2K1NjM1BFc1lKaG1Bc2RGbEFzRks0K08vRmlhdFp6TUFJdjh4K1hleUwvWTF3dlNDVy95cy8xWEsvMVBPNzNKYi9wQlRFbVV4WnRTcy8zOWEvMlBqN0hDenlmMzZQd2JhN1A1RGwvTnBMTlVSTEg2SnBPSVZkNDdnQjJPV2cyZFIzYkFzdEt3NWtWZE1PUzdCR1JoQ2JnbG9VL2k1SkVua29TZkFtNVhaWFdRY0t2cVdHY0todEg4V2RrcHlkRitnMGh2ZFUxV1hSRlRZd3ZlYTAwK25JeHJuK2xOMkhxZXZiN2srZVRBU29jRTNVRyt2cXYyQVV0VmlNdG1QOHNtTVNuV29WU1NjbCtkbkUzbERyWEJaSEE5L1NMaG9hTEg2TEYzVUhhVmNWTC92ZVZ2U05JRWhMcDhyaWswMVdXSHBzdVdiYkwvTnBJSnJjVUMyVnBPaDh0K2J0cjE3WHIybldWZy9RNHhySXNCdnNIcnZyL0U2ZW5jVVJxMGlXbkozbDZMNVhLRjlXTGVJR3ZmYVdUMFVXbmp2Uy9WWW1McC9WQ2xRT3FpdzNpdU1pcWRqbUNZWExScWVPNXRrcUJ4c25tTm81WnpweEZ2L0pOaTYrMnNjeHVTbndSQ0puSW03dGNjNVArL3BRcWxMMWVjbVZtUTNxVHRjVS9xeVNYMytFVVVKTExkeXlaU09FcXU1YjBjMGR4OUIxSjdMbDJYYnYrVDdxU0pMbWtibHdGakV6RWxZelNGdjRzcy9SQVd5Z2FpWExsbXNHaUlXeHltYnFSUVdaWHJodkpGWXBhOGdMYWwrcUxYay9OdTQ1YXpPZm9lUDcvSnhhQm9udzdDK2ZhdzNQdHVuYjluM3dwM3lZRStSK3BkdGhDTzZNaWlGN0o0bUt1UjFIc1BiTG4wQkhUTUxxaUtBcDR3UjJ2cjEzWHJtdlh0ZXZhOVVMc1I1cW1HWDRRVktJbzl0STZ2bERNNHpnK2RQek1VYUNmSlRLdmE5ZTE2OXAxN2JwMi9RZTYwbTU4U3RicEpjVThrbjlvQXc1TDlNWFhybXZYdGV2YWRlMzZqOVNaeTRKdXkxb2RwY1U4QWRyQU5IQUJrY0xLdFdKKzdicDJYYnV1WGY5aGl6bXlaay9MK3Azb3NySlhnSU95a0pldkZmTnIxN1hyMm5YdCtnOWZ6T2VCWTdKK3gra2ZHa0FCNGE5cXNXaENldTI2ZGwyN3JsM1hydjl3eFR3R1BLQ0I4TkVPbGlQcHFOZnUxYlhyMm5YdHVuYjloNytXa0ZUKzN3RUFrYm40NWh6b2dtRUFBQUFBU1VWT1JLNUNZSUk9"},{ name : "__ASSET__:bitmap_SponsorLogo", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURrQUFBQXNDQU1BQUFEbzNlQ2ZBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBQUFnWTBoU1RRQUFlaVVBQUlDREFBRDUvd0FBZ09rQUFIVXdBQURxWUFBQU9wZ0FBQmR2a2wvRlJnQUFBd0JRVEZSRkFBQUEvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvdFRVLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlYVi85WFYvOVhWLzlUVS85WFYvOVhWL3RQVC85VFUvOVhWLzlYVi85WFYvOVhWLzlYVi85WFZsbGxVLzlYVi85WFYvOVhWaENNUnJINTlaaGNOeDR1RXhYTmxjUmtNNkxxNVppSWFZeE1JN0xtM2JpTWJoakVqWERFeGdrRTdoMDlJdFdOVWREdzNYUjBZb2xOSFVRY0FYd3NBNmF5a3VVWXN6R0JIMDE5QmsybHBueThWeUp5Y3pZQnlsa00xdG50M3ltOVR6SGxpcVdaZlNBNEp6NStmcjRTRlNCUVVuM056ejZXbGVFNVBsMDVFY1JzTjVsQW5waUFBMTBnaTRrNG0zMDBtcEI4QTNVc2swMFlnNUZBbm9SNEFrQllBYVFjQXJ6SVVlUXNBbWhzQTdYbGFWQUFBY2dnQXlrQWN6a1FnMVVjaHhENGJseGtBaGhFQWtTRUtueDBBd0R3YTJrb2o3bnhlV2dBQXVUY1dmQXdBakJNQWd4b0ZUZ0FBZHhJQlhnUUFqeVlRZ1JZQ29ENHBZd3dBUndBQWJnOEF4RTR2WXdJQW5Da1FtQ1VNcXk4U29pa09raGdBc3pNVDZuTlM0MU1yNDFvMGpDQUtpQThBaFJrRHlsMDl5R0pEZ1EwQXhXUkZ4a0VmMVVzbWJRZ0EzbE1zclNZQ2lSNEl1ellSY1JFQWZCVUNtRFlncDBrMnlsUTE1MlZCdXprYXRqZ1pweXdSaEE0QTZHOVBvRTQva2pZa3BFVXhxamNlUHdBQXoxUXg1bWxINTFRczZHaEdrQndBcDAwNWt4MEZ4TVRFeGNYRnhzYkd4OGZIeU1qSXljbkp5c3JLeTh2THpNek16YzNOenM3T3o4L1AwTkRRMGRIUjB0TFMwOVBUMU5UVTFkWFYxdGJXMTlmWDJOalkyZG5aMnRyYTI5dmIzTnpjM2QzZDN0N2UzOS9mNE9EZzRlSGg0dUxpNCtQajVPVGs1ZVhsNXVibTUrZm42T2pvNmVucDZ1cnE2K3ZyN096czdlM3Q3dTd1NysvdjhQRHc4Zkh4OHZMeTgvUHo5UFQwOWZYMTl2YjI5L2YzK1BqNCtmbjUrdnI2Ky92Ny9QejgvZjM5L3Y3Ky8vLy9DZGFBa2dBQUFBRjBVazVUQUVEbTJHWUFBQUFmU1VSQlZIamE3TUVCQVFBQUFJSWcvNjl1U0VBQkFQQmdBQUFBLy84REFBbjRBQUdqRTV5NkFBQUFBRWxGVGtTdVFtQ0M"},{ name : "__ASSET__:bitmap_LoadBarContur", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU40QUFBQVJDQVlBQUFDeTJSTFdBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBN2hXbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNVFFnTnprdU1UVXhORGd4TENBeU1ERXpMekF6THpFekxURXlPakE1T2pFMUlDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUwTFRBekxUSTNWREUyT2pJeE9qRTNLekF5T2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UVXRNRFV0TVROVU1EQTZOVGc2TWpJck1ETTZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMUxUQTFMVEV6VkRBd09qVTRPakl5S3pBek9qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tSXlOekEyWVdNeUxXRmhPV1l0WmpVME5pMWlZVFF5TFdSa01HRm1ZemN6WXpObU9Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEbzVNV0kxTWpSalpTMWxPVE15TFRGaU5ESXRPV0U1T0MwMU16RXdZVEF6T1RCa01EUThMM2h0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEbzVNV0kxTWpSalpTMWxPVE15TFRGaU5ESXRPV0U1T0MwMU16RXdZVEF6T1RCa01EUThMM2h0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9raHBjM1J2Y25rK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlUyVnhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajVqY21WaGRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNk9URmlOVEkwWTJVdFpUa3pNaTB4WWpReUxUbGhPVGd0TlRNeE1HRXdNemt3WkRBMFBDOXpkRVYyZERwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmQyaGxiajR5TURFMExUQXpMVEkzVkRFMk9qSXhPakUzS3pBeU9qQXdQQzl6ZEVWMmREcDNhR1Z1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrYzJGMlpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek5XTmpOV05sT1Mwd09USTBMV0ZoTkdNdFlURmhPQzA1WlRrd05UUXlaVEprT0RjOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRRdE1ETXRNamRVTVRZNk16RTZOVE1yTURJNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUl5TnpBMllXTXlMV0ZoT1dZdFpqVTBOaTFpWVRReUxXUmtNR0ZtWXpjell6Tm1PRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOUzB3TlMweE0xUXdNRG8xT0RveU1pc3dNem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESUNoWGFXNWtiM2R6S1R3dmMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tTm9ZVzVuWldRK0x6d3ZjM1JGZG5RNlkyaGhibWRsWkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdQQzk0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwUGNtbGxiblJoZEdsdmJqNHhQQzkwYVdabU9rOXlhV1Z1ZEdGMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V0ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xsU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTWpJeVBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqRTNQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejZ2cnhjUUFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURvQUFCU0NBQUJGVmdBQURxWEFBQVhiOWRhSDVBQUFBQkxTVVJCVkhqYTdOTXhFUUF3Q0FDeFVrdjFYMU1JQUFsc1RJbUV2L3ZJLytvQXE2NEVZRHd3SG1BOE1CNWdQREFlWUR3d0htQThNQjRZRHpBZUdBOHdIaGdQR0RVQUFBRC8vd01BbE1zREJWV0hscEFBQUFBQVNVVk9SSzVDWUlJPQ"},{ name : "__ASSET__:bitmap_LoadMeter", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURrQUFBQXdDQVlBQUFDckY5Sk5BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBVGZzYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMalV0WXpBeE5DQTNPUzR4TlRFME9ERXNJREl3TVRNdk1ETXZNVE10TVRJNk1EazZNVFVnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBrWXowaWFIUjBjRG92TDNCMWNtd3ViM0puTDJSakwyVnNaVzFsYm5Sekx6RXVNUzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEZKbFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFVtVm1JeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTFMVEF6TFRJMlZERXpPalEzT2pJM0t6QXlPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5TMHdOUzB4TTFRd01EbzFNam96Tnlzd016b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRVdE1EVXRNVE5VTURBNk5USTZNemNyTURNNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa1J2WTNWdFpXNTBRVzVqWlhOMGIzSnpQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1Pa0poWno0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDR3TlRBMU9UQkNRMFJDTUVWQ016QkJSVFpHUXpZMU9UbERSVUZEUVVWRk1Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGpCRk1qVTVPRFpDTURkR1EwVTNRelV5UmtFNFJrUTJNRVE0T0RGRFJERTRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK01UTTRNVU13UVVZMVJUZzFNakF3T1RkRE9UTTBOelF6UVVFMVFrSkVPVEE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNHhOak16TlVZd056QXpOVUZGT1RJMVEwVXlOa0U1TVVJeE5ETkVOVVpHUXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQakUyUWpJek9EQkZNVVkxUWpZME5rRkZOekl3TmtFNU1EaERPRGc0UVRoRlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srTVVOR1FUZ3dOMEpFTkRsRE5qYzNPREZGUlRRMFF6SkdRak16UXpjMVEwRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ0eU1qYzNPRU5CT1RWRVJqRTVPRGxHTURoQlEwTTNSakk1TjBWRE4wUTNSand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBqSkNNRGs0UVRkRk1FSTVRekV6UlRsRk9EVTNRVVF3TlRJMk5rTTJPRGN6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytNekZHUkVSR016TTBSRE0wTkVRNFFqYzNRa05HUVRNNU16UTVNakpDUXpFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDR6TkRCQ09VVTBOVUZFTjBFNU5UUTBOemhHUmpaQk1EWkRRVEEzTTBJeVFUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGpNME5UZENPVEkzTmpVMk1FRkZPRU14TlVOQ09UQTRPRUZDUTBaRE5rSTJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK016WkZSVVpCTnprM1JqaERNemMzTTBWQlJqQkVPRE0xTmtJMU56WTJSRVU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNHpRekV4UkRsQ05EUTFRamM1TjBJNFF6azRRelExTWpoRE9VTTRSRVUxUlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQak5EUlRWRE5UUTBRa1E1TVVZMU1FWkNOVGRETmpBMU1UWTJSa0kwTkVWR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srTTBRNE1VUTNPVEl5UmpVNE1URXpSRE5CTkRWQlFqSkZOVUl3TTBZek9UUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ0elJUZzFSVEZFTjBVelJFUTBRVVE0UXpJNE9EUTBNakV5TVRKRk56RkZSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBqUTFNakUzT0RCRk9UQTFRak5HTkRWQ01EWXlRVGN6TURFM01rSkRSVGc1UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytORVpDUmpsRlFUbEZSRUZDTnpSRE5qaEJNalkxUWpjM05FVkVOakpGTXpZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDQxTVVWRk16UkJOakpHTVROQk5qY3dPVEJGT0VNNU56Y3pRek5HTWpBek1qd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGpVeVJrWXpNa1pHT0RZMlFrSkZRVVJCTkRORU1qVTBPREl5TkRjNU0wTXpQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK05UTkROakJFTURZNVJFWXhOVFpCUWpOR1JFVkZRVE0zTlRFNE1VSkRRVFU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNDJNVE15T1RZM05qWXlSVVF5T0VVME9EQXdRemd3TURFelEwVTJPRFF4TkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQalpET0VVeU1UUTNOa1V4TWpJME5UZ3dPVEl5TXpVek5qVkVOVU0zTWpKQ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srTmtRd01UZENNakJETXpGQ00wSkJRall3UkRORlJqQXlOVFpGUWtNMk9UTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ0M01UUkdPRU16T0VReU1qUTVNak5FTVVNeFJVTkZNVVJEUVRNek9VSTRSVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBqY3pSRFpFTkRKRU5FWTFPRVl3UTBVMFJVRTFNRFJDTVVKQk5FVXhNVEk1UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytOelpEUlVVM05rSkNOa1kyUkVRM1JUSkRSakkzTkRnNE5VRkdSREpEUXpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDQzUlVJeU9FWXdSRFEwUVRJNU9ERkRRekE0UmpBd05FSTRSVGhFT0VVNFFUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGpneVJqWTNSRE13TnpBNU16TXhSRGRGTURrNU5UZzNPVGxHUmpVNFJEVkdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK09EWkdNREEwTTBFNVF6YzVNREJHTnpjeU5qTTBRVVE0TWpBMFJqUkROMFU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNDRPRFEzUlVSR09FUXpRemN4T1VZeVEwWkVORVJHTmpJeE5UZEVSRGN6UWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQamc0UmpZek9UYzFNVEExUlRnMU5qZ3pPRGc1TTBSRE9EQkNNRU5CUVRWRVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srT0RsQ1JURkVRamt4TURSRlFVWXdOVFl6TlRNeU9FSkdSVGd4TVVGRFEwTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ0NFJFVTVOekUwUmpVNU5qSTRNVGRETUVJME1VSkNOMEZGTURNd09FWTJSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBqaEdNemswUlVZMU16YzFNVEJETWpWRk5EbEROVEpHTmtJM05USTJOVGM0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytPVGhHTlVORk9EUTRNVFl4TjBVNU5FUTVNRGd4TXprMlEwTTFRVGMyTkRROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDQ1T1RVek5UQTRNRFkzTnpNMlFrUTRRMEpHUWpWRVFUazJNemxCTXpVMk1qd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGpsRlJURXdPVEJGTWtNMVJEQTJRakpGTlRjeE9UTXdORFkxUXpreVJrTXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1FUSXhRakF3UkVZME5ESkJPVEZGTURRek5UaENORVV5TVRJeU9UVXlPRU04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNUJORFpEUkVFd1JqQkRORE5HT0ROQk5rSkROVUpFTXpjd1JVRTJOalE1TXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQa0U1UlVRek9VUTFNMEV5T0VSRE5qYzBOakl5UXpreE5UbEdRelUxT0VaQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srUVVaRVFqUkNNMFEzUlVJd01URkVRamxFTXpsRk56a3lNa0k1UVRJNVFVRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1Q01VWTBRalJGTmpZNE5rSTVPRGd6T1VJM05VWXdRakUzT1RjeFFUZERRVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBrSTVOVFpCUmpWRVF6SXdNRUZDTVRKRk1UWTVNa1UwTVRoRVFqaEVNVEl5UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytRa05HTVVZME16RTVPVEU1T0VZNE9VSkRSakJEUWpNM05EQTBPRFU1TlVROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDVDUmpjMVJUaEVSa000TVVNM05FSTBSRGRCT1RNM1JURXhOakV6T0RGRFJUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGtKR04wWTBSVVExT0RGRFFqWkJRa00wTlVWQ056WTVOa0ZDTkRFeU1VUXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1F6QkJNRVJFTlRGRk1rWXpRVUl3TlVaQk5rTTBSVEF4T1VaRE1qQTFSamM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNURNakl6UkRBNFEwWTNPVFEzTmtFNVFqaERRemcxTjBGRk9UUkRRamMxTUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQa016TnprME5VTTJOVEE0TkRRM05qZ3lSamRFTmtNM1FUUXdRelkwUmtFeFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srUXpnek9UWTBSRE5FUmtOR1FqWkdSa1UxTURRME1rWXpSREl3TmtKQk16YzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1RE9UTXlNRGRDUkRrek9UVkJRelk1TTBaR04wRkZNVVV6UkVVMVJqY3dNend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBrUTROamhDT1RJeVFqQkdRa1F6TTBSRk9VSkVSREV6TURJM016TkdNa1pEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytSVEl4T1VRMlFVWTFOall5TkRZelFrWXpNams1UWpReU1UVXlRekE1TUVNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDVGTkVJM1JFTkRRamt5UWtZeE5ERXpSVVJHTXpBM01VSTVRemt5UlRrM1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUGtWQlJFUkdNRE5DUXpCQ1JqaERNVEUxTjBRd1F6YzRSVU0wT0RJeU16aEVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1JqRkdNak0yUWtaRU1FWkVOMEZFUlRZd05FWXdRVVpFUmprME56RXlRakE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNUdOMEpGTlVRMU1rTkdSVGxGUkVNM01UUTFRamRDTWtVM1JEWTROVGRET1R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbUZrYjJKbE9tUnZZMmxrT21sdFlXZGxjbVZoWkhrNllUWmxZbUkzTmpNdE1EbGhPQzB4TVdVd0xXSmxaREl0WVRSak9XWTROek5rWTJJM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qQTFNV0kwWmpFeUxUZGpZVFl0TVRGbE1DMDRZemd5TFdObU1EbGlaREE0TjJFMlpEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEb3dZMkZpTjJNeFpTMDRNREU1TFRFeFpHTXRZV1l3TnkxalpXUmtNV05pWW1aa056VThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1aFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNR1pqTnpsbU1qQXRaREl6TWkweE1XUmlMV0l4WW1JdFlXVmlZVFpoWXpWbFpqWTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPakV6TVdObU5tRmxMVFk1WTJVdE1URmtZaTA1TkRZMUxUa3lNMlUxWm1aaU1HUTVZVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBtRmtiMkpsT21SdlkybGtPbkJvYjNSdmMyaHZjRG94TTJSbE5qTTRZaTFqTkdVNExURXhaR1F0T0dGaU9TMW1abVEwTUdFeE5EazNOVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNWhaRzlpWlRwa2IyTnBaRHB3YUc5MGIzTm9iM0E2TVRVNU1qTXlOek10Wm1FME15MHhNV1JoTFRreE1qRXRPRGN5WlRNMllURXpZVEV3UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pFNE1HSm1aVGxrTFdaaE5ETXRNVEZrWVMwNU1USXhMVGczTW1Vek5tRXhNMkV4TUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbUZrYjJKbE9tUnZZMmxrT25Cb2IzUnZjMmh2Y0RveFlqRmxOekEzTkMwMk9XTmxMVEV4WkdJdE9UUTJOUzA1TWpObE5XWm1ZakJrT1dFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDVoWkc5aVpUcGtiMk5wWkRwd2FHOTBiM05vYjNBNk1XUmxZemMwWldRdE5qbGpaUzB4TVdSaUxUazBOalV0T1RJelpUVm1abUl3WkRsaFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qSTFaR1l3TkdNeUxUWTVZMlV0TVRGa1lpMDVORFkxTFRreU0yVTFabVppTUdRNVlUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEb3lZVEZrT0RSa055MW1ZVFF6TFRFeFpHRXRPVEV5TVMwNE56SmxNelpoTVROaE1UQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1aFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNbUpoWlRjeE1tTXRabUUwTXkweE1XUmhMVGt4TWpFdE9EY3laVE0yWVRFellURXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPakptWkRSa1pUWm1MV1poTkRNdE1URmtZUzA1TVRJeExUZzNNbVV6Tm1FeE0yRXhNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBtRmtiMkpsT21SdlkybGtPbkJvYjNSdmMyaHZjRG96TUdVellUWTFNeTFtWVRRekxURXhaR0V0T1RFeU1TMDROekpsTXpaaE1UTmhNVEE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNWhaRzlpWlRwa2IyTnBaRHB3YUc5MGIzTm9iM0E2TXpFNFkyUXpaV0V0TmpsalpTMHhNV1JpTFRrME5qVXRPVEl6WlRWbVptSXdaRGxoUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pNeVlXWTVNelV4TFRjNU9XUXRNVEZrWWkxaFlUSmxMV1U0TVRkaU5qVTRabVF6Tnp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbUZrYjJKbE9tUnZZMmxrT25Cb2IzUnZjMmh2Y0Rvell6YzRZVEV3WXkxbVlUUXpMVEV4WkdFdE9URXlNUzA0TnpKbE16WmhNVE5oTVRBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDVoWkc5aVpUcGtiMk5wWkRwd2FHOTBiM05vYjNBNk5HUm1aR0UyTmpNdFlqWXlPQzB4TVdSaUxXSmpNekl0WVdJeFl6YzFPVGc0TlRrM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qVTBaV0U0T1RaaUxUUmlZMkV0TVRGa1lpMWlPRGcxTFdNMllqaGtOMk00TWpBME16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEbzFZamN6TURobE5pMDJPV05sTFRFeFpHSXRPVFEyTlMwNU1qTmxOV1ptWWpCa09XRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1aFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZOV1pqWVRCa09HVXRPRFpsTVMweE1XUmxMV0l4WkdRdE9XUXlOak0wT0RobE5EQmlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPalpqWXpjeVpHUTBMV014TWpJdE1URmtZUzA1WldFd0xXSTBNVEF5TVRkaVl6WXdORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBtRmtiMkpsT21SdlkybGtPbkJvYjNSdmMyaHZjRG8yWkRreU1tRmtOeTFrWXpaaUxURXhaR0l0T1daaU1pMWpNVE5sWlRZeVlXRTNPV1E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNWhaRzlpWlRwa2IyTnBaRHB3YUc5MGIzTm9iM0E2T0RCaVpqUXpPR010TWpVMFlpMHhNV1V4TFRnd1pXSXRZVFV3TURVNFpqWm1PR1EyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2prd01HVTNPVEppTFdZM016a3RNVEZsTUMwNE1XRTBMV00yWkdOa05EVTVNVEZtWWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbUZrYjJKbE9tUnZZMmxrT25Cb2IzUnZjMmh2Y0RwaE5qVmlaalExWWkwd1lUVTRMVEV4WkdNdE9ESmhOQzFtWkdFNU9UQmhaRGN4TkRNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDVoWkc5aVpUcGtiMk5wWkRwd2FHOTBiM05vYjNBNllqaGtNbUUyTVRFdFlqY3pNaTB4TVdRMkxXSmxNRFV0T0dKaE1UZGlNREE1WlRJeFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09tUTBaVGN5TVRrNExXUTFNMlV0TVRGa1pDMWlaRFJtTFRnMFl6TXpZamt5Wm1OaFl6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG1Ga2IySmxPbVJ2WTJsa09uQm9iM1J2YzJodmNEcGtZV1JpT1dRell5MWlNVEJqTFRFeFpHSXRPV1kxTnkwNE1XVTROMkl4TldWak9ERThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1aFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZaR0kwWXpNM016a3RaREk1TVMweE1XUmxMVGs1TURJdE9EZzNNalV3TWpKbE9HWTVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPbVZoTVdZNU5UYzBMVEU0WkdZdE1URmxNQzFpWmprNUxUazBaREEyWXpVMVl6VXpOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TURCR056SkZOek5EUWpReVJFWXhNVGt5TjBWRE1ETkVSakpHTkRBMk1FSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakF4TTBJMFF6azVOamsxUmtVd01URTRNMFl3UkRKQ09EZEJNREZGUXpORVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3dNakk1T1RkRk9FTkVNalZFUlRFeE9URTFNamhFUXpFd1FUSTBNRVkxUXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk1ESTBOa0ZHUmpRMU56WXpSRVl4TVRrM016TkJORGRGTlRReE4wRTNOMFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pBeU5qRkdNekkwTnpoQ09VUkVNVEU0TmtRd09VRkJOemd6TVRCQlJqTkNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG93TkRRMlF6ZzRRVFJCTlRaRVF6RXhPRVZDTXpnMk1URkNNalpHUXpNMVFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNRFkzUmpBeE1UUkROVVkwUkVZeE1UZ3hSa0pHUVRGR1FVWTFPRVl5UkVFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qQTNNVE5FTkRNM1JUSTNSRVJGTVRGQk56RTNRMFpGUkRJek5VVkNSakU0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvd1FUYzRSRGs0T0VSRU5UZ3hNVVJET1RaRU5VVTNNVFpCTmtZeVFrTkdNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TUVKRVJFTkNNRUV5UmpJM1JURXhNVUV6UWtKQ1JERkNORGcxTmtWRk9EZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakJETTBRNU1rTTBSRFF5TlVSRk1URTVNVFV5T0VSRE1UQkJNalF3UmpWRFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3dRemRETnpGQ09ETTVORFpFUlRFeE9FVXdOVVV3TUVFNU1qUkVPRU5ETlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk1FTkZRamMxUWpRd09VWTVSVEF4TVVJMk5VSkdOell4UkVWRE1UQkZRMEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pCRk1ERXhOa00zTURKQ1EwUkdNVEU1T1VaRFFqUkdORE00UlRRd1JrUTBQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG93UmpNME5qQTBOMEZHTWpCRVF6RXhRamN5TjBRNVJFSkZSRFkxUkVNMU1Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNVEF6TlVJNU0wTXdNVVZEUkVZeE1Ua3lNVGxDTWtNMk5UQTJRME5GTURBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qRXdSRGxFUXpNd016TTBOa1JGTVRFNFJUQTFSVEF3UVRreU5FUTRRME0xUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRveE5qRkRRelJFTVRNMU5qaEVSakV4T0Rjd01FRXhPVE00TUVJMFJFRXhPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TVRZeFJrTTFSREpFTmpnM1JUQXhNVGhFTXpSQk9FVTFPRUkyUkVKRE1VRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakUzTWpaRlJqa3pNa0k0TjBSRU1URkNRa0ZCUkRORE5Ua3dNek5ETUVNeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3hOek16UXpaR05VWkdPRVJFUmpFeE9FTTBPRUl4UWtSRk5rRkJRa1l3UlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk1UaERNRVEwUTBKRU9EVXpSRU14TVVKR01UVTRRVFUyUlVKRFFUa3dNek04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pFNU5UQXhOVEE0UlRKRlJqRXhSRVE0UWtWRFEwSTJRalExTlRKQ1JVRTNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG94UVVNM09FUXdOVEpHTkRaRVJURXhPRVV3TlVVd01FRTVNalJFT0VORE5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNVUkyUVVZNU5FUXpNRUkxUkVZeE1UaEVSa1pCUVVFM1JUSkNSRFkzUVVNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qRkNRVUU0T1VJM1JqazFNVVJHTVRFNVJrSTBRVEZCUVRjNU9UUTFNa1UyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRveFF6WTRNVGd5UVRRNE56VkVSVEV4UVRrNU1rWkVNa1JETmtVNU9ETXdSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TVVOQ09EQXpORGREUkRoRFJFVXhNVUk0T1VGRk9UYzRNalpGT0VSR01qazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakZGTVRGRE5ESkJORGhHUVVSRk1URkJRekV5UkRSQlFVWkZNamcyUmpWR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3hSalZCUmpOQ05qY3lNamxFUmpFeE9VWkdRVUl5TmtVeU5EQkROekZDUWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk1qQTRRelEwTlRBM1JURXpSRVl4TVRnNE1rWkVNelUxTURRd09EVXpPRE04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pJeFJEWTFNRU5DTWtVME5rUkZNVEU0UlRBMVJUQXdRVGt5TkVRNFEwTTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG95TWpaQ09VRXpRelJHTlVGRVF6RXhPVGMwUkVOQ05VTkNNVGMwTVVReU9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNak14T0RFek5qQXpNalEyUkVVeE1UaEZNRFZGTURCQk9USTBSRGhEUXpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qSTBNRVkzTmprMlJUQTVRa1JHTVRFNE9UUXpSVU0zUkRKRk9EbERNRUpCUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRveU5VRTJSa1JGUWtaRU1UTkVSakV4T0VKR09FWTRRME0yUWpFd1FqRkdPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TWpaQ04wRkdNRGM1TjBNeVJFVXhNVGd6TVRGQ1F6STJORE15UlVZME0wRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakkzTWpNM05qSkVSamMzUVVSRE1URkJRamcyUkRGRFJqUkdPRUZEUWtRd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3lPRFF3TTBZMFFrTTBSREpFUlRFeFFURXhSVVExTlRCRU16aEdORFExUWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk1qZzBSRE0wTVVNek56UTJSRVV4TVRoRk1EVkZNREJCT1RJMFJEaERRelU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pKQlJEVTJORGMxTmpVNU5FUkZNVEZDTkVSRVJFWXhNekl3UlRSR01EZEVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG95UkRGR01EVkNNREk1TkRaRVJURXhPRVV3TlVVd01FRTVNalJFT0VORE5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNa1JDUkVReFFrWkRSVEZFUkVZeE1UbEJRa1ZETVRRNU16TXhSRE14TkVROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qSkVRa1kzTkRVd00wTXdNVVJGTVRFNVJVUkNRVEUwTnpjNU1EUXdSVEZCUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRveVJFVTRSREl4T1RWRU5FUkVRekV4UVVSQ1FVUkZSa1E1TmtJM1JqRTBNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TWtZMU9UVXdPVEV5UmpKRlJFVXhNVUV6UmtSQk9VUTJSRVkwTVRRNVFUWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPakpHT0VJeE1EUTRSREl4TkVSRk1URTVSamREUkRjME5FRkdSVFV6T1VaRlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3lSa013T0RBNFFrRkZNVVJFUkRFeE9EVkRNVUl6UWpKQk1EY3pRME5DTmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk16QTNORVJETkRCQk4wVTBSRVF4TVRnMU5rWkRNelZGUlVVM01ERkdOVGM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pNeVFVUTVNREZETVRVME1FUkdNVEZDUVRJeVJVSTRNemt3UlRReU4wWkJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG96TmpsRk56STNSa0l3TkVaRVJURXhPVGMzTjBFeU5ERkZNVEV6TWtJME16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZNelpCUWpCQk9VTXlNVUk0UkVVeE1VRXlOemhCTTBSR056RTVRalkzT0RBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qTTNSRVF3TmtFNE56WTFNMFV4TVRFNE5ESXlSRGt3TnpWR1JUSTVRVEV4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvek9ESXlNamMwTVRrMk5UQkVSVEV4T0RJNFJVSTNPVUkzUmtZNE4wSTBOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TXpneU9VSTBOVVF5UmpRMlJFVXhNVGhGTURWRk1EQkJPVEkwUkRoRFF6VThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPak00UlVaRlFrUXpNa00wTmtSRk1URTRSVEExUlRBd1FUa3lORVE0UTBNMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEb3pRVFEyTnpjNE1UVkZNamxFUmpFeFFUQkNNRGczUkVZNE9UZEdOVU0xTmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk0wWkJRVUl6TVVSRE4wWXpSRVV4TVVKR1FqTkNRall4UVVVeFFURTVPRUk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pOR1FrVTJOVFpHTkRnMU0wUkdNVEU1TlVFNFF6bENOMEl5UlRrek16QTJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8wTURBMFFrRkVNRVZFTkRaRVJURXhPVEV4UXpsRU5rSXlOVVF5TVRNek5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZOREl3TVVNMU5ERXhNRGt3UkVVeE1VSXhNak5GTVVRME5VTkVRa1kzT1RJOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qUTFOMFF3TWprMU5UQTFOVVJHTVRFNFFqVTVSRGsxT1VRNVJrTkVOVEJDUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvME5VUTJOak00TUVNNE5VUkVSVEV4UVRVNE5VUTVOalEwTlVGRFFVVTNSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TkRaRk5UQTBOa0kzUkRjNVJFUXhNVUkyUkVGRU1UUTNNamsxTlRsRU9ETThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPalEzUkVVMU1qYzRSalV5UTBSRk1URTVSa0l6UTBGQlJVUTNORFpHUlRrMFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzBPRGhGTjBReU1UWTBNVGRFUmpFeFFVSXpNRGsyUkVJMU9VSkZPREkzT0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk5EbERPRVExUlRreU16YzRSRU14TVVGQ1FqZEZOMEl3UTBZek5FUTNPRVU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pSQ1JEWTBSVE5FTlRreFFVUkdNVEU1UVRRME9ERTJSVFF5TmtReE5FTkRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8wUkRRM05UTXdSRUpHUWpGRVJURXhPRE00UTBJM09VSkNNREk1UXpVek16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZORVE1UXprNE1VSkdSak0yUlRBeE1VSTRNalJHTkVKQk9FVkRNVGt5TnpZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qUkVRMEZFTXpjME1rWXlOMFV4TVRGQk0wSkNRa1F4UWpRNE5UWkZSVGc0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvMFJUWTJSRUV3TWpaQ01UVkVSVEV4UVVKR09VSkRRVEkyTTBFd1JqRTBPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TlRBd01VWTNORVF5UVRRMlJFVXhNVGhGTURWRk1EQkJPVEkwUkRoRFF6VThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPalV3T0RWR1JURkROVU5HTVVSRE1URTRORGs1T1VJeVJEUTNNMEkwTUVNMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzFNRU0wTkRaRU9URkVORFpFUlRFeE9FVXdOVVV3TUVFNU1qUkVPRU5ETlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk5URXhNREpFTWpNME9FVTJSRU14TVVKQk16ZEJNVVkwTlRrek1qQTVPRFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pVeE56YzNSVE13UVVORU4wUkZNVEZCTVVGRk9FRXpPRGhDUmpFeFJrUkNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8xTTBaR04wTkNRVEpFUkVZeE1VUkJRVVU1TkVKRk56TTRSamM0UkROQ01Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZOVFkxUXpNd1JEUXpRVEE0UkVZeE1VRTJNVVJDTWpJM1JVUkVSalU1UmpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qVTROREkwUlVOQ01rVXlOMFV4TVRGQk0wSkNRa1F4UWpRNE5UWkZSVGc0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvMk16WTNSa1EwTmpNMk5EWkVSVEV4T0VVd05VVXdNRUU1TWpSRU9FTkROVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TmpVeE5qbERRMEl6TkRWRlJFWXhNVGswUXpoRU9VWTNPRFkxTkRReU1rVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPalkxUlRnMU1rWXlNa1V5TjBVeE1URkJNMEpDUWtReFFqUTROVFpGUlRnNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzJOa1UxUWpoRk5qRTJNVFZFUmpFeE9EYzVRVUkyTjBSRFFqTTVSRGxHUVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk5qa3lNa1V5T1VJMU9UZzFSRVl4TVVJME56YzVRekZCTmpCRk1qVTBOalk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2paQk0wSXdPVE00TVRFNFJVVXdNVEU1T1VNMlFqaEZPRGMwUWpOQlFUTTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8yUVRaRU5FSTVSRVF6UWtKRVJURXhPRE5HT1VZMU1UZ3dSakkzT0VWR05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZOa0pFTmtOQlJrUkRNMFUzUkVNeE1UaEVNVGREUTBNNE56UXlSVEpGTnpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qWkRNVU5GUlRrNVJrWXdRMFJGTVRFNFFqWXdPREE0TmpnMlJERkRSRUUyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvMlF6Y3dOMFZDTlRSRE5FVkVSakV4T1VKR05qbEdOVVUzUTBNek9EVkVORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TmtVME0wSkVSVGhHUVVFd1JFUXhNVUU0UXpjNE1EQXhORFpFT1VZeVJrUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPalpGTnpoRk1UUTFRa0kxTkVSRE1URkNNRGhCUXprMU9UQkVNMEV6TkRCRVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzNNemM0TWpZNFJVVkdORFpFUlRFeE9URXhRemxFTmtJeU5VUXlNVE16TlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk56UXdSVEF4T1VVMU1VVXlSRVF4TVVFeVJFWTROVGszUlVVMFFVTTVSalU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pjME9FWkNRa00xTkRjMk1VUkZNVEU1T1VSRE9UazRNak0wTkVVek9URkJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8zTldGa016ZGlOaTA0WVRNM0xUUm1ZMlF0WVRSbVpTMHlObVl4WVdFeFpqRXhZV0k4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pjNFJUQTJNak13UkVVek1VUkVNVEU1UkRreU9UTkZPREZHTUVZME5rSXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG8zUXpFMFFUVkJRall5UXpkRVF6RXhPVEZHTTBaQ01rUkJSakl3UlRkRFJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZOME16UmtZMU1qUkNNVEV3UkVZeE1UbEdORE5EUmpaQlEwRkNPREk1T0RVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qZERPRGt4TkRsR01rUTNRVVJETVRFNFFVVkdSakkxUWpnME5USTFOemcyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvM1JEZ3lRVFJFT1VZMU16aEVSakV4T0RsQlJrTkVNamN5T1RRMk5qazROVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2TjJNd05HVmpNR010T1dNME9TMHhNV1V3TFdFNE9EWXRNREF4WWpZek9URTBOMlV6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvNE1qTXdNREl3TXpSRE5qbEVSREV4T1VNeFJqaEZPVEV5T1RZMVFqUTNNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2T0RNek9UVTROMEV4UkRORFJFVXhNVGcxTXpkQk1ERkRRVUUzT0VKRE5qUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPamd6UXpNeU5VRXpRVE15TVVSR01URTVOVVkzUkRjM05VUkZOVFZDT0RaQ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzROREU0UWpsR056RkNNVGxFUlRFeFFVTkVNVVpFTUVRM09VUXhRelE0UXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk9EYzFNVFEyUXpjNU0wVkVSRVV4TVRnelEwTkRNRGMwTnpoR09UUXpNVGs4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2pnNE5qZ3lSVU5HTlVaRVJrUkZNVEZDTXpZMlJEbEZSamMwUkVVMFFqTkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG80T1RaRE1FWkRRa1JCTXpKRVJqRXhRVFEzTTBJeU1VTTBPVVF4TnpVM1JUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZPRUU0UWtGRE5UZzVNMFF6UkVZeE1VSkNORFpCUlVVNVJrSkZRVFF6T1RJOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qaENNekEyTmtGRE1VSXhOa1JGTVRGQk16ZEVRVVkwTTBORU5UbENRVUkyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvNFFqVTRSak5ETlRVNU1EQkVSakV4UVRjNE4wWkZNRUU0UmtaQ00wUkdOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2T0VNNFFqUkdNekUzUlRGQlJFWXhNVUpCUWtORU56UTBOekpEUlVVd1FVVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPamhFTmpKRk5VTTFSamswTmtSR01URkJNVUZEUWtNeVEwUTJOakJETWpFeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzRSa1V4UmprMVFUazFOREZFUlRFeE9EZEJNMEkyTTBGRlF6WTNNRUkzUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk9UQkJSRVkzUkRVek9UaEJNVEZFUmpnMk1URTVORE0yUVRFM1EwSXlNamM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2preFF6WkNPVVJFTjBReFFVUkdNVEZDUVVKRFJEYzBORGN5UTBWRk1FRkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRG81TWtFM09UbEdNak15TjBReE1VUkZRVUV3T0VFNU1rUkZSVGcyTkRGQ1Jqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZPVE0yT1RBME1rTXlSalEyUkVVeE1VSkVPVVZGTlVFMk5qTTVRVFl5TlVZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09qazBNMFZDUTBKR09VWXdOVVV3TVRGQ09ESXlRVGRCUlRWRE5EUkNPREV4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRvNU5EZEJRak0yTlRjMlJFSkZNREV4T0VJMU9UazFOakV3TWtFMVJUY3dOVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2T1RaQ1FrTkNRalExUmpnMFJFWXhNVUUzUmpORlFrVTBOa1ZFTWprM09UVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPamszT1VVNE1FWXhNa00wTmtSRk1URTRSVEExUlRBd1FUa3lORVE0UTBNMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEbzVRVVV5TVVJMlFqUkdPRFZFUlRFeE9VWkZOVVF6T1RoR01qRkJORFF4TXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNk9VTkVOekE0UmpFMk5ERTFSRVV4TVVGQ1JqbENRMEV5TmpOQk1FWXhORGs4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2psaE5qUmlPVFptTFRBeU1XUXRORGd6TWkwNVpHUXdMVFk0TVRZMFpHRmxOV1ZoT1R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlFUSXpOVVpHUVRRek5qTXpSRVF4TVVJNE5FUkNNVFV6UmtaRFFqSkNNalU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tFeVJFRkZSRFEwTkRSR01rUkNNVEZDUmtNNU9UTTFOems0TmtFd01qSXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBCTXpJek0wUTNOak01UVRCRVJERXhPRU0wUlVJeFJEYzJSakl3UkRZeFJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZRVFV5UWpKQ1JUSkVOVEEwUkVVeE1UZzFNekpCTnpVek5qSTRSVGsxT0RjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rRTVNekl4UmpReE16SkdOVVJFTVRFNVJUSXhPRFEyTjBJME1rWTFNakkwUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwQk9UVkVPVGd4TWtFMVFqQkVRekV4T1RRd05UaEdRa05GUWprMk5EaEZORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UVVJeVFqWkdRVFV4T1RWQlJUQXhNVUUxUVRVNE16STFOVFkxUmpBd01VTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa0ZETmpsRk1UQXhNVVF4TlVSR01URTROemxCUWpZM1JFTkNNemxFT1VaQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcEJRME0xUmpVMU16SkRRMFJGTURFeE9UazNSa1UwTURVM1JFSXlNVE5CTWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlFVWkdSVUl5TlROQlJrWkZSRVV4TVVFMU9USTROakpETUVKRE0wUTVOVGs4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tJeE1UaEdSRGxETXpRME5rUkZNVEU0UlRBMVJUQXdRVGt5TkVRNFEwTTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBDTkRoRFF6TTNORVkyUlRKRVF6RXhPVE5FTmtVMU9UTkdOekEwUlVZNU5Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZRalkxUVRnMVJUQXhSVVV5UkVReE1VRXlSRVk0TlRrM1JVVTBRVU01UmpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rSTNOa05HTXpFek1qTTBSVVJGTVRFNU1FRTNPRGsyUkRNMU56azBNRVZDUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwQ09EazRRamt3UWpsR016UkVSakV4UWpBMVFVUTJORVpDUlRBNU1VTkNPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UWtJNU56YzNPVFpEUVRnMlJFVXhNVUkzUmpWRk1rWXpRemRDTWpZNFFVTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa0pDT1VaRVFUTkNRVUU0TlVSRE1URTROVEl5T0RoR01qZEZOemMyTmtZd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcENSREl6TnpWQlJEWTVRVU5FUXpFeFFqSkJRVUU1TVRRMU1ETXdNemRGTVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlFrUTVPRFEzTXpVek5UUTJSRVV4TVRoRk1EVkZNREJCT1RJMFJEaERRelU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tKRVJUZEVNMEZFUVRRMFFVUkVNVEZDT1RReU9ESTJRamt4UWpRMlJETXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBDUlRVMU5qWTFNekpEUkRVeE1VUkJRVGRETnpnME5VTkZNVGc0TWtFME5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZRemsxUmpoRk9UTkZNVVZEUkVReE1VRkVPREZCTVVGQ09EUkVOREExUWpROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rTTVRalpHTWtVM1JUUTBSVVJHTVRGQ1FVWkVRVU0zUTBSRE16Y3pOREl4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwRFFUUkZNRE0wUlRkRk1VRkVSakV4UWtGQ1EwUTNORFEzTWtORlJUQkJSVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UTBGRE0wUkNOVE5FTTBVeFJFWXhNVUkyTWtWRFFqaENNRGN4UmpFMlJURThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa05CUTBVd1JEUTFRVFF4UVVSRk1URTROak01UWpnMU5UY3lOelk0UWtSQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcERRVVJDTnpoR1FqQTRPVUpFUmpFeE9ETkZOa1JETkVGRE1ERXlSVVU1TVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlEwSXdRMFE0UmpVNE1UUXlSVEF4TVRoRU5UaENNakUyUWpNNU0wTkZSRUU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tOR05VWTBRekF5UWpSQ00wUkdNVEZDUlVVNVJESXpRVGN6T0RJNE1qTXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBEUmpoRk1EWTBOREkzTkRaRVJURXhPRVV3TlVVd01FRTVNalJFT0VORE5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZRMFpHUWtNNU1EVXlNMEkxUkVZeE1UaEVSa1pCUVVFM1JUSkNSRFkzUVVNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rUTJNak5GTWtaRFEwSTBORVJHTVRGQk5qVTVPVGt3TkRRMk56YzVOalF5UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwRU5qVkNRMFl3TkVWQ1FUTkVSakV4UVVWRE9FVkRRelJDTkVSRU5FWXlOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UkRnNVJUbERNVFV5UmpJM1JURXhNVUV6UWtKQ1JERkNORGcxTmtWRk9EZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa1JCT1RFMU5rRkROalJEUkVVd01URTVPVGhEUlRORE1EWTJRVGxFUTBWRlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcEVRVU5DTkRKQlF6QkVOVGRFUmpFeE9VVTJNVGd6UVRreU1VSTJNRVkyUkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlJFTTBSalU0T0RKQ01FVTVSVEF4TVVJek1qWTVRVUl4UXpBek5UWkZRalE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tSRVFqQTJOekV6TURaRVJVUkZNVEU0TmpFM1JUazRSVFU0TUVFeE5FVTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBFUkVWRU1VVkdPRFUzTmpORVJqRXhPVGN6TTBFME4wVTFOREUzUVRjM1JEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZSVEEyUkVSRlJUUXpRVUkyUkVJeE1VSkNOamxGTmpNMU5qQkNRak15TWtFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rVXdOemMxT0RFMk16VTBOa1JGTVRFNFJUQTFSVEF3UVRreU5FUTRRME0xUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwRk1UZ3dOa1pHTWpFNFF6TkVSVEV4UWpoRlJFVTFSRUkyTWpNd01ERTVPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UlRGRlJrRTRPRGxDT1VJeVJFVXhNVGxCUkVGR1JrSkZSRFkwTVVRd01EYzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa1V6TjBaRk5EYzNOalkxTVVSRk1URkNNRVpHT1RBMFFVSkVOMFU1UXpjNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcEZORGczUlVZMlF6RkJNVFZFUmpFeE9EYzVRVUkyTjBSRFFqTTVSRGxHUVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlJUWTROemcxUXpVeU5UUTJSRVV4TVRoRk1EVkZNREJCT1RJMFJEaERRelU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tVM01qWkJRalkzUVRGRU4wUkZNVEZCTVVGRk9FRXpPRGhDUmpFeFJrUkNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBGUWpZNVFqRTRPRGcyTURaRVJURXhRak00TUVNNVJFWkdSalZGUkVJMlFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZSVVU0UlRSQlF6VTNORU5FUlRBeE1UazVPRU5GTTBNd05qWkJPVVJEUlVVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rVkZSamRHTVRaR1JVWTRPVVJGTVRGQ01VTTBSRFkxUlVZME16WTRPRUV6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwRlJrVTROVVl4T0RCRk1FUkZNREV4UVVZM1JUaEJRa1F6T1VJNU9UZzFPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UmpJMVFqaEdPVEl4UXpRMlJFVXhNVGhGTURWRk1EQkJPVEkwUkRoRFF6VThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa1l5T1VJNU9EbERSalpDT0VSRk1URTRPRGxEUXpJek1ERXdPVEExTVRnM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcEdNMFV6UlRRd09FTXpORFZFUmpFeFFUQXlNRU16TWpsRFFrRTNPVFkzUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlJqUTBNVFJCTURNNE9EUXlSRVl4TVRsRVJUSkNRVVk0UkVaQ056TTVRemc4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT2tZMlJETkJOMFF3T1RrMU5VUkVNVEU1UVRFek9EUkNOVGt6T0RRMk5UYzJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2RYVnBaRHBHTnpBNU1rWkVSVFUyTkVGRVJURXhPVEpCTVVaQk1EbEdPVVV4TkVWRlFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5WMWFXUTZSamcyT1RVeU1VUTFNVVV5UkVReE1VRXlSRVk0TlRrM1JVVTBRVU01UmpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDUxZFdsa09rWTVOelE0TmtNeFJUSTBSa1JHTVRFNE0wTTNPVGsyTnpFd1JEQTVPVVJEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytkWFZwWkRwR1FUUTVNakUxTURNeE5VWkZNREV4UVVFM1F6aENRekU1UmpFd1FURXdRand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuVjFhV1E2UmtNMk1qZzBNemsxUTBSR1JFVXhNVUl6TmpaRU9VVkdOelJFUlRSQ00wVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1MWRXbGtPa1pEUWpFM09UQXpOVFF3UVVSRk1URTRSVEl4T0VGQ056aEJRVVU0UXprMlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZFhWcFpEcEdRMEkwUlRnek16UTVNRGhFUmpFeFFUWXhSRUl5TWpkRlJFUkdOVGxHT0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQblYxYVdRNlJrVkVOemMyT0VFeVFUUTJSRVV4TVRoRk1EVkZNREJCT1RJMFJEaERRelU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTFkV2xrT21aaFpqVmlaR1ExTFdKaE0yUXRNVEZrWVMxaFpETXhMV1F6TTJRM05URTRNbVl4WWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREExTkVVNVF6WkVSamN4UlRFeE1VRkRORVU0UmpRd09FWTJORVE0UWpNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF3T0RBeE1UYzBNRGN5TURZNE1URTROMFUyUkROR01VWkZSVVUzUlRZeFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TURnd01URTNOREEzTWpBMk9ERXhPRUUyUkVVM05UQXlNREk1T1RReU16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURBNE1ERXhOelF3TnpJd05qZ3hNVUZETnpVNU56bEJNekl6TWpWQk5qazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBd1F6QTFOVGc1TWtVeU16WTRNVEU1T1RSRFJqSTJOa0ZGT0RRd1JEY3hQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4T0RZeE9FUTFRalF3UkRNM016ZzVRand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRnM01VWTRPVFJGUWpWQ016SXlNMEk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRFNE56RkdPRVZCTTBZeVFUSkJSVEZFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeE9EY3hSa0ZDTWtNMFJUQTJNMFkxTmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1UZzNNVVpDTTBNMk1rSXdRekkxTlRROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTROekZHUlRneU9FVXhNakpHTkRjeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPRGN4UmtVNFJFUXlNelF3UXpCQ01Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVGczTVVaRlJVSTFOa1F4UlRjME0wSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEU0T0VNMk9EUkZRVVkyUlVJelJVVkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4T0RoRE5qZzJNek0wT0RVME1USTNOVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRnNFF6WkJSRU01UlVWRE1USTROamM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRFNE9FTTJRell4TWpnek4wSXdNalEzUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeE9EaEROa000UmtJMk5FVXpNRGMzUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1UZzRRelpFTXpaQ09FWkZSakE0TmpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTRPRU0yUkVWQ05rRTNNemd3UlRBeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPRGhETmtVMFJEWkRPRVE1TVRnd09Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVGc0UXpaR1JEZzRSVE0zT1Rjek56ZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEU0UVRaRVJFSkJOa0kwT0RNNVF6TXpQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4T0VRME4wWTROekF3TlVFeFJrSXdOVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRoRVFrSkRNVFJHTUVSRU1qRTJPRVE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRFNFJqUkVSRGRDTkRrNE5qQXlNVVl6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeE9FWTJNa0pDUmpnNU9UZ3hPRGRFTmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1UaEdOakpDUlVRek16RkJORUk1TkRZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTRSall5UlVJeVFVUkZORFpFTWpjelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPRVk0TVRrMU1EUTRSa0kyTXpGRk9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVGt3TWtGRU0wWkNOemhGUmtSRVJqazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEU1TVRBNVJEaEJRVVJEUXpNelFVVXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4T1RFd09VVkVNakE0UWtNeE1EZEdSand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRreE1EbEdNekExTmpRMlJVSTFOMFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRFNU1UQTVSalUwTVRVNE5rRXdNakJFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeE9URXdPVVpCTWprM1FUZEJOVGt3TkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1Ua3lRakE0UVVVeU5rSkVPREkzUmpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTVNa0l3T1VNME1ETkRSa1l6UVROQ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPVEpDTUVKQlFUa3dORVJGTUVZNFJEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVGt5UWpCRE5rUkVOa1ZGT1RNd00wSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEU1TWtJd1JEa3pRVGRGTVVFd01USkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4T1RKQ01FVTRRVFl3UVVGQk56STVOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRreVJEaEZOMEUyTkRFd09UTXhOMFk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRFNU4wRTFSRFkzTlVZM01rSXhSRGt6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeE9UZEJOVVJCUmpJMU9ETkJNRUUwUWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1UazNRVFZGUTBOQk1EZzROVUUxTVVROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTVPVFJET1VFMk16QTJOa0V5T0RBeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPVGswUTBKR1JVSXpSVEU0UmtZeFJEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVGxDUlVZNFFUWXdRVFUyUkVGRVFqWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEU1UkVORFJEY3hOME0wUkVNNU4wTXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4UVRSRk1UaEVRVVV6UkRnMU16UXhNand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVVGQ01EZzRPRVZET1VRNFFqZzFRVFk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhPREF4TVRjME1EY3lNRFk0TVRGQlFqQTRPVEZDTnpreE1qSkNNakpFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVGd3TVRFM05EQTNNakEyT0RFeFFVSXdPRVU0UlRoRlJUTkdNREk0T1R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREU0TURFeE56UXdOekl3TmpneE1VRkdSa1E0TkVJMFFUWkZNMFUxUXpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URkNNVGhFUTBZM05VWkROemN4T0RRMFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhRakZCTkRneE1UY3pSak5DTWpBNU1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURFNE1ERXhOelF3TnpJd05qZ3hNVUpCTURaRVJUSkVNak01TURCQk1VWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeE9EQXhNVGMwTURjeU1EWTRNVEZDUXpFMk9URTNRME5DTWpkR09UYzJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01UZ3dNVEUzTkRBM01qQTJPREV4UWtVNE4wSTRORVl5TlVFMVJEVXhOend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ERkROalk0UTBJeVF6TkJNVEZGTUVJeU5FSkdOekpHTVRZM01UbEJNVFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXhSRE5DUXpCQk1ETTVPRVJHTVRFNFJUQkVSa0pEUXpNNVJqRkVOekJEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNVVZFUVRNME1ETTJSVVZFUlRFeFFUaEVSVGhGT1VJeU5FSXhNa1JCUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREkwUmpjek0wTTBRMFE1UkVZeE1UZ3hPRFU1TVRVMlJFUkNOVEkzUWpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF5TmpRNU1qUTJNVFV5TVRZNE1URTRRVFpFUXpnME1qazVPVFJFUWpnd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TWpnd01URTNOREEzTWpBMk9ERXhPREE0TTBSR1JFWXpOalkwTkRRNE16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURJNE1ERXhOelF3TnpJd05qZ3hNVGc0UXpZNE16azNSa1JGUVRNek5qUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeU9EQXhNVGMwTURjeU1EWTRNVEU0T0VNMlF6azFPRFJCTUVORk5FUTJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01qZ3dNVEUzTkRBM01qQTJPREV4T0VFMlJEbEJNVVU0TWpFNU1EYzROand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ESTRNREV4TnpRd056SXdOamd4TVRoR00wSkJOa0l3TVVWR1F6TkdNelk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXlPREF4TVRjME1EY3lNRFk0TVRFNFJqUkVSRGRDTkRrNE5qQXlNVVl6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNamd3TVRFM05EQTNNakEyT0RFeE9FWTJNa0V5UmpaRE5URXhNakZHTnp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNREk0TURFeE56UXdOekl3TmpneE1Ua3hNRGxETmpWQk56QTBNREV6TkRBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF5T0RBeE1UYzBNRGN5TURZNE1URTVNVEE1UXprMFFrVXpSa0kyTXprMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TWpnd01URTNOREEzTWpBMk9ERXhPVGRCTlRrM09EQkZSVFZEUmtNME5Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURJNE1ERXhOelF3TnpJd05qZ3hNVGs1UkRORlEwWkRRVVl4TXpZeFFVUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBeU9EQXhNVGMwTURjeU1EWTRNVEU1UlRGRU9EVTBOalkyTmpKRE9VRkRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd01qZ3dNVEUzTkRBM01qQTJPREV4UVRkQ1FUZ3pOekV6TURSRk56STJSand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ESTRNREV4TnpRd056SXdOamd4TVVGRE9UZzRSVEV3UTBNd1EwTTNSVGM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXlPREF4TVRjME1EY3lNRFk0TVRGQ09EUXdRekUwTXpjNE9EZzFNREpGUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNekpHTkRZNE16a3dNakUyT0RFeE9EY3hSa1UwTURVMU16ZEJNamd5T0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRE00TURFeE56UXdOekl3TmpneE1UZzNNVVpHUVVNMk0wTTRNVGcyTkRBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakF6T0RBeE1UYzBNRGN5TURZNE1URTRPRU0yT0RJek16STVRemd5UWpreFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TXpnd01URTNOREEzTWpBMk9ERXhPRGhETmtKR05rWTFRamM1UXpZM1FUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURNNE1ERXhOelF3TnpJd05qZ3hNVGhETVRSQk5EbEVNREpCUXprM05UVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBek9EQXhNVGMwTURjeU1EWTRNVEU0UmtWRVJqZzNORGN6UmtZek5rRXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd016Z3dNVEUzTkRBM01qQTJPREV4T1RNME5rWXlOelJETURVNFJEVTFRend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1ETTRNREV4TnpRd056SXdOamd4TVVJeFFUUkVSVVUyTkRReE16QTRNMFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQXpPREF4TVRjME1EY3lNRFk0TVRGQ1F6RTJPVEUzUTBOQ01qZEdPVGMyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dNemd3TVRFM05EQTNNakEyT0RFeFFrUXlNRGxETTBZME5ETTNRakV4Tmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRE5HUkRWR01FRkROa1l3UkVVeE1UbENOa0k1UkVFNE4wWXpNVE5GT1RZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakEwT0RBeE1UYzBNRGN5TURZNE1URTROekZHUmpCRlJUWkJSRFUzT1RCQ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TkRnd01URTNOREEzTWpBMk9ERXhPRVkyTWtReU5VVkdPVUZFTmtNeVJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURRNE1ERXhOelF3TnpJd05qZ3hNVGhHTmpKRVFqTkdNalk0TmpKQk5qZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBME9EQXhNVGMwTURjeU1EWTRNVEU0UmpZeVJVVTBRVFUzTlRkQ1F6WkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd05EZ3dNVEUzTkRBM01qQTJPREV4T0VZMk1rVkZSamhDUWtGQ01qbEVNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1EUTRNREV4TnpRd056SXdOamd4TVRoR1JrSkdPRFV6UTBZeU56UkZPVE04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQTBPREF4TVRjME1EY3lNRFk0TVRFNU1UQTVPVGxGTVRjeVFVTkZSalF4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dORGd3TVRFM05EQTNNakEyT0RFeE9UVkdSVVExUlRsRU16RTNNamt4UlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRFE0TURFeE56UXdOekl3TmpneE1UazNRekZCTlVORFJUY3hSVEk0TURnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakEwT0RBeE1UYzBNRGN5TURZNE1URkNOakU0T0RNNE1EazJPRVEwUkVNelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93TkVSRk56RXlSa0k0T0VGRk1ERXhPVVkwUkVJd1FVSkVOakZEUlRNeU56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURVNE1ERXhOelF3TnpJd05qZ3hNVGczTVVZNU5qRTNRVGMxT1VRMFJUWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBMU9EQXhNVGMwTURjeU1EWTRNVEU0UXpFMFFUVTJRemd4TlVWRlFrVXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd05UZ3dNVEUzTkRBM01qQTJPREV4T0VZMk1qazRORU14TWpFM1JEUTJOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1EVTRNREV4TnpRd056SXdOamd4TVRreVFqQTVORGN3UmpjMVFrRkZPRVk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQTFPREF4TVRjME1EY3lNRFk0TVRFNU1rSXdRakF6UkRKQ056aERSa1JFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dOVGd3TVRFM05EQTNNakEyT0RFeE9USkNNRVV6TlVFMU4wSkVSRGt3T1R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRFU0TURFeE56UXdOekl3TmpneE1VRTNRa0ZCUkVJME1qVXhSRU5CUmpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakEyT0RBeE1UYzBNRGN5TURZNE1URTRPRU0yUlRCRk5qQkROakZCUVVKRFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93Tmpnd01URTNOREEzTWpBMk9ERXhPVEpDTURrME56QkdOelZDUVVVNFJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURZNE1ERXhOelF3TnpJd05qZ3hNVGt6TVVSQ00wWkNSVGxDUXpVMlJqSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBMk9EQXhNVGMwTURjeU1EWTRNVEU1TjBFMVJEWTNOVVkzTWtJeFJEa3pQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd05qZ3dNVEUzTkRBM01qQTJPREV4UWpGQk5EaEJRME5ETmpaQ1FURkZNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1EWTVSVFl4UWpKRFEwSXlNVEZFUmtGRE1rUTVOVVZDTXpnMk1FWXdOakU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQTJZell5TXpSaExUWmxaakV0TmpBME9TMWlPRFF6TFRsbE5UbGpOemswT1RJMFlqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURjNE1ERXhOelF3TnpJd05qZ3hNVGhCTmtSRU4wVTVNRUk0TlRneVFUazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBM09EQXhNVGMwTURjeU1EWTRNVEU0UmpZeVJFUXlRVGt5T0Rrek1Ea3hQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd056Z3dNVEUzTkRBM01qQTJPREV4UVRjeVEwWXpNemxGUlVFd1EwTkJSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1EZ3pOREZEUXpJd056QTRSVEl4TVRreE4wTkdOa0V3UmtVM1JERTJSa1k4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQTRPREF4TVRjME1EY3lNRFk0TVRFNE9FTTJPVGMyUVRWRk5FRkdORFF6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dPRGd3TVRFM05EQTNNakEyT0RFeE9USkNNRGd3UWtSR01EbEVOek5FTkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRGc0TURFeE56UXdOekl3TmpneE1UazVORU01TUVJeU1URkdNa0ZFT0RjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakE0T0RBeE1UYzBNRGN5TURZNE1URTVSRFl4T0RGQ1JEVTFNMFZFTjBaRVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93T0RoR05rWkJOVGN4TWpBMk9ERXhPREE0TXpnek56VTRSVFpCUWpreVFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TURrNE1ERXhOelF3TnpJd05qZ3hNVGcxT1VWRk16RkdSamhFUkVKRk9FUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pBNU9EQXhNVGMwTURjeU1EWTRNVEU1TVRBNVFrTkROakk0TXpJeE1qSkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd09VUkVSRGRFTkVRMk1qQTJPREV4UWtJek4wUTRNVVZCT1VVNVJqUXdNand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1FRXhOME0zUmtOQk1qSXdOamd4TVRnd00wUkZOemRHT1RWR016azRSVEk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qQkJPREF4TVRjME1EY3lNRFk0TVRFNE56RkdPVFJETlVNMFJrTkRNRFJFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3dRVGd3TVRFM05EQTNNakEyT0RFeE9EY3hSa1kwTjBSRE9URkVSVEV4Ump3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNRU14UlVRelJqZEVNREV3UlRNeE1Ua3lRMFpGUkRoR1JEWXhSRVF5TXpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakJETlRoQ1FUbEdSRE5GUkVSR01URkNSRE5EUVVZME56WkNOa1l4TkRGRFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG93UkRnME4wSkRPVUV5TVRGRk16RXhPVUpCUTBaRU56bEdNVEkyTVVORVJEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TUVVeU16Z3pRME15TnpJd05qZ3hNVGt4TURrNE1qZENNVEV4T0RjMk1rWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pCRk5qTTRORVJHUlVRNE5VVXdNVEZCTUVNeU9EUkNOalkzTnpoRU5rRTJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvd1JqY3pSRGMxT0RFMk1qQTJPREV4UWtNeE5qa3hOME5EUWpJM1JqazNOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1HTXlObVl4TWpjdE1HUXlPQzFoTnpRekxXSmpNV010WVRRNU5URmlZbVZtWVdJNVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG94TURVME5FVXhOelUwTWpBMk9ERXhPVEV3T1RnM01UQXpNVEV3UWpVMFJUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TVRGQk56Y3lNVEpFTXpRNFJUQXhNVUkyUWtGQ05UVkVOalJHTlRrMk1rUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pFeVJVRTVSa1F3TkRReU1EWTRNVEU0UmpZeU9FTXhOVFl6UVVVeE5qZEZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRveE1rVkRSRVpEUXpZNU1UaEZNREV4T0RNeE4wRTFNVEkyUWpFNE5FTTVRend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1UTkdNell6UXpoQ01ESXdOamd4TVRreVFqQTVSRFEyTkRSQ05qSTBPVFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qRTBNemREUWpKRk16UkZPVVJGTVRFNFJVTTBRamMyUkVaQ1JqTXhSalJDUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3hOVGc0UVVKQk5qUkNOMFZFUmpFeE9FSkNNMFpFTTBaR1JrVTFNRVpDUXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNVFZHUVVaR1JqVXlRakl3TmpneE1UazBOVGRFTlVNNE1qUTBOMEV3UTBROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakUyTTBSR05ERkNOekk1UmpFeFJFWTROVGhEUWpjMk1Ua3hNVUpGUkRWR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG94TmtWRU5qZ3lPVEJFTnpneE1VVXhRa1EyUkVVNE9UWkZNekZHT0RBd1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TVRjd1FUYzBRelJDTXpaR1JURXhNVUU1UmtWRk5UWkZSa0pDT1RoRVFqSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pFNE1rUkJNamMzTVRReU1EWTRNVEU1TVRBNVJUZzJRakl6T0RVeU1rWTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRveE9EUXdOMFZCTkRsR056UkVSakV4UWpsQlJFWTFNREZDTVVaRlJVTTFRand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1UZzROR0V4TXpFdE1qYzFZUzFpTWpRM0xXRXhZakl0TUdOalpHSTNOREE1TkRZeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG94T0VFMlFUVkdRVUk1TVRORk1ERXhPREJFUVVORlFqRkZORUl3T0RCR1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TVRoR01URXdNMFUxTkVNelJFWXhNVUZCUlRRNVEwUTRPRUZCTmpRMFFVSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pGQk9UUTFNelpCTXpJelFURXhSVEJCTjBJNFJEYzJRa1ZDUkVSR1FrVTBQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRveFFVSTNOemN5TWpjMk1qbEZNREV4T1VGRU1VSTVORFZETVRrMk5FSkJSVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1VSXhSVVpHUlVNMk16RXpSRVl4TVVFM01UbEdNVUZHTlRJMk5qRXdPREk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qRkVOVEZFUVVFM01qSXlNalk0TVRFNU1UQTVSamd5T0VRNFJFRkdORE0yUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3hSRFpGTkRNM00wRkROVVpFUmpFeFFUWTRSVVF5TlRGR1JqSXpSVU16TkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNVVE1UmpCRk0wSTVOakl4TmpneE1Ua3lRakJETURGQ1JUWkNNRVExTlRBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakZGTWpFelFqRTRORVk1TlRFeFJURTRSREZCUmtRNU16STJNakZEUkVZeFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG94UlRsQ05FVkZOVVJCTVRCRk16RXhPVEpEUmtWRU9FWkVOakZFUkRJek56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TWpCak1tTXdaakF0TjJNNE1DMDJOalJoTFRnM1lqWXROakptWVRreE1UQTJZakV3UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3lNVE5FTURFMU5EWkVPRGt4TVVSR1FrUkVOVGcwUkVSRE9FTTVOVUpHT0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNakUyUlVFeVF6azNNVVF4UkVZeE1VRTVRVGxCUVVZNU1rRTBNVE00UTBVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakl4T0RRM1Jqa3hSa000UmtSR01URkNSa0l6T1RoRU16VTVRa1pHUTBVeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG95TWtSRlFUVkdSa1V4TWpBMk9ERXhPRVkyTWtNNE9FWXdNRVpGTlRGQ05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TWpNelEwUkNSa00yTWtKR1JFVXhNVGhFTmtaQ05qZEZORGd5T0RFM05UZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pJME0wTkJNRU5GTjBWRU1VVXdNVEZCUkVJd09FTXhRVGRETkROR05UWTRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRveU5FSTJSa1JHTWpVd01qQTJPREV4T0RjeFJrRkdRME5HTkRoQk0wRkdSVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1qVXdSak0zUmtSQ1JUWTFSRVl4TVRrMlFUSkZOVE00TmtWQ04wVkdRa1k4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qSTFORUpFTWtFd1FUTXlNRFk0TVRFNE9FTTJRemRFTlVFMVJEY3lSalZHUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3lOVVE0UmpWRFJrRkdNakEyT0RFeE9FRTJSRVV6UVVNNVFUUkZNRGd5UlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNamMwT1VSQlF6RTJPVVV3UkVZeE1VSkJSVEpCT1VZMFJrRXhRemN6TUVVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakk0TnpkRVJrWXhNalV5TURZNE1URTROekZHT1RKRE9URkVNRGMxTWtJd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG95T0VWRlFUbENOemxCUkRWRVJqRXhPVFkwT0VZNE5URXhRamMwTVRkRU16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TWprNVJUTkZSRVl3T0RJd05qZ3hNVGt5UWpBNFJVRkNSVUpGTmpJM09ESThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pKQlFrSTNOVEF6TjBReFFURXhSRVpDUmpZMlJERTVRVVV3UVVJMVFqRkNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRveVFqUTVSRUZETVRZNVJUQkVSakV4UWtGRk1rRTVSalJHUVRGRE56TXdSVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk1rTTFSVVF3UmpFMVFqSTRNVEZGTVRnMlF6TkVRekUyTkRjeE1rRTBSalU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qSkRRemszTVVRMlJFTkZNVVJHTVRFNU0wSTRRVEV4UVRnd1JqUTJNak0yUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3lSREpHT0RORU1rRkJNakEyT0RFeE9FWTJNa013TnpGRVFqazJSak13T0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNa1V3TWpKQ1FrRTBNREl3TmpneE1VRkdSVVJDTkVSRE5VRTFSVVJDUXprOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPakpGUTBZeU5UaEZNekkxUkVVd01URkJNVUUxUTBKRU1UVkdNVU0xUkRoQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG95UmtaRlJrWkROelEwTWpBMk9ERXhPRGN4UmtNMFFVWkJOME5GTWpsRFFUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TXpFMU9UTXpOVFV4UVRJd05qZ3hNVGs0TlRBNE1VSTNPVUl4UmtKR016WThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pNeE5VVkROMEl5TkRJM04wUkdNVEZCTWpoRFJFSXlSVFpGT0VSRlJEaEdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvek1qUTROelpGUWtZeE5rSkZNREV4T1VVMk9VVTROVFJDUWtFeFJqVXhORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk16SkVOVEpGTUVRd1JUSXdOamd4TVRoR05qSkVRVEF6TVRJMVJEUXlPRFU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qTXlSRUZCUXpVeE1qVXlNRFk0TVRFNU1rSXdRa1U0UkVRMk1qaEVNak00UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3pNa1l3TVRoQ016RXpNakEyT0RFeE9USkNNRU13T1VFNVJqaEdOa1EzTkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNek16UWpVNU56TXlSREl5TmpneE1UaEJOa1E1UmpORFFrWkZSa00wTVRNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPak0wTUVWR01VVXhOMEV5TURZNE1URTRPRU5EUXpBek1ERTRPVFpETmpFNVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG96TkRJMFJqRTVOREl4TWpBMk9ERXhPVFExTjBFM05EaEZNamcyUlVKQk1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TXpVMFJrSTBOREV6TVRJd05qZ3hNVGhFUWtKRk16aEVSRGcxTnpFd016ZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pNMk5VWkZNRVEzUWpreU1EWTRNVEU0UmpZeVF6QTNNVVJDT1RaR016QTRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvek56UkdRalEwTVRNeE1qQTJPREV4T0VSQ1FrVXpPRVJFT0RVM01UQXpPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk16YzNOMEZFTWpORE1UUXpSRVl4TVVGR01FTkZOekkzUXpsRlJrWTROakk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qTTRRVEF4TWpsQk9FWXlNVFk0TVRFNU1rSXdPRFE1T1VJM00wWkZRVE14UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3pPVEUzT1VZMlJqVTRNakUyT0RFeE9FRTJSRGxHTTBOQ1JrVkdRelF4TXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNMEV4TnpsR05rWTFPREl4TmpneE1UaEJOa1E1UmpORFFrWkZSa00wTVRNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPak5CTmtOQlJqSTNNa0l4T1VVd01URTRORVJFT0VaQ1JERXhNRE0wTURBNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG96UVRjMk56Z3pRMFF3UVRoRVJqRXhRakpCTVRsRU5UQkdSakl4UWpoRU9Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TTBJME5FTXhNRE13UXpJd05qZ3hNVGt4TURsRU9FRkJSRU5ETXpOQlJUSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pOQ05FUTRRVEE0TVVFeU1EWTRNVEZDTmprNVJVTTBRVGxCT0RjNU5qTkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvelFqaERSRU5HTVRBM01qQTJPREV4UWtRM1FrSTFSVGczTmpZM05EazNNand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk0wSkROa05GTVRKRE16Y3dSRVl4TVRnMU1FTkNOekpFUWpsRU1rTkNPVEk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qTkVNREpGTmpKQlJFWTRRMFJHTVRFNE1VUkRRMEk0UlRoQ056ZEdNekZHUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEb3pSVGN5UVRoRU5qRTFNakEyT0RFeE9USkNNRGxCTWpNeE9ETkZSalEzTmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZNMFZDUVRZM01qaEVOekl4TmpneE1UZ3pNVGRCUWtJMk1UUkVRVFF6TTBVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPak5HTWpnME1FSkNSRUZHTkVSR01URTVRamxHUlVRMk5rSTJPRGMxUVRjM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG96UmpVMVJrVTVSVVZHTmtWRk1qRXhPRVk0TVRnMlFrUkVPVU0wUTBOQlJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TTBZMlJUQTBOVEUzT0RJd05qZ3hNVGd5TWtVNU9EQkVRak0xTXpnMU9VWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pRd1FrSXlNVGREUWtRNE5FUkdNVEZCTkRkRFJVSkZOakk0T1RFeVFqQXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvME1qRTNPVVkyUmpVNE1qRTJPREV4T0VFMlJEbEdNME5DUmtWR1F6UXhNend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5ESTJNVEU1TXpORE5rVTVSRVl4TVRrek5qWkVNakl5UmpVNVFqUTVNa004TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qUXlOamsxTmtFMk0wTTNSVVJHTVRGQk5VRTBSVGt3TmpWR1FVTTNNRFJEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzBNa0kzT1VNMFJERTNNakEyT0RFeE9EaEROamxGT1VNd1JFVTRPVEEyUlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZORFJDUVRZeE1FWkdOekUxUlRBeE1UZzFNRVpCT1RBeFFqUkRNVUkyTnpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalEwUkVRMU9VRkVNalV5TURZNE1URTRPRU0yUVVVek1rVkJNems0TWprM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8wTlRWRVJqWXhNalZFTlRsRVJURXhPREkwTWtReFJUaEJRemMyT0RneFJUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TkRZMlJFUkVSalZFTURJd05qZ3hNVGc0UXpaRFJEUXpRVVUwTlVOR056ZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pRM05rUkJRa0pGUWtVeU1EWTRNVEU0UmpZeVFqTXhOelpGUlRJMU1UZzNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvME4wSTFOVVJGUWpNM01qQTJPREV4UVVaR1JFTkZPRVV6UWpkRE9ETXlRand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5EZ3dRamRGTkRaQlJqYzRSRVl4TVVFNE1qVkRSamhFUlRWRU9URkVSamM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qUTRNamRDTVVaQ01rWXlNRFk0TVRFNFJqWXlRa1ZDTURaRFFqZzBNREF6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzBPRGs0TVdZeFppMDJNbVZsTFRCak5EZ3RPVGxtT1MwMVlXWTBNbVk1WVRJd05EazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pRNFFqZENSREJDUkRGR01VUkdNVEU1TVRGRVFVVXpSamMzUVRjeVF6RXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvME9UWTRNak00TXpGRk1qQTJPREV4T0VZeFEwWkZRMEUzT0RJNU1UVkROand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5EazNPRVJFTWpnd01USXpOamd4TVRreVFqQkRRVUpDTWpnM05FRkdNRU04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qUkJNRU5DUlRoR09UUTFRMFV3TVRFNVFqazBSVE01T0RneE0wVXhNMEZDUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzBRakZDTkVNd1FURXdNRGxFUmpFeFFrUTFNVVl6TVRoRk9VVkVRVGxGT0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZORU00UkRaR01rTTROekl4TmpneE1UZzRRelpETjBRMVFUVkVOekpHTlVZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalJFTXpaRU56UkRSalV3UWpFeFJUQkJORUkwUVRneE16VTBRamhGUXpSR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8wUlRrNVFUZzJSVVkxTkRGRVJqRXhRamswT0Rrek5rSkdSVUk1T1VJeU5qd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TkVWRVJFWkRPVEF5TURJd05qZ3hNVGhHTmpKQ05USXdRVFZGUlRRMFEwUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pSRlJqZ3dSakpFTXpreU1EWTRNVEU0UmpZeVJVVkdPRUpDUVVJeU9VUXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMU1EZENSRFl3UVRCQ01qQTJPREV4T0VSQ1FrRTJNakkxTVRKRFFqaERRVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5URTBSalkzUXpWRk0wRXdSRVl4TVRrNFJqaEJOMEk1TXpFMk9UY3pOVGs4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qVXhOVFEyUmtSRU1UTXlNRFk0TVRFNU1rSXdRa0ZCT1RBMFJFVXdSamhFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzFNVU14T1RRNFFUaEZSalZFUmpFeE9FTTRRamxGUkVJd01qRkJRekV4TWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOVEpDUVRSQ1JUaEZNakkzTVRGRk1FRkZRa0k1TURjMFJqQTNOak5CTTBJOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalV6T0RBNFFqUTNNMFJCT1VVeE1URkJOMFV4UkVaQ01EVkJORUl6UVRneVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8xTTBReE5rRkZPREpGTWpBMk9ERXhPRVkyTWtReU5VVkdPVUZFTmtNeVJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TlRRelFUYzVPRVl4TXpBM1JUQXhNVGcwTmtaRk9FTXdORVF6UXpoRVJVTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pVME5UUTJSa1JFTVRNeU1EWTRNVEU1TWtJd1FrRkJPVEEwUkVVd1JqaEVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMU5Ea3lRVE5DUXpJeE56SXhNVVV3T0VGRVFVSXhOa1JDTmpkRk4wRkdORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5UUkRNMFk1UmpoQ1JFRkZSRVl4TVVFMVJFTTVOVGxET0RKQlFrTTVSVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qVTBSVFpDUkVReU5rSTROa1JHTVRGQk5EZ3pSRFpDTURNd056azNSa1JFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzFOVGRETkRKQlJUazVNakEyT0RFeE9FWTBNa05HUlRKQk9VVkNSVUU0TWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOVFU1UmtORU0wSTFNamRCUkVZeE1UZzVNVFJFUlVJeE16VXhOell4UmpFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalU1TWpZME5qaEVOakl4TlVVeE1URkJRa05HUlVSR1JUSTRPVFUyTmtJNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8xUVRoQ09UQTFPREkxTWpBMk9ERXhPRGhETmtKRU0wTXdSVFF6TWpsR1JUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TlVJMlJFUXlRamMwTlRnMFJFWXhNVUkzTWpRNFFqZEVSRVkzT1RSQk1VRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pWQ09FSTVNRFU0TWpVeU1EWTRNVEU0T0VNMlFrUXpRekJGTkRNeU9VWkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMVF6STJRMFl6UlRBeE1qRTJPREV4T0RoRE5rTkVORE5CUlRRMVEwWTNPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5VUkVSRFZGTURVMU5ESTBOamd4TVRrNE1qQkJORVkxTnpWQk9EVTBSa0U4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qVkZNMFpGTlRBME0wUXpSREV4UlRBNU9VVXlSVEl6UVVKQk0wRkJRMFE0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzFSVE5HUlRVd09ETkVNMFF4TVVVd09UbEZNa1V5TTBGQ1FUTkJRVU5FT0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOVVl5UTBZM05UazFSREl3TmpneE1UazVORU5GTmpoQk4wRTRRVGt4TXpjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalZHUWpJMFFqWkJOamRGT0RFeFJFWTVPRVF4UWtWQk4wTTFNVGRCUmpZMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8yTURZME1FRTFRelU0TWpaRk1ERXhPREpEUVVRek9FVkRSVVJEUlRJMk9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TmpJMk1FUkRNamd3UmpJeU5qZ3hNVGczTVVaR1JVVkZOVVV5TWtZd01FRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pZeU9FSTVNRFU0TWpVeU1EWTRNVEU0T0VNMlFrUXpRekJGTkRNeU9VWkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMk1rUkdNalExUkRnNE1qQTJPREV4T1RKQ01FVkJRakUyTkRkRU1EbERPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5qTTBSa1V4TURaR1JFRkJSRVl4TVRrMlFrWkJRakpCUlVOR1JUSkdRVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qWXpPRGc0TUVVNE1Ea3lNRFk0TVRFNU1rSXdRa0ZCT1RBMFJFVXdSamhFUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzJNemxDTVVSRU1qazNSRFZFUmpFeE9UWTBPRVk0TlRFeFFqYzBNVGRFTXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOak5CUlVZNU1UQTFNekExUlRBeE1UZzJOMFk0T1VJd01qRXhSVFJHTjBFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalkwTnpSRE9ETkROamczUTBSR01URTRSVEZHT1RsRU5qbENNelV5TlVORFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8yTkRnNE9EQkZPREE1TWpBMk9ERXhPVEpDTUVKQlFUa3dORVJGTUVZNFJEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TmpRNE9VSkJRekV5TmpJd05qZ3hNVGc0UXpaR05qY3dNelEyUlRNMVF6ZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pZME9FSTVNRFU0TWpVeU1EWTRNVEU0T0VNMlFrUXpRekJGTkRNeU9VWkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMk5FTTJRelZET0RNNVEwTkVSVEV4T0RBME1FTXlORFJDUTBGRk1FRkRNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5qWTRPRGd3UlRnd09USXdOamd4TVRreVFqQkNRVUU1TURSRVJUQkdPRVE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qWTJSVEUwTkRKR05VWXlNRFk0TVRFNU1UQTVPRGN4TURNeE1UQkNOVFJGUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzJOell6T1RjNU9EUTROVEV4TVVVeFFrTkZOMEk0UWtFek16TXlNREV3UWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOamM0T0Rnd1JUZ3dPVEl3TmpneE1Ua3lRakJDUVVFNU1EUkVSVEJHT0VROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalkzUlVZM1JEQkdNVE5GTlVSR01URTVORE14UVVReVJqRXpRVEEzUXpZMlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8yT0RoRk1EWTJRelJDTWpBMk9ERXhPVFl6UTBZeVJqVXlNMFk1UVRVeE1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TmpnNVFqRkVSREk1TjBRMVJFWXhNVGsyTkRoR09EVXhNVUkzTkRFM1JETThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pZNVEwTkZPRFZDT1VZMlFrVXdNVEZCUkRNNFFUVTJNMFk1TkRNMU5qUXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMk9VUXpNekEwUWpFNU1qQTJPREV4T1RFd09VSTFRMEkyT0RnMk1qZzROand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk5qbEVRekJFUlVWQk4wVTJSVEF4TVRrNU5VVkROVGRFTVVKRU5qQTNRVGs4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qWTVSVUkwTXpSR016QXlNRFk0TVRFNU1UQTVRak5EUVVWRk5URkZNRUkyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzJRVEk0TkVVd09URkJNamsyT0RFeE9USkNNRVExTTBaR056a3dSamcxUWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOa0ZFTWtSRU1UUXlOa05DUkVZeE1Ua3lNRGRHUmpZek1VVXpNVE5ETVVVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPalpCUlVZM1JEQkdNVE5GTlVSR01URTVORE14UVVReVJqRXpRVEEzUXpZMlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8yUWpsQlJrWTJOVEl3UkVGRVJqRXhRVVF5UWtOQ1JqRTVRekF5UmprNFF6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TmtNeFJEUkRSa0pFT0VNNFJFWXhNVGc0TkRsRk1qRTNOalEzT1RaQlJUZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2paRFFVRXlNalUxUTBZMU4wVXdNVEU0UmpZeFFVSkJRVEV5T0RGRk5FVXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvMlJUSTRNa1JEUVRkR01UZEZNREV4UWpBM016azROalpGT1VGRU1FTTRNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk56QkdORVkxTWtGRU9EY3hSVEV4TVVGRE5FVTRSalF3T0VZMk5FUTRRak04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qY3hNRUUzTkRBd1FUaEZRa1V3TVRGQ09UYzJSRFU1TTBVMk5EWTVNREUxUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzNNVEkxUXprNVJURXpNakEyT0RFeE9ESkdSVGs0UlVZM1JqRTRRa1l4UkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOekUyTWtFeE1ERXhNekl3TmpneE1UZzNNVVpEUkRJeE9UbEJSREUyTjBVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamN5TVRkQ05qZ3pORE15TURZNE1URTRRVFpFUlRjMU1ESXdNams1TkRJelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8zTWpZek56azRRekJCTWpBMk9ERXhPVEpDTUVGR1FUQkNSRFk0UVVZMlFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TnpNeE5qazROVGszUmpJd05qZ3hNVGt4TURrNFFUTTNNREE1UTBKQ1FVWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pjek9VUTNSVGxHUlVKQlJFUkdNVEZCUVVSRlFVUkJNelUyTWpJeU1EZ3pQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvM05FWXpNMFZEUlVSQ1FrRkVSVEV4T1RFMk1EbEdSRGMxT0RrMk5rUTJORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk56VTBRMFpGUXpoRVJVTXlNVEZGTVVGRVJFRkVOelJDTVVNeVF6WXhPRVE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qYzFPRUUxTkVWQ1JrRkdORVJHTVRGQlJEZENSREUyTkRJNFJFUTBPRUV4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzNOVVJGUkVNeU5UTXhNalEyT0RFeE9FSTNNa1JGTWtNMlFqRXdOREkzTkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOell4TjBJMk9ETTBNekl3TmpneE1UaEJOa1JGTnpVd01qQXlPVGswTWpNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamMyUmpSR05USkJSRGczTVVVeE1URkJRelJGT0VZME1EaEdOalJFT0VJelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8zTnpBMU9FVTRNVEF5TnpWRVJqRXhPVEJCUVVRNE5UWXpRelV4TWtNd1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TnpjM01UUTBNMFUyTmpJd05qZ3hNVGhCTmtSRk56VXdNakF5T1RrME1qTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pjM09FWkNSRFkwUXpReU1EWTRNVEU0T0VNMlFrVkNOekExTmpJd01rUkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvM09EZ3lNREJDTXpNeU5qRkVSakV4UWpNNFJqazVPRGczTlVORE9EWTFORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk56ZzRRVVkxT0VORVF6bEdSRVl4TVRoRE1EQkRNME01TmpoQlFrUkRNRFk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qYzVNalV6TXpaR056a3lNRFk0TVRFNFJqWXlSa0l5UmpnMk5qRTRRekk1UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzNPVGM0TTBSQk9USTRNakEyT0RFeE9URXdPVVJHUTBZd04wVTRRa1JFTVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOMEUxUkRCRk1VRTFRakk0TVRGRk1UZzJRek5FUXpFMk5EY3hNa0UwUmpVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamRCTlVRd1JURkZOVUl5T0RFeFJURTROa016UkVNeE5qUTNNVEpCTkVZMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG8zUVRWRU1FVXlNalZDTWpneE1VVXhPRFpETTBSRE1UWTBOekV5UVRSR05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2TjBKRU1rRTNNVGMyUXpNMFJUQXhNVGd6UXpFNE9FTXdRakJFUVRSRFFVRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pkRU5VVXhRamhCUlVGRlJrUkdNVEU0UVRsRVFVWTNOVUZCUkRNMFJUZzVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvM1JFRkJOVFF3UmpFeE1qQTJPREV4T1RFd09UZ3lPRFl5UWpReVJqZERORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk4wVTVOMEk0TnpNMk9EWXhSVEV4TVVFd01qZEJRelkwTlVZelFrSkRRVUU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qZEZSVUV6UlVaRVFqY3lNRFk0TVRFNU9UUkRRMFExUmpBeU1rVXhSRUkyUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzNSakUxUXpCRFFURTFNakEyT0RFeE9FRTJSRVUzTlRBeU1ESTVPVFF5TXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZOMFk1TjBJNE56TTJPRFl4UlRFeE1VRXdNamRCUXpZME5VWXpRa0pEUVVFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamRHT1VNMU0wRXlNVEV5TURZNE1URkJRMEkyT0ROQlJUUkVSVEkyTUVReFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG80TUVVMlEwVXdOa1ZFTmtGRk1qRXhRVEEwUkRoRE1ERkVSVEUwTkRVME16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T0RFMk5rWTVORVk0UlRWQlJFWXhNVUl5UVRoRU5VTTFOREl5TmtJNFJEQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pneE9UZENPRGN6TmpnMk1VVXhNVEZCTURJM1FVTTJORFZHTTBKQ1EwRkJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNE16RTFRekJEUVRFMU1qQTJPREV4T0VFMlJFVTNOVEF5TURJNU9UUXlNend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk9ETTJOVGt4TVRZMk0wTkZNVEZGTUVKRk9VVTROVVkyUWtJMk4wTkZSVU04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qZzBRalF4TWtVMk16Z3lNRFk0TVRFNE1Ua3dPRVJFUkVNMVF6ZzNRMEV4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzRORU0zTmtVMVEwRTJNVVZGTURFeE9VSTJNa014UVRjeVEwUkVRa0l5UkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZPRFV5TmpBd1FqWTRRamhDUkVZeE1UazRPVFk0UkRoQ1JrRTVRVEJETVRFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamcyTVVOQ01USTVNVEUyUTBSR01URkJNRGd4UkVGRE5qVTFORGxHUmtZNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG80TnpBeU1qVkVNakJGT1RSRVJqRXhPVFZCTlVaRE5VTXpNVFpEUXpReE9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T0RkRE1ESXpNalU0UXpjelJURXhNVGcyTlRjNFF6TXpNa1UwUmpWRE1qSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2pnNFFURXlNekV4TmpSRU56RXhSRVpCTmprM09EVXlNVVEyTUVSR05EWXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNE9VVXpOa1pHUVRkRU1UUkVSakV4T1RkRE9EbERPRVpHTVRkQ01rUTBORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk9FSXdNVVV6TkRFM1FUSXdOamd4TVRnNFF6WkVRekF5TVRkQk4wSTFSRE04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qaENNRGRHUTBaRE5UWXlNRFk0TVRGQ01VRTBSRVZGTmpRME1UTXdPRE5FUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzRRamt3T0RVNFJrSTFOek5FUmpFeFFrWkNRa1l3TURjMU9VRXpSRFExTWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZPRU14TjBOQk1qQkVSakpFUlRJeE1VRTVOVFJETmtVelFrWXdNVEEzTlVROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamhFUXpNd04wSTRNamt5TURZNE1URTRSall5UXpBM01VUkNPVFpHTXpBNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG80UlRVNE5qZzNPVFZCTVRWRk1URXhRVUpEUmtWRVJrVXlPRGsxTmpaQ09Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T0VWRFJrUXpORVF3TURJNU5qZ3hNVGt4TURsQ01rSXpRVFl4UmpRNFJqYzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2poR09URkZPVEEzTWpReU1EWTRNVEU0UmpZeVJqVXdRemN5UmpSRk1rWkdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNU1FTTFSRFV5TmpZME56bEVSakV4T0RZMVEwVkZSakE1T0RVeFJrUTNPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk9UQkZORGRGTmprMk1qY3hSRVl4TVRnek1URkNNRU00TUVZMU9VTkJNVE04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qa3hNVU0zUmpKQk9FRXlNVFk0TVRFNE9ERXdPVVk1T1RjelJEUTJSakpCUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzVNVVUxUlVJeFFUSkRNakEyT0RFeE9FWTJNa0V3TVRBNE1FRkVNRVE0TVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZPVEZHUmpBMU1VVXdSa1F6UkVZeE1VSXlSREZETlRGR05UbENOVVpDTWprOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamt5UlRnMk9FUXhNMFV5TURZNE1URTRSall5T1RVNU56ZzFNVFkwUXpVd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG81TkRoR05UVTRRVVJEUkRORVJqRXhPRUl5TTBWRE1qVkdSakZCTkRVM1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T1RSQ05URXlNekEyT0RJd05qZ3hNVGhCTmtSRk56VXdNakF5T1RrME1qTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2prMk56STBNakpFUkVKRFJFUkZNVEZCUWtaQlFUQkVPRFl3TTBFNVFVRXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNU56UXdaR0V3WXkxak1EZ3pMV0ZqTkRVdFlUWmlOQzAyTTJWbU1EVXdNREZoWW1VOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamszTlRjd05UVTRNVU15TURZNE1URTROekZHUmpkQ01UZzRNRVk1UmpVeVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG81T0VVek9UQXpPRE0xTWpFMk9ERXhPVEV3T1RrelJFWkdRelkyTjBZeU56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T1Rrek5ETkJORGN6TWpJd05qZ3hNVGczTVVaRk9FUkVNak0wTUVNd1FqQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2psQ01FSkRPVEJGTnpaQ05FUkdNVEZCTXpZMVJVWTFNalUzTnpZeU16Z3hQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNVFqUXpSa1pCTUVGRk1qQTJPREV4T1RFd09VUTFNRVF4UmpRMU9EZzNSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNk9VSkJOVGxHT1ROQlF6SXdOamd4TVVJMFEwTkZPVGc0TUVFeFFqUkVPRE04TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09qbEVPVVpET1RFMlJqQXlNRFk0TVRFNU1rSXdSVE0xUVRVM1FrUkVPVEE1UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEbzVSRUUyTVRRek56UkZNakEyT0RFeE9URXdPVUU1T1VGQk1rSTJOekJHTWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZPVVV3UVRJMFJrTkVOREl3TmpneE1UZzRRelk1TnpaQk5VVTBRVVkwTkRNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPamxGUkRaRU56SkRNekl5TURZNE1URTRSall5T1VVMk1FSXdOVGxGTURrelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRG81UlVZM1JEa3lSa016T1RKRVJqRXhRVVZFTmtFMU9VSXdSVVkzTVRFME9Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2T1VZNE1qSkJSRU5HTUVRM01URkVSa0pGT1RaQlFUQkdSa1UxTkRZeVFUSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2psR09ESXlRVVUwUmpCRU56RXhSRVpDUlRrMlFVRXdSa1pGTlRRMk1rRXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRvNVpUSTRZVGd6TlMweU56RTVMV1kxTkRJdFlqVTJOaTB6TnpjNE1qQXlZekF6TXpBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0V3UVRaQlJUSTFNakF5TURZNE1URTRRVFpFUVVOQlFVRTBSRVEyTURJd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBCTUVaQ1JFRkdOelZDTWpneE1VVXhPRFpETTBSRE1UWTBOekV5UVRSR05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UVRCR1FrUkJSa0kxUWpJNE1URkZNVGcyUXpORVF6RTJORGN4TWtFMFJqVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tFeE5FWTVRVEkxTWpFeU1EWTRNVEZDTVVFMFJFVkZOalEwTVRNd09ETkVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwQk5rSTVSREl5TkVNeE1VTkZNREV4UWpBd1EwSTBOemhHUmtJMk5UY3dSand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlFUYzBOMFkwUVVZeFJESXdOamd4TVRoR05qSkVSREpCT1RJNE9UTXdPVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rRTNRamN4TWpnNU1VVXlNRFk0TVRFNU1rSXdPRVZCUWtWQ1JUWXlOemd5UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEJOMFU0TjBFeVJqazFPRU14TVVSR1FqYzNRMFl6UVVRMFJqQXdRakJGUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRVGd6TnpoQk1UTXpOa0V6UkVZeE1UbEZSVGM0UkRNNFJUTXdRVUZHTmpNOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0U0TjBNd04wSkZRVFl5TURZNE1URTRSRUpDUkVRek5URTNNalUxTXpWR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBCT1RFNU16SXhNekV3TWpBMk9ERXhPRVkyTWtWRE5qVkJRVUV4UTBWQlJqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UVVGRk56WTRSa1k0UkRaQlJFWXhNVGd5T1RCRFFrSTVORU0xUTBZMFJqQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tGRE5VWTNRekpETlVReU1EWTRNVEZDTkVZeVFrUTBSRFpCUkRWRU1ETTVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwQlJETTNOek5FUkRsRU5UTkVSakV4UWpoQ05FSTBPRU5GUWpjM01FWTJPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlFVUTJRVGhHTTBReU9USXdOamd4TVRoR05qSkVNalZGUmpsQlJEWkRNa1k4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rRkZNVGt6TWpFek1UQXlNRFk0TVRFNFJqWXlSVU0yTlVGQlFURkRSVUZHUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEJSak5HT1RSR1F6aEJPREV4TVVSR1FqVTRSVUUxT1RreVFqVXhOVGczUXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRakF4UlVGRVJVRXhSRUpDUlRFeE1UaEROakZETTBaQk4wVXlPVFkyTWtROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0l3TlVZM1F6SkROVVF5TURZNE1URkNORVl5UWtRMFJEWkJSRFZFTURNNVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBDTURneU5EY3lRamhCTWpBMk9ERXhRVVpHUkVORk9FVXpRamRET0RNeVFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UWpBNVF6ZzNORUV6TjBSQ01URkZNRGxCTVVGRlEwSTJSamhHTXpNM01EYzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tJeE1VUXpOakJETWpWR01VUkdNVEU1TkRRMVFUVkdSRGc1TlVRM09ERkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwQ01UZzFORVJDTmtGQ016ZEZNREV4T0VJelJEbEVOelU1TmpVMlJqazBPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlFqSXhPRU5DTkVVMVFqSTRNVEZGTVRnMlF6TkVRekUyTkRjeE1rRTBSalU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rSXlNVGhEUWpVeU5VSXlPREV4UlRFNE5rTXpSRU14TmpRM01USkJORVkxUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcENNakU0UTBJMU5qVkNNamd4TVVVeE9EWkRNMFJETVRZME56RXlRVFJHTlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRakpGTWpZNE5FTTBPVEl5TmpneE1VRkNNRGhCTjBZek1FVkZOVE15UkRjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0kxTXpRek5rUkJSVGd5TURZNE1URTRPRFk1T0RORVF6aEROVUV6TUVJelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBDTlVJd1F6STBOalV4T1RoRVJURXhPRFl5TmpnMk1UbEJSamRFTmpFNE1Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UWpZd09VWTROamN6UkRJd05qZ3hNVGhFUWtJNVFUSkNSRGczUkRjNU1qRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tJMk5EUTJPRVJFTWpBeU1EWTRNVEU1TWtJd1JrSXpOamd3T0RJMVJUSTRQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwQ05rUkNNRUl3TURkRE1qQTJPREV4T1RkQk5VWkZRemszUlRJNU0wSTFORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlFqWkdNamN4TVVKQ1JVSkNSRVl4TVRrMlJqVkNORFJFTTBFNVFrUTJSalk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rSTNORUZEUlVVelFqZ3lNRFk0TVRGQ1JqTXdPVFF4T0RkQlJqZzBNakZEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcENOMFF3TmpVME9VUkdNakEyT0RFeE9EY3hSa1ZETjBNNU5qSTVNalpGTkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRamhDT1RreE1rSTVRVFpHUlRFeE1UZzJNRFZCUXpSRk0wWXdSVGd4T1RFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0k1UXprNU1qTTROalV5TURZNE1URTRSRUpDUkVRek5URTNNalUxTXpWR1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBDUVRrd00wVTFNekZETWpJMk9ERXhRamcwTUVVd01FVTJRVFJHTmtaRVF6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UWtJek5UWTFSVGd4TlRJd05qZ3hNVGt5UWpCQ1FVRTVNRFJFUlRCR09FUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tKQ1JFUkNNekV5UVVJeU1EWTRNVEZCUVVSQlJUVTBPVVEyTXpNMU5Ea3pQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwQ1EwTTRPVEkwTmpNeU1qQTJPREV4UVRFM09FSTBPRFl5UVROQlF6SkROend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlFrTkRSa1EyTURWRk5UWkRSVEF4TVRsRk16STVOREkyUXpSRE5URkdSa004TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rSkVRek00UVRSQk16RXlNRFk0TVRFNU1UQTVPVGM0T1VJMk0wWXdORFZCUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcENSRVJFUWpNeE1rRkNNakEyT0RFeFFVRkVRVVUxTkRsRU5qTXpOVFE1TXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRa1U0TURWQk9ERTJOREl3TmpneE1Ua3lRakJGTXpWQk5UZENSRVE1TURrOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa0pHTUVaR01FVTFOakl4TlRFeFJUQTROVU14UkRGR09EQkdNVGN6UXpJelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBETURNd05EQkNSa1JHT1RCRVJqRXhRVVU0TWtOQ1FUZzRNRVl4TXpoR09Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UXpGQk9VUkdNVFJFUlRsRFJFWXhNVGc0TVRkRlFrVTJSVGcyTVRSRU5EazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tNeU16VTJOVVU0TVRVeU1EWTRNVEU1TWtJd1FrRkJPVEEwUkVVd1JqaEVQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRE1qWkRNRVEwT1RVeU5qZEVSakV4UWpKRk5VTTRRMEV5UVRJd1FqVXdNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlF6TTNNME5GUXpBek5qSXdOamd4TVRoR05qSkVNRVkzTURFd1FVTXdNa1k4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rTXpPRVl3UlVGRU5qY3lNRFk0TVRGQk1qWkZSVVl3UVRnMFFqa3dORFJEUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcERORGM1UmpJd05ETXdRVFpFUmpFeE9VTXpRVUk1TmtVMlFrTTRNRE5CUkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRelV5TXpVNE5FRTROVFF4UlRBeE1Ua3hSVGhGTnpnd05EWTVPREZDT0RrOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa00xTjBZeE1UYzBNRGN5TURZNE1URkJSVFUyUmpsRVJqRTBOVVJHUWprd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBETlRkR05UZzNORU5GTWpBMk9ERXhPRGhETmtaRFJUZERRell3T1VNek1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UXpWRk5USTNORVF3UlRJd05qZ3hNVGczTVVaRk1EUkZOMFpFTTBJMFJFTThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tNMk5rTXdSRFE1TlRJMk4wUkdNVEZDTWtVMVF6aERRVEpCTWpCQ05UQXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRE56RXhNRVUxUmpVd056WkVSakV4T0VVMk1VRkRSREUzT1VRd05qSTBORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlF6YzNSalU0TnpSRFJUSXdOamd4TVRnNFF6WkdRMFUzUTBNMk1EbERNekU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rTTRRek5CUkRCR09UZ3hNRVV3TVRFNVJUTkZSVVEyUkVFMU1rSkNNREl3UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcERPRVUxT0RaRVJqTTBNakEyT0RFeFFUZENRVVl6TVRGRFFUQkdRek5EUkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRemt3UXpsQ05qRTFRakl3TmpneE1UZzNNVVpHUTBWQ016TXlOalZDUTBROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa001TlRJNE1UWkVPRE15TURZNE1URkNRME5FUlRFNE4wSTBPVU5CTVRsRFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBEUVRNeE9VRTVOa05DTWpBMk9ERXhPRGhETmtaRFJUZERRell3T1VNek1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UTBFNFFqQXpORE01TWpJeE5qZ3hNVUZDTmpWQk1qQkVOekF6TlRWQ05rSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tOQlFqSTJRak16TkRkQ1JrUkdNVEZDTWpJM1JqSXlRVU5FUkROR05qbEZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRFFqZEdOVGczTkVORk1qQTJPREV4T0RoRE5rWkRSVGREUXpZd09VTXpNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlEwTTBPVUU0UmtNMk1UazFSRVV4TVVFNU4wWkdRVUU0TVRFME5UUTFNalk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rTkRORUZDTlRreFFUZEVRMFJHTVRGQ1JqYzVSa0UyTWtJMU1VUkdOa00zUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcERSRGRHTlRnM05FTkZNakEyT0RFeE9EaEROa1pEUlRkRFF6WXdPVU16TVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZRMFJGT0RoQ1EwVTBRalpHUkVZeE1VSXlNVGhDTURCRU9EUTNSRU15T1RjOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa05HT0RneE5EVTJNRVF5TURZNE1URTROekZHT0RrMFJVSTFRak15TWpOQ1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBFTURnek5qWTRSalZDTWpneE1VVXhPRFpETTBSRE1UWTBOekV5UVRSR05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UkRBNE16WTJPVE0xUWpJNE1URkZNVGcyUXpORVF6RTJORGN4TWtFMFJqVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tRd09ETTJOamszTlVJeU9ERXhSVEU0TmtNelJFTXhOalEzTVRKQk5FWTFQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRU1qTkZOell4UlVNME1qQTJPREV4T1RFd09VRkRRMEZHT0RBNE5UbEdORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJESTVOamc0TURVd09ESXdOamd4TVRrNU5FTkZSREpGUkRBMk9FWkJOVFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rUXpORFV4UWpnd01VVXlOVVJHTVRGQ1FVSTVRekU0UTBGRVFrSTNNVUk0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEVOREExTkVWRE1URTVNakEyT0RFeE9USkNNRUpCUVRrd05FUkZNRVk0UkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSRFE1TTBRMU1ERTBNREl3TmpneE1UazFSa1ZDUWpnM09FUTVOREl5TlVROEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1EyUmpZNE56RkZORGt5TURZNE1URTRRVFpFUmtKRk1EUTFSRFE1TXpsQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBFTnpsRU1qUTBOekUxTWpBMk9ERXhPRGhETmtGRVF6bEZSVU14TWpnMk56d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UkVFMlJUWTRPVU15TURJd05qZ3hNVGczTVVaR1FqWkNRa1UzUmpaRlJFWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tSQlFURkVNVGs0UVVSQ05rUkdNVEZDUTBaRU9UTkZOelpCTUVSRE1rWTBQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRVFVSXlRVEpHT1VaQ056WkVSVEV4UWtGR05VVXhORE5DTUVJNE5rWkdNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJFRkRPRFV3TnpnMU5FUTFSRVl4TVVFd09UUkVSakF4UlRaRlJFVXpNakE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rUkNNVVUwUXpGRFJUZzNRVVJHTVRFNFEwSTNSa1ZCTjBORU56UkVNelZDUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEVRalpDUXpnMk1ETTVNakUyT0RFeE9FWTJNa1kyTXpoRlFUSTJSRVJFUkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSRVV6T0RKQ00wSTVSRFk0UkVZeE1VRkZRekZET0RKQ01EVXdSamc1TlRVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1V3TVVVNVJqUkdORVZCTVRFeFJUQTVNakl3UkRsRlJEazNOamc1UVRJd1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBGTURKRE1Ua3dSVFF5TmtWRVJqRXhRakkwUkVVNU1EaEJRME5CUXpBNU5Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UlRBMlJqYzROa1JHUTBJeFJFWXhNVGs0UkVaQ01qQkdPVEJFTTBGQk5rVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tVd056bEVOamcyUlRGRFJURXhSRVpDUlVORVJESkVSRVV3UWpjeE9EVXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRk1FVXpNa0U0TXpORE1qQTJPREV4T0RoRE5rSkZRamN3TlRZeU1ESkVSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJUSkdNalpHUmpRMVJFSkdSVEV4TVVJNU9VUkdPRVUzTmtZNVFVSkdOelE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rVXpNRVUwT1RBeVFrRkRSa1JHTVRGQ01UUkZSVVE0T0VRME9FRXhNa015UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEZNekl3TjBWRlFqQTJOemt4TVVVek9UUTVRemxDTWpGRFFUZEdNMFl6UlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSVFF5T0RneVJUaEdOa1l5TVRGRVJrRTBNVGhCUlRCQ00wRTROekkwT1VZOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1UwUmpaRFJrRXdNa1l5TURZNE1URTRSall5UWpVeU1FRTFSVVUwTkVORVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBGTlRFeU1FTTVRekJGTmtKRVJqRXhRalJHTVRnM05UaEZRMEl6TURJMlFqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UlRWQk1VVkRNemN5TWpJd05qZ3hNVGs0UVRkRk9FRTVSa00zTlRjM00wUThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tVMlFVRTVNVFZDTWpVeU1EWTRNVEU0T0VNMlFrUXpRekJGTkRNeU9VWkZQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRk5rVkZRVU0yTmpNNE1qQTJPREV4T1RFd09VVTBRVFF6UTBVMU16QkVNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJUYzBOME13Umpnd1JqWTFSRVl4TVRsQk9UUkROVVE0UkRFNE9EazFOVUk4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rVTNPVFF3TnpoRVJFVTJORVJHTVRFNFFUVXpSRFJGUmtVeU1FTXpOVEU0UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEZOMFJFTlRJMk5ERkJNVGxGTURFeE9UVkdNVUpCTkRjMFJqSkRNRUpCUlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSVGRGUlVGRE5qWXpPREl3TmpneE1Ua3hNRGxGTkVFME0wTkZOVE13UkRBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1UzUmpsR1EwWXhNakJGUWtSRk1URkJNVUpGUWpsR05EazJNamcwUVVRNFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBGT0RBeE4wSkVOVFZCTXpreE1VVXdRVGxFTkRsQk9VVkNSa1UzT0RReU5Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UlRoQlFUa3hOVUl5TlRJd05qZ3hNVGc0UXpaQ1JETkRNRVUwTXpJNVJrVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tVNFF6RTFOakJGT1RJeE4wVXdNVEZCUmtaQ1FUWTFOREU1UVVZeE1FTkNQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRk9UWkRNMEZFUmpJeU5EUkZNREV4UVRKRE1rUXdRakJDT1RKRE56Y3lOend2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJVRkJRVGt4TlVJeU5USXdOamd4TVRnNFF6WkNSRE5ETUVVME16STVSa1U4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rVkJSVEF5UmtFNE9FSXlNRFk0TVRFNFJqWXlRVEF4TURnd1FVUXdSRGd4UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEZRa0V3UXpWRFJERkNNakEyT0RFeE9EY3hSa1pDTmtKQ1JUZEdOa1ZFUmp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSVU5CUVRreE5VSXlOVEl3TmpneE1UZzRRelpDUkRORE1FVTBNekk1UmtVOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1ZFTjBZeE1UYzBNRGN5TURZNE1URkJNakk1UVRsQ01rWTNOVGt6UkRKRlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBGUlRsR1JESTVNVE5FTXpneE1VVXdPVGxGTWtVeU0wRkNRVE5CUVVORU9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UlVWRE1UVTJNRVU1TWpFM1JUQXhNVUZHUmtKQk5qVTBNVGxCUmpFd1EwSThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tWR01UVTNPRFZETlRneU1EWTRNVEU0TnpGR1F6bEdOREExTVVORlFVVXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwRlJqZzBOREZETURZMVJUZEVSakV4UWpoQlFrSkNSamRHUmtFMlFqQkRORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJVWkRPVVF4UkRRM04wSXdSRVl4TVRoQ05ETkRSalkzUWtVelF6bEdOMFE4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rVkdSa0V6UXpaR05UVXlNRFk0TVRFNFFUWkVSVE5CUXpsQk5FVXdPREpGUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdNREl3TWpVeVJEUXdNakEyT0RFeE9EY3hSa1U0UkVReU16UXdRekJDTUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSakEwUkRNMVF6WTBNa0k0UkVZeE1UaERSVUU1UlRVeVJURkVNRVpCUWpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1l3TlVVMU1VUkROVUl5T0RFeFJURTROa016UkVNeE5qUTNNVEpCTkVZMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHTURWRk5URkZNRFZDTWpneE1VVXhPRFpETTBSRE1UWTBOekV5UVRSR05Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpCRFFVRTRSRU5FUlRRMVJFWXhNVGc0UkRoQ05USkdNelpHUWpJMlJrRThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZMU5ESXdOVVJHTjBWR04wUkVNVEZDTnpKQ1F6VTJSRFU0UVRZek9EYzJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR05UVTFNMEU0TURCRE1qQTJPREV4T0VZMk1rRTFPRFkzUXpJMk1qUkNSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqVTNNek0zUmtFeFJESXdOamd4TVRnd09ETTRORVF3UmpGRU5qWTVSVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTFRemhDUXpCRE1UUTBSa1V3TVRFNU16WkZRamt3TkVFMk16a3dRekUxUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdOVU01TkRsRU5FWkNOamhFUmpFeFFrSXlOemxHT1RoR01EWTNNell3UVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSalkxTXprNFJVVXdRalpCUlRBeE1VRXhOakZCTjBaRk1EYzRNREEyTTBFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1kzTlRORk9VTTJSRVkzTVVVeE1URkJRelJGT0VZME1EaEdOalJFT0VJelBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHTnpWRU9URTRRVEV4TWpBMk9ERXhPVEpDTURoQ1JVVXlPVU0zTlVSRU1qd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpjM01rUXlRMFUyTlVFNVJFWXhNVUZFUlVJNE1qUkVNME0yTWpWR05UZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZM056UkdPVVpFUkVFeU1EWTRNVEU0TlRkRlJqVXhSRGM0T0RnMk9UazJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR056ZEdNVEUzTkRBM01qQTJPREV4T0RBNE16aEdRa0ZFTVRJNVJqSXpPVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqYzNSakV4TnpRd056SXdOamd4TVRnd09ETkdOVU14UmpSQlJUazJNakU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTNOMFl4TVRjME1EY3lNRFk0TVRFNE56RkdSRFpETmtJelFUVXhSRVF3UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdOemRHTVRFM05EQTNNakEyT0RFeE9EaEROa0l3TjBORE9UVkRNRFV6T0R3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSamMzUmpFeE56UXdOekl3TmpneE1UZzRRelpDTXpCQk1qVTVPRUl5TkRnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1kzTjBZeE1UYzBNRGN5TURZNE1URTRRVFpFT1RCRk1VWkRSVUZCUXpVMVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHTnpkR01URTNOREEzTWpBMk9ERXhPRUUyUkVZME16TTROelV3TUVNeU1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpjM1JqRXhOelF3TnpJd05qZ3hNVGhFUWtJNE0wVkRPRVpGTnpaQk5qazhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZM04wWXhNVGMwTURjeU1EWTRNVEU0UkVKQ1JFRTNRamcyT0VJeE1qUXdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR056ZEdNVEUzTkRBM01qQTJPREV4T0VSQ1FrWXdPRFl3UmpkRlJFVkdNRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqYzNSakV4TnpRd056SXdOamd4TVRoR05ESkdNVVE0TVRBNE1ESTBSakU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTNOMFl4TVRjME1EY3lNRFk0TVRFNU1UQTVRemN4UTBZMlJEbEZNa0UwUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdOemRHTVRFM05EQTNNakEyT0RFeE9URXdPVVUyTWpaQ05FVkVNVU16UlR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSamMzUmpFeE56UXdOekl3TmpneE1Ua3hNRGxHTkRJeU1EQXdOakExTlRFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1kzTjBZeE1UYzBNRGN5TURZNE1URTVNVEE1UmpoR1JUSTNOekU0UkRWQlBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHTnpkR01URTNOREEzTWpBMk9ERXhPVEpDTUVNd05FVkNPVEUyT1RVeVJUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpjM1JqRXhOelF3TnpJd05qZ3hNVGswTlRkQ1F6UTBRekZFT0RVMVEwWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZM04wWXhNVGMwTURjeU1EWTRNVEU1TlVaRlFUUkVORGMwUTBWRE0wRXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR056ZEdNVEUzTkRBM01qQTJPREV4T1VaQ1FqZzJNMFpFTlVRd05qWXlRand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqYzNSakV4TnpRd056SXdOamd4TVVFeE56aENORGcyTWtFelFVTXlRemM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTNOMFl4TVRjME1EY3lNRFk0TVRGQk1VRkdRalF4UlRsRU1FVkdOa0k1UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdOemRHTVRFM05EQTNNakEyT0RFeFFUWXhNMFpETURkRE0wUTBSVVZDUVR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSamMzUmpFeE56UXdOekl3TmpneE1VSkNPRVE1TVRKRFF6RTBSVFZET0RBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1kzTjBZeE1UYzBNRGN5TURZNE1URkNSRVZCUkVVMk5VRXpNRE01UlVNNVBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHTnpkR01URTNOREEzTWpBMk9ERXhRa1k0UlVGQk5rVXlRMFkyTWpVMFFUd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpkQk1qY3dRekpCTjBFelJFWXhNVGxHTVRNNVFqazFNakkxTVVJNU9URThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZNE1EWkdSREV6TTBZNFJrUkdNVEZCTTBKRlFqSXpNalk1TlRjME9USTBQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR09EVTFNMEU0TURCRE1qQTJPREV4T0VZMk1rRTFPRFkzUXpJMk1qUkNSRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqZzNSakV4TnpRd056SXdOamd4TVRnd09ETTRORVF3UmpGRU5qWTVSVEU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTROMFl4TVRjME1EY3lNRFk0TVRFNE1EZ3pPRFpHTnpjMFJVUkJOelUzUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdPRGRHTVRFM05EQTNNakEyT0RFeE9EQTRNems1TXpNeE9ERXdRemM1TUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSamczUmpFeE56UXdOekl3TmpneE1UaEdOakpCTkRSRFJUUkVSalk1UVRnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1k0TjBZeE1UYzBNRGN5TURZNE1URkJNVE00UkRnek56UTVNRVUyTkRNM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHT0RkR01URTNOREEzTWpBMk9ERXhRVU0xT0VNMk9VUTBOamN4TWpNNE16d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmpnM1JqRXhOelF3TnpJd05qZ3hNVUk1UWpGRVJUTkVSalk1TXpjd09FWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2tZNFFqRXlNREJGUXpneU1EWTRNVEU0UmpZeVFqVTFRemswUWpWR01VTkJQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR09UYzBSRGhCUkRVd1JUTkVSVEV4T1VJNU9FRXdSREZHUTBKQk1UUTBORHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJqazNSakV4TnpRd056SXdOamd4TVRnd09ETkZRamd6UXpZeVFrUTNRekU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWTVOMFl4TVRjME1EY3lNRFk0TVRFNE56RkdRekUwUWpVd05ESTFOalEwUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdPVGRHTVRFM05EQTNNakEyT0RFeE9EY3hSa1ZDT0VSQ09ESTBRVEl6UXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSamszUmpFeE56UXdOekl3TmpneE1UaEJOa1JHTVVWQ01qVTVRelpETWprOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1k1UkRKQ1F6QkJNRE01T0VSR01URTRSVEJFUmtKRFF6TTVSakZFTnpCRFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHUVRFek1FUkdPRE15TWpFMk9ERXhRalpFTURrek5EbERRMFkwUWtRME9Ed3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmtFeU4wRXlSVUUxTWpJeE5qZ3hNVGhHTmpKQ1JVSXdOa05DT0RRd01ETThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2taQk5UTkZPVU0yUkVZM01VVXhNVEZCUXpSRk9FWTBNRGhHTmpSRU9FSXpQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR1FUZEdNVEUzTkRBM01qQTJPREV4T0VJMU5VUTRNVEl5UWtRMFFrSkVRVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJrRTNSakV4TnpRd056SXdOamd4TVRreE1EazRNelpDTjBFek5EZEJOems4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWkJOMFl4TVRjME1EY3lNRFk0TVRGQk9UWTBRVE14UkVNMU5rUkVSakpHUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdRakJDTkRFNFJFWTROemhGTVRFeFFrTXlNRVk1UVRReU56UTVNa1JCUXp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSa0kzUmpFeE56UXdOekl3TmpneE1UazNRVFU0UXpnM1FqVTRSalJFTmpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1pDTjBZeE1UYzBNRGN5TURZNE1URkJRakE0UkRrMVJVTkVNamczTURRMFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHUWtNMFJESXdOREJCTWpBMk9ERXhPVEV3T1VORE5qUXlRelEwUlVNd1F6d3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmtKR01EQXpNRUpFTURrMFJFWXhNVUk1TWpSR1JrTTVOalJHTWtZd1FVVThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2taQ1JqazVSVUkzTlRZM1JFUkdNVEZCTnpSRlJUWkRSVEF6T1RrME5ESXlQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR1F6ZEdNVEUzTkRBM01qQTJPREV4T0VSQ1FrRkJOalV3UmpORU9URTVPRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJrTTNSakV4TnpRd056SXdOamd4TVRsR016WTVORU14TXpFeE1rUTFPRUU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWkVOVE5GT1VNMlJFWTNNVVV4TVRGQlF6UkZPRVkwTURoR05qUkVPRUl6UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcEdSRGRHTVRFM05EQTNNakEyT0RFeE9ESkdSVGs0UlVZM1JqRTRRa1l4UkR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZSa1EzUmpFeE56UXdOekl3TmpneE1UaEVRa0pGTkRoR05qWTNRekEyT1VFOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPa1pGTmpsRlJEVTFNMFF5TURZNE1URkNOa1k1UkRkQk1qaEZOVE5FTlRjM1BDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBHUlRaQlFUQTVPREU0TWpBMk9ERXhPRGN4UmtNNVJqUXdOVEZEUlVGRk1Ud3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwUG5odGNDNWthV1E2UmtVM1JqRXhOelF3TnpJd05qZ3hNVGt5UWpCRU56SXpOelk0UkRCRFJUWThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT2taRlF6VXlSRE01TnpZMk0wUkdNVEZDTWpZeE9UUkVSREV6TkRJM1JqaENQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwR1JqTTRNVGxHTmpFM01qQTJPREV4T0VZMk1rUTJNMEpET1VGRlF6ZEVNVHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlJrWTFOelk1TTBFd01UaEZSRVl4TVVKRlFrSTRNelZCTTBFeFJETkRRVVU4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09rWkdRVEEzUWpBd1FVRTNPVVV4TVRGQ05FUkVPVFJDUXpNd01URkROREF5UEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHaytlRzF3TG1ScFpEcGlZVGhqTXpkak55MWlNVGN6TFRrME5EQXRZV1JqWXkxaU5qUXhORGRtT1RWaE5UZzhMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVQ1NGJYQXVaR2xrT21KbE5EVmhNakEyTFRjM01UVXRNMlUwTlMwNVlXVmxMVE0wWWpKaE5XVXlaalkzTWp3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBQbmh0Y0M1a2FXUTZZelJrT1RnMU9EQXRPV0V4WlMwNU9UUXhMV0V4WkdNdFpqUXdNV1JsWldNelpUVXhQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrK2VHMXdMbVJwWkRwa09UTXlNalEwWXkwNVl6ZzFMVEpoTkRjdE9UWTJNQzAyTmpFeU1tWTNNalJqWWpnOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhVDU0YlhBdVpHbGtPbVJsTW1Wa1pXRTJMV1kwWVdZdE0yUTBNaTA0T1RrNExXRTFZbU5tWldFeU1qQXdOand2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cFBuaHRjQzVrYVdRNlpHWmlNMkUwT1RFdE9UZ3pZaTAxWXpSa0xXRm1PV0V0WmpKaFpUVXdOamcwWWpabFBDOXlaR1k2YkdrK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2srZUcxd0xtUnBaRHBsTkRNeFpUWm1OaTFqWkdNM0xUTTVORFl0WVRNeVlpMDNaV0UwTjJKbE5UbGpNamM4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FUNTRiWEF1Wkdsa09tWTFPR0l5Tm1aakxUY3hNV1F0TnpRMFpDMWlPR05oTFdJeU9ESTNOMkl5T1dVelpqd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcENZV2MrQ2lBZ0lDQWdJQ0FnSUR3dmNHaHZkRzl6YUc5d09rUnZZM1Z0Wlc1MFFXNWpaWE4wYjNKelBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21abVlXTTVNek5sTFdZek56UXRNelkwWlMxaE5HVTFMVE0zWWpGaU5qZGlOams1WkR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK2VHMXdMbVJwWkRvd1l6STJaakV5Tnkwd1pESTRMV0UzTkRNdFltTXhZeTFoTkRrMU1XSmlaV1poWWprOEwzaHRjRTFOT2tSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK2VHMXdMbVJwWkRveE5EY3haR1JsWVMwNE5Ea3pMVEpsTkRrdFlqZGtOeTA1Tm1KalpqQmtObVV6TldNOEwzaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tocGMzUnZjbmsrQ2lBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2VTJWeFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNWpjbVZoZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBwYm5OMFlXNWpaVWxFUG5odGNDNXBhV1E2TVRRM01XUmtaV0V0T0RRNU15MHlaVFE1TFdJM1pEY3RPVFppWTJZd1pEWmxNelZqUEM5emRFVjJkRHBwYm5OMFlXNWpaVWxFUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2ZDJobGJqNHlNREUxTFRBekxUSTJWREV6T2pRM09qSTNLekF5T2pBd1BDOXpkRVYyZERwM2FHVnVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtjMkYyWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBsT0RZMk9EaG1OQzFoTnprMUxURTFORGd0T1RoaU55MWpOemxrWm1JeE5qTmtaak04TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFV0TURNdE1qWlVNVFU2TURZNk5UY3JNREk2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tUTBNelptWXpnMkxUUmpOMkl0Wm1VME1pMWhNMlZqTFdFMk1UUmhNRFJoWmpsaU5Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5TMHdOQzB3TTFReE16b3lOVG94Tnlzd016b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJQ2hYYVc1a2IzZHpLVHd2YzNSRmRuUTZjMjltZEhkaGNtVkJaMlZ1ZEQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21Ob1lXNW5aV1ErTHp3dmMzUkZkblE2WTJoaGJtZGxaRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzl5WkdZNmJHaytDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU52Ym5abGNuUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmNHRnlZVzFsZEdWeWN6NW1jbTl0SUdGd2NHeHBZMkYwYVc5dUwzWnVaQzVoWkc5aVpTNXdhRzkwYjNOb2IzQWdkRzhnYVcxaFoyVXZjRzVuUEM5emRFVjJkRHB3WVhKaGJXVjBaWEp6UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWkdWeWFYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmNHRnlZVzFsZEdWeWN6NWpiMjUyWlhKMFpXUWdabkp2YlNCaGNIQnNhV05oZEdsdmJpOTJibVF1WVdSdlltVXVjR2h2ZEc5emFHOXdJSFJ2SUdsdFlXZGxMM0J1Wnp3dmMzUkZkblE2Y0dGeVlXMWxkR1Z5Y3o0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG5OaGRtVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNk1UWTRORGt6WWpVdFpURTNaQzFtWlRRMkxXRm1ORFV0Tm1abE16azJNR1EyWlRFMFBDOXpkRVYyZERwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmQyaGxiajR5TURFMUxUQTBMVEF6VkRFek9qSTFPakUzS3pBek9qQXdQQzl6ZEVWMmREcDNhR1Z1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WTJoaGJtZGxaRDR2UEM5emRFVjJkRHBqYUdGdVoyVmtQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtjMkYyWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBtWm1Gak9UTXpaUzFtTXpjMExUTTJOR1V0WVRSbE5TMHpOMkl4WWpZM1lqWTVPV1E4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFV0TURVdE1UTlVNREE2TlRJNk16Y3JNRE02TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFVtVm1PbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBrTkRNMlptTTROaTAwWXpkaUxXWmxOREl0WVRObFl5MWhOakUwWVRBMFlXWTVZalU4TDNOMFVtVm1PbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lEeHpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk1HTXlObVl4TWpjdE1HUXlPQzFoTnpRekxXSmpNV010WVRRNU5URmlZbVZtWVdJNVBDOXpkRkpsWmpwa2IyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4YzNSU1pXWTZiM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNVFEzTVdSa1pXRXRPRFE1TXkweVpUUTVMV0kzWkRjdE9UWmlZMll3WkRabE16VmpQQzl6ZEZKbFpqcHZjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjArQ2lBZ0lDQWdJQ0FnSUR4MGFXWm1Pazl5YVdWdWRHRjBhVzl1UGpFOEwzUnBabVk2VDNKcFpXNTBZWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xoU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTnpJd01EQXdMekV3TURBd1BDOTBhV1ptT2xsU1pYTnZiSFYwYVc5dVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDR5UEM5MGFXWm1PbEpsYzI5c2RYUnBiMjVWYm1sMFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwRGIyeHZjbE53WVdObFBqRThMMlY0YVdZNlEyOXNiM0pUY0dGalpUNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGpVM1BDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqUTRQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejZET09RS0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBQk1TVVJCVkhqYTdNOEJBUUFBQkFNdzlPOThQZGdhckpQVWRWTVBTRXBLU2twS1NrcEtTa3BLU2twS1NrcEtTa3BLU2twS1NrcEtTa3BLU2twS1NrcEtTa3BLU3Q2MEFBQUEvLzhEQUlrZUExM2Q3cXhOQUFBQUFFbEZUa1N1UW1DQw"},{ name : "__ASSET__:bitmap_LoadBarFill", data : "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU5vQUFBQU5DQVlBQUFEUEpuQk1BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBN2hXbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MUxXTXdNVFFnTnprdU1UVXhORGd4TENBeU1ERXpMekF6THpFekxURXlPakE1T2pFMUlDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUwTFRBekxUSTNWREUyT2pNd09qVTRLekF5T2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UVXRNRFV0TVROVU1EQTZOVGc2TWpBck1ETTZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMUxUQTFMVEV6VkRBd09qVTRPakl3S3pBek9qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tWXpZVEV3WXpobExUTTROVGN0WmpjME9TMDRPVGN3TFRNMU4yVXhOVGt3TURneVpqd3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3haVGd5TURZNFlpMHlPR001TFRjM05ETXRPRE5sWXkxaVl6VmlOV016WXpjM01qZzhMM2h0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStlRzF3TG1ScFpEb3haVGd5TURZNFlpMHlPR001TFRjM05ETXRPRE5sWXkxaVl6VmlOV016WXpjM01qZzhMM2h0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9raHBjM1J2Y25rK0NpQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNlUyVnhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajVqY21WaGRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwcGJuTjBZVzVqWlVsRVBuaHRjQzVwYVdRNk1XVTRNakEyT0dJdE1qaGpPUzAzTnpRekxUZ3paV010WW1NMVlqVmpNMk0zTnpJNFBDOXpkRVYyZERwcGJuTjBZVzVqWlVsRVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmQyaGxiajR5TURFMExUQXpMVEkzVkRFMk9qTXdPalU0S3pBeU9qQXdQQzl6ZEVWMmREcDNhR1Z1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrYzJGMlpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRveU1XRTBNVEZoTmkxaFpUZzBMV1V4TkRZdE9HSm1ZeTAxTmpnek5UVXdaak0xWW1VOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRVdE1EUXRNVFJVTVRnNk5EWTZNREVyTURNNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbVl6WVRFd1l6aGxMVE00TlRjdFpqYzBPUzA0T1Rjd0xUTTFOMlV4TlRrd01EZ3laand2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOUzB3TlMweE0xUXdNRG8xT0RveU1Dc3dNem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESUNoWGFXNWtiM2R6S1R3dmMzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWRENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tTm9ZVzVuWldRK0x6d3ZjM1JGZG5RNlkyaGhibWRsWkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEM5eVpHWTZiR2srQ2lBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdQQzk0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQThkR2xtWmpwUGNtbGxiblJoZEdsdmJqNHhQQzkwYVdabU9rOXlhV1Z1ZEdGMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajQzTWpBd01EQXZNVEF3TURBOEwzUnBabVk2V0ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xsU1pYTnZiSFYwYVc5dVBqY3lNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTWpFNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqRXpQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejRVNnBpWEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURvQUFCU0NBQUJGVmdBQURxWEFBQVhiOWRhSDVBQUFBQ0xTVVJCVkhqYTdOVTlDc0l3QUliaEw0MEZIYnlCWStsVmVtVHhLcjJLK0RPSWkwTVZLaWpoZVpZMGtKQlM4dEp5SElaYmFNNDQxY3lueTBmejUvTTQxU1JaM01kN1haOWN6NCt4Ymt2Mmh5NUZhTzNFdEhiZE45N25OVlNTemE0SWpmK0l0UG0vbkUvQUVwRUpEWVFHQ0EyRUJrSURoQVpDQTZFQlFvTTFGNzMvN2ZsM0FBQUEvLzhEQUJwRktQVUo5c0d5QUFBQUFFbEZUa1N1UW1DQw"}]; var __map_reserved = {} var ArrayBuffer = $global.ArrayBuffer || js_html_compat_ArrayBuffer; if(ArrayBuffer.prototype.slice == null) ArrayBuffer.prototype.slice = js_html_compat_ArrayBuffer.sliceImpl; var DataView = $global.DataView || js_html_compat_DataView; var Uint8Array = $global.Uint8Array || js_html_compat_Uint8Array._new; var this1; this1 = new Uint32Array(256); lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16 = this1; var _g = 0; while(_g < 256) { var i = _g++; var val = Math.ceil(i * 257.00392156862745); lime_math_color__$RGBA_RGBA_$Impl_$.__alpha16[i] = val; } var this2; this2 = new Uint8Array(510); lime_math_color__$RGBA_RGBA_$Impl_$.__clamp = this2; var _g1 = 0; while(_g1 < 255) { var i1 = _g1++; lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[i1] = i1; } var _g11 = 255; var _g2 = 511; while(_g11 < _g2) { var i2 = _g11++; lime_math_color__$RGBA_RGBA_$Impl_$.__clamp[i2] = 255; } lime_system_CFFI.available = false; lime_system_CFFI.enabled = false; if(window.createjs != null) createjs.Sound.alternateExtensions = ["ogg","mp3","wav"]; openfl_display_DisplayObject.__instanceCount = 0; openfl_display_DisplayObject.__worldRenderDirty = 0; openfl_display_DisplayObject.__worldTransformDirty = 0; openfl_display_DisplayObject.__cacheAsBitmapMode = false; Main.created = false; Batching.instances = new haxe_ds_IntMap(); Batching.count = 0; Config.fontsShorts = { Aalgrs : "fonts/Calibri_gdi.ttf"}; Config.currentLevel = 0; Config.maxLevel = 0; Config.saveMaxLevel = 0; Config.okCoef = 20; Config.coinsCoef = 0.5; Config.graphicScale = 1; Config.locale = "ru"; Config.logToConsole = false; openfl_text_Font.__registeredFonts = []; Desk.chessNamesMap = [0,0,1,2,3,4,5,6,7,8,9,10,11,12]; Desk.chessNamesMapInversed = [0,0,2,1,4,3,6,5,8,7,10,9,12,11]; Engine.P4_VALUES = [0,0,20,20,100,100,60,60,61,61,8000,8000,180,180,0]; Engine.P4_KING_VALUE = Engine.P4_VALUES[10]; Engine.P4_WIN_DECAY = 300; Engine.P4_MAX_SCORE = 9999; Engine.P4_MOVE_FLAG_OK = 1; Engine.P4_MOVE_FLAG_CHECK = 2; Engine.P4_MOVE_FLAG_MATE = 4; Engine.P4_MOVE_FLAG_CAPTURE = 8; Engine.P4_MOVE_FLAG_CASTLE_KING = 16; Engine.P4_MOVE_FLAG_CASTLE_QUEEN = 32; Engine.P4_MOVE_FLAG_DRAW = 64; Engine.P4_MOVE_ILLEGAL = 0; Engine.P4_MOVE_MISSED_MATE = Engine.P4_MOVE_FLAG_CHECK | Engine.P4_MOVE_FLAG_MATE; Engine.P4_MOVE_CHECKMATE = Engine.P4_MOVE_FLAG_OK | Engine.P4_MOVE_FLAG_CHECK | Engine.P4_MOVE_FLAG_MATE; Engine.P4_MOVE_STALEMATE = Engine.P4_MOVE_FLAG_OK | Engine.P4_MOVE_FLAG_MATE; Menu.wasRemake = false; LocalSaves.storeName = "chess"; LocalSaves.localPath = null; Localization.locale = "en"; MainMenu.isFirstInit = true; openfl_display_BitmapData.__isGLES = null; SponsorLogo.resourceType = "image/png"; SponsorLogo.resourceName = "__ASSET__:bitmap_SponsorLogo"; GameLogo.resourceType = "image/png"; GameLogo.resourceName = "__ASSET__:bitmap_GameLogo"; LoadMeter.resourceType = "image/png"; LoadMeter.resourceName = "__ASSET__:bitmap_LoadMeter"; LoadBarContur.resourceType = "image/png"; LoadBarContur.resourceName = "__ASSET__:bitmap_LoadBarContur"; LoadBarFill.resourceType = "image/png"; LoadBarFill.resourceName = "__ASSET__:bitmap_LoadBarFill"; SpriteJson.resourceName = "__ASSET__:file_SpriteJson"; Xml.Element = 0; Xml.PCData = 1; Xml.CData = 2; Xml.Comment = 3; Xml.DocType = 4; Xml.ProcessingInstruction = 5; Xml.Document = 6; haxe_Serializer.USE_CACHE = false; haxe_Serializer.USE_ENUM_INDEX = false; haxe_Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; haxe_Unserializer.DEFAULT_RESOLVER = Type; haxe_Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; haxe_Unserializer.CODES = null; haxe_crypto_Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; haxe_crypto_Base64.BYTES = haxe_io_Bytes.ofString(haxe_crypto_Base64.CHARS); haxe_ds_ObjectMap.count = 0; haxe_io_FPHelper.i64tmp = (function($this) { var $r; var x = new haxe__$Int64__$_$_$Int64(0,0); $r = x; return $r; }(this)); haxe_xml_Parser.escapes = (function($this) { var $r; var h = new haxe_ds_StringMap(); if(__map_reserved.lt != null) h.setReserved("lt","<"); else h.h["lt"] = "<"; if(__map_reserved.gt != null) h.setReserved("gt",">"); else h.h["gt"] = ">"; if(__map_reserved.amp != null) h.setReserved("amp","&"); else h.h["amp"] = "&"; if(__map_reserved.quot != null) h.setReserved("quot","\""); else h.h["quot"] = "\""; if(__map_reserved.apos != null) h.setReserved("apos","'"); else h.h["apos"] = "'"; $r = h; return $r; }(this)); js_Boot.__toStr = {}.toString; js_html_compat_Uint8Array.BYTES_PER_ELEMENT = 1; lime_Assets.cache = new lime_AssetCache(); lime_Assets.libraries = new haxe_ds_StringMap(); lime_Assets.onChange = new lime_app_Event_$Void_$Void(); lime_Assets.initialized = false; lime__$backend_html5_HTML5Window.windowID = 0; lime_app_Preloader.images = new haxe_ds_StringMap(); lime_app_Preloader.loaders = new haxe_ds_StringMap(); lime_audio_openal_AL.NONE = 0; lime_audio_openal_AL.FALSE = 0; lime_audio_openal_AL.TRUE = 1; lime_audio_openal_AL.SOURCE_RELATIVE = 514; lime_audio_openal_AL.CONE_INNER_ANGLE = 4097; lime_audio_openal_AL.CONE_OUTER_ANGLE = 4098; lime_audio_openal_AL.PITCH = 4099; lime_audio_openal_AL.POSITION = 4100; lime_audio_openal_AL.DIRECTION = 4101; lime_audio_openal_AL.VELOCITY = 4102; lime_audio_openal_AL.LOOPING = 4103; lime_audio_openal_AL.BUFFER = 4105; lime_audio_openal_AL.GAIN = 4106; lime_audio_openal_AL.MIN_GAIN = 4109; lime_audio_openal_AL.MAX_GAIN = 4110; lime_audio_openal_AL.ORIENTATION = 4111; lime_audio_openal_AL.SOURCE_STATE = 4112; lime_audio_openal_AL.INITIAL = 4113; lime_audio_openal_AL.PLAYING = 4114; lime_audio_openal_AL.PAUSED = 4115; lime_audio_openal_AL.STOPPED = 4116; lime_audio_openal_AL.BUFFERS_QUEUED = 4117; lime_audio_openal_AL.BUFFERS_PROCESSED = 4118; lime_audio_openal_AL.REFERENCE_DISTANCE = 4128; lime_audio_openal_AL.ROLLOFF_FACTOR = 4129; lime_audio_openal_AL.CONE_OUTER_GAIN = 4130; lime_audio_openal_AL.MAX_DISTANCE = 4131; lime_audio_openal_AL.SEC_OFFSET = 4132; lime_audio_openal_AL.SAMPLE_OFFSET = 4133; lime_audio_openal_AL.BYTE_OFFSET = 4134; lime_audio_openal_AL.SOURCE_TYPE = 4135; lime_audio_openal_AL.STATIC = 4136; lime_audio_openal_AL.STREAMING = 4137; lime_audio_openal_AL.UNDETERMINED = 4144; lime_audio_openal_AL.FORMAT_MONO8 = 4352; lime_audio_openal_AL.FORMAT_MONO16 = 4353; lime_audio_openal_AL.FORMAT_STEREO8 = 4354; lime_audio_openal_AL.FORMAT_STEREO16 = 4355; lime_audio_openal_AL.FREQUENCY = 8193; lime_audio_openal_AL.BITS = 8194; lime_audio_openal_AL.CHANNELS = 8195; lime_audio_openal_AL.SIZE = 8196; lime_audio_openal_AL.NO_ERROR = 0; lime_audio_openal_AL.INVALID_NAME = 40961; lime_audio_openal_AL.INVALID_ENUM = 40962; lime_audio_openal_AL.INVALID_VALUE = 40963; lime_audio_openal_AL.INVALID_OPERATION = 40964; lime_audio_openal_AL.OUT_OF_MEMORY = 40965; lime_audio_openal_AL.VENDOR = 45057; lime_audio_openal_AL.VERSION = 45058; lime_audio_openal_AL.RENDERER = 45059; lime_audio_openal_AL.EXTENSIONS = 45060; lime_audio_openal_AL.DOPPLER_FACTOR = 49152; lime_audio_openal_AL.SPEED_OF_SOUND = 49155; lime_audio_openal_AL.DOPPLER_VELOCITY = 49153; lime_audio_openal_AL.DISTANCE_MODEL = 53248; lime_audio_openal_AL.INVERSE_DISTANCE = 53249; lime_audio_openal_AL.INVERSE_DISTANCE_CLAMPED = 53250; lime_audio_openal_AL.LINEAR_DISTANCE = 53251; lime_audio_openal_AL.LINEAR_DISTANCE_CLAMPED = 53252; lime_audio_openal_AL.EXPONENT_DISTANCE = 53253; lime_audio_openal_AL.EXPONENT_DISTANCE_CLAMPED = 53254; lime_audio_openal_ALC.FALSE = 0; lime_audio_openal_ALC.TRUE = 1; lime_audio_openal_ALC.FREQUENCY = 4103; lime_audio_openal_ALC.REFRESH = 4104; lime_audio_openal_ALC.SYNC = 4105; lime_audio_openal_ALC.MONO_SOURCES = 4112; lime_audio_openal_ALC.STEREO_SOURCES = 4113; lime_audio_openal_ALC.NO_ERROR = 0; lime_audio_openal_ALC.INVALID_DEVICE = 40961; lime_audio_openal_ALC.INVALID_CONTEXT = 40962; lime_audio_openal_ALC.INVALID_ENUM = 40963; lime_audio_openal_ALC.INVALID_VALUE = 40964; lime_audio_openal_ALC.OUT_OF_MEMORY = 40965; lime_audio_openal_ALC.ATTRIBUTES_SIZE = 4098; lime_audio_openal_ALC.ALL_ATTRIBUTES = 4099; lime_audio_openal_ALC.DEFAULT_DEVICE_SPECIFIER = 4100; lime_audio_openal_ALC.DEVICE_SPECIFIER = 4101; lime_audio_openal_ALC.EXTENSIONS = 4102; lime_audio_openal_ALC.ENUMERATE_ALL_EXT = 1; lime_audio_openal_ALC.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; lime_audio_openal_ALC.ALL_DEVICES_SPECIFIER = 4115; lime_graphics_Image.__base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; lime_graphics_Image.__origin_hostname = window.location.hostname; lime_graphics_Image.__origin_port = window.location.port; lime_graphics_Image.__origin_protocol = window.location.protocol; lime_graphics_cairo__$CairoFTFontFace_CairoFTFontFace_$Impl_$.FT_LOAD_FORCE_AUTOHINT = 32; lime_graphics_opengl_GL.DEPTH_BUFFER_BIT = 256; lime_graphics_opengl_GL.STENCIL_BUFFER_BIT = 1024; lime_graphics_opengl_GL.COLOR_BUFFER_BIT = 16384; lime_graphics_opengl_GL.POINTS = 0; lime_graphics_opengl_GL.LINES = 1; lime_graphics_opengl_GL.LINE_LOOP = 2; lime_graphics_opengl_GL.LINE_STRIP = 3; lime_graphics_opengl_GL.TRIANGLES = 4; lime_graphics_opengl_GL.TRIANGLE_STRIP = 5; lime_graphics_opengl_GL.TRIANGLE_FAN = 6; lime_graphics_opengl_GL.ZERO = 0; lime_graphics_opengl_GL.ONE = 1; lime_graphics_opengl_GL.SRC_COLOR = 768; lime_graphics_opengl_GL.ONE_MINUS_SRC_COLOR = 769; lime_graphics_opengl_GL.SRC_ALPHA = 770; lime_graphics_opengl_GL.ONE_MINUS_SRC_ALPHA = 771; lime_graphics_opengl_GL.DST_ALPHA = 772; lime_graphics_opengl_GL.ONE_MINUS_DST_ALPHA = 773; lime_graphics_opengl_GL.DST_COLOR = 774; lime_graphics_opengl_GL.ONE_MINUS_DST_COLOR = 775; lime_graphics_opengl_GL.SRC_ALPHA_SATURATE = 776; lime_graphics_opengl_GL.FUNC_ADD = 32774; lime_graphics_opengl_GL.BLEND_EQUATION = 32777; lime_graphics_opengl_GL.BLEND_EQUATION_RGB = 32777; lime_graphics_opengl_GL.BLEND_EQUATION_ALPHA = 34877; lime_graphics_opengl_GL.FUNC_SUBTRACT = 32778; lime_graphics_opengl_GL.FUNC_REVERSE_SUBTRACT = 32779; lime_graphics_opengl_GL.BLEND_DST_RGB = 32968; lime_graphics_opengl_GL.BLEND_SRC_RGB = 32969; lime_graphics_opengl_GL.BLEND_DST_ALPHA = 32970; lime_graphics_opengl_GL.BLEND_SRC_ALPHA = 32971; lime_graphics_opengl_GL.CONSTANT_COLOR = 32769; lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_COLOR = 32770; lime_graphics_opengl_GL.CONSTANT_ALPHA = 32771; lime_graphics_opengl_GL.ONE_MINUS_CONSTANT_ALPHA = 32772; lime_graphics_opengl_GL.BLEND_COLOR = 32773; lime_graphics_opengl_GL.ARRAY_BUFFER = 34962; lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER = 34963; lime_graphics_opengl_GL.ARRAY_BUFFER_BINDING = 34964; lime_graphics_opengl_GL.ELEMENT_ARRAY_BUFFER_BINDING = 34965; lime_graphics_opengl_GL.STREAM_DRAW = 35040; lime_graphics_opengl_GL.STATIC_DRAW = 35044; lime_graphics_opengl_GL.DYNAMIC_DRAW = 35048; lime_graphics_opengl_GL.BUFFER_SIZE = 34660; lime_graphics_opengl_GL.BUFFER_USAGE = 34661; lime_graphics_opengl_GL.CURRENT_VERTEX_ATTRIB = 34342; lime_graphics_opengl_GL.FRONT = 1028; lime_graphics_opengl_GL.BACK = 1029; lime_graphics_opengl_GL.FRONT_AND_BACK = 1032; lime_graphics_opengl_GL.CULL_FACE = 2884; lime_graphics_opengl_GL.BLEND = 3042; lime_graphics_opengl_GL.DITHER = 3024; lime_graphics_opengl_GL.STENCIL_TEST = 2960; lime_graphics_opengl_GL.DEPTH_TEST = 2929; lime_graphics_opengl_GL.SCISSOR_TEST = 3089; lime_graphics_opengl_GL.POLYGON_OFFSET_FILL = 32823; lime_graphics_opengl_GL.SAMPLE_ALPHA_TO_COVERAGE = 32926; lime_graphics_opengl_GL.SAMPLE_COVERAGE = 32928; lime_graphics_opengl_GL.NO_ERROR = 0; lime_graphics_opengl_GL.INVALID_ENUM = 1280; lime_graphics_opengl_GL.INVALID_VALUE = 1281; lime_graphics_opengl_GL.INVALID_OPERATION = 1282; lime_graphics_opengl_GL.OUT_OF_MEMORY = 1285; lime_graphics_opengl_GL.CW = 2304; lime_graphics_opengl_GL.CCW = 2305; lime_graphics_opengl_GL.LINE_WIDTH = 2849; lime_graphics_opengl_GL.ALIASED_POINT_SIZE_RANGE = 33901; lime_graphics_opengl_GL.ALIASED_LINE_WIDTH_RANGE = 33902; lime_graphics_opengl_GL.CULL_FACE_MODE = 2885; lime_graphics_opengl_GL.FRONT_FACE = 2886; lime_graphics_opengl_GL.DEPTH_RANGE = 2928; lime_graphics_opengl_GL.DEPTH_WRITEMASK = 2930; lime_graphics_opengl_GL.DEPTH_CLEAR_VALUE = 2931; lime_graphics_opengl_GL.DEPTH_FUNC = 2932; lime_graphics_opengl_GL.STENCIL_CLEAR_VALUE = 2961; lime_graphics_opengl_GL.STENCIL_FUNC = 2962; lime_graphics_opengl_GL.STENCIL_FAIL = 2964; lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_FAIL = 2965; lime_graphics_opengl_GL.STENCIL_PASS_DEPTH_PASS = 2966; lime_graphics_opengl_GL.STENCIL_REF = 2967; lime_graphics_opengl_GL.STENCIL_VALUE_MASK = 2963; lime_graphics_opengl_GL.STENCIL_WRITEMASK = 2968; lime_graphics_opengl_GL.STENCIL_BACK_FUNC = 34816; lime_graphics_opengl_GL.STENCIL_BACK_FAIL = 34817; lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_FAIL = 34818; lime_graphics_opengl_GL.STENCIL_BACK_PASS_DEPTH_PASS = 34819; lime_graphics_opengl_GL.STENCIL_BACK_REF = 36003; lime_graphics_opengl_GL.STENCIL_BACK_VALUE_MASK = 36004; lime_graphics_opengl_GL.STENCIL_BACK_WRITEMASK = 36005; lime_graphics_opengl_GL.VIEWPORT = 2978; lime_graphics_opengl_GL.SCISSOR_BOX = 3088; lime_graphics_opengl_GL.COLOR_CLEAR_VALUE = 3106; lime_graphics_opengl_GL.COLOR_WRITEMASK = 3107; lime_graphics_opengl_GL.UNPACK_ALIGNMENT = 3317; lime_graphics_opengl_GL.PACK_ALIGNMENT = 3333; lime_graphics_opengl_GL.MAX_TEXTURE_SIZE = 3379; lime_graphics_opengl_GL.MAX_VIEWPORT_DIMS = 3386; lime_graphics_opengl_GL.SUBPIXEL_BITS = 3408; lime_graphics_opengl_GL.RED_BITS = 3410; lime_graphics_opengl_GL.GREEN_BITS = 3411; lime_graphics_opengl_GL.BLUE_BITS = 3412; lime_graphics_opengl_GL.ALPHA_BITS = 3413; lime_graphics_opengl_GL.DEPTH_BITS = 3414; lime_graphics_opengl_GL.STENCIL_BITS = 3415; lime_graphics_opengl_GL.POLYGON_OFFSET_UNITS = 10752; lime_graphics_opengl_GL.POLYGON_OFFSET_FACTOR = 32824; lime_graphics_opengl_GL.TEXTURE_BINDING_2D = 32873; lime_graphics_opengl_GL.SAMPLE_BUFFERS = 32936; lime_graphics_opengl_GL.SAMPLES = 32937; lime_graphics_opengl_GL.SAMPLE_COVERAGE_VALUE = 32938; lime_graphics_opengl_GL.SAMPLE_COVERAGE_INVERT = 32939; lime_graphics_opengl_GL.COMPRESSED_TEXTURE_FORMATS = 34467; lime_graphics_opengl_GL.DONT_CARE = 4352; lime_graphics_opengl_GL.FASTEST = 4353; lime_graphics_opengl_GL.NICEST = 4354; lime_graphics_opengl_GL.GENERATE_MIPMAP_HINT = 33170; lime_graphics_opengl_GL.BYTE = 5120; lime_graphics_opengl_GL.UNSIGNED_BYTE = 5121; lime_graphics_opengl_GL.SHORT = 5122; lime_graphics_opengl_GL.UNSIGNED_SHORT = 5123; lime_graphics_opengl_GL.INT = 5124; lime_graphics_opengl_GL.UNSIGNED_INT = 5125; lime_graphics_opengl_GL.FLOAT = 5126; lime_graphics_opengl_GL.DEPTH_COMPONENT = 6402; lime_graphics_opengl_GL.ALPHA = 6406; lime_graphics_opengl_GL.RGB = 6407; lime_graphics_opengl_GL.RGBA = 6408; lime_graphics_opengl_GL.BGR_EXT = 32992; lime_graphics_opengl_GL.BGRA_EXT = 32993; lime_graphics_opengl_GL.LUMINANCE = 6409; lime_graphics_opengl_GL.LUMINANCE_ALPHA = 6410; lime_graphics_opengl_GL.UNSIGNED_SHORT_4_4_4_4 = 32819; lime_graphics_opengl_GL.UNSIGNED_SHORT_5_5_5_1 = 32820; lime_graphics_opengl_GL.UNSIGNED_SHORT_5_6_5 = 33635; lime_graphics_opengl_GL.FRAGMENT_SHADER = 35632; lime_graphics_opengl_GL.VERTEX_SHADER = 35633; lime_graphics_opengl_GL.MAX_VERTEX_ATTRIBS = 34921; lime_graphics_opengl_GL.MAX_VERTEX_UNIFORM_VECTORS = 36347; lime_graphics_opengl_GL.MAX_VARYING_VECTORS = 36348; lime_graphics_opengl_GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661; lime_graphics_opengl_GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660; lime_graphics_opengl_GL.MAX_TEXTURE_IMAGE_UNITS = 34930; lime_graphics_opengl_GL.MAX_FRAGMENT_UNIFORM_VECTORS = 36349; lime_graphics_opengl_GL.SHADER_TYPE = 35663; lime_graphics_opengl_GL.DELETE_STATUS = 35712; lime_graphics_opengl_GL.LINK_STATUS = 35714; lime_graphics_opengl_GL.VALIDATE_STATUS = 35715; lime_graphics_opengl_GL.ATTACHED_SHADERS = 35717; lime_graphics_opengl_GL.ACTIVE_UNIFORMS = 35718; lime_graphics_opengl_GL.ACTIVE_ATTRIBUTES = 35721; lime_graphics_opengl_GL.SHADING_LANGUAGE_VERSION = 35724; lime_graphics_opengl_GL.CURRENT_PROGRAM = 35725; lime_graphics_opengl_GL.NEVER = 512; lime_graphics_opengl_GL.LESS = 513; lime_graphics_opengl_GL.EQUAL = 514; lime_graphics_opengl_GL.LEQUAL = 515; lime_graphics_opengl_GL.GREATER = 516; lime_graphics_opengl_GL.NOTEQUAL = 517; lime_graphics_opengl_GL.GEQUAL = 518; lime_graphics_opengl_GL.ALWAYS = 519; lime_graphics_opengl_GL.KEEP = 7680; lime_graphics_opengl_GL.REPLACE = 7681; lime_graphics_opengl_GL.INCR = 7682; lime_graphics_opengl_GL.DECR = 7683; lime_graphics_opengl_GL.INVERT = 5386; lime_graphics_opengl_GL.INCR_WRAP = 34055; lime_graphics_opengl_GL.DECR_WRAP = 34056; lime_graphics_opengl_GL.VENDOR = 7936; lime_graphics_opengl_GL.RENDERER = 7937; lime_graphics_opengl_GL.VERSION = 7938; lime_graphics_opengl_GL.NEAREST = 9728; lime_graphics_opengl_GL.LINEAR = 9729; lime_graphics_opengl_GL.NEAREST_MIPMAP_NEAREST = 9984; lime_graphics_opengl_GL.LINEAR_MIPMAP_NEAREST = 9985; lime_graphics_opengl_GL.NEAREST_MIPMAP_LINEAR = 9986; lime_graphics_opengl_GL.LINEAR_MIPMAP_LINEAR = 9987; lime_graphics_opengl_GL.TEXTURE_MAG_FILTER = 10240; lime_graphics_opengl_GL.TEXTURE_MIN_FILTER = 10241; lime_graphics_opengl_GL.TEXTURE_WRAP_S = 10242; lime_graphics_opengl_GL.TEXTURE_WRAP_T = 10243; lime_graphics_opengl_GL.TEXTURE_2D = 3553; lime_graphics_opengl_GL.TEXTURE = 5890; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP = 34067; lime_graphics_opengl_GL.TEXTURE_BINDING_CUBE_MAP = 34068; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_X = 34069; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073; lime_graphics_opengl_GL.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074; lime_graphics_opengl_GL.MAX_CUBE_MAP_TEXTURE_SIZE = 34076; lime_graphics_opengl_GL.TEXTURE0 = 33984; lime_graphics_opengl_GL.TEXTURE1 = 33985; lime_graphics_opengl_GL.TEXTURE2 = 33986; lime_graphics_opengl_GL.TEXTURE3 = 33987; lime_graphics_opengl_GL.TEXTURE4 = 33988; lime_graphics_opengl_GL.TEXTURE5 = 33989; lime_graphics_opengl_GL.TEXTURE6 = 33990; lime_graphics_opengl_GL.TEXTURE7 = 33991; lime_graphics_opengl_GL.TEXTURE8 = 33992; lime_graphics_opengl_GL.TEXTURE9 = 33993; lime_graphics_opengl_GL.TEXTURE10 = 33994; lime_graphics_opengl_GL.TEXTURE11 = 33995; lime_graphics_opengl_GL.TEXTURE12 = 33996; lime_graphics_opengl_GL.TEXTURE13 = 33997; lime_graphics_opengl_GL.TEXTURE14 = 33998; lime_graphics_opengl_GL.TEXTURE15 = 33999; lime_graphics_opengl_GL.TEXTURE16 = 34000; lime_graphics_opengl_GL.TEXTURE17 = 34001; lime_graphics_opengl_GL.TEXTURE18 = 34002; lime_graphics_opengl_GL.TEXTURE19 = 34003; lime_graphics_opengl_GL.TEXTURE20 = 34004; lime_graphics_opengl_GL.TEXTURE21 = 34005; lime_graphics_opengl_GL.TEXTURE22 = 34006; lime_graphics_opengl_GL.TEXTURE23 = 34007; lime_graphics_opengl_GL.TEXTURE24 = 34008; lime_graphics_opengl_GL.TEXTURE25 = 34009; lime_graphics_opengl_GL.TEXTURE26 = 34010; lime_graphics_opengl_GL.TEXTURE27 = 34011; lime_graphics_opengl_GL.TEXTURE28 = 34012; lime_graphics_opengl_GL.TEXTURE29 = 34013; lime_graphics_opengl_GL.TEXTURE30 = 34014; lime_graphics_opengl_GL.TEXTURE31 = 34015; lime_graphics_opengl_GL.ACTIVE_TEXTURE = 34016; lime_graphics_opengl_GL.REPEAT = 10497; lime_graphics_opengl_GL.CLAMP_TO_EDGE = 33071; lime_graphics_opengl_GL.MIRRORED_REPEAT = 33648; lime_graphics_opengl_GL.FLOAT_VEC2 = 35664; lime_graphics_opengl_GL.FLOAT_VEC3 = 35665; lime_graphics_opengl_GL.FLOAT_VEC4 = 35666; lime_graphics_opengl_GL.INT_VEC2 = 35667; lime_graphics_opengl_GL.INT_VEC3 = 35668; lime_graphics_opengl_GL.INT_VEC4 = 35669; lime_graphics_opengl_GL.BOOL = 35670; lime_graphics_opengl_GL.BOOL_VEC2 = 35671; lime_graphics_opengl_GL.BOOL_VEC3 = 35672; lime_graphics_opengl_GL.BOOL_VEC4 = 35673; lime_graphics_opengl_GL.FLOAT_MAT2 = 35674; lime_graphics_opengl_GL.FLOAT_MAT3 = 35675; lime_graphics_opengl_GL.FLOAT_MAT4 = 35676; lime_graphics_opengl_GL.SAMPLER_2D = 35678; lime_graphics_opengl_GL.SAMPLER_CUBE = 35680; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_ENABLED = 34338; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_SIZE = 34339; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_STRIDE = 34340; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_TYPE = 34341; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_POINTER = 34373; lime_graphics_opengl_GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975; lime_graphics_opengl_GL.VERTEX_PROGRAM_POINT_SIZE = 34370; lime_graphics_opengl_GL.POINT_SPRITE = 34913; lime_graphics_opengl_GL.COMPILE_STATUS = 35713; lime_graphics_opengl_GL.LOW_FLOAT = 36336; lime_graphics_opengl_GL.MEDIUM_FLOAT = 36337; lime_graphics_opengl_GL.HIGH_FLOAT = 36338; lime_graphics_opengl_GL.LOW_INT = 36339; lime_graphics_opengl_GL.MEDIUM_INT = 36340; lime_graphics_opengl_GL.HIGH_INT = 36341; lime_graphics_opengl_GL.FRAMEBUFFER = 36160; lime_graphics_opengl_GL.RENDERBUFFER = 36161; lime_graphics_opengl_GL.RGBA4 = 32854; lime_graphics_opengl_GL.RGB5_A1 = 32855; lime_graphics_opengl_GL.RGB565 = 36194; lime_graphics_opengl_GL.DEPTH_COMPONENT16 = 33189; lime_graphics_opengl_GL.STENCIL_INDEX = 6401; lime_graphics_opengl_GL.STENCIL_INDEX8 = 36168; lime_graphics_opengl_GL.DEPTH_STENCIL = 34041; lime_graphics_opengl_GL.RENDERBUFFER_WIDTH = 36162; lime_graphics_opengl_GL.RENDERBUFFER_HEIGHT = 36163; lime_graphics_opengl_GL.RENDERBUFFER_INTERNAL_FORMAT = 36164; lime_graphics_opengl_GL.RENDERBUFFER_RED_SIZE = 36176; lime_graphics_opengl_GL.RENDERBUFFER_GREEN_SIZE = 36177; lime_graphics_opengl_GL.RENDERBUFFER_BLUE_SIZE = 36178; lime_graphics_opengl_GL.RENDERBUFFER_ALPHA_SIZE = 36179; lime_graphics_opengl_GL.RENDERBUFFER_DEPTH_SIZE = 36180; lime_graphics_opengl_GL.RENDERBUFFER_STENCIL_SIZE = 36181; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050; lime_graphics_opengl_GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051; lime_graphics_opengl_GL.COLOR_ATTACHMENT0 = 36064; lime_graphics_opengl_GL.DEPTH_ATTACHMENT = 36096; lime_graphics_opengl_GL.STENCIL_ATTACHMENT = 36128; lime_graphics_opengl_GL.DEPTH_STENCIL_ATTACHMENT = 33306; lime_graphics_opengl_GL.NONE = 0; lime_graphics_opengl_GL.FRAMEBUFFER_COMPLETE = 36053; lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; lime_graphics_opengl_GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057; lime_graphics_opengl_GL.FRAMEBUFFER_UNSUPPORTED = 36061; lime_graphics_opengl_GL.FRAMEBUFFER_BINDING = 36006; lime_graphics_opengl_GL.RENDERBUFFER_BINDING = 36007; lime_graphics_opengl_GL.MAX_RENDERBUFFER_SIZE = 34024; lime_graphics_opengl_GL.INVALID_FRAMEBUFFER_OPERATION = 1286; lime_graphics_opengl_GL.UNPACK_FLIP_Y_WEBGL = 37440; lime_graphics_opengl_GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441; lime_graphics_opengl_GL.CONTEXT_LOST_WEBGL = 37442; lime_graphics_opengl_GL.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443; lime_graphics_opengl_GL.BROWSER_DEFAULT_WEBGL = 37444; lime_math__$ColorMatrix_ColorMatrix_$Impl_$.__identity = [1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0]; lime_math_Matrix3.__identity = new lime_math_Matrix3(); lime_math__$Matrix4_Matrix4_$Impl_$.__identity = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_SSL = 1; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_WIN32 = 2; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_ALL = 3; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_NOTHING = 0; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_DEFAULT = 3; lime_net_curl__$CURL_CURL_$Impl_$.GLOBAL_ACK_EINTR = 4; lime_system_BackgroundWorker.MESSAGE_COMPLETE = "__COMPLETE__"; lime_system_BackgroundWorker.MESSAGE_ERROR = "__ERROR__"; lime_system_CFFI.__moduleNames = null; lime_text__$TextDirection_TextDirection_$Impl_$.INVALID = 0; lime_text__$TextDirection_TextDirection_$Impl_$.LEFT_TO_RIGHT = 4; lime_text__$TextDirection_TextDirection_$Impl_$.RIGHT_TO_LEFT = 5; lime_text__$TextDirection_TextDirection_$Impl_$.TOP_TO_BOTTOM = 6; lime_text__$TextDirection_TextDirection_$Impl_$.BOTTOM_TO_TOP = 7; lime_text__$TextScript_TextScript_$Impl_$.COMMON = "Zyyy"; lime_text__$TextScript_TextScript_$Impl_$.INHERITED = "Zinh"; lime_text__$TextScript_TextScript_$Impl_$.UNKNOWN = "Zzzz"; lime_text__$TextScript_TextScript_$Impl_$.ARABIC = "Arab"; lime_text__$TextScript_TextScript_$Impl_$.ARMENIAN = "Armn"; lime_text__$TextScript_TextScript_$Impl_$.BENGALI = "Beng"; lime_text__$TextScript_TextScript_$Impl_$.CYRILLIC = "Cyrl"; lime_text__$TextScript_TextScript_$Impl_$.DEVANAGARI = "Deva"; lime_text__$TextScript_TextScript_$Impl_$.GEORGIAN = "Geor"; lime_text__$TextScript_TextScript_$Impl_$.GREEK = "Grek"; lime_text__$TextScript_TextScript_$Impl_$.GUJARATI = "Gujr"; lime_text__$TextScript_TextScript_$Impl_$.GURMUKHI = "Guru"; lime_text__$TextScript_TextScript_$Impl_$.HANGUL = "Hang"; lime_text__$TextScript_TextScript_$Impl_$.HAN = "Hani"; lime_text__$TextScript_TextScript_$Impl_$.HEBREW = "Hebr"; lime_text__$TextScript_TextScript_$Impl_$.HIRAGANA = "Hira"; lime_text__$TextScript_TextScript_$Impl_$.KANNADA = "Knda"; lime_text__$TextScript_TextScript_$Impl_$.KATAKANA = "Kana"; lime_text__$TextScript_TextScript_$Impl_$.LAO = "Laoo"; lime_text__$TextScript_TextScript_$Impl_$.LATIN = "Latn"; lime_text__$TextScript_TextScript_$Impl_$.MALAYALAM = "Mlym"; lime_text__$TextScript_TextScript_$Impl_$.ORIYA = "Orya"; lime_text__$TextScript_TextScript_$Impl_$.TAMIL = "Taml"; lime_text__$TextScript_TextScript_$Impl_$.TELUGA = "Telu"; lime_text__$TextScript_TextScript_$Impl_$.THAI = "Thai"; lime_text__$TextScript_TextScript_$Impl_$.TIBETAN = "Tibt"; lime_text__$TextScript_TextScript_$Impl_$.BOPOMOFO = "Bopo"; lime_text__$TextScript_TextScript_$Impl_$.BRAILLE = "Brai"; lime_text__$TextScript_TextScript_$Impl_$.CANADIAN_SYLLABICS = "Cans"; lime_text__$TextScript_TextScript_$Impl_$.CHEROKEE = "Cher"; lime_text__$TextScript_TextScript_$Impl_$.ETHIOPIC = "Ethi"; lime_text__$TextScript_TextScript_$Impl_$.KHMER = "Khmr"; lime_text__$TextScript_TextScript_$Impl_$.MONGOLIAN = "Mong"; lime_text__$TextScript_TextScript_$Impl_$.MYANMAR = "Mymr"; lime_text__$TextScript_TextScript_$Impl_$.OGHAM = "Ogam"; lime_text__$TextScript_TextScript_$Impl_$.RUNIC = "Runr"; lime_text__$TextScript_TextScript_$Impl_$.SINHALA = "Sinh"; lime_text__$TextScript_TextScript_$Impl_$.SYRIAC = "Syrc"; lime_text__$TextScript_TextScript_$Impl_$.THAANA = "Thaa"; lime_text__$TextScript_TextScript_$Impl_$.YI = "Yiii"; lime_text__$TextScript_TextScript_$Impl_$.DESERET = "Dsrt"; lime_text__$TextScript_TextScript_$Impl_$.GOTHIC = "Goth"; lime_text__$TextScript_TextScript_$Impl_$.OLD_ITALIC = "Ital"; lime_text__$TextScript_TextScript_$Impl_$.BUHID = "Buhd"; lime_text__$TextScript_TextScript_$Impl_$.HANUNOO = "Hano"; lime_text__$TextScript_TextScript_$Impl_$.TAGALOG = "Tglg"; lime_text__$TextScript_TextScript_$Impl_$.TAGBANWA = "Tagb"; lime_text__$TextScript_TextScript_$Impl_$.CYPRIOT = "Cprt"; lime_text__$TextScript_TextScript_$Impl_$.LIMBU = "Limb"; lime_text__$TextScript_TextScript_$Impl_$.LINEAR_B = "Linb"; lime_text__$TextScript_TextScript_$Impl_$.OSMANYA = "Osma"; lime_text__$TextScript_TextScript_$Impl_$.SHAVIAN = "Shaw"; lime_text__$TextScript_TextScript_$Impl_$.TAI_LE = "Tale"; lime_text__$TextScript_TextScript_$Impl_$.UGARITIC = "Ugar"; lime_text__$TextScript_TextScript_$Impl_$.BUGINESE = "Bugi"; lime_text__$TextScript_TextScript_$Impl_$.COPTIC = "Copt"; lime_text__$TextScript_TextScript_$Impl_$.GLAGOLITIC = "Glag"; lime_text__$TextScript_TextScript_$Impl_$.KHAROSHTHI = "Khar"; lime_text__$TextScript_TextScript_$Impl_$.NEW_TAI_LUE = "Talu"; lime_text__$TextScript_TextScript_$Impl_$.OLD_PERSIAN = "Xpeo"; lime_text__$TextScript_TextScript_$Impl_$.SYLOTI_NAGRI = "Sylo"; lime_text__$TextScript_TextScript_$Impl_$.TIFINAGH = "Tfng"; lime_text__$TextScript_TextScript_$Impl_$.BALINESE = "Bali"; lime_text__$TextScript_TextScript_$Impl_$.CUNEIFORM = "Xsux"; lime_text__$TextScript_TextScript_$Impl_$.NKO = "Nkoo"; lime_text__$TextScript_TextScript_$Impl_$.PHAGS_PA = "Phag"; lime_text__$TextScript_TextScript_$Impl_$.PHOENICIAN = "Phnx"; lime_text__$TextScript_TextScript_$Impl_$.CARIAN = "Cari"; lime_text__$TextScript_TextScript_$Impl_$.CHAM = "Cham"; lime_text__$TextScript_TextScript_$Impl_$.KAYAH_LI = "Kali"; lime_text__$TextScript_TextScript_$Impl_$.LEPCHA = "Lepc"; lime_text__$TextScript_TextScript_$Impl_$.LYCIAN = "Lyci"; lime_text__$TextScript_TextScript_$Impl_$.LYDIAN = "Lydi"; lime_text__$TextScript_TextScript_$Impl_$.OL_CHIKI = "Olck"; lime_text__$TextScript_TextScript_$Impl_$.REJANG = "Rjng"; lime_text__$TextScript_TextScript_$Impl_$.SAURASHTRA = "Saur"; lime_text__$TextScript_TextScript_$Impl_$.SUNDANESE = "Sund"; lime_text__$TextScript_TextScript_$Impl_$.VAI = "Vaii"; lime_text__$TextScript_TextScript_$Impl_$.AVESTAN = "Avst"; lime_text__$TextScript_TextScript_$Impl_$.BAMUM = "Bamu"; lime_text__$TextScript_TextScript_$Impl_$.EGYPTIAN_HIEROGLYPHS = "Egyp"; lime_text__$TextScript_TextScript_$Impl_$.IMPERIAL_ARAMAIC = "Armi"; lime_text__$TextScript_TextScript_$Impl_$.INSCRIPTIONAL_PAHLAVI = "Phli"; lime_text__$TextScript_TextScript_$Impl_$.INSCRIPTIONAL_PARTHIAN = "Prti"; lime_text__$TextScript_TextScript_$Impl_$.JAVANESE = "Java"; lime_text__$TextScript_TextScript_$Impl_$.KAITHI = "Kthi"; lime_text__$TextScript_TextScript_$Impl_$.LISU = "Lisu"; lime_text__$TextScript_TextScript_$Impl_$.MEETEI_MAYEK = "Mtei"; lime_text__$TextScript_TextScript_$Impl_$.OLD_SOUTH_ARABIAN = "Sarb"; lime_text__$TextScript_TextScript_$Impl_$.OLD_TURKIC = "Orkh"; lime_text__$TextScript_TextScript_$Impl_$.SAMARITAN = "Samr"; lime_text__$TextScript_TextScript_$Impl_$.TAI_THAM = "Lana"; lime_text__$TextScript_TextScript_$Impl_$.TAI_VIET = "Tavt"; lime_text__$TextScript_TextScript_$Impl_$.BATAK = "Batk"; lime_text__$TextScript_TextScript_$Impl_$.BRAHMI = "Brah"; lime_text__$TextScript_TextScript_$Impl_$.MANDAIC = "Mand"; lime_text__$TextScript_TextScript_$Impl_$.CHAKMA = "Cakm"; lime_text__$TextScript_TextScript_$Impl_$.MEROITIC_CURSIVE = "Merc"; lime_text__$TextScript_TextScript_$Impl_$.MEROITIC_HIEROGLYPHS = "Mero"; lime_text__$TextScript_TextScript_$Impl_$.MIAO = "Plrd"; lime_text__$TextScript_TextScript_$Impl_$.SHARADA = "Shrd"; lime_text__$TextScript_TextScript_$Impl_$.SORA_SOMPENG = "Sora"; lime_text__$TextScript_TextScript_$Impl_$.TAKRI = "Takr"; lime_text__$TextScript_TextScript_$Impl_$.BASSA_VAH = "Bass"; lime_text__$TextScript_TextScript_$Impl_$.CAUCASIAN_ALBANIAN = "Aghb"; lime_text__$TextScript_TextScript_$Impl_$.DUPLOYAN = "Dupl"; lime_text__$TextScript_TextScript_$Impl_$.ELBASAN = "Elba"; lime_text__$TextScript_TextScript_$Impl_$.GRANTHA = "Gran"; lime_text__$TextScript_TextScript_$Impl_$.KHOJKI = "Khoj"; lime_text__$TextScript_TextScript_$Impl_$.KHUDAWADI = "Sind"; lime_text__$TextScript_TextScript_$Impl_$.LINEAR_A = "Lina"; lime_text__$TextScript_TextScript_$Impl_$.MAHAJANI = "Mahj"; lime_text__$TextScript_TextScript_$Impl_$.MANICHAEAN = "Mani"; lime_text__$TextScript_TextScript_$Impl_$.MENDE_KIKAKUI = "Mend"; lime_text__$TextScript_TextScript_$Impl_$.MODI = "Modi"; lime_text__$TextScript_TextScript_$Impl_$.MRO = "Mroo"; lime_text__$TextScript_TextScript_$Impl_$.NABATAEAN = "Nbat"; lime_text__$TextScript_TextScript_$Impl_$.OLD_NORTH_ARABIAN = "Narb"; lime_text__$TextScript_TextScript_$Impl_$.OLD_PERMIC = "Perm"; lime_text__$TextScript_TextScript_$Impl_$.PAHAWH_HMONG = "Hmng"; lime_text__$TextScript_TextScript_$Impl_$.PALMYRENE = "Palm"; lime_text__$TextScript_TextScript_$Impl_$.PAU_CIN_HAU = "Pauc"; lime_text__$TextScript_TextScript_$Impl_$.PSALTER_PAHLAVI = "Phlp"; lime_text__$TextScript_TextScript_$Impl_$.SIDDHAM = "Sidd"; lime_text__$TextScript_TextScript_$Impl_$.TIRHUTA = "Tirh"; lime_text__$TextScript_TextScript_$Impl_$.WARANG_CITI = "Wara"; lime_ui_Gamepad.devices = new haxe_ds_IntMap(); lime_ui_Gamepad.onConnect = new lime_app_Event_$lime_$ui_$Gamepad_$Void(); lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.LEFT_X = 0; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.LEFT_Y = 1; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.RIGHT_X = 2; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.RIGHT_Y = 3; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.TRIGGER_LEFT = 4; lime_ui__$GamepadAxis_GamepadAxis_$Impl_$.TRIGGER_RIGHT = 5; lime_ui__$GamepadButton_GamepadButton_$Impl_$.A = 0; lime_ui__$GamepadButton_GamepadButton_$Impl_$.B = 1; lime_ui__$GamepadButton_GamepadButton_$Impl_$.X = 2; lime_ui__$GamepadButton_GamepadButton_$Impl_$.Y = 3; lime_ui__$GamepadButton_GamepadButton_$Impl_$.BACK = 4; lime_ui__$GamepadButton_GamepadButton_$Impl_$.GUIDE = 5; lime_ui__$GamepadButton_GamepadButton_$Impl_$.START = 6; lime_ui__$GamepadButton_GamepadButton_$Impl_$.LEFT_STICK = 7; lime_ui__$GamepadButton_GamepadButton_$Impl_$.RIGHT_STICK = 8; lime_ui__$GamepadButton_GamepadButton_$Impl_$.LEFT_SHOULDER = 9; lime_ui__$GamepadButton_GamepadButton_$Impl_$.RIGHT_SHOULDER = 10; lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_UP = 11; lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_DOWN = 12; lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_LEFT = 13; lime_ui__$GamepadButton_GamepadButton_$Impl_$.DPAD_RIGHT = 14; lime_ui_Joystick.devices = new haxe_ds_IntMap(); lime_ui_Joystick.onConnect = new lime_app_Event_$lime_$ui_$Joystick_$Void(); lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.CENTER = 0; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN = 4; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.LEFT = 8; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.RIGHT = 2; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP = 1; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN_LEFT = 12; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.DOWN_RIGHT = 6; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP_LEFT = 9; lime_ui__$JoystickHatPosition_JoystickHatPosition_$Impl_$.UP_RIGHT = 3; lime_ui__$KeyCode_KeyCode_$Impl_$.UNKNOWN = 0; lime_ui__$KeyCode_KeyCode_$Impl_$.BACKSPACE = 8; lime_ui__$KeyCode_KeyCode_$Impl_$.TAB = 9; lime_ui__$KeyCode_KeyCode_$Impl_$.RETURN = 13; lime_ui__$KeyCode_KeyCode_$Impl_$.ESCAPE = 27; lime_ui__$KeyCode_KeyCode_$Impl_$.SPACE = 32; lime_ui__$KeyCode_KeyCode_$Impl_$.EXCLAMATION = 33; lime_ui__$KeyCode_KeyCode_$Impl_$.QUOTE = 34; lime_ui__$KeyCode_KeyCode_$Impl_$.HASH = 35; lime_ui__$KeyCode_KeyCode_$Impl_$.DOLLAR = 36; lime_ui__$KeyCode_KeyCode_$Impl_$.PERCENT = 37; lime_ui__$KeyCode_KeyCode_$Impl_$.AMPERSAND = 38; lime_ui__$KeyCode_KeyCode_$Impl_$.SINGLE_QUOTE = 39; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_PARENTHESIS = 40; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_PARENTHESIS = 41; lime_ui__$KeyCode_KeyCode_$Impl_$.ASTERISK = 42; lime_ui__$KeyCode_KeyCode_$Impl_$.PLUS = 43; lime_ui__$KeyCode_KeyCode_$Impl_$.COMMA = 44; lime_ui__$KeyCode_KeyCode_$Impl_$.MINUS = 45; lime_ui__$KeyCode_KeyCode_$Impl_$.PERIOD = 46; lime_ui__$KeyCode_KeyCode_$Impl_$.SLASH = 47; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_0 = 48; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_1 = 49; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_2 = 50; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_3 = 51; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_4 = 52; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_5 = 53; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_6 = 54; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_7 = 55; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_8 = 56; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMBER_9 = 57; lime_ui__$KeyCode_KeyCode_$Impl_$.COLON = 58; lime_ui__$KeyCode_KeyCode_$Impl_$.SEMICOLON = 59; lime_ui__$KeyCode_KeyCode_$Impl_$.LESS_THAN = 60; lime_ui__$KeyCode_KeyCode_$Impl_$.EQUALS = 61; lime_ui__$KeyCode_KeyCode_$Impl_$.GREATER_THAN = 62; lime_ui__$KeyCode_KeyCode_$Impl_$.QUESTION = 63; lime_ui__$KeyCode_KeyCode_$Impl_$.AT = 64; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_BRACKET = 91; lime_ui__$KeyCode_KeyCode_$Impl_$.BACKSLASH = 92; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_BRACKET = 93; lime_ui__$KeyCode_KeyCode_$Impl_$.CARET = 94; lime_ui__$KeyCode_KeyCode_$Impl_$.UNDERSCORE = 95; lime_ui__$KeyCode_KeyCode_$Impl_$.GRAVE = 96; lime_ui__$KeyCode_KeyCode_$Impl_$.A = 97; lime_ui__$KeyCode_KeyCode_$Impl_$.B = 98; lime_ui__$KeyCode_KeyCode_$Impl_$.C = 99; lime_ui__$KeyCode_KeyCode_$Impl_$.D = 100; lime_ui__$KeyCode_KeyCode_$Impl_$.E = 101; lime_ui__$KeyCode_KeyCode_$Impl_$.F = 102; lime_ui__$KeyCode_KeyCode_$Impl_$.G = 103; lime_ui__$KeyCode_KeyCode_$Impl_$.H = 104; lime_ui__$KeyCode_KeyCode_$Impl_$.I = 105; lime_ui__$KeyCode_KeyCode_$Impl_$.J = 106; lime_ui__$KeyCode_KeyCode_$Impl_$.K = 107; lime_ui__$KeyCode_KeyCode_$Impl_$.L = 108; lime_ui__$KeyCode_KeyCode_$Impl_$.M = 109; lime_ui__$KeyCode_KeyCode_$Impl_$.N = 110; lime_ui__$KeyCode_KeyCode_$Impl_$.O = 111; lime_ui__$KeyCode_KeyCode_$Impl_$.P = 112; lime_ui__$KeyCode_KeyCode_$Impl_$.Q = 113; lime_ui__$KeyCode_KeyCode_$Impl_$.R = 114; lime_ui__$KeyCode_KeyCode_$Impl_$.S = 115; lime_ui__$KeyCode_KeyCode_$Impl_$.T = 116; lime_ui__$KeyCode_KeyCode_$Impl_$.U = 117; lime_ui__$KeyCode_KeyCode_$Impl_$.V = 118; lime_ui__$KeyCode_KeyCode_$Impl_$.W = 119; lime_ui__$KeyCode_KeyCode_$Impl_$.X = 120; lime_ui__$KeyCode_KeyCode_$Impl_$.Y = 121; lime_ui__$KeyCode_KeyCode_$Impl_$.Z = 122; lime_ui__$KeyCode_KeyCode_$Impl_$.DELETE = 127; lime_ui__$KeyCode_KeyCode_$Impl_$.CAPS_LOCK = 1073741881; lime_ui__$KeyCode_KeyCode_$Impl_$.F1 = 1073741882; lime_ui__$KeyCode_KeyCode_$Impl_$.F2 = 1073741883; lime_ui__$KeyCode_KeyCode_$Impl_$.F3 = 1073741884; lime_ui__$KeyCode_KeyCode_$Impl_$.F4 = 1073741885; lime_ui__$KeyCode_KeyCode_$Impl_$.F5 = 1073741886; lime_ui__$KeyCode_KeyCode_$Impl_$.F6 = 1073741887; lime_ui__$KeyCode_KeyCode_$Impl_$.F7 = 1073741888; lime_ui__$KeyCode_KeyCode_$Impl_$.F8 = 1073741889; lime_ui__$KeyCode_KeyCode_$Impl_$.F9 = 1073741890; lime_ui__$KeyCode_KeyCode_$Impl_$.F10 = 1073741891; lime_ui__$KeyCode_KeyCode_$Impl_$.F11 = 1073741892; lime_ui__$KeyCode_KeyCode_$Impl_$.F12 = 1073741893; lime_ui__$KeyCode_KeyCode_$Impl_$.PRINT_SCREEN = 1073741894; lime_ui__$KeyCode_KeyCode_$Impl_$.SCROLL_LOCK = 1073741895; lime_ui__$KeyCode_KeyCode_$Impl_$.PAUSE = 1073741896; lime_ui__$KeyCode_KeyCode_$Impl_$.INSERT = 1073741897; lime_ui__$KeyCode_KeyCode_$Impl_$.HOME = 1073741898; lime_ui__$KeyCode_KeyCode_$Impl_$.PAGE_UP = 1073741899; lime_ui__$KeyCode_KeyCode_$Impl_$.END = 1073741901; lime_ui__$KeyCode_KeyCode_$Impl_$.PAGE_DOWN = 1073741902; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT = 1073741903; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT = 1073741904; lime_ui__$KeyCode_KeyCode_$Impl_$.DOWN = 1073741905; lime_ui__$KeyCode_KeyCode_$Impl_$.UP = 1073741906; lime_ui__$KeyCode_KeyCode_$Impl_$.NUM_LOCK = 1073741907; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DIVIDE = 1073741908; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MULTIPLY = 1073741909; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MINUS = 1073741910; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PLUS = 1073741911; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_ENTER = 1073741912; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_1 = 1073741913; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_2 = 1073741914; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_3 = 1073741915; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_4 = 1073741916; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_5 = 1073741917; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_6 = 1073741918; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_7 = 1073741919; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_8 = 1073741920; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_9 = 1073741921; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_0 = 1073741922; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PERIOD = 1073741923; lime_ui__$KeyCode_KeyCode_$Impl_$.APPLICATION = 1073741925; lime_ui__$KeyCode_KeyCode_$Impl_$.POWER = 1073741926; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_EQUALS = 1073741927; lime_ui__$KeyCode_KeyCode_$Impl_$.F13 = 1073741928; lime_ui__$KeyCode_KeyCode_$Impl_$.F14 = 1073741929; lime_ui__$KeyCode_KeyCode_$Impl_$.F15 = 1073741930; lime_ui__$KeyCode_KeyCode_$Impl_$.F16 = 1073741931; lime_ui__$KeyCode_KeyCode_$Impl_$.F17 = 1073741932; lime_ui__$KeyCode_KeyCode_$Impl_$.F18 = 1073741933; lime_ui__$KeyCode_KeyCode_$Impl_$.F19 = 1073741934; lime_ui__$KeyCode_KeyCode_$Impl_$.F20 = 1073741935; lime_ui__$KeyCode_KeyCode_$Impl_$.F21 = 1073741936; lime_ui__$KeyCode_KeyCode_$Impl_$.F22 = 1073741937; lime_ui__$KeyCode_KeyCode_$Impl_$.F23 = 1073741938; lime_ui__$KeyCode_KeyCode_$Impl_$.F24 = 1073741939; lime_ui__$KeyCode_KeyCode_$Impl_$.EXECUTE = 1073741940; lime_ui__$KeyCode_KeyCode_$Impl_$.HELP = 1073741941; lime_ui__$KeyCode_KeyCode_$Impl_$.MENU = 1073741942; lime_ui__$KeyCode_KeyCode_$Impl_$.SELECT = 1073741943; lime_ui__$KeyCode_KeyCode_$Impl_$.STOP = 1073741944; lime_ui__$KeyCode_KeyCode_$Impl_$.AGAIN = 1073741945; lime_ui__$KeyCode_KeyCode_$Impl_$.UNDO = 1073741946; lime_ui__$KeyCode_KeyCode_$Impl_$.CUT = 1073741947; lime_ui__$KeyCode_KeyCode_$Impl_$.COPY = 1073741948; lime_ui__$KeyCode_KeyCode_$Impl_$.PASTE = 1073741949; lime_ui__$KeyCode_KeyCode_$Impl_$.FIND = 1073741950; lime_ui__$KeyCode_KeyCode_$Impl_$.MUTE = 1073741951; lime_ui__$KeyCode_KeyCode_$Impl_$.VOLUME_UP = 1073741952; lime_ui__$KeyCode_KeyCode_$Impl_$.VOLUME_DOWN = 1073741953; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_COMMA = 1073741957; lime_ui__$KeyCode_KeyCode_$Impl_$.ALT_ERASE = 1073741977; lime_ui__$KeyCode_KeyCode_$Impl_$.SYSTEM_REQUEST = 1073741978; lime_ui__$KeyCode_KeyCode_$Impl_$.CANCEL = 1073741979; lime_ui__$KeyCode_KeyCode_$Impl_$.CLEAR = 1073741980; lime_ui__$KeyCode_KeyCode_$Impl_$.PRIOR = 1073741981; lime_ui__$KeyCode_KeyCode_$Impl_$.RETURN2 = 1073741982; lime_ui__$KeyCode_KeyCode_$Impl_$.SEPARATOR = 1073741983; lime_ui__$KeyCode_KeyCode_$Impl_$.OUT = 1073741984; lime_ui__$KeyCode_KeyCode_$Impl_$.OPER = 1073741985; lime_ui__$KeyCode_KeyCode_$Impl_$.CLEAR_AGAIN = 1073741986; lime_ui__$KeyCode_KeyCode_$Impl_$.CRSEL = 1073741987; lime_ui__$KeyCode_KeyCode_$Impl_$.EXSEL = 1073741988; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_00 = 1073742000; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_000 = 1073742001; lime_ui__$KeyCode_KeyCode_$Impl_$.THOUSAND_SEPARATOR = 1073742002; lime_ui__$KeyCode_KeyCode_$Impl_$.DECIMAL_SEPARATOR = 1073742003; lime_ui__$KeyCode_KeyCode_$Impl_$.CURRENCY_UNIT = 1073742004; lime_ui__$KeyCode_KeyCode_$Impl_$.CURRENCY_SUBUNIT = 1073742005; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LEFT_PARENTHESIS = 1073742006; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_RIGHT_PARENTHESIS = 1073742007; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LEFT_BRACE = 1073742008; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_RIGHT_BRACE = 1073742009; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_TAB = 1073742010; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_BACKSPACE = 1073742011; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_A = 1073742012; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_B = 1073742013; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_C = 1073742014; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_D = 1073742015; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_E = 1073742016; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_F = 1073742017; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_XOR = 1073742018; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_POWER = 1073742019; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PERCENT = 1073742020; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_LESS_THAN = 1073742021; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_GREATER_THAN = 1073742022; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_AMPERSAND = 1073742023; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DOUBLE_AMPERSAND = 1073742024; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_VERTICAL_BAR = 1073742025; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DOUBLE_VERTICAL_BAR = 1073742026; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_COLON = 1073742027; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_HASH = 1073742028; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_SPACE = 1073742029; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_AT = 1073742030; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_EXCLAMATION = 1073742031; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_STORE = 1073742032; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_RECALL = 1073742033; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_CLEAR = 1073742034; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_ADD = 1073742035; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_SUBTRACT = 1073742036; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_MULTIPLY = 1073742037; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_MEM_DIVIDE = 1073742038; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_PLUS_MINUS = 1073742039; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_CLEAR = 1073742040; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_CLEAR_ENTRY = 1073742041; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_BINARY = 1073742042; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_OCTAL = 1073742043; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_DECIMAL = 1073742044; lime_ui__$KeyCode_KeyCode_$Impl_$.NUMPAD_HEXADECIMAL = 1073742045; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_CTRL = 1073742048; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_SHIFT = 1073742049; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_ALT = 1073742050; lime_ui__$KeyCode_KeyCode_$Impl_$.LEFT_META = 1073742051; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_CTRL = 1073742052; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_SHIFT = 1073742053; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_ALT = 1073742054; lime_ui__$KeyCode_KeyCode_$Impl_$.RIGHT_META = 1073742055; lime_ui__$KeyCode_KeyCode_$Impl_$.MODE = 1073742081; lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_NEXT = 1073742082; lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_PREVIOUS = 1073742083; lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_STOP = 1073742084; lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_PLAY = 1073742085; lime_ui__$KeyCode_KeyCode_$Impl_$.AUDIO_MUTE = 1073742086; lime_ui__$KeyCode_KeyCode_$Impl_$.MEDIA_SELECT = 1073742087; lime_ui__$KeyCode_KeyCode_$Impl_$.WWW = 1073742088; lime_ui__$KeyCode_KeyCode_$Impl_$.MAIL = 1073742089; lime_ui__$KeyCode_KeyCode_$Impl_$.CALCULATOR = 1073742090; lime_ui__$KeyCode_KeyCode_$Impl_$.COMPUTER = 1073742091; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_SEARCH = 1073742092; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_HOME = 1073742093; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_BACK = 1073742094; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_FORWARD = 1073742095; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_STOP = 1073742096; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_REFRESH = 1073742097; lime_ui__$KeyCode_KeyCode_$Impl_$.APP_CONTROL_BOOKMARKS = 1073742098; lime_ui__$KeyCode_KeyCode_$Impl_$.BRIGHTNESS_DOWN = 1073742099; lime_ui__$KeyCode_KeyCode_$Impl_$.BRIGHTNESS_UP = 1073742100; lime_ui__$KeyCode_KeyCode_$Impl_$.DISPLAY_SWITCH = 1073742101; lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_TOGGLE = 1073742102; lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_DOWN = 1073742103; lime_ui__$KeyCode_KeyCode_$Impl_$.BACKLIGHT_UP = 1073742104; lime_ui__$KeyCode_KeyCode_$Impl_$.EJECT = 1073742105; lime_ui__$KeyCode_KeyCode_$Impl_$.SLEEP = 1073742106; lime_ui__$KeyModifier_KeyModifier_$Impl_$.NONE = 0; lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_SHIFT = 1; lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_SHIFT = 2; lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_CTRL = 64; lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_CTRL = 128; lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_ALT = 256; lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_ALT = 512; lime_ui__$KeyModifier_KeyModifier_$Impl_$.LEFT_META = 1024; lime_ui__$KeyModifier_KeyModifier_$Impl_$.RIGHT_META = 2048; lime_ui__$KeyModifier_KeyModifier_$Impl_$.NUM_LOCK = 4096; lime_ui__$KeyModifier_KeyModifier_$Impl_$.CAPS_LOCK = 8192; lime_ui__$KeyModifier_KeyModifier_$Impl_$.MODE = 16384; lime_ui__$KeyModifier_KeyModifier_$Impl_$.CTRL = 192; lime_ui__$KeyModifier_KeyModifier_$Impl_$.SHIFT = 3; lime_ui__$KeyModifier_KeyModifier_$Impl_$.ALT = 768; lime_ui__$KeyModifier_KeyModifier_$Impl_$.META = 3072; lime_ui_Touch.onEnd = new lime_app_Event_$lime_$ui_$Touch_$Void(); lime_ui_Touch.onMove = new lime_app_Event_$lime_$ui_$Touch_$Void(); lime_ui_Touch.onStart = new lime_app_Event_$lime_$ui_$Touch_$Void(); lime_utils_Bytes.cffi_lime_bytes_from_data_pointer = (function($this) { var $r; var inValue = lime_system_CFFI.load("lime","lime_bytes_from_data_pointer",2,false); $r = inValue; return $r; }(this)); lime_utils_Bytes.cffi_lime_bytes_get_data_pointer = (function($this) { var $r; var inValue = lime_system_CFFI.load("lime","lime_bytes_get_data_pointer",1,false); $r = inValue; return $r; }(this)); lime_utils_Bytes.cffi_lime_bytes_read_file = (function($this) { var $r; var inValue = lime_system_CFFI.load("lime","lime_bytes_read_file",1,false); $r = inValue; return $r; }(this)); lime_utils__$Float32Array_Float32Array_$Impl_$.BYTES_PER_ELEMENT = 4; lime_utils__$Int16Array_Int16Array_$Impl_$.BYTES_PER_ELEMENT = 2; lime_utils__$Int32Array_Int32Array_$Impl_$.BYTES_PER_ELEMENT = 4; lime_utils__$UInt16Array_UInt16Array_$Impl_$.BYTES_PER_ELEMENT = 2; lime_utils__$UInt32Array_UInt32Array_$Impl_$.BYTES_PER_ELEMENT = 4; lime_utils__$UInt8Array_UInt8Array_$Impl_$.BYTES_PER_ELEMENT = 1; motion_actuators_SimpleActuator.actuators = []; motion_actuators_SimpleActuator.actuatorsLength = 0; motion_actuators_SimpleActuator.addedEvent = false; motion_Actuate.defaultActuator = motion_actuators_SimpleActuator; motion_Actuate.defaultEase = motion_easing_Expo.get_easeOut(); motion_Actuate.targetLibraries = new haxe_ds_ObjectMap(); openfl_Assets.cache = new openfl_AssetCache(); openfl_Assets.dispatcher = new openfl_events_EventDispatcher(); openfl_display_LoaderInfo.__rootURL = window.document.URL; openfl_system_ApplicationDomain.currentDomain = new openfl_system_ApplicationDomain(null); openfl_geom_Matrix.__identity = new openfl_geom_Matrix(); openfl_geom_Matrix.__temp = new openfl_geom_Matrix(); openfl_Lib.current = new openfl_display_MovieClip(); openfl_Lib.__sentWarnings = new haxe_ds_StringMap(); openfl__$internal_renderer_GraphicsPaths.SIN45 = 0.70710678118654752440084436210485; openfl__$internal_renderer_GraphicsPaths.TAN22 = 0.4142135623730950488016887242097; openfl__$internal_renderer_cairo_CairoGraphics.SIN45 = 0.70710678118654752440084436210485; openfl__$internal_renderer_cairo_CairoGraphics.TAN22 = 0.4142135623730950488016887242097; openfl__$internal_renderer_cairo_CairoGraphics.fillCommands = new openfl__$internal_renderer_DrawCommandBuffer(); openfl__$internal_renderer_cairo_CairoGraphics.strokeCommands = new openfl__$internal_renderer_DrawCommandBuffer(); openfl__$internal_renderer_canvas_CanvasGraphics.SIN45 = 0.70710678118654752440084436210485; openfl__$internal_renderer_canvas_CanvasGraphics.TAN22 = 0.4142135623730950488016887242097; openfl__$internal_renderer_canvas_CanvasGraphics.fillCommands = new openfl__$internal_renderer_DrawCommandBuffer(); openfl__$internal_renderer_canvas_CanvasGraphics.strokeCommands = new openfl__$internal_renderer_DrawCommandBuffer(); openfl__$internal_renderer_opengl_GLBitmap.fbData = []; openfl__$internal_renderer_opengl_GLRenderer.glContextId = 0; openfl__$internal_renderer_opengl_GLRenderer.glContexts = []; openfl__$internal_renderer_opengl_shaders2_Shader.UID = 0; openfl__$internal_renderer_opengl_shaders2_DefaultShader.VERTEX_SRC = ["attribute vec2 " + "openfl_aPosition" + ";","attribute vec2 " + "openfl_aTexCoord0" + ";","attribute vec4 " + "openfl_aColor" + ";","uniform mat3 " + "openfl_uProjectionMatrix" + ";","uniform bool " + "openfl_uUseColorTransform" + ";","varying vec2 " + "openfl_vTexCoord" + ";","varying vec4 " + "openfl_vColor" + ";","void main(void) {"," gl_Position = vec4((" + "openfl_uProjectionMatrix" + " * vec3(" + "openfl_aPosition" + ", 1.0)).xy, 0.0, 1.0);"," " + "openfl_vTexCoord" + " = " + "openfl_aTexCoord0" + ";"," if(" + "openfl_uUseColorTransform" + ")"," \t" + "openfl_vColor" + " = " + "openfl_aColor" + ";"," else"," \t" + "openfl_vColor" + " = vec4(" + "openfl_aColor" + ".rgb * " + "openfl_aColor" + ".a, " + "openfl_aColor" + ".a);","}"]; openfl__$internal_renderer_opengl_utils_PathBuiler.__currentWinding = 0; openfl__$internal_renderer_opengl_utils_PathBuiler.__fillIndex = 0; openfl_geom_Rectangle.__temp = new openfl_geom_Rectangle(); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.fillVertexAttributes = [new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aPosition")]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.drawTrianglesVertexAttributes = [new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aPosition"),new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aTexCoord0"),new openfl__$internal_renderer_opengl_utils_VertexAttribute(4,5121,true,"openfl_aColor")]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.primitiveVertexAttributes = [new openfl__$internal_renderer_opengl_utils_VertexAttribute(2,5126,false,"openfl_aPosition"),new openfl__$internal_renderer_opengl_utils_VertexAttribute(4,5126,false,"openfl_aColor")]; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.graphicsDataPool = []; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.bucketPool = []; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.SIN45 = 0.70710678118654752440084436210485; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.TAN22 = 0.4142135623730950488016887242097; openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectPosition = new openfl_geom_Point(); openfl__$internal_renderer_opengl_utils_GraphicsRenderer.objectBounds = new openfl_geom_Rectangle(); openfl__$internal_renderer_opengl_utils_ShaderManager.compiledShadersCache = new haxe_ds_StringMap(); openfl__$internal_renderer_opengl_utils_SpriteBatch.VERTS_PER_SPRITE = 4; openfl__$internal_text_TextEngine.UTF8_TAB = 9; openfl__$internal_text_TextEngine.UTF8_ENDLINE = 10; openfl__$internal_text_TextEngine.UTF8_SPACE = 32; openfl__$internal_text_TextEngine.UTF8_HYPHEN = 45; openfl__$internal_text_TextEngine.__defaultFonts = new haxe_ds_StringMap(); openfl_display__$BlendMode_BlendMode_$Impl_$.ADD = 0; openfl_display__$BlendMode_BlendMode_$Impl_$.ALPHA = 1; openfl_display__$BlendMode_BlendMode_$Impl_$.DARKEN = 2; openfl_display__$BlendMode_BlendMode_$Impl_$.DIFFERENCE = 3; openfl_display__$BlendMode_BlendMode_$Impl_$.ERASE = 4; openfl_display__$BlendMode_BlendMode_$Impl_$.HARDLIGHT = 5; openfl_display__$BlendMode_BlendMode_$Impl_$.INVERT = 6; openfl_display__$BlendMode_BlendMode_$Impl_$.LAYER = 7; openfl_display__$BlendMode_BlendMode_$Impl_$.LIGHTEN = 8; openfl_display__$BlendMode_BlendMode_$Impl_$.MULTIPLY = 9; openfl_display__$BlendMode_BlendMode_$Impl_$.NORMAL = 10; openfl_display__$BlendMode_BlendMode_$Impl_$.OVERLAY = 11; openfl_display__$BlendMode_BlendMode_$Impl_$.SCREEN = 12; openfl_display__$BlendMode_BlendMode_$Impl_$.SHADER = 13; openfl_display__$BlendMode_BlendMode_$Impl_$.SUBTRACT = 14; openfl_display__$CapsStyle_CapsStyle_$Impl_$.NONE = 0; openfl_display__$CapsStyle_CapsStyle_$Impl_$.ROUND = 1; openfl_display__$CapsStyle_CapsStyle_$Impl_$.SQUARE = 2; openfl_display__$GradientType_GradientType_$Impl_$.LINEAR = 0; openfl_display__$GradientType_GradientType_$Impl_$.RADIAL = 1; openfl_display_Graphics.TILE_SCALE = 1; openfl_display_Graphics.TILE_ROTATION = 2; openfl_display_Graphics.TILE_RGB = 4; openfl_display_Graphics.TILE_ALPHA = 8; openfl_display_Graphics.TILE_TRANS_2x2 = 16; openfl_display_Graphics.TILE_RECT = 32; openfl_display_Graphics.TILE_ORIGIN = 64; openfl_display_Graphics.TILE_BLEND_NORMAL = 0; openfl_display_Graphics.TILE_BLEND_ADD = 65536; openfl_display_Graphics.TILE_BLEND_MULTIPLY = 131072; openfl_display_Graphics.TILE_BLEND_SCREEN = 262144; openfl_display_Graphics.TILE_BLEND_SUBTRACT = 524288; openfl_display_Graphics.TILE_BLEND_DARKEN = 1048576; openfl_display_Graphics.TILE_BLEND_LIGHTEN = 2097152; openfl_display_Graphics.TILE_BLEND_OVERLAY = 4194304; openfl_display_Graphics.TILE_BLEND_HARDLIGHT = 8388608; openfl_display_Graphics.TILE_BLEND_DIFFERENCE = 16777216; openfl_display_Graphics.TILE_BLEND_INVERT = 33554432; openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.LINEAR_RGB = 0; openfl_display__$InterpolationMethod_InterpolationMethod_$Impl_$.RGB = 1; openfl_display__$JointStyle_JointStyle_$Impl_$.BEVEL = 0; openfl_display__$JointStyle_JointStyle_$Impl_$.MITER = 1; openfl_display__$JointStyle_JointStyle_$Impl_$.ROUND = 2; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.HORIZONTAL = 0; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.NONE = 1; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.NORMAL = 2; openfl_display__$LineScaleMode_LineScaleMode_$Impl_$.VERTICAL = 3; openfl_display_OpenGLView.CONTEXT_LOST = "glcontextlost"; openfl_display_OpenGLView.CONTEXT_RESTORED = "glcontextrestored"; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.ALWAYS = 0; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.AUTO = 1; openfl_display__$PixelSnapping_PixelSnapping_$Impl_$.NEVER = 2; openfl_display_Shader.uniformRegex = new EReg("^\\s*uniform\\s+(sampler(?:2D|Cube)|[bi]?vec[234]|float|int|bool|mat[234])\\s+(\\w+)\\s*(?:\\[(\\d+)\\])?\\s*;.*$","gmi"); openfl_display_Shader.aPosition = "openfl_aPosition"; openfl_display_Shader.aTexCoord = "openfl_aTexCoord0"; openfl_display_Shader.aColor = "openfl_aColor"; openfl_display_Shader.uSampler = "openfl_uSampler0"; openfl_display_Shader.uProjectionMatrix = "openfl_uProjectionMatrix"; openfl_display_Shader.uColorMultiplier = "openfl_uColorMultiplier"; openfl_display_Shader.uColorOffset = "openfl_uColorOffset"; openfl_display_Shader.uObjectSize = "openfl_uObjectSize"; openfl_display_Shader.uTextureSize = "openfl_uTextureSize"; openfl_display_Shader.vTexCoord = "openfl_vTexCoord"; openfl_display_Shader.vColor = "openfl_vColor"; openfl_display_Shader.vertexHeader = ["attribute vec2 " + openfl_display_Shader.aPosition + ";","attribute vec2 " + openfl_display_Shader.aTexCoord + ";","attribute vec4 " + openfl_display_Shader.aColor + ";","uniform mat3 " + openfl_display_Shader.uProjectionMatrix + ";","uniform vec2 " + openfl_display_Shader.uObjectSize + ";","uniform vec2 " + openfl_display_Shader.uTextureSize + ";","varying vec2 " + openfl_display_Shader.vTexCoord + ";","varying vec4 " + openfl_display_Shader.vColor + ";"]; openfl_display_Shader.fragmentHeader = ["uniform sampler2D " + openfl_display_Shader.uSampler + ";","uniform vec4 " + openfl_display_Shader.uColorMultiplier + ";","uniform vec4 " + openfl_display_Shader.uColorOffset + ";","uniform vec2 " + openfl_display_Shader.uObjectSize + ";","uniform vec2 " + openfl_display_Shader.uTextureSize + ";","varying vec2 " + openfl_display_Shader.vTexCoord + ";","varying vec4 " + openfl_display_Shader.vColor + ";","vec4 colorTransform(const vec4 color, const vec4 tint, const vec4 multiplier, const vec4 offset) {"," vec4 unmultiply = vec4(color.rgb / color.a, color.a);"," vec4 result = unmultiply * tint * multiplier;"," result = result + offset;"," result = clamp(result, 0., 1.);"," result = vec4(result.rgb * result.a, result.a);"," return result;","}"]; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.PAD = 0; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.REFLECT = 1; openfl_display__$SpreadMethod_SpreadMethod_$Impl_$.REPEAT = 2; openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM = 0; openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM_LEFT = 1; openfl_display__$StageAlign_StageAlign_$Impl_$.BOTTOM_RIGHT = 2; openfl_display__$StageAlign_StageAlign_$Impl_$.LEFT = 3; openfl_display__$StageAlign_StageAlign_$Impl_$.RIGHT = 4; openfl_display__$StageAlign_StageAlign_$Impl_$.TOP = 5; openfl_display__$StageAlign_StageAlign_$Impl_$.TOP_LEFT = 6; openfl_display__$StageAlign_StageAlign_$Impl_$.TOP_RIGHT = 7; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.FULL_SCREEN = 0; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.FULL_SCREEN_INTERACTIVE = 1; openfl_display__$StageDisplayState_StageDisplayState_$Impl_$.NORMAL = 2; openfl_display__$StageQuality_StageQuality_$Impl_$.BEST = 0; openfl_display__$StageQuality_StageQuality_$Impl_$.HIGH = 1; openfl_display__$StageQuality_StageQuality_$Impl_$.LOW = 2; openfl_display__$StageQuality_StageQuality_$Impl_$.MEDIUM = 3; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.EXACT_FIT = 0; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.NO_BORDER = 1; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.NO_SCALE = 2; openfl_display__$StageScaleMode_StageScaleMode_$Impl_$.SHOW_ALL = 3; openfl_display_Tilesheet.TILE_SCALE = 1; openfl_display_Tilesheet.TILE_ROTATION = 2; openfl_display_Tilesheet.TILE_RGB = 4; openfl_display_Tilesheet.TILE_ALPHA = 8; openfl_display_Tilesheet.TILE_TRANS_2x2 = 16; openfl_display_Tilesheet.TILE_RECT = 32; openfl_display_Tilesheet.TILE_ORIGIN = 64; openfl_display_Tilesheet.TILE_TRANS_COLOR = 128; openfl_display_Tilesheet.TILE_BLEND_NORMAL = 0; openfl_display_Tilesheet.TILE_BLEND_ADD = 65536; openfl_display_Tilesheet.TILE_BLEND_MULTIPLY = 131072; openfl_display_Tilesheet.TILE_BLEND_SCREEN = 262144; openfl_display_Tilesheet.TILE_BLEND_SUBTRACT = 524288; openfl_display_Tilesheet.TILE_BLEND_DARKEN = 1048576; openfl_display_Tilesheet.TILE_BLEND_LIGHTEN = 2097152; openfl_display_Tilesheet.TILE_BLEND_OVERLAY = 4194304; openfl_display_Tilesheet.TILE_BLEND_HARDLIGHT = 8388608; openfl_display_Tilesheet.TILE_BLEND_DIFFERENCE = 16777216; openfl_display_Tilesheet.TILE_BLEND_INVERT = 33554432; openfl_display_Tilesheet.__defaultPoint = new openfl_geom_Point(0,0); openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.NEGATIVE = 0; openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.NONE = 1; openfl_display__$TriangleCulling_TriangleCulling_$Impl_$.POSITIVE = 2; openfl_display3D_Context3D.TEXTURE_MAX_ANISOTROPY_EXT = 34046; openfl_display3D_Context3D.MAX_SAMPLERS = 8; openfl_display3D_Context3D.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047; openfl_display3D_Context3D.anisotropySupportTested = false; openfl_display3D_Context3D.supportsAnisotropy = false; openfl_display3D_Context3D.maxSupportedAnisotropy = 256; openfl_display3D_Context3DClearMask.ALL = 17664; openfl_display3D_Context3DClearMask.COLOR = 16384; openfl_display3D_Context3DClearMask.DEPTH = 256; openfl_display3D_Context3DClearMask.STENCIL = 1024; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.ALWAYS = 519; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.EQUAL = 514; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.GREATER = 516; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.GREATER_EQUAL = 518; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.LESS = 513; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.LESS_EQUAL = 515; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.NEVER = 512; openfl_display3D__$Context3DCompareMode_Context3DCompareMode_$Impl_$.NOT_EQUAL = 517; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.BACK = 1028; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.FRONT = 1029; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.FRONT_AND_BACK = 1032; openfl_display3D__$Context3DTriangleFace_Context3DTriangleFace_$Impl_$.NONE = 0; openfl_display3D_textures_Texture.internalFormat = -1; openfl_errors_Error.DEFAULT_TO_STRING = "Error"; openfl_events_Event.ACTIVATE = "activate"; openfl_events_Event.ADDED = "added"; openfl_events_Event.ADDED_TO_STAGE = "addedToStage"; openfl_events_Event.CANCEL = "cancel"; openfl_events_Event.CHANGE = "change"; openfl_events_Event.CLOSE = "close"; openfl_events_Event.COMPLETE = "complete"; openfl_events_Event.CONNECT = "connect"; openfl_events_Event.CONTEXT3D_CREATE = "context3DCreate"; openfl_events_Event.DEACTIVATE = "deactivate"; openfl_events_Event.ENTER_FRAME = "enterFrame"; openfl_events_Event.ID3 = "id3"; openfl_events_Event.INIT = "init"; openfl_events_Event.MOUSE_LEAVE = "mouseLeave"; openfl_events_Event.OPEN = "open"; openfl_events_Event.REMOVED = "removed"; openfl_events_Event.REMOVED_FROM_STAGE = "removedFromStage"; openfl_events_Event.RENDER = "render"; openfl_events_Event.RESIZE = "resize"; openfl_events_Event.SCROLL = "scroll"; openfl_events_Event.SELECT = "select"; openfl_events_Event.SOUND_COMPLETE = "soundComplete"; openfl_events_Event.TAB_CHILDREN_CHANGE = "tabChildrenChange"; openfl_events_Event.TAB_ENABLED_CHANGE = "tabEnabledChange"; openfl_events_Event.TAB_INDEX_CHANGE = "tabIndexChange"; openfl_events_Event.UNLOAD = "unload"; openfl_events_ActivityEvent.ACTIVITY = "activity"; openfl_events_TextEvent.LINK = "link"; openfl_events_TextEvent.TEXT_INPUT = "textInput"; openfl_events_ErrorEvent.ERROR = "error"; openfl_events_FocusEvent.FOCUS_IN = "focusIn"; openfl_events_FocusEvent.FOCUS_OUT = "focusOut"; openfl_events_FocusEvent.KEY_FOCUS_CHANGE = "keyFocusChange"; openfl_events_FocusEvent.MOUSE_FOCUS_CHANGE = "mouseFocusChange"; openfl_events_FullScreenEvent.FULL_SCREEN = "fullScreen"; openfl_events_FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED = "fullScreenInteractiveAccepted"; openfl_events_GameInputEvent.DEVICE_ADDED = "deviceAdded"; openfl_events_GameInputEvent.DEVICE_REMOVED = "deviceRemoved"; openfl_events_GameInputEvent.DEVICE_UNUSABLE = "deviceUnusable"; openfl_events_HTTPStatusEvent.HTTP_RESPONSE_STATUS = "httpResponseStatus"; openfl_events_HTTPStatusEvent.HTTP_STATUS = "httpStatus"; openfl_events_IOErrorEvent.IO_ERROR = "ioError"; openfl_events_KeyboardEvent.KEY_DOWN = "keyDown"; openfl_events_KeyboardEvent.KEY_UP = "keyUp"; openfl_events_MouseEvent.CLICK = "click"; openfl_events_MouseEvent.DOUBLE_CLICK = "doubleClick"; openfl_events_MouseEvent.MIDDLE_CLICK = "middleClick"; openfl_events_MouseEvent.MIDDLE_MOUSE_DOWN = "middleMouseDown"; openfl_events_MouseEvent.MIDDLE_MOUSE_UP = "middleMouseUp"; openfl_events_MouseEvent.MOUSE_DOWN = "mouseDown"; openfl_events_MouseEvent.MOUSE_MOVE = "mouseMove"; openfl_events_MouseEvent.MOUSE_OUT = "mouseOut"; openfl_events_MouseEvent.MOUSE_OVER = "mouseOver"; openfl_events_MouseEvent.MOUSE_UP = "mouseUp"; openfl_events_MouseEvent.MOUSE_WHEEL = "mouseWheel"; openfl_events_MouseEvent.RIGHT_CLICK = "rightClick"; openfl_events_MouseEvent.RIGHT_MOUSE_DOWN = "rightMouseDown"; openfl_events_MouseEvent.RIGHT_MOUSE_UP = "rightMouseUp"; openfl_events_MouseEvent.ROLL_OUT = "rollOut"; openfl_events_MouseEvent.ROLL_OVER = "rollOver"; openfl_events_NetStatusEvent.NET_STATUS = "netStatus"; openfl_events_ProgressEvent.PROGRESS = "progress"; openfl_events_ProgressEvent.SOCKET_DATA = "socketData"; openfl_events_SecurityErrorEvent.SECURITY_ERROR = "securityError"; openfl_events_TouchEvent.TOUCH_BEGIN = "touchBegin"; openfl_events_TouchEvent.TOUCH_END = "touchEnd"; openfl_events_TouchEvent.TOUCH_MOVE = "touchMove"; openfl_events_TouchEvent.TOUCH_OUT = "touchOut"; openfl_events_TouchEvent.TOUCH_OVER = "touchOver"; openfl_events_TouchEvent.TOUCH_ROLL_OUT = "touchRollOut"; openfl_events_TouchEvent.TOUCH_ROLL_OVER = "touchRollOver"; openfl_events_TouchEvent.TOUCH_TAP = "touchTap"; openfl_external_ExternalInterface.available = true; openfl_external_ExternalInterface.marshallExceptions = false; openfl_filters__$BlurFilter_BlurShader.__meta__ = { fields : { vertex : { vertex : null}, fragment : { fragment : null}, get_uRadius : { noCompletion : null}, set_uRadius : { noCompletion : null}}}; openfl_filters__$DropShadowFilter_DropShadowShader.__meta__ = { fields : { vertex : { vertex : null}, fragment : { fragment : null}, get_uRadius : { noCompletion : null}, set_uRadius : { noCompletion : null}, get_uShift : { noCompletion : null}, set_uShift : { noCompletion : null}, get_uColor : { noCompletion : null}, set_uColor : { noCompletion : null}}}; openfl_filters__$GlowFilter_GlowShader.__meta__ = { fields : { vertex : { vertex : null}, fragment : { fragment : null}, get_uRadius : { noCompletion : null}, set_uRadius : { noCompletion : null}, get_uColor : { noCompletion : null}, set_uColor : { noCompletion : null}}}; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.AXIS_ANGLE = 0; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.EULER_ANGLES = 1; openfl_geom__$Orientation3D_Orientation3D_$Impl_$.QUATERNION = 2; openfl_media_Sound.__registeredSounds = new haxe_ds_StringMap(); openfl_net_NetConnection.CONNECT_SUCCESS = "connectSuccess"; openfl_net_SharedObject.defaultObjectEncoding = 3; openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.FLUSHED = 0; openfl_net__$SharedObjectFlushStatus_SharedObjectFlushStatus_$Impl_$.PENDING = 1; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.BINARY = 0; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.TEXT = 1; openfl_net__$URLLoaderDataFormat_URLLoaderDataFormat_$Impl_$.VARIABLES = 2; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.DELETE = 0; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.GET = 1; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.HEAD = 2; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.OPTIONS = 3; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.POST = 4; openfl_net__$URLRequestMethod_URLRequestMethod_$Impl_$.PUT = 5; openfl_system_SecurityDomain.currentDomain = new openfl_system_SecurityDomain(); openfl_system_System.useCodePage = false; openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.ADVANCED = 0; openfl_text__$AntiAliasType_AntiAliasType_$Impl_$.NORMAL = 1; openfl_text__$FontStyle_FontStyle_$Impl_$.BOLD = 0; openfl_text__$FontStyle_FontStyle_$Impl_$.BOLD_ITALIC = 1; openfl_text__$FontStyle_FontStyle_$Impl_$.ITALIC = 2; openfl_text__$FontStyle_FontStyle_$Impl_$.REGULAR = 3; openfl_text__$FontType_FontType_$Impl_$.DEVICE = 0; openfl_text__$FontType_FontType_$Impl_$.EMBEDDED = 1; openfl_text__$FontType_FontType_$Impl_$.EMBEDDED_CFF = 2; openfl_text__$GridFitType_GridFitType_$Impl_$.NONE = 0; openfl_text__$GridFitType_GridFitType_$Impl_$.PIXEL = 1; openfl_text__$GridFitType_GridFitType_$Impl_$.SUBPIXEL = 2; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.CENTER = 0; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.LEFT = 1; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.NONE = 2; openfl_text__$TextFieldAutoSize_TextFieldAutoSize_$Impl_$.RIGHT = 3; openfl_text__$TextFieldType_TextFieldType_$Impl_$.DYNAMIC = 0; openfl_text__$TextFieldType_TextFieldType_$Impl_$.INPUT = 1; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.CENTER = 0; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.END = 1; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.JUSTIFY = 2; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.LEFT = 3; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.RIGHT = 4; openfl_text__$TextFormatAlign_TextFormatAlign_$Impl_$.START = 5; openfl_ui_GameInput.isSupported = true; openfl_ui_GameInput.numDevices = 0; openfl_ui_GameInput.__deviceList = []; openfl_ui_GameInput.__devices = new haxe_ds_ObjectMap(); openfl_ui_GameInput.__instances = []; openfl_ui_GameInputDevice.MAX_BUFFER_SIZE = 32000; openfl_ui_Keyboard.NUMBER_0 = 48; openfl_ui_Keyboard.NUMBER_1 = 49; openfl_ui_Keyboard.NUMBER_2 = 50; openfl_ui_Keyboard.NUMBER_3 = 51; openfl_ui_Keyboard.NUMBER_4 = 52; openfl_ui_Keyboard.NUMBER_5 = 53; openfl_ui_Keyboard.NUMBER_6 = 54; openfl_ui_Keyboard.NUMBER_7 = 55; openfl_ui_Keyboard.NUMBER_8 = 56; openfl_ui_Keyboard.NUMBER_9 = 57; openfl_ui_Keyboard.A = 65; openfl_ui_Keyboard.B = 66; openfl_ui_Keyboard.C = 67; openfl_ui_Keyboard.D = 68; openfl_ui_Keyboard.E = 69; openfl_ui_Keyboard.F = 70; openfl_ui_Keyboard.G = 71; openfl_ui_Keyboard.H = 72; openfl_ui_Keyboard.I = 73; openfl_ui_Keyboard.J = 74; openfl_ui_Keyboard.K = 75; openfl_ui_Keyboard.L = 76; openfl_ui_Keyboard.M = 77; openfl_ui_Keyboard.N = 78; openfl_ui_Keyboard.O = 79; openfl_ui_Keyboard.P = 80; openfl_ui_Keyboard.Q = 81; openfl_ui_Keyboard.R = 82; openfl_ui_Keyboard.S = 83; openfl_ui_Keyboard.T = 84; openfl_ui_Keyboard.U = 85; openfl_ui_Keyboard.V = 86; openfl_ui_Keyboard.W = 87; openfl_ui_Keyboard.X = 88; openfl_ui_Keyboard.Y = 89; openfl_ui_Keyboard.Z = 90; openfl_ui_Keyboard.NUMPAD_0 = 96; openfl_ui_Keyboard.NUMPAD_1 = 97; openfl_ui_Keyboard.NUMPAD_2 = 98; openfl_ui_Keyboard.NUMPAD_3 = 99; openfl_ui_Keyboard.NUMPAD_4 = 100; openfl_ui_Keyboard.NUMPAD_5 = 101; openfl_ui_Keyboard.NUMPAD_6 = 102; openfl_ui_Keyboard.NUMPAD_7 = 103; openfl_ui_Keyboard.NUMPAD_8 = 104; openfl_ui_Keyboard.NUMPAD_9 = 105; openfl_ui_Keyboard.NUMPAD_MULTIPLY = 106; openfl_ui_Keyboard.NUMPAD_ADD = 107; openfl_ui_Keyboard.NUMPAD_ENTER = 108; openfl_ui_Keyboard.NUMPAD_SUBTRACT = 109; openfl_ui_Keyboard.NUMPAD_DECIMAL = 110; openfl_ui_Keyboard.NUMPAD_DIVIDE = 111; openfl_ui_Keyboard.F1 = 112; openfl_ui_Keyboard.F2 = 113; openfl_ui_Keyboard.F3 = 114; openfl_ui_Keyboard.F4 = 115; openfl_ui_Keyboard.F5 = 116; openfl_ui_Keyboard.F6 = 117; openfl_ui_Keyboard.F7 = 118; openfl_ui_Keyboard.F8 = 119; openfl_ui_Keyboard.F9 = 120; openfl_ui_Keyboard.F10 = 121; openfl_ui_Keyboard.F11 = 122; openfl_ui_Keyboard.F12 = 123; openfl_ui_Keyboard.F13 = 124; openfl_ui_Keyboard.F14 = 125; openfl_ui_Keyboard.F15 = 126; openfl_ui_Keyboard.BACKSPACE = 8; openfl_ui_Keyboard.TAB = 9; openfl_ui_Keyboard.ALTERNATE = 18; openfl_ui_Keyboard.ENTER = 13; openfl_ui_Keyboard.COMMAND = 15; openfl_ui_Keyboard.SHIFT = 16; openfl_ui_Keyboard.CONTROL = 17; openfl_ui_Keyboard.BREAK = 19; openfl_ui_Keyboard.CAPS_LOCK = 20; openfl_ui_Keyboard.NUMPAD = 21; openfl_ui_Keyboard.ESCAPE = 27; openfl_ui_Keyboard.SPACE = 32; openfl_ui_Keyboard.PAGE_UP = 33; openfl_ui_Keyboard.PAGE_DOWN = 34; openfl_ui_Keyboard.END = 35; openfl_ui_Keyboard.HOME = 36; openfl_ui_Keyboard.LEFT = 37; openfl_ui_Keyboard.RIGHT = 39; openfl_ui_Keyboard.UP = 38; openfl_ui_Keyboard.DOWN = 40; openfl_ui_Keyboard.INSERT = 45; openfl_ui_Keyboard.DELETE = 46; openfl_ui_Keyboard.NUMLOCK = 144; openfl_ui_Keyboard.SEMICOLON = 186; openfl_ui_Keyboard.EQUAL = 187; openfl_ui_Keyboard.COMMA = 188; openfl_ui_Keyboard.MINUS = 189; openfl_ui_Keyboard.PERIOD = 190; openfl_ui_Keyboard.SLASH = 191; openfl_ui_Keyboard.BACKQUOTE = 192; openfl_ui_Keyboard.LEFTBRACKET = 219; openfl_ui_Keyboard.BACKSLASH = 220; openfl_ui_Keyboard.RIGHTBRACKET = 221; openfl_ui_Keyboard.QUOTE = 222; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.DEFLATE = 0; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.LZMA = 1; openfl_utils__$CompressionAlgorithm_CompressionAlgorithm_$Impl_$.ZLIB = 2; openfl_utils__$Endian_Endian_$Impl_$.BIG_ENDIAN = 0; openfl_utils__$Endian_Endian_$Impl_$.LITTLE_ENDIAN = 1; ApplicationMain.main(); })(typeof console != "undefined" ? console : {log:function(){}}, typeof window != "undefined" ? window : exports, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this);
| ver. 1.4 |
Github
|
.
| PHP 8.2.29 | Генераци� �траницы: 0.02 |
proxy
|
phpinfo
|
�а�тройка